Try   HackMD

Linux Kernel Internals 2024 Spring Collections Overview

Instructor: Jim Huang (黃敬群) jserv.tw@gmail.com
Syllabus/Schedule: https://wiki.csie.ncku.edu.tw/linux/schedule

This is a collection of the course materials and assignments for the course Linux Kernel Internals 2024 Spring at National Cheng Kung University.

Kuanch This course has been concluded on July 7, however, the content on this page will be updated regularly.

You might be also interested on my degree essay about Point Cloud Segmentation 2DDATA and Image and Point Cloud Misamatch (SNPD 2023).

課程已經於 7 / 7結束,但仍將持續更新內容
若您從履歷至此,亦可參考我的碩士論文 2DDATAImage and Point Cloud Misamatch (SNPD 2023)

部分工作如編修《Demystifying the Linux CPU Scheduler》將持續進行,不受課程進度影響,歡迎指教。


Term Project (in progress)

Keyword: EEVDF, EAS, QEMU and Buildroot, sched_ext

重點節錄

  • 編修 《Demystifying the Linux CPU Scheduler》EEVDF 章節
  • 以 QEMU + remote GDB + Buildroot 整理 Linux Kernel Scheduler 調用
  • 以不同方式分析及測量 EEVDF, BORE, EAS 等排程器效能 (schbench)
  • 撰寫 Kernel Module 評估現有排程策略之效能 (EEVDF, EAS)
  • 嘗試以 sched_ext 撰寫簡單的排程器,並驗證其效能差異

Assigment 1 (Due 3/4)

Keyword: Circular Linked List in Linux Kernel, container_of, Dude, is my code constant time?

Assignment Requirements 作業說明 Github

重點節錄

  • container_ofstruct list_head 初探
  • 實作 struct list_head 之佇列操作
  • 論文〈Dude, is my code constant time?〉

Assigment 2 (Due 3/11)

Keyword: Timsort, Hash Table, LRU, Maple Tree, CPU affinity, cpumaks, cpuset

Assignment Requirements 作業說明

重點節錄

  • 以 linked list 實作 Linux 核心風格之 merge sort
  • 理解 Linux Kernel 中的 merge sort
  • Maple TreeRCU 初探
  • CPU affinity 初探

Assigment 3 (Due 3/25)

Keyword: Double replacing with Fixed Point, Fixed Point Arithmetic, Square and log, coroutine

Assignment Requirements 作業說明 Github

重點節錄

  • IEEE 754 浮點數與定點數轉換
  • 使用牛頓勘根法求定點數之近似平方根
  • 使用尤拉公式求定點數之近似對數

Assigment 4 (Due 4/2)

Keyword: Red Black Tree, Bitwise Square, Bitwise Disivion and Modular, Bitwise Log2, Bitwise Hamming Distance, EWMA

Assignment Requirements 作業說明

重點節錄

  • 使用 bitwise operations 計算數學函式
  • Square, division, mod and log2
  • 使用 magic number (0x24924925 etc.) 計算定點數除法
  • 紅黑數初探

Assigment 5 (Due 4/15)

Keyword : CPU Scheduling, Completely Fair Scheduling (CFS), Energy Aware Scheduling (EAS), EEVDF

Midterm Self Assessment and Term Project Proposal Assignment Requirements 作業說明


Assigment 6 (Due 4/29)

Keyword: Linux Kernel Module, Concurrency Managed Workqueue (cmwq)

Assignment Requirements 作業說明

重點節錄

  • 理解 character device 、其涉及的系統呼叫機制以及 ABI
  • 透過核心模組 simrupt 理解 CMWQ 以及 Divided Handler 模型
  • 嘗試釐清 work_structtask_struct 關係
  • 嘗試以 strace 靜態分析 simrupt
  • 嘗試以 QEMU + remote gdb + Buildroot 動態分析 simrupt

Assigment 7 (Due 5/13)

Keyword: ktcp, sehttpd