最近有一種想要特別上進的心,所以上班之餘點了jserv的[課程](http://wiki.csie.ncku.edu.tw/linux/schedule)來看,發現以前學的根本不叫做是寫程式,而是背程式語言而已,秉持著jserv的名言 "今天不學kernel,明天更困難"以及 "誠實面對自己",下定決心重頭開始學習C語言,和更進階學習Linux Kernel。 1. [安裝ubuntu系統](https://hackmd.io/@Boyan/HJoEw5Msh) * 因為工作就在用linux & git 所以對於這些指令算是熟門熟路了,剛好手邊有一台沒有在用的筆電,就重灌成ubuntu系統,用ssh連過去開發。 2. [你所不知道的C語言:指標篇](https://hackmd.io/@Boyan/SkkGGSQi3) 紀錄&心得 * C 語言中特有的指標,可以透過記憶體映射的方式直接控制硬體,這也是為什麼 C 語言在硬體系統特別強大的原因。學習指標對於kernel也是很重要的 3. [linked list 和非連續記憶體](https://hackmd.io/@Boyan/BkQc9Rwih) * kernel中運用大量的linked list * linked list (鏈結串列) 本質上就是對非連續記憶體的操作,乍看僅是一種單純的資料結構,但對應的演算法變化多端,像是「如何偵測 linked list 是否存在環狀結構?」 * linked list 的操作,例如走訪 (traverse) 所有節點,反映出 Locality of reference (cache 用語) 的表現和記憶體階層架構 (memory hierarchy) 高度相關
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up