ไดรเวอร์ Linux ทำงานอย่างไรและฉันจะหาได้ที่ไหน (โดยเฉพาะไดรเวอร์ NIC)


11

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

ฉันสนใจเรียนรู้เกี่ยวกับไดรเวอร์ของอะแดปเตอร์เครือข่ายเป็นพิเศษ

หากคุณรู้ว่าเอกสารที่ดีอยู่ที่ไหนฉันก็อยากอ่านด้วย

คำตอบ:


6

ไดรเวอร์มีลักษณะคล้ายกับโปรแกรมอื่น ๆ มากพวกเขาสามารถประกอบด้วยไฟล์หลายไฟล์ ไดรเวอร์อุปกรณ์ Linux สามารถคอมไพล์ได้โดยตรงในเคอร์เนลหรือโมดูลเคอร์เนล โมดูลเคอร์เนลมีประโยชน์ในการโหลดแบบไดนามิก (เช่นคุณไม่จำเป็นต้องรวบรวมเคอร์เนลใหม่เพื่อใช้)

เห็นได้ชัดว่าคุณสามารถดูซอร์สโค้ด Linux ได้เสมอ แต่นั่นอาจเป็นงานที่น่ากังวลในตอนแรก อย่างไรก็ตามเช่นเดียวกับสิ่งใดก็ตามในไดรเวอร์ Linux คือไฟล์ นั่นหมายถึงโปรแกรมอื่นเข้าถึงโปรแกรมเหล่านั้นผ่านทางอินเตอร์เฟส VFS ตัวอย่างเช่นคุณสามารถควบคุม CDROM ผ่านการioctl()โทรโดยใช้ไฟล์อุปกรณ์

ฉันจะขอแนะนำการตรวจสอบจากไดรเวอร์ของอุปกรณ์ Linux มันสามารถใช้ได้อย่างอิสระและจะตอบคำถามของคุณ โดยเฉพาะอย่างยิ่งคุณสามารถอ่านบทที่ 2 ซึ่งแสดงวิธีการสร้างโมดูล "Hello, Kernel" แบบง่าย มันอาจจะไกลเกินกว่าที่คุณจะขอ แต่คุณสามารถอ่านบิตและชิ้นส่วนที่คุณสนใจและมันฟรี ; P


3

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

หากเคอร์เนลเวอร์ชันปัจจุบันไม่รองรับไดร์เวอร์สำหรับ NIC ของคุณคุณจะต้องค้นหาไดรเวอร์ที่ผู้ขายและคุณจะต้องรวบรวมโมดูลเคอร์เนลจากแหล่งที่มา (เทียบกับส่วนหัวของเคอร์เนล)


1

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

กล่าวโดยทั่วไปแล้วไดรเวอร์ linux มักจะอยู่ในรูปของไลบรารีหรือโมดูล

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.