Jawaban singkatnya adalah hanya jika Anda memiliki dukungan sistem file fisik /dev
(dan jika Anda menggunakan distro Linux modern, Anda mungkin tidak).
Jawaban panjangnya adalah sebagai berikut:
Ini semua kembali ke filosofi UNIX asli bahwa semuanya adalah file. Filosofi ini adalah bagian dari apa yang membuat UNIX sangat fleksibel, karena Anda dapat langsung berinteraksi dengan perangkat dari userspace tanpa perlu memiliki kode khusus dalam aplikasi Anda untuk berbicara langsung dengan perangkat keras fisik.
Awalnya, /dev
hanyalah direktori lain dengan nama terkenal tempat Anda meletakkan file perangkat Anda. Beberapa sistem UNIX masih menggunakan pendekatan ini (saya percaya OpenBSD masih melakukannya), dan Anda biasanya dapat mengetahui apakah suatu sistem seperti ini karena akan memiliki banyak file perangkat untuk perangkat yang tidak dimiliki sistem tersebut (misalnya, file untuk setiap kemungkinan partisi pada setiap disk yang mungkin). Ini menghemat ruang dalam memori dan waktu saat boot dengan biaya menggunakan sedikit lebih banyak ruang disk, yang merupakan pertukaran yang baik untuk sistem awal karena mereka umumnya sangat terbatas memori dan tidak terlalu cepat. Ini umumnya disebut memiliki statis /dev
.
Pada sistem Linux modern (dan saya percaya juga FreeBSD dan mungkin versi terbaru dari Solaris), /dev
adalah sistem file sementara dalam memori yang diisi oleh kernel (atau udev jika Anda menggunakan Systemd, karena mereka tidak percaya kernel melakukan hampir semua hal) . Ini menghemat ruang disk dengan harga beberapa memori (biasanya kurang dari beberapa MB) dan overhead pemrosesan yang sangat kecil. Ini juga memiliki sejumlah keunggulan lain, dengan salah satu yang terbesar adalah lebih mudah untuk mendeteksi perangkat keras yang terhubung. Ini umumnya disebut memiliki dinamika /dev
.
Namun dalam kedua kasus, node perangkat diakses melalui layer VFS biasa, yang menurut definisi berarti mereka harus memiliki inode (bahkan jika itu virtual yang hanya ada sehingga hal-hal seperti stat()
berfungsi seperti yang seharusnya. Dari perspektif praktis, ini memiliki dampak nol pada sistem yang menggunakan dinamis /dev
karena mereka hanya menyimpan inode dalam memori atau menghasilkan mereka sesuai kebutuhan, dan mendekati nol dampak di mana /dev
statis karena inode mengambil hampir nol ruang pada disk dan sebagian besar sistem file tidak memiliki batas atas mereka atau cara penyediaan lebih dari siapa pun mungkin perlu.