Windows OS มีทั้ง Kernel mode และ User mode แต่ไม่ phảiทุกคนรู้ความต่าง จริงๆ ผู้ใช้ส่วนใหญ่ไม่รู้ว่ามี mode เหล่านี้อยู่ แม้จะเคยใช้มาก่อน หากคุณเป็นหนึ่งในนั้น อ่านต่อเพื่อเพิ่มความรู้ครับ
ภาพรวม User และ Kernel modes
คอมพิวเตอร์ที่รัน Windows มี 2 mode คือ User mode และ Kernel mode ไมโครโปรเซสเซอร์สลับ mode อัตโนมัติตามประเภทโค้ดที่รัน แอปและโปรแกรมรันใน User mode ส่วนคอมโพเนนต์แกนกลาง OS รันใน Kernel mode ไดรเวอร์ส่วนใหญ่รันใน Kernel mode แต่บางตัวรันใน User mode
Kernel Mode และ User Mode ใน Windows OS

การเข้าใจ User และ Kernel modes สำคัญสำหรับผู้ใช้ขั้นสูง จะพูดถึง:
- Kernel Mode ทำงานอย่างไร?
- User mode ทำงานอย่างไร?
- ความต่างระหว่าง Kernel และ User mode?
- Windows แยก system resources จาก user applications อย่างไร?
1] Kernel Mode ทำงานอย่างไรใน Windows 11/10?
Microsoft กล่าว:
โค้ดที่รันใน kernel mode แชร์ virtual address space เดียวกัน หมายความว่า kernel-mode driver ไม่แยกจาก drivers อื่นและ OS เอง หาก kernel-mode driver เขียน virtual address ผิด ข้อมูลของ OS หรือ driver อื่นอาจเสียหาย หาก kernel-mode driver crash ทั้ง OS จะ crash ตาม
โค้ดใน Kernel mode แชร์ virtual address space เดียวกัน Kernel-mode driver ไม่แยกจาก drivers อื่นและ OS หาก driver เขียน address ผิด ข้อมูล OS หรือ driver อื่นอาจเสียหาย หาก kernel-mode driver crash ทั้ง Windows 11/10 จะ crash
อ่านเพิ่ม: Kernel ใน OS คืออะไร? มีกี่ประเภท?
2] User mode ทำงานอย่างไรใน Windows 11/10?
Microsoft กล่าว:
เมื่อเริ่ม user-mode application Windows สร้าง process ให้แอป Process ให้ private virtual address space และ private handle table เนื่องจาก virtual address space เป็น private แอปหนึ่งจึงแก้ไขข้อมูลของอีกแอปไม่ได้ แต่ละแอปรันใน isolation หากแอป crash แค่แอปนั้นเท่านั้น แอปอื่นและ OS ไม่ได้รับผลกระทบ
เมื่อเริ่ม user-mode app Windows สร้าง process ให้ process ให้ private handle table และ virtual address space แอปหนึ่งไม่สามารถแก้ข้อมูลแอปอื่นได้ เพราะ address space เป็น private ทุกแอปรันแยกกัน (isolation) หากแอป crash แค่แอปนั้น แอปอื่นและ OS ทำงานต่อได้ปกติ
3] ความต่างระหว่าง Kernel และ User mode บน Windows 11/10?
ความต่างใหญ่ที่สุดคือ ระดับสิทธิ์ (privilege) User mode แอปมีสิทธิ์น้อย ไม่มี direct access ไปยัง hardware resources
แต่ Kernel mode มีสิทธิ์มาก Crash เพียงครั้งเดียวก็ทำลายทั้ง OS ได้ สิ่งที่ User mode ทำไม่ได้
4] Windows แยก system resources จาก user applications อย่างไร?
Microsoft ออกแบบ Windows ใช้ layered model เพื่อกำหนดระดับสิทธิ์ของ process แอปที่อยู่ชั้นนอกมีสิทธิ์น้อย Kernel ที่อยู่แกนกลางมีสิทธิ์มาก
อ่านเพิ่ม: Windows Kernel Mode Power Manager คืออะไร?
Kernel space และ User space ต่างกันอย่างไร?
Kernel space สำหรับ privileged OS kernel processes รวมถึง drivers User space คือพื้นที่หน่วยความความจำสำหรับรันโปรแกรมและซอฟต์แวร์
Device drivers รันใน kernel mode ไหม?
Drivers เป็นซอฟต์แวร์ จึงรันใน Kernel mode ได้ แต่เนื่องจาก drivers ไม่ต้องเข้าถึง protected data จึงรันใน User mode ได้ดี ไม่จำเป็นต้องรันใน Kernel mode
อ่านต่อ: Interactive map of Linux Kernel
