這次的嵌入式Linux開發實務課程,進入到Linux系統程式設計課程階段,由Joseph老師主講,目的是要讓大家瞭解Linux system call,讓大家運用這些system call以實現Linux程式,Joseph老師上課內容相當豐富,每次講解system call function 時,都會配合Linux系統基本指令,以印證Linux system call在程式設計理的必要性。尤其在Linux系統中,每一種硬體的驅動,其實都是一個個的c語言的檔案系統的開檔籍關檔動作;讓我印象深刻的是Joseph老師用了很簡單的ioctl()的system call示範光碟機的開關動動作,原來僅僅幾行程式就可以控制,讓我對驅動程式的轉寫有了更進一步的認識;在Linux驅動程式裡,有一個很重要的觀念,就是blocking模式及non-blocking 模式,驅動程式裡呼叫 open 時,Linux 預設會以blocking mode的方式開啟block 是指當 process 為了等待某件事的發生,而進入 sleep 狀態的情形。像 read 就是其中一種,當沒資料讀取時,process 就會被 block,write 也是一樣,在寫入資料時,寫入對象還無法處理資料時,一樣會 block。對某些程式來說,如果 read 系統呼叫被 block 的話,有時就會有設計上的問題,而 non-blocking 模式後,不管是 read 還是 write 就不會被 block住。但會傳回 errno 錯誤碼,這時就必須自已再做讀寫的動作,而且Joseph老師示範幾個程式是什麼時候用blocking mode或non-blocking 模式最好;從中讓我瞭解system call是Linux嵌入式使用者透過system call對kernel聯繫的一重要的界面,我要好好的熟讀這些system call相信未來對我的程式撰寫一定有很大的幫助;除此之外當課程上講到Threads、IPC、Socket Programming時,Joseph老師為了讓學員可以充分瞭解,不時旁徵博引,將一些很難懂的觀念透過實作與艾鍗學院精心設計的程式碼搭配,將我在看書時一直模模糊糊的觀念都一一的搞懂了。
Joseph老師上課內容相當豐富,不時旁徵博引,讓我有一種意猶未盡的感覺,很感謝Joseph老師讓我真正地進入Linux程式撰寫的領域。
艾鍗學員 Steven Wu
這次的嵌入式Linux開發實務課程,進入到Linux系統程式設計課程階段,由Joseph老師主講,目的是要讓大家瞭解Linux system call,讓大家運用這些system call以實現Linux程式,Joseph老師上課內容相當豐富,每次講解system call function 時,都會配合Linux系統基本指令,以印證Linux system call在程式設計理的必要性。尤其在Linux系統中,每一種硬體的驅動,其實都是一個個的c語言的檔案系統的開檔籍關檔動作;讓我印象深刻的是Joseph老師用了很簡單的ioctl()的system call示範光碟機的開關動動作,原來僅僅幾行程式就可以控制,讓我對驅動程式的轉寫有了更進一步的認識;在Linux驅動程式裡,有一個很重要的觀念,就是blocking模式及non-blocking 模式,驅動程式裡呼叫 open 時,Linux 預設會以blocking mode的方式開啟block 是指當 process 為了等待某件事的發生,而進入 sleep 狀態的情形。像 read 就是其中一種,當沒資料讀取時,process 就會被 block,write 也是一樣,在寫入資料時,寫入對象還無法處理資料時,一樣會 block。對某些程式來說,如果 read 系統呼叫被 block 的話,有時就會有設計上的問題,而 non-blocking 模式後,不管是 read 還是 write 就不會被 block住。但會傳回 errno 錯誤碼,這時就必須自已再做讀寫的動作,而且Joseph老師示範幾個程式是什麼時候用blocking mode或non-blocking 模式最好;從中讓我瞭解system call是Linux嵌入式使用者透過system call對kernel聯繫的一重要的界面,我要好好的熟讀這些system call相信未來對我的程式撰寫一定有很大的幫助;除此之外當課程上講到Threads、IPC、Socket Programming時,Joseph老師為了讓學員可以充分瞭解,不時旁徵博引,將一些很難懂的觀念透過實作與艾鍗學院精心設計的程式碼搭配,將我在看書時一直模模糊糊的觀念都一一的搞懂了。
Joseph老師上課內容相當豐富,不時旁徵博引,讓我有一種意猶未盡的感覺,很感謝Joseph老師讓我真正地進入Linux程式撰寫的領域。
艾鍗學員 Steven Wu