โหมดผู้ใช้กับโหมดเคอร์เนลใน Windows คืออะไร

คุณอาจเคยได้ยินเกี่ยวกับแอปพลิเคชันที่ทำงานในโหมด "เคอร์เนล" หรือ "ผู้ใช้" ทั้งหมดอยู่ที่ระบบปฏิบัติการทำงานอย่างไรเมื่อพวกเขาทำงาน เมื่อคุณเข้าใจแล้ว จะเป็นเรื่องง่ายที่จะเข้าใจความแตกต่างระหว่างโหมดผู้ใช้และโหมดเคอร์เนล

ทำความเข้าใจว่าระบบปฏิบัติการทำอะไรได้บ้าง(Does)

คอมพิวเตอร์ประกอบด้วยฮาร์ดแวร์ ส่วนประกอบอิเล็กทรอนิกส์ และซอฟต์แวร์ รหัสคอมพิวเตอร์ที่ดำเนินการโดยฮาร์ดแวร์นั้น แต่สิ่งที่อาจไม่ชัดเจนคือการทำงานร่วมกันอย่างไร

องค์ประกอบที่สำคัญที่สุดของคอมพิวเตอร์คือบิตหรือ "เลขฐานสอง" ทุกสิ่ง(” Everything)ที่คอมพิวเตอร์ทำจะถูกแสดงเป็นหนึ่งและศูนย์ ส่วนประกอบคอมพิวเตอร์ที่ แตกต่างกัน(Different)แสดงถึงบิตในรูปแบบต่างๆ ในซีพียู(CPU)ทรานซิสเตอร์ขนาดเล็กจะแทนค่าหนึ่งและศูนย์โดยการเปิดหรือปิด ทรานซิสเตอร์เหล่านี้ถูกจัดเรียงเป็นโครงสร้างเชิงตรรกะ เรียกว่าลอจิกเกท

ในหน่วยความจำอิเล็กทรอนิกส์ของคอมพิวเตอร์ บิตจะแสดงโดยเซลล์หน่วยความจำที่มีประจุสูงหรือต่ำกว่าเกณฑ์ที่กำหนด บนฮาร์ดไดรฟ์แบบกลไก บิตจะแสดงเป็นความผันผวนของแม่เหล็กที่วัดบนจานหมุน สำหรับออปติคัลดิสก์ หลุมและดินแดนที่ทำหรือไม่สะท้อนแสงเลเซอร์จะทำงานแบบเดียวกัน 

ไม่ว่ารูปแบบทางกายภาพของรหัสไบนารีจะสำเร็จด้วยวิธีใด ในที่สุด คุณก็สามารถลดส่วนประกอบคอมพิวเตอร์ของผู้บริโภคทั้งหมดลงเหลือเพียงรหัสเครื่องดิบนี้

ดังนั้นคุณจะเปลี่ยนจากอินเทอร์เฟซที่เป็นมิตรกับมนุษย์ของคอมพิวเตอร์ไปเป็นกระบวนการระดับต่ำในคอมพิวเตอร์ได้อย่างไร นั่นคือที่มาของระบบปฏิบัติการ ซึ่งควบคุมฮาร์ดแวร์ของคอมพิวเตอร์โดยตรง 

ซอฟต์แวร์นี้แปลทุกอย่างที่แอปพลิเคชัน (และผู้ใช้) ต้องการเป็นคำสั่งรหัสเครื่องที่CPUและส่วนประกอบอื่นๆ เข้าใจ ซอฟต์แวร์ที่สำคัญที่สุดในกระบวนการนี้คือเคอร์เนล

เคอร์เนลคืออะไร?

เคอร์เนลเป็นแกนหลักของระบบปฏิบัติการตามชื่อของมัน เคอร์เนลคือซอฟต์แวร์ที่อยู่ในRAMและควบคุมทุกอย่างที่คอมพิวเตอร์ทำ เมื่อบางสิ่งถูกเขียนลงในหน่วยความจำ จะเป็นเคอร์เนลที่ชี้นำการดำเนินการ

เคอร์เนลรู้วิธีเชื่อมต่อกับฮาร์ดแวร์ เช่นGPU(GPUs)และการ์ดเครือข่าย แต่อาจไม่ทราบวิธีใช้งานอุปกรณ์เหล่านี้อย่างเต็มศักยภาพ โดยอาศัยมาตรฐานทั่วไปในอุตสาหกรรมคอมพิวเตอร์

ไดรเวอร์ฮาร์ดแวร์เข้ามาเล่นที่นี่ ไดรเวอร์จะบอกระบบปฏิบัติการของคุณถึงวิธีการทำงานกับส่วนประกอบเฉพาะ ซึ่งเป็นสาเหตุที่คุณต้องการไดรเวอร์ที่แตกต่างกันสำหรับGPU Nvidia(Nvidia)และAMD(AMD GPUs)เป็นต้น

พร้อมกับไดรเวอร์ที่เหมาะสม เคอร์เนลเป็นอำนาจสูงสุดภายในคอมพิวเตอร์ รวมถึงการทำสิ่งที่สามารถทำลายข้อมูลอย่างร้ายแรง

บทบาท(Role)ของApplication Programming(Application Programming Interfaces) Interfaces ( API(APIs) )

ในสมัยของMS-DOSนักพัฒนาซอฟต์แวร์ต้องเขียนซอฟต์แวร์ของตนสำหรับฮาร์ดแวร์ของผู้ใช้โดยเฉพาะ ตัวอย่างที่โด่งดังที่สุดของสิ่งนี้บน ระบบ MS-DOSคือไดรเวอร์การ์ดเสียง

วิดีโอเกมที่กำหนดจะต้องรองรับการ์ดยอดนิยม ( Sound Blaster , Ad-lib , Gravis Ultrasoundเป็นต้น) และหวังว่าผู้เล่นส่วนใหญ่จะได้รับการคุ้มครอง ทุกวันนี้ สิ่งต่างๆ ทำงานต่างไปจากเดิมมาก ต้องขอบคุณAPIs

Microsoft DirectXเป็นตัวอย่างที่ดี หากคุณต้องการคำอธิบายเชิงลึก โปรดดูที่ DirectX คืออะไรและเหตุใดจึงสำคัญ (What Is DirectX and Why Is It Important?)อย่างไรก็ตาม สิ่งที่สำคัญที่สุดที่ควรทราบคือAPIนำเสนอวิธีมาตรฐานสำหรับนักพัฒนาซอฟต์แวร์ในการขอทรัพยากรฮาร์ดแวร์จากส่วนประกอบต่างๆเช่นGPU นอกจากนี้ ผู้ผลิตฮาร์ดแวร์ต้องตรวจสอบให้แน่ใจว่าผลิตภัณฑ์ของตนสอดคล้องกับDirectX เท่านั้น เพื่อให้แน่ใจว่าสามารถใช้งานร่วมกับซอฟต์แวร์ที่เป็นไปตามข้อกำหนดเดียวกันได้อย่างสมบูรณ์

API(APIs)นำเสนอเลเยอร์การแปลระหว่างแอปพลิเคชันซอฟต์แวร์และเคอร์เนลระดับต่ำพร้อมไดรเวอร์ฮาร์ดแวร์ ใช่ สิ่งนี้มาพร้อมกับบทลงโทษด้านประสิทธิภาพเล็กน้อย อย่างไรก็ตาม ในคอมพิวเตอร์สมัยใหม่ สิ่งเหล่านี้มีเพียงเล็กน้อย และมาพร้อมกับข้อดีมากมาย ซึ่งในที่สุดเราก็มาถึงโหมดผู้ใช้และโหมดเคอร์เนล

โหมดผู้ใช้เทียบกับโหมดเคอร์เนล

ระบบปฏิบัติการสมัยใหม่เรียกใช้ "กระบวนการ" หลายแสนรายการพร้อมกัน โดยให้ เวลา CPU แบบไดนามิก ตามความจำเป็นตามลำดับความสำคัญและความต้องการพลังงานในการคำนวณ

เมื่อคุณเปิดแอปพลิเคชัน โปรแกรมจะสร้างกระบวนการ และCPUสามารถดำเนินการได้ในโหมดผู้ใช้หรือโหมดเคอร์เนล

กระบวนการ Windows(Windows)ที่ทำงานในโหมดผู้ใช้จะสามารถเข้าถึงพื้นที่ที่อยู่หน่วยความจำเสมือนส่วนตัวและตารางจัดการเท่านั้น ซอฟต์แวร์ใช้ตารางเหล่านี้เพื่อเก็บข้อมูลในRAMและขอทรัพยากร ไม่มีการเข้าถึงหน่วยความจำหรือฮาร์ดแวร์อื่นๆ โดยตรง และขึ้นอยู่กับระบบปฏิบัติการที่จะจับคู่พื้นที่เสมือนเหล่านั้นกับฮาร์ดแวร์จริงของคอมพิวเตอร์

ซึ่งเป็นสิ่งที่ดีด้วยเหตุผลหลายประการ แต่ประโยชน์ที่สำคัญที่สุดก็คือ แอปพลิเคชันไม่สามารถเขียนทับหรือแก้ไขข้อมูลนอกพื้นที่ที่อยู่หน่วยความจำเสมือนได้ นอกจากนี้ ฟังก์ชันบางอย่างไม่ได้จำกัดไว้สำหรับกระบวนการในโหมดผู้ใช้ ซึ่งส่วนใหญ่เป็นฟังก์ชันที่อาจทำให้ระบบขัดข้องหรือทำลายข้อมูล

เมื่อกระบวนการเริ่มต้นหรือถูกยกระดับเป็นโหมดเคอร์เนล กระบวนการจะสามารถเข้าถึงทรัพยากรระบบได้อย่างเต็มที่ แม้กระทั่งทรัพยากรที่สงวนไว้สำหรับระบบปฏิบัติการ ตามทฤษฎีแล้ว มันสามารถเขียนทับข้อมูลสำคัญที่ระบบปฏิบัติการจำเป็นต้องทำงานอย่างถูกต้อง

กับดักและข้อยกเว้น

สิ่งสำคัญคือต้องเข้าใจว่าโหมดทั้งสองนี้บังคับใช้ที่ระดับฮาร์ดแวร์โดยตัวCPU หากแอปพลิเคชันที่ทำงานในโหมดผู้ใช้พยายามทำบางสิ่งที่ต้องมีการเข้าถึงโหมดเคอร์เนล แอปพลิเคชันจะสร้าง "กับดัก" หรือ "ข้อยกเว้น" ระบบปฏิบัติการจะจัดการกับแอปพลิเคชัน โดยปกติแล้วจะปิดตัวลงและสร้างบันทึกการขัดข้อง เพื่อให้นักพัฒนาสามารถเห็นสิ่งที่เกิดขึ้นในหน่วยความจำเมื่อสิ่งต่างๆ หลุดออกจากราง

อันตราย(Dangers)ของโหมดเคอร์เนล(Kernel Mode) : หน้าจอสีน้ำเงิน(Blue Screen)แห่งความตาย(Death)

หากคุณเคยประสบกับหน้าจอสีน้ำเงิน(Blue Screen)มรณะ ( ใคร(Death)ยังไม่เคย) ที่บังคับให้คอมพิวเตอร์ของคุณปิดหรือรีสตาร์ท มีโอกาสดีที่กระบวนการในโหมดเคอร์เนลจะถูกตำหนิ

เมื่อกระบวนการในโหมดเคอร์เนลทำสิ่งที่ไม่ควรทำ ระบบปฏิบัติการจะไม่สามารถกู้คืนได้ และคอมพิวเตอร์ทั้งเครื่องจะหยุดทำงาน เมื่อกระบวนการในโหมดผู้ใช้ยุ่งเหยิง มีเพียงแอปพลิเคชันเท่านั้นที่หยุดทำงาน และซอฟต์แวร์ที่เหลือและระบบปฏิบัติการสามารถทำงานต่อไปได้โดยไม่มีปัญหาใดๆ

นี่เป็นพื้นที่หนึ่งที่API(APIs)มีบทบาทสำคัญ เนื่องจากเป็นAPI ที่ ขอสิทธิ์โหมดเคอร์เนล แอปพลิเคชันโหมดผู้ใช้จะมอบหมายคำขอที่จำเป็นต่อAPI ในโหมด เคอร์เนล

นี่คือสาเหตุที่โดยปกติแล้วโหมดเคอร์เนลจะใช้ได้กับกระบวนการระบบระดับต่ำที่จำเป็นต้องเข้าถึงฮาร์ดแวร์ของคอมพิวเตอร์โดยตรงเท่านั้น โดยปกติ สิทธิ์นี้จะขยายไปสู่กระบวนการเนื่องจากต้องการประสิทธิภาพมากกว่าที่โหมดผู้ใช้จะมีให้ได้ คำสั่ง CPU(CPU)บางคำสั่งทำงานในโหมดเคอร์เนลเท่านั้น ดังนั้นหากกระบวนการจำเป็นต้องใช้ฟังก์ชันเหล่านั้น จะต้องได้รับการยกระดับ

หากคุณกำลังมีปัญหากับBlue Screen of Deathโปรดอ่านคู่มือการแก้ไขปัญหา Blue Screen of Death สำหรับ Windows 10(Blue Screen of Death Troubleshooting Guide for Windows 10) !



About the author

ฉันเป็นผู้เชี่ยวชาญด้าน Windows และทำงานในอุตสาหกรรมซอฟต์แวร์มากว่า 10 ปี ฉันมีประสบการณ์กับทั้งระบบ Microsoft Windows และ Apple Macintosh ทักษะของฉัน ได้แก่ การจัดการหน้าต่าง ฮาร์ดแวร์คอมพิวเตอร์และเสียง การพัฒนาแอพ และอื่นๆ ฉันเป็นที่ปรึกษาที่มีประสบการณ์ซึ่งสามารถช่วยให้คุณได้รับประโยชน์สูงสุดจากระบบ Windows ของคุณ



Related posts