Rumah >Operasi dan penyelenggaraan >operasi dan penyelenggaraan linux >apakah fail peranti linux
Di Linux, fail peranti ialah antara muka kepada pemacu peranti, membenarkan aplikasi berinteraksi dengan peranti menggunakan pemacu perantinya melalui panggilan sistem input dan output standard. Terdapat dua fail peranti yang biasa digunakan dalam sistem Linux: fail khas aksara dan fail khas sekat Perbezaan di antaranya terletak pada jumlah data yang dibaca dan ditulis oleh sistem pengendalian dan perkakasan.
Persekitaran pengendalian tutorial ini: sistem linux5.9.8, komputer Dell G3.
Gambaran keseluruhan fail peranti
Operasi seperti Unix Dalam sistem, fail peranti atau fail khas ialah antara muka kepada pemacu peranti dan muncul dalam sistem fail seolah-olah ia adalah fail biasa. Terdapat juga fail khas dalam MS-DOS, OS/2 dan Microsoft Windows. Fail khas ini membenarkan aplikasi berinteraksi dengan peranti menggunakan pemacu perantinya melalui panggilan sistem input/output standard. Menggunakan panggilan sistem standard memudahkan banyak tugas pengaturcaraan dan membolehkan mekanisme I/O ruang pengguna yang konsisten tanpa mengira ciri dan keupayaan peranti.
Fail peranti biasanya menyediakan antara muka mudah kepada peranti standard seperti pencetak dan port bersiri, tetapi juga boleh digunakan untuk mengakses sumber unik tertentu pada peranti tersebut seperti partition cakera. Selain itu, fail peranti berguna untuk mengakses sumber sistem yang tidak dikaitkan dengan mana-mana peranti sebenar, seperti sinki data dan penjana nombor rawak.
Rajah 1 Hubungan antara aplikasi, fail blok, pemacu dan perkakasan
Terdapat dua peranti yang biasa digunakan dalam sistem pengendalian seperti Unix fail, dipanggil fail khas aksara dan sekat fail khas. Perbezaan antara mereka ialah jumlah data yang dibaca dan ditulis oleh sistem pengendalian dan perkakasan. Tidak seperti paip bernama, yang boleh dipanggil fail khas peranti, paip bernama tidak disambungkan ke peranti tetapi juga bukan fail biasa.
Dalam sesetengah sistem seperti Unix, kebanyakan fail peranti diuruskan sebagai sebahagian daripada sistem fail maya yang secara tradisinya dipasang di /dev, mungkin dikaitkan dengan daemon kawalan yang Memantau penambahan dan pengalihan perkakasan di masa jalan dan membuat perubahan yang sepadan pada sistem fail peranti Jika perubahan pada sistem fail peranti tidak dilengkapkan secara automatik oleh kernel, daemon kawalan boleh memanggil skrip dalam sistem atau ruang pengguna untuk mengendalikan keperluan peranti khas.
Pelaksanaan FreeBSD dan DragonFly BSD telah menamakan sistem fail peranti maya devfs dan devd daemon yang berkaitan. Linux terutamanya menggunakan pelaksanaan ruang pengguna yang dipanggil udev, tetapi terdapat banyak variasi. Sistem pengendalian seperti Darwin dan macOS berdasarkannya mempunyai sistem fail peranti berasaskan kernel semata-mata.
Pada sistem Unix yang menyokong pengasingan proses chroot, seperti Solaris Containers, biasanya setiap persekitaran chroot akan memerlukan /dev titik pelekap ini masing-masing dalam pepohon sistem fail global Visible pada sistem pengendalian hos pada nod. Pengasingan perkakasan boleh dikuatkuasakan oleh persekitaran chroot dengan mengehadkan populasi nod peranti kepada contoh chroot /dev (program tidak boleh palam ke dalam perkakasan, dan ia tidak dapat melihat atau mengakses nama - ini adalah kawalan akses yang lebih kuat daripada fail Unix borang kebenaran sistem).
Nod peranti sepadan dengan sumber yang telah diperuntukkan oleh kernel sistem pengendalian. Unix mengenal pasti sumber ini dengan nombor utama dan nombor kecil, kedua-duanya disimpan sebagai sebahagian daripada struktur nod. Penetapan nombor ini berlaku secara unik pada sistem pengendalian yang berbeza dan pada platform komputer yang berbeza. Biasanya, nombor utama mengenal pasti pemacu peranti, dan nombor kecil mengenal pasti peranti khusus yang dikawal oleh pemandu (mungkin melalui banyak peranti): Dalam kes ini, sistem mungkin menyerahkan nombor kecil kepada pemandu. Walau bagaimanapun, dalam kes nombor yang diperuntukkan secara dinamik, ini mungkin tidak berlaku (mis. pada FreeBSD 5 dan ke atas).
Seperti jenis fail khas yang lain, sistem komputer menggunakan panggilan sistem standard untuk mengakses nod peranti dan menganggapnya sebagai fail komputer biasa. Terdapat dua jenis fail peranti standard, malangnya, atas sebab sejarah, nama mereka agak kontra-intuitif, jadi selalunya tidak betul untuk menerangkan perbezaan antara kedua-duanya.
Sekat klasifikasi fail
Peranti aksara (Peranti aksara)
Fail khas aksara atau peranti aksara menyediakan akses terus tanpa penimbal kepada peranti perkakasan. Mereka tidak semestinya membenarkan program membaca atau menulis satu aksara pada satu masa; ini bergantung pada peranti yang dipersoalkan. Sebagai contoh, peranti aksara cakera keras biasanya memerlukan semua operasi baca dan tulis untuk diselaraskan untuk menyekat sempadan dan tidak sekali-kali membenarkan bacaan bait individu.
Peranti aksara kadangkala dipanggil peranti mentah untuk mengelakkan kekeliruan mengenai hakikat bahawa peranti aksara pada perkakasan berasaskan blok biasanya memerlukan atur cara untuk membaca dan menulis blok yang dijajarkan.
Sekat peranti (Sekat peranti)
Sekat fail khas atau sekat peranti menyediakan akses buffer kepada peranti perkakasan , dan memberikan beberapa butiran abstrak. Tidak seperti peranti aksara, peranti blok akan sentiasa membenarkan pengaturcara membaca atau menulis blok dalam sebarang saiz (termasuk aksara/bait tunggal) dan sebarang penjajaran. Kelemahannya ialah memandangkan peranti blok ditimbal, pengaturcara tidak tahu berapa lama masa yang diperlukan sebelum data tulis dihantar dari penimbal kernel ke peranti sebenar, atau sememangnya dalam susunan dua tulisan berasingan akan tiba di peranti fizikal ? Selain itu, jika perkakasan yang sama mendedahkan peranti watak dan sekat, terdapat risiko kerosakan data disebabkan oleh pelanggan yang menggunakan peranti aksara tidak menyedari perubahan yang dibuat dalam penimbal peranti blok.
Peranti pseudo Peranti pseudo yang sepadan. Nod yang tidak mempunyai surat-menyurat ini membentuk satu set peranti pseudo. Mereka menyediakan pelbagai fungsi yang dikendalikan oleh sistem pengendalian. Beberapa peranti pseudo (berasaskan aksara) yang paling biasa digunakan termasuk:
Penciptaan nod
/ dev / null - 接受并放弃所有输入; 不产生输出(总是在读取时返回文件结束指示) / dev / zero - 接受并放弃所有输入; 产生连续的NUL(零值)字节流 / dev / full - 读取时会产生连续的NUL(零值)字节流,并在写入时返回“磁盘已满”消息 / dev / random和/ dev / urandom - 它们产生一个可变长度的伪随机数字流。
Nod dicipta oleh penciptaan panggilan sistem mknod. Program baris arahan yang digunakan untuk mencipta nod juga dipanggil mknod. Panggilan sistem fail biasa (namakan semula, nyahpaut) dan arahan (mv, rm) boleh mengalih atau memadam nod. Apabila menghantar pilihan -R atau -a apabila menyalin nod peranti, arahan cp -l mencipta nod peranti baharu dengan sifat yang sama seperti yang asal.
Sesetengah versi Unix termasuk skrip yang dipanggil makedev atau MAKEDEV yang mencipta semua peranti yang diperlukan dalam direktori /dev. Ini hanya masuk akal pada sistem yang perantinya diberikan nombor utama secara statik (cth. dengan pengekodan keras dalam modul kernel mereka).
Peraturan Penamaan Fail Sekat
Awalan berikut digunakan dalam nama peranti tertentu dalam hierarki /dev untuk mengenal pasti jenis peranti : Senarai awalan kanonik yang digunakan dalam Linux boleh didapati dalam Senarai Peranti Linux, yang merupakan pendaftaran rasmi nombor peranti dan nod direktori /dev yang ditetapkan untuk sistem pengendalian Linux.
lp:行式打印机(比较lp) pt:伪终端(虚拟终端) tty:终端 一些额外的前缀已经在一些操作系统中普遍使用: fb:帧缓冲区 fd :(平台)软盘,尽管这个缩写也常用来指文件描述符 高清:(“经典”)IDE驱动程序(以前用于ATA硬盘驱动器,ATAPI光盘驱动器等) hda:第一个ATA通道上的主设备(通常由主编号3和次编号0标识) hdb:第一个ATA通道上的从属设备 hdc:第二个ATA通道上的主设备 hdc1:此磁盘上的第一个主分区(示例) hdc5:扩展分区中的第一个逻辑驱动器(示例) hdd:第二个ATA通道上的从属设备 parport,pp:并行端口 SCSI驱动程序,也被libATA(现代PATA / SATA驱动程序),USB,IEEE 1394等使用。 sd:大容量存储驱动程序 sda:首次注册的设备 sda4:此磁盘上的最后一个分区(示例) sda6:扩展分区中的第二个逻辑驱动器(示例) sdb,sdc等:第二,第三等注册设备 ses:机箱驱动程序 sg:通用SCSI层 sr:“ROM”驱动程序(面向数据的光盘驱动器; scd只是一个辅助别名) st:磁带驱动器 tty:终端 ttyS :(平台)串口驱动程序 ttyUSB:USB串口转换器,调制解调器等Bagi kebanyakan peranti, awalan ini diikuti dengan nombor yang mengenal pasti peranti tertentu secara unik. Untuk cakera keras, huruf digunakan untuk mengenal pasti peranti, dan nombor digunakan untuk mengenal pasti partition. Oleh itu, sistem fail boleh mencari kawasan pada cakera melalui /dev/sda3 kaitkan /dev/pts/14 dengan sesi terminal rangkaian.
Arahan berkaitan untuk mengendalikan fail peranti
mknod
Semua orang Jika anda berminat untuk terbenam, anda boleh menyemak cara menggunakan arahan ini sendiri.
Cadangan berkaitan: "Tutorial Video Linux"
Atas ialah kandungan terperinci apakah fail peranti linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!