next up previous
Next: เขียน และ ใช้งาน Modules Up: An Introduction to Device Previous: Linux Kernel

ชนิดของ Devices และ Modules

โดยทั่วๆไป Unix จะมอง device เป็น ๓ ประเภท แต่ละประเภทก็มีคุณสมบัติเฉพาะแต่จริงๆแล้วก็ไม่ได้เข้มงวดมาก ในการเขียนโปรแกรม module ใหญ่ๆ programmer อาจจะ implement จากหลายๆชนิดเข้าด้วยกันได้ modules ทั้ง ๓ มีดังนี้

Character devices

character device จะ access ข้อมูลในลักษณะของ bytes stream(คล้ายๆการมอง file) และสามารถใช้ system call พื้นฐานเช่น open, close, read และ write ได้ อุปกรณ์ชนิดนี้ได้แก่ text console, serial port สิ่งที่ char device ต่างจาก file คือลักษณะการ access กล่าวคือ file จะสามารถเคลื่อนที่ index ไป-กลับ ภายใน file ได้อย่างอิสระ แต่ในกรณี(ปกติ)ของ char device แล้วจะเคลื่อนที่อย่างต่อเนื่องเป็นลำดับไปข้างหน้าเพียงอย่างเดียว

Block Devices

Block Device ก็ยังมีการ access ข้อมูลเหมือนใน char device ทุกอย่างสิ่งที่ต่างกันก็คือ block device จะ access ข้อมูลครั้งละหลายๆ block ปกติแล้วแต่ละ block จะมีขนาดเป็น ๑ Kbyte ความสามารถในการใช้งานผ่าน system call ต่างของ block device ก็มีลักษณะเหมือนกับใน char device โดยปกติแล้ว block device จะเป็นอุปกรณ์พวก storage อย่าง IDE disk และถูกเรียกใช้งานโดยปกติผ่านคำสั่ง mount

Network Interfaces

Network device คืออุปกรณ์ที่ใช้ติดต่อผ่าน network ไปยัง host อื่นโดยปกติแล้ว network interface จะเป็นอุปกรณ์ h/w แต่ก็สามารถ implement เป็น s/w ได้ เช่น loopback interface

network interface ไม่ได้เป็น stream-oriented interface เหมือนกับ char และ block device และไม่สามารถ map file inode ได้ตามปกติเหมือนกับ device ทั่วๆไป ในระบบ Unix จะกำหนดชื่อ interface ไว้ให้เพื่อจะใช้(เช่น eth0) แต่ชื่อนี้ก็ไม่ได้ map อยู่ใน filesystem

มี device บางประเภทที่ไม่สามารถจัดประเภทเข้าประเภททั้ง ๓ นี้ได้ง่ายๆอาจจะเพราะเป็น device ชนิดใหม่ หรือมีความกำกวมบางอย่าง จึงมีการแยกเป็นประเภทพิเศษไว้ device เหล่านี้ก็เช่น USB, FireWire และ I2O(Intelligent I/O) ที่เป็นมาตรฐานต่อเชื่อมชนิดใหม่ที่มีความยืดหยุ่นสูงรวมทั้งมีลักษณะการทำงานที่แตกต่างออกไป หรือ SCSI ที่อุปกรณ์ต่อพวกอาจจะสามารถถูกมองเป็น char หรือ block device ก็ได้



Pruet Boonma 2001-11-02