linux2020
主講人: jserv / 課程討論區: 2020 年系統軟體課程
返回「Linux 核心設計」課程進度表Image Not Showing Possible ReasonsLearn More →
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
kecho
: 執行在 Linux 核心模式的 TCP 伺服器取得 kecho 原始程式碼並編譯:
預期會見到以下:
bench
及 user-echo-server
kecho.ko
及 drop-tcp-socket.ko
接著可進行測試:
參考輸出:
該操作由以下動作組成:
會出現以下輸出:
可輸入任何字元 (記得按下 Enter),然後就會看到 telnet 回應你剛才輸入的字元。
按下 Ctrl
和 ]
組合鍵,之後按下 q
,即可離開 telnet 畫面。接著可以試著在 $ telnet localhost 12345
時不要輸入任何字元,只是等待,會看到以下的 kernel 訊息 (可用 $ dmesg
觀察):
kecho 掛載時可指定 port 號碼: (預設是 port=12345
)
修改或測試 kecho 的過程,可能因為 TIME-WAIT
sockets 持續佔用,導致 rmmod
無法成功,這時可透過給定的 drop-tcp-socket
核心模組來剔除特定的 TCP 連線。請詳細閱讀 kecho 以得知必要的設定和準備工作。
user-echo-server
: 執行於使用者層級的 TCP 伺服器user-echo-server
是 kecho
的使用者層級的實作,可對照功能和比較效能,運用 epoll 系統呼叫,會傾聽 port 12345。
不管是 user-echo-server
抑或 kecho
,都可搭配給定的 bench
程式來分析效能。請詳細閱讀 kecho 以得知必要的設定和準備工作。
kecho
已使用 CMWQ,請陳述其優勢和用法*
workqueue() functions are deprecated and scheduled for removal",請參閱 Linux 核心的 git log (不要用 Google 搜尋!),揣摩 Linux 核心開發者的考量user-echo-server
運作原理,特別是 epoll 系統呼叫的使用bench
原理,能否比較 kecho
和 user-echo-server
表現?佐以製圖drop-tcp-socket
核心模組運作原理。TIME-WAIT
sockets 又是什麼?kecho
的執行時期的缺失,提升效能和穩健度 (robustness)
kecho
核心模組,會發生什麼事?kecho
核心模組的連線後,就長期等待,會導致什麼問題?編輯 Homework5 作業區共筆,將你的觀察、上述要求的解說、應用場合探討,以及各式效能改善過程,善用 gnuplot 製圖,紀錄於新建立的共筆
越早在 GitHub 上有動態、越早接受 code review,評分越高