iT邦幫忙

2025 iThome 鐵人賽

DAY 24
0
Security

現在是pwn的天下!系列 第 24

【Day-24】Linux Kernel 是什麼?作業系統的核心介紹

  • 分享至 

  • xImage
  •  

上次把heap講完,接下來就可以進入linux kernel了 ~

前言

我們每天都在使用 Linux,不論是伺服器、Android 手機,甚至是許多 IoT 裝置背後,都有一顆共同的心臟 —— Linux Kernel。
但 Kernel 究竟是什麼?它在系統中扮演什麼角色?接下來就會帶你認識linux kernel的基本概念

Kernel 是什麼

kernel 是 OS 最底層的部分,它是負責管理硬體軟體之間的溝通

換句話說,使用者程式(像是瀏覽器、編輯器、遊戲)不能直接操作硬體(CPU、記憶體、磁碟、網卡),它們必須透過 Kernel 提供的 介面 (API) 才能運作

可以把 Kernel 想像成:

  • 交通警察:負責指揮誰可以用 CPU、誰要等
  • 資源管理員:負責分配記憶體、檔案系統空間
  • 守門員:保護系統不被惡意程式隨便操作硬體

主要功能

Process Management

  • 建立與銷毀 process
  • scheduler 決定哪個程式可以執行
  • 管理多工

Memory Management

  • 管理 RAM
  • Virtual Memory
  • Paging 與 Segmentation

File System

  • 提供統一的檔案存取介面 (open, read, write)
  • 支援多種檔案系統 (ext4, XFS, Btrfs, FAT, NTFS...)

Device Drivers

  • 負責硬體與作業系統的溝通
  • 例如網卡、顯示卡、磁碟控制器

Networking

  • 提供 TCP/IP 協定
  • 負責資料封包的傳輸與接收

Security

  • 權限管理 (User / Root)
  • SELinux, AppArmor 等強化機制
  • 防止程式濫用資源

Kernel 與 User Space

Linux 世界可以分成兩個區域:

  • User Space:我們平常操作的程式 (如 bash、瀏覽器、Python)
  • Kernel Space:只有 Kernel 可以運作的特權區域,負責硬體控制與安全性

程式與 Kernel 溝通時,會透過 System Call 如:

read(fd, buffer, size);   // user space 的function

這行會觸發一個 sys_read system call,由 Kernel 幫忙完成

kernel 的特色

  1. Open Source
  • 任何人都可以查看、修改、貢獻程式碼
  • 這也是 Linux 社群活躍的原因
  1. 跨平台
  • 可以跑在伺服器、手機、路由器、車載系統等等...
  1. 高效能與安全性
  • 被廣泛用在雲端 (Google、AWS)、超級電腦、嵌入式系統
  1. 持續更新
  • Linux Kernel 社群非常活躍,幾乎每天都有新 patch

總結

  • Kernel 是作業系統的核心,負責管理硬體與軟體之間的橋樑
  • Linux Kernel 主要負責 程序管理、記憶體管理、檔案系統、驅動程式、網路、安全性
  • 透過 system call,使用者程式才能與硬體互動
  • Linux Kernel 開放原始碼,讓它成為現代 IT 世界中最普及的核心之一

上一篇
【Day-23】Double free
下一篇
【Day-25】Customize Linux Kernel:打造專屬的作業系統核心
系列文
現在是pwn的天下!30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言