อ่าน 8 นาที
ไดรเวอร์อุปกรณ์
ไดรเวอร์ อุปกรณ์ คือ ซอฟต์แวร์ ที่ทำงานหรือควบคุม อุปกรณ์ ประเภทใดประเภทหนึ่งที่เชื่อมต่อกับ คอมพิวเตอร์ [ 1 ] ไดรเวอร์จัดเตรียม อินเทอร์เฟ ซซอฟต์แวร์ ให้กับ อุปกรณ์ ฮาร์ดแวร์...
ไดรเวอร์อุปกรณ์
| ระบบปฏิบัติการ |
|---|
| ลักษณะทั่วไป |
ไดรเวอร์อุปกรณ์คือซอฟต์แวร์ ที่ทำงานหรือควบคุม อุปกรณ์ประเภทใดประเภทหนึ่งที่เชื่อมต่อกับคอมพิวเตอร์[ 1 ]ไดรเวอร์จัดเตรียมอินเทอร์เฟ ซซอฟต์แวร์ ให้กับ อุปกรณ์ ฮาร์ดแวร์ ทำให้ซอฟต์แวร์อื่นสามารถเข้าถึงฟังก์ชันฮาร์ดแวร์ ได้โดยไม่จำเป็นต้องรู้รายละเอียดที่แม่นยำเกี่ยวกับฮาร์ดแวร์
ไดรเวอร์สื่อสารกับอุปกรณ์ผ่านทางบัสคอมพิวเตอร์หรือระบบย่อยการสื่อสารที่ฮาร์ดแวร์เชื่อมต่ออยู่ เมื่อ โปรแกรม ที่เรียกใช้เรียกใช้รูทีนในไดรเวอร์ ไดรเวอร์จะออกคำสั่งไปยังอุปกรณ์ (ควบคุมการทำงานของอุปกรณ์) เมื่ออุปกรณ์ส่งข้อมูลกลับมายังไดรเวอร์แล้ว ไดรเวอร์อาจเรียกใช้รูทีนในโปรแกรมที่เรียกใช้เดิมได้
ไดรเวอร์ขึ้นอยู่กับฮาร์ดแวร์และระบบปฏิบัติการโดยเฉพาะ โดยปกติแล้วไดรเวอร์จะจัดเตรียมการจัดการการขัดจังหวะที่จำเป็นสำหรับอินเทอร์เฟซฮาร์ดแวร์แบบอะซิงโครนัสที่ขึ้นอยู่กับเวลาที่จำเป็น[ 2 ]
วัตถุประสงค์
จุดประสงค์หลักของไดรเวอร์อุปกรณ์คือการจัดเตรียมการแยกส่วนฮาร์ดแวร์โดยทำหน้าที่เป็นตัวแปลระหว่างอุปกรณ์ฮาร์ดแวร์และแอปพลิเคชันหรือระบบปฏิบัติการที่ใช้อุปกรณ์นั้น[ 1 ]โปรแกรมเมอร์สามารถเขียนโค้ดแอปพลิเคชันระดับสูงได้โดยไม่ขึ้นอยู่กับฮาร์ดแวร์เฉพาะที่ผู้ใช้ปลายทางใช้
ตัวอย่างเช่น แอปพลิเคชันระดับสูงสำหรับการโต้ตอบกับพอร์ตอนุกรมอาจมีเพียงสองฟังก์ชันสำหรับการส่งข้อมูลและรับข้อมูลในระดับที่ต่ำกว่านั้น ไดรเวอร์อุปกรณ์ที่ใช้งานฟังก์ชันเหล่านี้จะสื่อสารกับตัวควบคุมพอร์ตอนุกรมเฉพาะที่ติดตั้งอยู่ในคอมพิวเตอร์ของผู้ใช้ คำสั่งที่จำเป็นในการควบคุมUART 16550นั้นแตกต่างจากคำสั่งที่จำเป็นในการควบคุมอะแดปเตอร์ USB-to-serial มาก แต่ไดรเวอร์อุปกรณ์เฉพาะฮาร์ดแวร์แต่ละตัวจะแยกรายละเอียดเหล่านี้ออกเป็นอินเทอร์เฟซซอฟต์แวร์เดียวกัน (หรือคล้ายกัน)
การพัฒนา
การเขียนไดรเวอร์อุปกรณ์ต้องอาศัยความเข้าใจอย่างลึกซึ้งเกี่ยวกับวิธีการทำงานของฮาร์ดแวร์และซอฟต์แวร์สำหรับ ฟังก์ชัน แพลตฟอร์ม ที่กำหนด เนื่องจากไดรเวอร์ต้องการการเข้าถึงระดับต่ำของฟังก์ชันฮาร์ดแวร์เพื่อการทำงาน ไดรเวอร์จึงมักทำงานใน สภาพแวดล้อม ที่มีสิทธิ์ สูง และอาจทำให้เกิดปัญหาการทำงานของระบบหากมีสิ่งผิดปกติเกิดขึ้น ในทางตรงกันข้าม การทำงานผิดปกติในซอฟต์แวร์ระดับผู้ใช้ส่วนใหญ่บนระบบปฏิบัติการสมัยใหม่สามารถหยุดได้โดยไม่ส่งผลกระทบต่อส่วนที่เหลือของระบบมากนัก แม้แต่ไดรเวอร์ที่ทำงานในโหมดผู้ใช้ก็อาจทำให้ระบบล่มได้หากอุปกรณ์ได้รับการตั้งโปรแกรมอย่างผิดพลาดปัจจัยเหล่านี้ทำให้การวินิจฉัยปัญหาทำได้ยากและอันตรายมากขึ้น[ 3 ]
โดยปกติแล้ว งานเขียนไดรเวอร์จึงตกเป็นหน้าที่ของวิศวกรซอฟต์แวร์หรือวิศวกรคอมพิวเตอร์ที่ทำงานให้กับบริษัทพัฒนาฮาร์ดแวร์ เนื่องจากในฐานะพนักงาน พวกเขามีข้อมูลที่ดีกว่าคนภายนอกส่วนใหญ่เกี่ยวกับการออกแบบฮาร์ดแวร์ นอกจากนี้ ในอดีตถือเป็น ผลประโยชน์ของ ผู้ผลิต ฮาร์ดแวร์ ที่จะรับประกันว่าลูกค้าสามารถใช้งานฮาร์ดแวร์ได้อย่างเหมาะสมที่สุด โดยทั่วไปแล้ว ส่วนที่ เป็นนามธรรมของฮาร์ดแวร์ในไดรเวอร์จะเขียนโดยผู้จำหน่ายระบบปฏิบัติการ ในขณะที่ส่วนการเข้าถึงอุปกรณ์ทางกายภาพระดับล่างจะถูกพัฒนาโดยผู้จำหน่ายอุปกรณ์ อย่างไรก็ตาม ในช่วงไม่กี่ปีที่ผ่านมา ผู้ที่ไม่ใช่ผู้จำหน่ายได้เขียนไดรเวอร์อุปกรณ์จำนวนมากสำหรับอุปกรณ์ที่เป็นกรรมสิทธิ์ โดยส่วนใหญ่ใช้กับ ระบบปฏิบัติการ โอเพนซอร์สและฟรีในกรณีเช่นนี้ สิ่งสำคัญคือผู้ผลิตฮาร์ดแวร์ต้องให้ข้อมูลเกี่ยวกับวิธีที่อุปกรณ์สื่อสาร แม้ว่าข้อมูลนี้สามารถเรียนรู้ได้โดยการวิศวกรรมย้อนกลับแต่ก็ทำได้ยากกว่ามากในกรณีของฮาร์ดแวร์เมื่อเทียบกับซอฟต์แวร์
Windowsใช้การผสมผสานระหว่างไดรเวอร์และมินิไดรเวอร์ โดยไดรเวอร์คลาส/พอร์ตแบบเต็มจะมาพร้อมกับระบบปฏิบัติการ และไดรเวอร์มินิคลาส/มินิพอร์ตจะได้รับการพัฒนาโดยผู้จำหน่ายและใช้งานชุดย่อยเฉพาะฮาร์ดแวร์หรือฟังก์ชันของสแต็กไดรเวอร์แบบเต็ม[ 4 ]โมเดลมินิพอร์ตถูกใช้โดย ไดรเวอร์ NDIS , WDM , WDDM , WaveRT , StorPort , WIAและHIDโดยแต่ละตัวใช้ API เฉพาะอุปกรณ์และยังคงต้องการให้นักพัฒนาจัดการงานการจัดการอุปกรณ์
ไมโครซอฟต์พยายามลดปัญหาความไม่เสถียรของระบบที่เกิดจากไดรเวอร์อุปกรณ์ที่เขียนไม่ดี โดยการสร้างเฟรมเวิร์กใหม่สำหรับการพัฒนาไดรเวอร์ เรียกว่าWindows Driver Frameworks (WDF) ซึ่งรวมถึงUser-Mode Driver Framework (UMDF) ที่ส่งเสริมการพัฒนาไดรเวอร์บางประเภท โดยเฉพาะอย่างยิ่งไดรเวอร์ที่ใช้โปรโตคอลแบบข้อความในการสื่อสารกับอุปกรณ์ หากไดรเวอร์เหล่านี้ทำงานผิดพลาด ก็จะไม่ทำให้ระบบไม่เสถียร ส่วนKernel-Mode Driver Framework (KMDF) ยังคงอนุญาตให้พัฒนาไดรเวอร์อุปกรณ์ในโหมดเคอร์เนล แต่พยายามจัดเตรียมการใช้งานมาตรฐานของฟังก์ชันที่ทราบกันดีว่าก่อให้เกิดปัญหา รวมถึงการยกเลิกการทำงานของ I/O การจัดการพลังงาน และการสนับสนุนอุปกรณ์แบบเสียบแล้วใช้งานได้ทันที (plug-and-play)
Appleมีเฟรมเวิร์กโอเพนซอร์สสำหรับพัฒนาไดรเวอร์บนmacOSที่เรียกว่า I/O Kit
ในสภาพแวดล้อม Linux โปรแกรมเมอร์สามารถสร้างไดรเวอร์อุปกรณ์เป็นส่วนหนึ่งของเคอร์เนลแยกต่างหากเป็นโมดูล ที่โหลดได้ หรือเป็นไดรเวอร์โหมดผู้ใช้สำหรับอุปกรณ์บางประเภทที่มีอินเทอร์เฟซเคอร์เนลอยู่ เช่น สำหรับอุปกรณ์ USB Makedevมีรายการอุปกรณ์ใน Linux รวมถึง ttyS (เทอร์มินัล), lp ( พอร์ตขนาน ), hd (ดิสก์), loop และ sound (ซึ่งรวมถึงmixer , sequencer , dspและ audio) [ 5 ]
ไฟล์ .sys ของ Microsoft Windowsและ ไฟล์ .ko ของ Linuxสามารถบรรจุไดรเวอร์อุปกรณ์ที่โหลดได้ ข้อดีของไดรเวอร์อุปกรณ์ที่โหลดได้คือ สามารถโหลดได้เฉพาะเมื่อจำเป็นเท่านั้น แล้วจึงยกเลิกการโหลด ซึ่งจะช่วยประหยัดหน่วยความจำของเคอร์เนล
ระดับสิทธิพิเศษ
ขึ้นอยู่กับระบบปฏิบัติการ ไดรเวอร์อุปกรณ์อาจได้รับอนุญาตให้ทำงานในระดับสิทธิ์ ที่แตกต่างกัน การเลือกระดับสิทธิ์ของไดรเวอร์นั้นส่วนใหญ่ขึ้นอยู่กับประเภทของเคอร์เนลที่ระบบปฏิบัติการใช้ ระบบปฏิบัติการที่ใช้เคอร์เนลแบบโมโนลิธิกเช่นเคอร์เนลลินุกซ์มักจะเรียกใช้ไดรเวอร์อุปกรณ์ด้วยสิทธิ์เดียวกันกับวัตถุเคอร์เนลอื่นๆ ทั้งหมด ในทางตรงกันข้าม ระบบที่ออกแบบโดยใช้ไมโครเคอร์เนลเช่นมินิกซ์จะเรียกใช้ไดรเวอร์เป็นกระบวนการที่เป็นอิสระจากเคอร์เนล แต่ใช้ไดรเวอร์สำหรับฟังก์ชันอินพุต-เอาต์พุต ที่จำเป็น [ 6 ] บนWindows NTซึ่งเป็นระบบที่มีเคอร์เนลแบบไฮบริดเป็นเรื่องปกติที่ไดรเวอร์อุปกรณ์จะทำงานในโหมดเคอร์เนลหรือโหมดผู้ใช้[ 7 ]
กลไกที่พบได้บ่อยที่สุดสำหรับการแบ่งแยกหน่วยความจำออกเป็นระดับสิทธิ์ต่างๆ คือการใช้วงแหวนป้องกันในระบบหลายๆ ระบบ เช่น ระบบที่มี โปรเซสเซอร์ x86และARMการสลับระหว่างวงแหวนจะทำให้ประสิทธิภาพลดลง ซึ่งเป็นปัจจัยที่นักพัฒนาโปรแกรมระบบปฏิบัติการและ วิศวกร ซอฟต์แวร์ฝังตัวพิจารณาเมื่อสร้างไดรเวอร์สำหรับอุปกรณ์ต่างๆ เช่นการ์ดอินเทอร์เฟซเครือข่ายซึ่งต้องการทำงานด้วยความหน่วงต่ำ ประโยชน์หลักของการเรียกใช้ไดรเวอร์ในโหมดผู้ใช้คือความเสถียรที่ดีขึ้น เนื่องจากไดรเวอร์อุปกรณ์ในโหมดผู้ใช้ที่เขียนไม่ดีจะไม่สามารถทำให้ระบบล่มได้โดยการเขียนทับหน่วยความจำเคอร์เนล[ 8 ]
ระดับนามธรรมทั่วไปสำหรับไดรเวอร์อุปกรณ์ ได้แก่:
- สำหรับอุปกรณ์ฮาร์ดแวร์:
- การเชื่อมต่อโดยตรง
- การเขียนหรืออ่านข้อมูลจากรีจิสเตอร์ควบคุมอุปกรณ์
- การใช้ส่วนต่อประสานระดับสูงกว่า (เช่นVideo BIOS )
- การใช้ไดรเวอร์อุปกรณ์ระดับล่างอื่น (เช่น ไดรเวอร์ระบบไฟล์ที่ใช้ไดรเวอร์ดิสก์)
- การจำลองการทำงานกับฮาร์ดแวร์ ในขณะที่ทำสิ่งอื่นที่แตกต่างออกไปโดยสิ้นเชิง[ 9 ]
- สำหรับซอฟต์แวร์:
- อนุญาตให้ระบบปฏิบัติการเข้าถึงทรัพยากรฮาร์ดแวร์โดยตรง
- การใช้งานเฉพาะ ส่วนประกอบพื้นฐานเท่านั้น
- การนำอินเทอร์เฟซสำหรับซอฟต์แวร์ที่ไม่ใช่ไดรเวอร์ (เช่นTWAIN ) มาใช้
- การนำภาษาโปรแกรมมาใช้ ซึ่งบางครั้งอาจเป็นภาษาโปรแกรมระดับสูง (เช่นPostScript )
แอปพลิเคชัน
เนื่องจากความหลากหลายของฮาร์ดแวร์และระบบปฏิบัติการสมัยใหม่ ไดรเวอร์จึงทำงานในสภาพแวดล้อมที่แตกต่างกันมากมาย[ 10 ]ไดรเวอร์อาจเชื่อมต่อกับ:
- เครื่องพิมพ์
- อะแดปเตอร์วิดีโอ
- การ์ดเครือข่าย
- การ์ดเสียง
- ชิปเซ็ตพีซี
- การจัดการ พลังงานและแบตเตอรี่
- รถโดยสารประจำทางประเภทต่างๆ โดยเฉพาะอย่างยิ่งสำหรับการควบคุมรถโดยสารบนระบบสมัยใหม่
- บัส อินพุต/เอาต์พุตแบนด์วิดท์ ต่ำประเภทต่างๆ (สำหรับอุปกรณ์ชี้ตำแหน่งเช่นเมาส์คีย์บอร์ดเป็นต้น)
- อุปกรณ์ จัดเก็บข้อมูลคอมพิวเตอร์เช่นฮาร์ดดิสก์ , ซีดีรอมและฟล็อปปี้ดิสก์ ( ATA , SATA , SCSI , SAS )
- การนำ ระบบไฟล์ต่างๆ มาใช้เพื่อรองรับการใช้งาน
- เครื่องสแกนภาพ
- กล้องดิจิทัล
- จูนเนอร์โทรทัศน์ภาคพื้นดินระบบดิจิทัล
- อะแดปเตอร์ตัวรับส่งสัญญาณคลื่นความถี่วิทยุสำหรับเครือข่ายส่วนบุคคลไร้สายซึ่งใช้สำหรับการสื่อสารไร้สายระยะสั้นและความเร็วต่ำในระบบบ้านอัจฉริยะ (เช่นBluetooth Low Energy (BLE) , Thread , ZigbeeและZ-Waveเป็นต้น)
- อะแดปเตอร์IrDA
ดังนั้น การเลือกและติดตั้งไดรเวอร์อุปกรณ์ที่ถูกต้องสำหรับฮาร์ดแวร์ที่กำหนดจึงมักเป็นองค์ประกอบสำคัญของการกำหนดค่าระบบคอมพิวเตอร์[ 11 ]
ไดรเวอร์อุปกรณ์เสมือน
ไดรเวอร์อุปกรณ์เสมือนเป็นไดรเวอร์อุปกรณ์ประเภทหนึ่งโดยเฉพาะ ใช้เพื่อจำลองอุปกรณ์ฮาร์ดแวร์ โดยเฉพาะใน สภาพแวดล้อม เสมือนจริงเช่น เมื่อระบบปฏิบัติการแขกทำงานบน โฮสต์ Xenแทนที่จะช่วยให้ระบบปฏิบัติการแขกสื่อสารกับฮาร์ดแวร์ได้ ไดรเวอร์อุปกรณ์เสมือนจะทำหน้าที่ตรงกันข้าม คือจำลองชิ้นส่วนของฮาร์ดแวร์ เพื่อให้ระบบปฏิบัติการแขกและไดรเวอร์ที่ทำงานอยู่ภายในเครื่องเสมือนสามารถมองเห็นภาพลวงตาของการเข้าถึงฮาร์ดแวร์จริงได้ ความพยายามของระบบปฏิบัติการแขกในการเข้าถึงฮาร์ดแวร์จะถูกส่งต่อไปยังไดรเวอร์อุปกรณ์เสมือนในระบบปฏิบัติการโฮสต์ เช่นการเรียกฟังก์ชันไดรเวอร์อุปกรณ์เสมือนยังสามารถส่งเหตุการณ์ระดับโปรเซสเซอร์จำลอง เช่นการขัดจังหวะเข้าไปในเครื่องเสมือนได้ ด้วย
อุปกรณ์เสมือนอาจทำงานในสภาพแวดล้อมที่ไม่ใช่เสมือนได้เช่นกัน ตัวอย่างเช่นอะแดปเตอร์เครือข่าย เสมือน ใช้กับเครือข่ายส่วนตัวเสมือน ในขณะที่อุปกรณ์ ดิสก์เสมือนใช้กับiSCSIตัวอย่างที่ดีของไดรเวอร์อุปกรณ์เสมือนคือDaemon Tools
มีไดรเวอร์อุปกรณ์เสมือนหลายรูปแบบ เช่นVxD , VLMและ VDD
ไดรเวอร์โอเพนซอร์ส
- ไดรเวอร์อุปกรณ์กราฟิก
- ผู้พิมพ์: CUPS
- RAID: CCISS [ 12 ] (Compaq Command Interface for SCSI-3 Support [ 13 ] )
- เครื่องสแกน: SANE
- วิดีโอ: Vidix , โครงสร้างพื้นฐานการเรนเดอร์โดยตรง
คำอธิบายไดรเวอร์อุปกรณ์ที่ใช้กันทั่วไปในระบบ ปฏิบัติการ Solaris :
- fas: ตัวควบคุม SCSI แบบเร็ว/กว้าง
- hme: อีเธอร์เน็ตความเร็วสูง (10/100 เมกะบิต/วินาที)
- isp: ตัวควบคุม SCSI แบบดิฟเฟอเรนเชียลและการ์ด SunSwift
- glm: (โมดูลลิงก์กิกะบิต[ 14 ] ) ตัวควบคุม UltraSCSI
- SCSI: อุปกรณ์อินเทอร์เฟซอนุกรมคอมพิวเตอร์ขนาดเล็ก (SCSI)
- sf: soc+ หรือ social Fiber Channel Arbitrated Loop (FCAL)
- soc: ตัวควบคุม SPARC Storage Array (SSA) และอุปกรณ์ควบคุม
- ด้านสังคม: ตัวควบคุมออปติคอลแบบอนุกรมสำหรับ FCAL (soc+)
API
- Windows Display Driver Model (WDDM) – สถาปัตยกรรมไดรเวอร์แสดงผลกราฟิกสำหรับWindows Vistaและรุ่นที่ใหม่กว่า
- โมเดลเสียงรวม (UAM) [ 15 ]
- มูลนิธิไดรเวอร์ Windows (WDF)
- ฮาร์ดแวร์แบบแยกส่วนประกอบเชิงประกาศ (DCH) - ไดรเวอร์แพลตฟอร์ม Windows สากล[ 16 ]
- โมเดลไดรเวอร์ Windows (WDM)
- ข้อกำหนดอินเทอร์เฟซไดรเวอร์เครือข่าย (NDIS) – API มาตรฐานสำหรับไดรเวอร์การ์ดเครือข่าย
- สถาปัตยกรรมเสียงขั้นสูงของลินุกซ์ (ALSA) – อินเทอร์เฟซไดรเวอร์เสียงมาตรฐานของลินุกซ์
- Scanner Access Now Easy (SANE) – อินเทอร์เฟซสาธารณะสำหรับฮาร์ดแวร์สแกนเนอร์ภาพแรสเตอร์
- Installable File System (IFS) – API ระบบไฟล์สำหรับ IBM OS/2 และ Microsoft Windows NT
- Open Data-Link Interface (ODI) – API การ์ดเครือข่ายที่คล้ายกับ NDIS
- อินเทอร์เฟซไดรเวอร์แบบมาตรฐาน (UDI) – โครงการอินเทอร์เฟซไดรเวอร์ข้ามแพลตฟอร์ม
- Dynax Driver Framework (dxd) – เฟรมเวิร์กไดรเวอร์แบบโอเพนซอร์สข้ามแพลตฟอร์ม C++ สำหรับ KMDF และ IOKit [ 17 ]
ตัวระบุ
อุปกรณ์บนบัส PCIหรือ USB จะถูกระบุด้วยรหัสสองรหัส ซึ่งแต่ละรหัสประกอบด้วยสองไบต์ รหัสผู้ผลิต (Vendor ID) ระบุผู้ผลิตอุปกรณ์ ส่วนรหัสอุปกรณ์ (Device ID) ระบุอุปกรณ์เฉพาะจากผู้ผลิต/ผู้จำหน่ายรายนั้น
อุปกรณ์ PCI มักจะมีคู่รหัสประจำตัวสำหรับชิปหลักของอุปกรณ์ และยังมีคู่รหัสประจำตัวของระบบย่อยที่ระบุผู้จำหน่าย ซึ่งอาจแตกต่างจากผู้ผลิตชิปได้
ความปลอดภัย
คอมพิวเตอร์มักมีไดรเวอร์อุปกรณ์ที่หลากหลายและปรับแต่งเองจำนวนมากที่ทำงานในเคอร์เนลระบบปฏิบัติการ ซึ่งมักมีข้อบกพร่องและช่องโหว่ ต่างๆ ทำให้เป็นเป้าหมายของการโจมตี[ 18 ]ผู้โจมตี แบบBring Your Own Vulnerable Driver (BYOVD) จะติดตั้งไดรเวอร์ของบุคคลที่สามที่ลงนามแล้วและเก่าที่มีช่องโหว่ที่ทราบแล้ว ซึ่งอนุญาตให้แทรกโค้ดที่เป็นอันตรายเข้าไปในเคอร์เนลได้[ 19 ] ไดรเวอร์ที่อาจมีช่องโหว่ ได้แก่ ไดรเวอร์สำหรับ WiFi และ Bluetooth [ 20 ] [ 21 ]ไดรเวอร์เกม/กราฟิก[ 22 ]และไดรเวอร์สำหรับเครื่องพิมพ์[ 23 ]
ขาดเครื่องมือตรวจจับช่องโหว่เคอร์เนลที่มีประสิทธิภาพ โดยเฉพาะอย่างยิ่งสำหรับระบบปฏิบัติการแบบปิดแหล่งที่มา เช่น Microsoft Windows [ 24 ]ซึ่งซอร์สโค้ดของไดรเวอร์อุปกรณ์ส่วนใหญ่เป็นกรรมสิทธิ์และไม่สามารถตรวจสอบได้[ 25 ]และไดรเวอร์มักจะมีสิทธิ์มากมาย[ 26 ] [ 27 ] [ 28 ] [ 29 ]
กลุ่มนักวิจัยด้านความปลอดภัยพิจารณาว่าการขาดการแยกเป็นหนึ่งในปัจจัยหลักที่บั่นทอนความปลอดภัยของเคอร์เนล [ 30 ]และได้เผยแพร่ กรอบ การแยกเพื่อปกป้องเคอร์เนลของระบบปฏิบัติการ โดยเฉพาะเคอร์เนล Linux แบบโมโน ลิธิก ซึ่งพวกเขากล่าวว่าไดรเวอร์ได้รับการคอมมิต ประมาณ 80,000 ครั้งต่อปี[ 31 ] [ 32 ]
สิ่งสำคัญที่ต้องพิจารณาในการออกแบบเคอร์เนลคือการสนับสนุนที่เคอร์เนลมีให้เพื่อป้องกันความผิดพลาด ( ความทนทานต่อความผิดพลาด ) และจากพฤติกรรมที่เป็นอันตราย ( ความปลอดภัย ) โดยทั่วไปแล้วสองด้านนี้มักจะไม่แยกออกจากกันอย่างชัดเจน และการนำความแตกต่างนี้มาใช้ในการออกแบบเคอร์เนลนำไปสู่การปฏิเสธ โครงสร้างลำดับชั้น สำหรับการป้องกัน[ 33 ]
กลไกหรือนโยบายที่กำหนดโดยเคอร์เนลสามารถจำแนกได้ตามเกณฑ์หลายประการ ได้แก่:
- ไม่ว่าจะเป็นแบบคงที่ (บังคับใช้ในขั้นตอนการคอมไพล์ ) หรือแบบไดนามิก (บังคับใช้ในขั้นตอนการรันไทม์ )
- ไม่ว่าจะเป็นการป้องกันล่วงหน้าหรือการตรวจจับภายหลังก็ตาม
- ไม่ว่าจะเป็นการรองรับโดยฮาร์ดแวร์หรือโดยภาษา
- ไม่ว่าจะเป็นกลไกแบบเปิดหรือนโยบายที่มีผลผูกพันก็ตาม
- ตามหลักการคุ้มครองที่พวกเขาปฏิบัติตาม (เช่นDenning [ 34 ] [ 35 ] );
- และอื่นๆ อีกมากมาย
ดูเพิ่มเติม
ลิงก์ภายนอก
- ศูนย์พัฒนาฮาร์ดแวร์ Windows
- รายการฮาร์ดแวร์ที่เข้ากันได้กับ Linux และไดรเวอร์ Linux
- ทำความเข้าใจเกี่ยวกับไดรเวอร์อุปกรณ์สมัยใหม่ (ลินุกซ์)
- BinaryDriverHowto, Ubuntu.
- แหล่งที่มาของไดรเวอร์ Linux
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ ไดรเวอร์อุปกรณ์
ไดรเวอร์ อุปกรณ์ คือ ซอฟต์แวร์ ที่ทำงานหรือควบคุม อุปกรณ์ ประเภทใดประเภทหนึ่งที่เชื่อมต่อกับ คอมพิวเตอร์ [ 1 ] ไดรเวอร์จัดเตรียม อินเทอร์เฟ ซซอฟต์แวร์ ให้กับ อุปกรณ์ ฮาร์ดแวร์...
วัตถุประสงค์
จุดประสงค์หลักของไดรเวอร์อุปกรณ์คือการจัดเตรียม การแยกส่วนฮาร์ดแวร์ โดยทำหน้าที่เป็นตัวแปลระหว่างอุปกรณ์ฮาร์ดแวร์และแอปพลิเคชันหรือ ระบบปฏิบัติการ ที่ใช้อุปกรณ์นั้น [ 1 ]...
การพัฒนา
การเขียนไดรเวอร์อุปกรณ์ต้องอาศัยความเข้าใจอย่างลึกซึ้งเกี่ยวกับวิธีการทำงานของฮาร์ดแวร์และซอฟต์แวร์สำหรับ ฟังก์ชัน แพลตฟอร์ม ที่กำหนด เนื่องจากไดรเวอร์ต้องการการเข้าถึงระดับต่ำของฟังก์ชันฮาร์ดแวร์เพื่อการทำงาน ไดรเวอร์จึงมักทำงานใน สภาพแวดล้อม ที่มีสิทธิ์ สูง...
ระดับสิทธิพิเศษ
ขึ้นอยู่กับระบบปฏิบัติการ ไดรเวอร์อุปกรณ์อาจได้รับอนุญาตให้ทำงานใน ระดับสิทธิ์ ที่แตกต่างกัน การเลือกระดับสิทธิ์ของไดรเวอร์นั้นส่วนใหญ่ขึ้นอยู่กับประเภทของ เคอร์เนล ที่ระบบปฏิบัติการใช้ ระบบปฏิบัติการที่ใช้ เคอร์เนลแบบโมโนลิธิก เช่น เคอร์เนลลินุกซ์...
