คอมพิวเตอร์นั้นประกอบไปด้วยส่วนประกอบหลัก ๆ อยู่ 2 อย่าง ได้แก่ ฮาร์ดแวร์ (Hardware) หรืออุปกรณ์ที่สามารถ "จับต้องได้ (Tangible Device)" อย่างเช่นพวก หน้าจอมอนิเตอร์ (Monitor), แผงวงจรหลัก (Motherboard), หน่วยความจำหลัก (RAM), เมาส์ (Mouse), คีย์บอร์ด (Keyboard), หน่วยประมวลผลกลาง (CPU), หน่วยประมวลผลกราฟิก (GPU) และ ซอฟต์แวร์ (Software) หรือชุดคำสั่งภายในระบบของตัวเครื่อง โดยทั้ง 2 อย่างนี้ก็จะต้องมีการทำงานร่วมกันเพื่อให้คอมพิวเตอร์ของเราทำงานได้อย่างสมบูรณ์
ภาพจาก : https://helpdeskgeek.com/windows-11/what-is-user-mode-vs-kernel-mode-in-windows/
นอกจากนี้คอมพิวเตอร์ยังมีองค์ประกอบหลักสำคัญอย่าง "เลขฐานสอง" (Binary Digit) หรือที่นิยมเรียกกันย่อ ๆ ว่า "Bit" ประกอบไปด้วยค่าตัวเลข 1 และ 0 ที่จะแปลงค่าตัวเลขแตกต่างกันออกไปตามการทำงานของอุปกรณ์นั้น ๆ เช่น ใน CPU จะมีทรานซิสเตอร์ขนาดเล็กที่เรียงต่อกันเป็น โครงสร้างเชิงตรรกะ (Logic Gate) ที่แทนตัวเลข 1 ถึงการเปิด และ 0 ถึงการปิด ส่วนภายในหน่วยความจำจะแสดงเป็นหน่วยความจำที่มีค่าสูง (1) หรือต่ำ (0) เป็นต้น
และสิ่งที่จะช่วยอำนวยความสะดวกในการแปลงค่าเหล่านี้ให้กับคอมพิวเตอร์และผู้ใช้ก็ได้แก่ "ระบบปฏิบัติการ" (Operating System) และ "ไดร์เวอร์ (Driver)" ของฮาร์ดแวร์ต่าง ๆ ที่จะเข้ามาทำหน้าที่คล้ายล่ามแปลภาษาในการแปลงสิ่งที่ผู้ใช้ต้องการเป็นชุดตัวเลขคำสั่งที่ CPU หรือฮาร์ดแวร์ตัวอื่น ๆ สามารถประมวลผลและรันระบบได้อย่างถูกต้องตรงตามที่ผู้ใช้ต้องการ
ในส่วนของการทำงานของระบบปฏิบัติการ (Operating System) ของค่าย Microsoft อย่าง Windows นั้นทางบริษัทก็ระบุว่ามันจะมีการทำงานอยู่ 2 รูปแบบด้วยกัน ได้แก่ User Mode และ Kernel Mode ที่จะมีการ "สลับ" กันทำงานตามรูปแบบของโค้ดที่รันในระบบ ณ ขณะนั้น ซึ่งส่วนมากแล้วแอปพลิเคชันและโปรแกรมต่าง ๆ ที่เราใช้งานกันจะมีการทำงานใน User Mode ในขณะที่ระบบปฏิบัติการหลัก (Core Operating System) จะมีการทำงานใน Kernel Mode
ภาพจาก : https://docs.microsoft.com/en-us/windows-hardware/drivers/gettingstarted/user-mode-and-kernel-mode
User Mode หรือ "โหมดผู้ใช้งาน" นั้นเป็นการเปิดใช้งานแอปพลิเคชันที่มีรันโค้ดคำสั่งผ่านระบบ API ที่สามารถเข้าถึงได้เฉพาะ Private Virtual Address Space และ Private Handle Table เท่านั้น โดยแต่ละแอปพลิเคชันก็จะมีการทำงานแยกส่วนกัน
ดังนั้นเมื่อเกิดปัญหาในการใช้งานแอปพลิเคชันใดแอปพลิเคชันหนึ่งก็จะไม่ส่งผลกระทบไปยังแอปพลิเคชันอื่น ๆ ที่เปิดใช้งานพร้อมกัน เช่น เปิด เว็บเบราว์เซอร์ อย่าง Google Chrome ไปพร้อม ๆ กับ โปรแกรมพิมพ์งาน Microsoft Word ไปพร้อม ๆ กัน แล้ว Google Chrome ค้าง ก็จะค้างเฉพาะ Google Chrome เท่านั้น ยังสามารถพิมพ์งานบน Microsoft Word ได้ตามปกติ
ภาพจาก : https://answers.microsoft.com/en-us/windows/forum/all/progammes-exe-games-are-not-responding-in-task/b5689bcd-10ab-4283-a5d7-a9ead4efed6c
Kernel Mode เป็นการรันโค้ดคำสั่งที่ผู้ใช้สามารถควบคุมการเข้าถึงฮาร์ดแวร์, หน่วยความจำ, I/O และระบบต่าง ๆ ได้อย่างเต็มที่ โดยการทำงานของ Kernel Mode มักจะเป็นลำดับขั้น (Layer) จากสูงไปต่ำที่มีการใช้งาน Virtual Address Space ร่วมกัน
ดังนั้นหากเกิดปัญหาการใช้งานที่จุดใดจุดหนึ่ง ก็จะส่งผลกระทบต่อ การทำงานของคอมพิวเตอร์โดยรวมทั้งหมดตามไปด้วย ซึ่งตัวอย่างของการทำงานผิดพลาดของ Kernel Mode ก็คงเป็น BSOD (Blue Screen Of Death) หรือ "จอฟ้าแห่งความตาย" อันเลื่องชื่อที่แทบทุกคนน่าจะต้องเคยเจอ (ถึงจะไม่ค่อยจะอยากเจอเท่าไรนักก็ตาม)
ภาพจาก : https://upload.wikimedia.org/wikipedia/commons/thumb/5/56/Bsodwindows10.png/1200px-Bsodwindows10.png
อย่างที่ได้กล่าวไปข้างต้นว่าการทำงานของ Kernel Mode นั้นมีการทำงานเป็นลำดับขั้น โดยมันจะสามารถแบ่งระดับได้ถึง 3 ระดับ ดังนี้
หรือไดร์ฟเวอร์ระดับสูง ประกอบไปด้วย FSDs (File System Drivers), NTFS, FAT (File Allocation Table) และ CDFS (CD-ROM File System) เป็นต้น การทำงานของไดร์ฟเวอร์ระดับสูงนั้นจะต้องอาศัยการสนับสนุนจากไดร์ฟเวอร์ระดับต่ำกว่าอยู่เสมอ
หรือไดร์ฟเวอร์ระดับกลางที่ต้องอาศัยการสนับสนุนจากไดร์ฟเวอร์ระดับต่ำ ประกอบไปด้วย Virtual Disk, Mirror และ Class Driver สามารถแบ่งประเภทย่อยเพิ่มเติมได้ดังนี้
หรือไดร์ฟเวอร์ระดับต่ำ ควบคุม I/O Bus ที่เชื่อมต่อกับอุปกรณ์อื่น ๆ ตัวอย่างเช่น Hardware Bus Driver ระบบควบคุม I/O Bus, Legacy Driver ที่ควบคุมอุปกรณ์ต่าง ๆ
ภาพจาก : https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/types-of-windows-drivers
|
ตัวเม่นผู้รักในการนอน หลงใหลในการกิน และมีความใฝ่ฝันจะเป็นนักดูคอนเสิร์ตแต่เหมือนศิลปินที่ชื่นชอบจะไม่รับรู้ว่าโลกนี้มียังประเทศไทยอยู่.. |