Kernel คืออะไร
สำหรับผู้ที่เริ่มใช้งาน Linux อาจจะมีคำถามกับคำว่า Kernel คืออะไร จริงๆแล้ว Kernel คือ โปรแกรมที่เป็นศูนย์กลางในระบบ computer ทำหน้าที่ควบคุมการทำงานตั้งแต่เริ่ม boot server รวมถึงการ start/stop program และ input/output จาก software ทั้งหมด คอยจัดการทรัยากรต่างๆ หรือ hardware เช่น keyboard, monitor, printer, speaker โดย Kernel ทำหน้าที่เชื่อมการทำงานระหว่าง software และ hardware เข้าด้วยกันนั่นเอง
ส่วนที่เป็น code สำคัญของ Kernel จะถูก load เข้าส่วน memory ที่จองไว้ให้เฉพาะ เพื่อป้องกันการเขียนทับจาก application อื่น การเชื่อมต่อของ Kernel เป็นระดับต่ำสุดที่เกียวข้องกับ hardware เมื่อมีการ request ไปยัง Kernel เราจะเรียกว่า system call และส่วนที่ใช้งานจะเรียกว่า resource
หน้าที่ของ Kernel
หลักๆคือทำงานเป็นสื่อกลางในการเข้าถึงทรัพยากรของระบบเช่น
1. Central processing unit
ทำหน้าที่ควบคุมจัดการ program ที่กำลังทำงาน โดย Kernel จะรับผิดชอบในการตัดสินใจว่า program แต่ละตัวจะจองหน่วยประมวลผล core ไหน และ กี่ core ในการทำงาน
2. Random-access memory
ใช้ในการเก็บข้อมูลของ program ที่ใช้งาน ซึ่งโดยปกติจะมี program จำนวนมากเข้ามาใช้งานตลอดเวลาตามความต้องการของแต่ละ application ซึ่ง Kernel มีหน้าที่ตัดสินใจว่า memory ส่วนไหนที่ process แต่ละอันสามารถใช้งานได้ และ ควรทำอย่างไรเมื่อ memory ไม่เพียงพอ
3. Input/Output(I/O) devices
I/O ของแต่ละอุปกรณ์ เช่น keyboard, mouse, disk, printer, network adapter หรือ จอ monitor ทั้งหมดนี้ Kernel จะควบคุมการสื่อสารระหว่าง application และ hardware ให้
ประเภทของ Kernel
1. Monolithic Kernels
เกิดขึ้นในยุดเริ่มแรกของ Kernel โดยระบบพื้นฐานทั้งหมด เช่น process และการจัดการ memory จะถูกรวมอยู่ใน module เดียวกันภายใน kernel ซึ่งเป็นผลทำให้ Kernel มีขนาดใหญ่ และ ยากต่อการดูแล ภายหลังจึงได้มีการแยก module ออกมาและทำการเลือก load ใช้งานตามความเหมาะสม เป็นเสมือน extension ให้ OS เลือกใช้ ทำให้ไม่ต้องทำการปิดและ compile ใหม่ทั้งหมด เมื่อมีการแก้ bug
ปัจจุบัน Linux ออกแบบตาม monolithic
- Linux
- MS-DOS
- Microsoft Windows 9x Series
- Agnix
2. Microkernels
ตัวอย่างเช่น
- AIX
- AmigaOS
- Amoeba
- Android OS
- Chorus microkernel
- EROS
- Haiku
3. Hybrid kernels
ถูกนำมาใช้งานกับ OS ระดับ commercial มีลักษณะคล้าย microkernel ยกเว้นแต่ว่ามันได้รวมเอา code เสริมใน kernel space มาเพิ่มความสามารถโดยใช้เป็น extension ให้กับ microkernel ด้วยคุณสมบัติของ monolithic kernel ซึ่งต่างจาก monolithic แท้ๆเพราะอันนั้นไม่สามารถ load module ในขณะทำงานได้ เพราะฉะนั้นจึงสรุปได้ว่า Hybrid kernel เป็น microkernel ที่มี code เสริ่มบางอย่างบน kernel space ที่ช่วยทำให้ทำงานได้ไวขึ้น
ตัวอย่างเช่น
- Microsoft Windows NT 3.1, NT 3.5, NT 3.51, NT 4.0, 2000, XP
- macOS
Reference
- Unix คืออะไร ยูนิกซ์ คือ ระบบปฏิบัติการสำหรับ server
- Linux คืออะไร ทำงานอย่างไร ลินุกซ์ เป็นระบบปฎิบัติการชนิดหนึ่ง
- Kernel คืออะไร Kernel คือ ส่วนกลางควบคุมการทำงานทุกอย่างบน OS
- รวมคำสั่ง Unix – Linux Command line พื้นฐานเบื้องต้น
- Shell คืออะไร Unix Shell หรือ Linux Shell คือ โปรแกรมรับคำสั่งให้กับ Kernel
- Shell Script คืออะไร Shell script คือ ภาษา programming ที่ใช้บน unix linux
- การเขียน Shell Script เบื้องต้น หลักการทำงาน และ เงื่อนไขการใช้
[…] layer ครอบคลุมการทำงานของ Kernel […]
[…] Kernel คืออะไร Kernel คือ ส่วนกลางควบคุมการท… […]