精華區beta C_and_CPP 關於我們 聯絡資訊
維基百科:https://zh.wikipedia.org/wiki/%E5%86%85%E6%A0%B8 裡面提到,kernel是一個電腦程式,用來管理軟體發出的資料I/O(輸入與輸出)要求,將 這些要求轉譯為資料處理的指令,交由中央處理器(CPU)及電腦中其他電子元件進行處理 ,是現代作業系統中最基本的部分。 依我對OS的認知(有錯請指正),OS是架構在kernel之上,kernel是直接存取硬體的程式, 那麼,kernel的功用是不是就是把OS的指令轉成硬體看的懂的指令集的軟體嗎? 以我的例子來說明,我現在在寫MCU的韌體,我寫的C語言經過編譯器後可以直接對MCU裡面 的module(硬體)做控制,如果我把我寫的"對各個module做控制的功能"寫成API給上層使用 的話,那我這套軟體是不是就是所謂的kernel? 謝謝各位指點~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.248.26.157 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1515724157.A.B41.html
longlongint: Kernel是OS 或 OS包含Kernel 01/12 10:54
okd: 不是 01/12 10:54
threesmaller: driver 01/12 11:07
loveflames: kernel space vs user space? 01/12 11:28
MOONRAKER: 把上層指令轉給硬體看就driver 上層不一定誰 01/12 11:30
MOONRAKER: 中文wiki這條寫得太爛了 英文版列出kernel功能包括 01/12 11:34
MOONRAKER: 記憶體管理、裝置管理、系統呼叫,中文一條都沒有 01/12 11:34
MOONRAKER: zh.wikipedia有很多這種問題 當休閒讀物看就好 01/12 11:35
知道了QQ ※ 編輯: zzss2003 (60.248.26.157), 01/12/2018 11:37:07
liflguy: OS應該是包含kernal跟shell? 01/12 12:09
Lipraxde: 把對硬體的控制包一包那個應該是HAL,硬體抽象層。 01/12 12:29
所以...上對下是Driver,下對上是HAL? ※ 編輯: zzss2003 (60.248.26.157), 01/12/2018 13:16:43
MOONRAKER: 這裏面有點陷阱 HAL在Linux和Windows講的又不一樣 01/12 13:44
Orz....暈,要搞懂這些專有名詞的抽象概念真難 ※ 編輯: zzss2003 (60.248.26.157), 01/12/2018 14:58:03
Lipraxde: 我覺得知道自己在做啥就好,不要太細究某些詞意 01/12 15:03