# Linux kernel ## [Linux 核心設計: 作業系統術語及概念](https://hackmd.io/@sysprog/linux-concepts#Linux-%E6%A0%B8%E5%BF%83%E8%A8%AD%E8%A8%88-%E4%BD%9C%E6%A5%AD%E7%B3%BB%E7%B5%B1%E8%A1%93%E8%AA%9E%E5%8F%8A%E6%A6%82%E5%BF%B5) ### Linux 系統 * 虛擬記憶體管理 (virtual memory management 或 MM):具備現代作業系統的 MM (page-based),最初源於 CMU 於 1980 年代發展的 Mach microkernel,後來被 BSD 採納,Linux 核心在開發的早期也參照 BSD 的設計,「吸入」現代的虛擬記憶體管理機制。 * :star:procfs: 在 UNIX 哲學中,有一項膾炙人口的特色是 "Everything is a file",不過這句話不精準,UNIX 和後續的 BSD (可視為具備血緣關係) 並非真的落實該理念,例如 socket 就存在例外。Bell Labs 在 UNIX 之後,發展出 Plan 9 作業系統,才算是真正的 "Everything is a file",但沒有太多開發者重視。在 Plan 9 作業系統中,所有的裝置和服務都視作檔案為基礎的操作,例如 telnet, ftp, nfs 等等。Linux 核心採納 Plan 9 的設計,將 process (行程) 的內部資訊以檔案系統的形式展現。 * :star:TCP/IP stack: BSD 是 TCP/IP 開發的溫床,也是擴散電腦網路技術的作業系統,Linux 核心早期就「吸入」BSD 的 TCP/IP protocol stack,又搭上網際網路的熱潮,成為奠基今日網際網路服務的關鍵作業系統。 * :star:BPF (Berkeley Packet Filter): BPF 最初的動機的確是封包過濾機制,但被 Linux 核心「吸入」並擴充為 eBPF (Extended BPF) 後,就變成 Linux 核心內建的內部行為分析工具,可用來動態/靜態追蹤 (dynamic/static tracing) 和 profiling events,成為 Linux 核心的獨特技術,參見 eBPF。 * :star:9p: Plan 9 為了貫徹 "Everything is a file" 理念,不區分原本要特別處理的遠端檔案 (remote resources) 和本地端檔案 (local file),而是引入 9P 這個通訊協定,類似於 Linux 中的 VFS 抽象層,只要提供 inode,superblock 等等抽象層的實作,就可用同一套機制去存取不同檔案系統,而不用管資源到底在何處。儘管 Plan 9 在商業上不成功,但 Linux 核心「吸入」9P 後,將其應用於虛擬化技術,締造巨大的商業價值。 * :star:lxc: 借鏡 (吸入?) FreeBSD jail 和 Solaris container 的方案,用 Linux 核心的 namespace 和 cgroups 等機制重新展現。 ### 「多處理器並行處理」執行模型 :::info :scroll: 翻譯術語 **concurrent (形容詞) 和 concurrency (名詞)** 通譯作『並行』 :::
×
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