ioctl
มีแนวโน้มที่จะไปจับมือกับ/dev
รายการ; รหัสทั่วไปของคุณจะทำ
fd=open("/dev/mydevice",O_RDRW);
ioctl(fd,.....);
นี่คือพฤติกรรม Unix มาตรฐานอย่างสมบูรณ์แบบ ภายในเคอร์เนลไดรเวอร์คุณสามารถใส่การควบคุมการเข้าถึง (เช่นroot
สามารถทำบางสิ่งบางอย่างหรือต้องการความสามารถเฉพาะสำหรับการเข้าถึงที่ละเอียดยิ่งขึ้น) ซึ่งทำให้มีความยืดหยุ่นและทรงพลัง
แน่นอนว่านี่หมายความว่าอุปกรณ์สามารถเปิดเผยมากกว่าการใช้กิจกรรมการอ่าน / เขียนบล็อก / อักขระ หลายสิ่งสามารถทำได้ผ่านการioctl
โทร ไม่ให้ใช้งานง่ายจากเชลล์สคริปต์ แต่สวยง่ายจากC
หรือperl
หรือpython
หรือคล้ายกัน
sysfs
รายการเป็นอีกวิธีในการโต้ตอบกับไดรเวอร์ โดยทั่วไปแล้วคำสั่งแต่ละประเภทจะมีรายการที่แตกต่างกันดังนั้นจึงมีความซับซ้อนในการเขียนไดรเวอร์ แต่มันทำให้เข้าถึงได้ง่ายผ่าน userspace สคริปต์เชลล์แบบง่ายสามารถจัดการกับสิ่งต่างๆมากมาย แต่อาจไม่มีประสิทธิภาพมากนัก
netlink
ส่วนใหญ่จะเน้น (ฉันคิดว่า!) ในการถ่ายโอนข้อมูลเครือข่าย แต่มันสามารถใช้สำหรับสิ่งอื่น ๆ เป็นเรื่องที่ดีมากสำหรับการถ่ายโอนข้อมูลจำนวนมากและตั้งใจจะเป็นผู้สืบทอดioctl
ในบางกรณี
ตัวเลือกทั้งหมดดี กรณีการใช้งานของคุณอาจกำหนดประเภทของอินเตอร์เฟซที่จะเปิดเผยจากไดรเวอร์ของคุณ