想對Linux網路的運作有更直接的了解,這個系列文章是我追蹤探索Linux Kernel原始碼,了解Linux網路運作的筆記,大家可以跟著我一起去看看Linux網路系統的各個部份是怎麼運作的。
PCI 及 PCI-E 簡介 Peripheral Component Interconnect (PCI) 及 PCI Express (PCI-E) 的技術...
接著我們將從作業系統的角度探討,CPU 如何與周邊設備進行溝通。 根據昨天的架構圖,我們可以看到,CPU 與 RAM 及外部設備的溝通都必須通過 Root C...
昨天介紹完 Memory-Mapped I/O (MMIO) 之後,今天我們要繼續探討另一種周邊設備與作業系統的溝通模式——Port-Mapped I/O (P...
前兩天,我們介紹了作業系統如何透過 Memory-Mapped I/O (MMIO) 將外部設備的記憶體空間映射到物理記憶體空間,或者透過 Port-Mappe...
今天是介紹 PCI(e) 部分的最後一篇,我們將深入探討 MMIO(Memory-Mapped I/O)和 PMIO(Port-Mapped I/O)的建立與管...
在本系列的最後幾天,我們將收斂探索範圍,專注討論網卡驅動與 Linux 網路子系統。 在第 3 天的文章中,我們曾提到,透過 ip link list 列舉出來...
接下來,我們將以 Intel 的 igb 網卡驅動程式為例,解析網卡驅動的工作原理。今天我們先探討乙太網路卡驅動如何發現網卡,並完成 net_device 的建...
在這個系列的尾聲,我們將探討 Linux 系統是如何接收封包的,我一樣會以 igb 網卡為例。 啟動網卡 首先,當我們執行 ip link set eth0 u...
昨天我們了解了 igb 網卡驅動建立的 igb_ring 隊列,那今天就要真的來解析 igb 網卡驅動是怎麼接收封包的。這邊我們跳過中斷處理的內容,直接從 ig...
昨天,我們分析了,中斷發生後 igb 網卡驅動是如何透過 igb_clean_rx_irq 函數,接收封包資料、建立 sk_buff 結構,然後轉交給 GRO...