實驗二 Linux 下網路驅動程式追蹤 教師: 助教: 1998/10/19 High Speed Network Lab. Department of Computer Information Science, NCTU
Outline Why Linux ? Linux 核心的內部 Linux 開機始末 實驗步驟
Why Linux ? Free !! Compatible with System V & BSD UNIX Compliant to POSIX 1.0 Fast update !! Internet Powerful !! Pure 32-bit OS Candidate OS for embedded system Source code open !! Suitable for academic use
Linux 核心內部
Linux 開機始末 Load the kernel Probe & setup the hardware Create system process System initialization getty login process
實驗步驟 安裝 Linux 追蹤開機始末 編譯核心 設定 Linux 網路組態 在 kernel 中追蹤 network driver
安裝 Linux Where should I install it from ? Which distribution should I choose from ? Which version should I take ? How do I install it ? Does there exist any document ? –/usr/doc
追蹤 Linux 開機始末 Capture bootup sequence –dmesg –Shift + [PgUp | PgDw] –syslogd Traverse /etc/initab /etc/rc.d/ Tools grep Microsoft Visio Studio - Edit - Find in files
編譯核心 FTP, tar make [config | menuconfig | xconfig] –Modules support –Choose your adapter driver –Choose TCP/IP protocol stack make dep, make clean, make zImage make modules, make modules_install move to /boot re-write boot sector (lilo -v -v -v)
設定網路組態 Internet 參數 –Network Interface Configuration ifconfig eth0 x.x.x.x netmask y.y.y.y broadcast z.z.z.z –Routing table Configuration route add -net default gw dev eth0 route add -net dev eth0
追蹤 kernel 中的 network driver Trace by debugger Trace by printing, record by logging –klogd vs. syslogd Trigger network modules by “ping”
決定待測機器 Host IP= H, Netmask=M, Router=R far active host (IP address=F) near active host (IP address=N1) near inactive host (IP address=N2) ( H and M )=( R and M )=( R and N1 )=( R and N2 ) ≠ ( R and F )