Time of Update: 2018-12-06
網卡本身是有記憶體的,每個網卡一般都有4K以上的記憶體,用來發送,接收資料。 資料在從主記憶體搬到網卡之後,不是立即就能被發送出去的,而是要先在網卡自身的記憶體中排隊,再按照先後順序發送;同樣的,資料從乙太網路傳遞到網卡時,網卡也是先把資料存放區到自身的記憶體中,等到收到一幀資料了,再經過中斷的方式,告訴主CPU(不是網卡本身的微處理器)把網卡記憶體的資料讀走,而讀走後的記憶體,又被清空,再次被使用,用來接收新的資料,如此迴圈往複。 而網卡本身的記憶體,又多是按照256位元組為1頁的方式,把所有
Time of Update: 2018-12-06
在Silverlight中,你可以使用Storyboard控制項來控制頁面對象的屬性從而實現動畫效果。該控制項可以做用於double,Color以及Point類型,比如以動畫形式改變Rectangle的Opactity值(double型)。Storyboard可以在XAML中作為一個Resource聲明,如在Canvs對象中可以做如下聲明 <Canvas> <Canvas.Resources> <Storyboard
Time of Update: 2018-12-06
Connect函數在發送了資料之後,就進入了休眠等待的狀態,等待遠方發過來的資料來確認連結是否成功。那麼資料是如何從網卡那裡傳遞到鏈路層? 資料在網卡的記憶體中,形成了以256位元組為1頁的環形緩衝鏈,每當有資料到達,網卡就會發生一個中斷訊號,告訴CPU已經有資料到達,此時,CPU通過DMA的方式,去讀取網卡記憶體中的資料,並把資料存放在一個專門開闢來接收這個資料包的skb_buff中,之後,就把接收資料的skb_buff進行排列,並且累加所有skb_buff的個數,如果超過一定的數量在排隊等待
Time of Update: 2018-12-06
在終端下執行 ps –A| grep khubd,會顯示出khubd的進程,這個就是hub的守護進程,我們的裝置插入usb介面(不論是插入跟集線器,還是子集線器)後,就是這個守護進程發現的,然後通過中斷的方式通知主控制,主控制器才開始調用hub的探測函數,來解析我們的裝置的。在上節hub驅動安裝OK後,系統會調用kthread_run(hub_thread, NULL,
Time of Update: 2018-12-06
probe的調用 從driver_register看起:int driver_register(struct device_driver * drv){ klist_init(&drv->klist_devices, klist_devices_get, klist_devices_put); init_completion(&drv->unloaded); return bus_add_driver(drv);}klist_
Time of Update: 2018-12-06
鏈路層經過對上層協議的檢查,把資料包上傳到了對應的上層協議層,在這裡,就是IP層協議。 資料到達IP層後,IP層需要進行相應的檢查,判斷後,才決定是否需要把資料上傳到上層。下面就是IP層所需要做的事情.1.首先檢測資料包的IP首部是否正確,即對資料包的IP部分的IP首部長度,版本,資料包的大小進行檢查,如果符合要求,則繼續進行下面的步驟,不符合要求,則釋放資料包,直接退出2.檢測IP首部是否包含了選項部分,方法就是查看IP首部的總長度欄位是否大於IP首部的長度,如果是,則需要把選項部分解析,這個
Time of Update: 2018-12-06
Hub正常工作後,主控制器就會定時詢問hub是否有中斷產生,當hub連接埠上有一個裝置插入或拔除,hub就向主控制器發送urb請求,即把hub連接埠的變化狀況告訴主控制器,這是通過urb請求來完成的,主機在處理完了這個urb後,就會調用urb所提供的完成函數,來調用hub的中斷函數,即hub_irq。 Hub_irq是hub的中斷處理函數,處理常式首先判斷主控制器處理urb的結果狀態,如果狀態是OK的,則繼續處理。1.掃描hub的所有連接埠,確定是哪個連接埠發生了變化。連接埠是用位元影像來表示的
Time of Update: 2018-12-06
Linux2.6以後的裝置驅動,都是在裝置模型的基礎上構建的,因此,要編寫linux下的裝置驅動程式,不論是usb裝置,pci裝置等,都需要瞭解裝置模型。裝置模型的基礎結構體主要是kobject,kset這兩個結構體:struct kobject { char * k_name; char name[KOBJ_NAME_LEN]; struct kref kref; struct list_head entry; struct kobject
Time of Update: 2018-12-06
DependencyObject支援綁定在Silverlight4之前的版本中,只有FrameworkElement才支援資料繫結。如下情境則是不被允許的<Canvas Width="100" Height="100" RenderTransformOrigin="0.5, 0.5" Background="#FF2B6092"> <Canvas.RenderTransform> <RotateTransform Angle="{
Time of Update: 2018-12-06
實驗環境:虛擬機器+fedora9實驗目的:練習fedora9的samba共用教程適用:想在fedora9上面使用共用的菜鳥一、samba簡介SMB協議是建立在NetBIOS協議之上的應用協議,是基於TCP138、139兩個連接埠的服務,NetBIOS出現之後,Microsoft就使用NetBIOS實現了一個網路檔案/列印服務系統。這個系統基於NetBIOS設定了一套檔案分享權限設定協議,Microsoft稱之為SMB(Server Message Block) 協議,這個協議被用於Lan
Time of Update: 2018-12-06
Kobject,kset是裝置模型的基本結構體,裝置模型使用這兩個結構體來完成裝置的層次關係,但在實際的裝置驅動編寫中,我們基本上用不到kobject,kset這些結構體,是因為這些結構體又被嵌入到更大的結構體中,原因在於kobject,kset結構體只能表徵裝置的層次關係,但是一個裝置的驅動,並不是簡單的一個層次關係而已,因此,必需要把kobject,kset結構體嵌入到更大的結構體中,使用kobject,kset來表徵層次關係,用其他的成員表示裝置驅動的具體功能。在裝置模型中,我們將看到,裝
Time of Update: 2018-12-06
有了前面的裝置驅動基礎,以及usb方面的基礎知識,則可以很輕鬆的就理解usb-skeleton常式,並輕鬆的就能寫出自己的簡易usb driver了。下面是usb-skeleton常式的簡易解析:/* * USB Skeleton driver - 2.0 * * Copyright (C) 2001-2004 Greg Kroah-Hartman (greg@kroah.com) * * This program is free software; you can redistribute
Time of Update: 2018-12-06
#include <stdio.h>#include <stdlib.h>#include <string.h>struct single_link{ int data; struct single_link *next; struct single_link *prev; };int main(void){ struct single_link *head=NULL,*tail=NULL,*tmp=NULL,*i_d_tmp=NULL; int i=0,j=
Time of Update: 2018-12-06
這篇文章的前提是您要使用Silverlight3(下文簡稱sl3)以及安裝了Expression Encoder及Expression
Time of Update: 2018-12-06
經過對裝置模型的整理,消化,就有了編寫一個裝置驅動程式的基礎。因工作關係,需要熟悉usb裝置驅動,因此,就選擇usb裝置驅動作為開始。 一個usb裝置,是如何被usb系統發現並安裝對應的裝置驅動程式的,從而使得usb裝置可以正常工作? 當一個usb裝置通過usb介面,串連到主機時,實際上是連結到了一個usb集線器(
Time of Update: 2018-12-06
注意TextOptions.TextFormattingMode這個附加屬性,它提供了兩種設定:· Ideal – 就是WPF出現以後一直使用的方式。· Display – Display模式,今天的主角。他們都是相依性屬性,所以其設定的值可以被子項目繼承。一個小例子 : <StackPanel> <TextBlock> Hello World ... Ideal text formatting
Time of Update: 2018-12-06
按照裝置模型的匯流排,裝置,驅動模式,一條匯流排會把所有這條匯流排上的裝置和驅動都掛載到匯流排的裝置鏈表和驅動鏈表上,具體到usb匯流排上,就是usb主控制器,hub等裝置,都需要按照裝置模型的要求,作為裝置掛載到usb匯流排的裝置鏈表上,同時也需要把usb主控制器,hub的驅動也掛載到驅動鏈表上,並且使得裝置和裝置驅動能夠相互關聯起來,才能使得裝置能夠使用,完成應有的裝置功能。那麼usb
Time of Update: 2018-12-06
今天與jgtang82討論FOR ALL ENTRIES與JOIN問題 SAP的資料字典對FOR ALL ENTRIES的封裝也並不那麼聰明。 關於效率問題,恰好有個不錯的文章 記下來,以後可以備考 FOR ALL ENTRIES vs DB2 JOIN http://blogs.ittoolbox.com/sap/db2/archives/for-all-entries-vs-db2-join-8912 All abap programers and most of the dba's
Time of Update: 2018-12-06
不知道大家注意過沒有,我們經常使用Page類中的Loaded()事件處理頁面載入後的一些操作,如public Page(){ InitializeComponent(); this.Loaded += new RoutedEventHandler(Page_Loaded);}void Page_Loaded(object sender, RoutedEventArgs e) {
Time of Update: 2018-12-06
ü 問:常見的SQL都有哪些,分別都叫什麼名子,你能說出他們都是哪個公司的作品嗎?答:常見的SQL有六種,分別是:1) SQL Server (微軟)2) Microsoft Access(微軟)3) MySql(Mysql AB公司àSun公司àOracle公司)4) Oracle 11g (Oracle公司5) DB2(IBM)6) Postgre SQL 8.3 伯克利(BSD)ü 問:以下關於SQL命令列的說法正確的有哪幾項?(多選)