Apa Arti “Semuanya Adalah File” di Linux?
Salah satu fitur penentu Linux dan sistem operasi mirip UNIX lainnya adalah "semuanya adalah file." Ini adalah penyederhanaan yang berlebihan, tetapi memahami artinya artinya akan membantu Anda memahami cara kerja Linux.
Banyak hal di Linux muncul di sistem file Anda, tetapi sebenarnya itu bukan file. Itu adalah file khusus yang mewakili perangkat perangkat keras, informasi sistem, dan hal-hal lain - termasuk generator angka acak.
File-file khusus ini dapat ditempatkan di sistem file semu atau virtual seperti / dev, yang berisi file-file khusus yang mewakili perangkat, dan / proc, yang berisi file-file khusus yang mewakili informasi sistem dan proses.
/ proc
Misalnya, katakanlah Anda ingin mencari informasi tentang CPU Anda. Direktori / proc berisi file khusus - / proc / cpuinfo - yang berisi informasi ini.
Anda tidak memerlukan perintah khusus yang memberi tahu Anda info CPU - Anda cukup membaca konten file ini menggunakan perintah standar apa pun yang berfungsi dengan file teks biasa. Misalnya, Anda bisa menggunakan perintah cat / proc / cpuinfo untuk mencetak konten file ini ke terminal - mencetak informasi CPU Anda ke terminal. Anda bahkan dapat membuka / proc / cpuinfo dalam editor teks untuk melihat isinya.
Ingat, / proc / cpuinfo sebenarnya bukan file teks yang berisi informasi ini - kernel Linux dan sistem file proc mengekspos informasi ini kepada kami sebagai file. Ini memungkinkan kami untuk menggunakan alat yang sudah dikenal untuk melihat dan bekerja dengan informasi tersebut.
Direktori / proc juga berisi file lain yang serupa, misalnya:
- / proc / uptime - Mengekspos uptime dari kernel Linux Anda - dengan kata lain, berapa lama sistem Anda telah aktif tanpa mematikan.
- / proc / version - Mengekspos versi kernel Linux Anda.
/ dev
Di direktori / dev, Anda akan menemukan file yang mewakili perangkat - serta file yang mewakili hal-hal khusus lainnya. Sebagai contoh, / dev / cdrom adalah drive CD-ROM Anda. / dev / sda mewakili hard drive pertama Anda, sedangkan / dev / sda1 mewakili partisi pertama pada hard drive pertama Anda.
Ingin memasang CD-ROM Anda? Jalankan perintah mount dan tentukan / dev / cdrom sebagai perangkat yang ingin Anda pasang. Ingin mempartisi hard drive pertama Anda? Jalankan utilitas partisi-disk dan tentukan / dev / sda sebagai hard disk yang ingin Anda edit. Ingin memformat partisi pertama pada hard drive pertama Anda? Jalankan perintah pemformatan dan kirim ke format / dev / sda1.
Seperti yang Anda lihat, mengekspos perangkat ini sebagai bagian dari sistem file memiliki kelebihan. Sistem file menyediakan "ruang nama" yang konsisten yang dapat digunakan semua aplikasi untuk mengatasi dan mengakses perangkat.
/ dev / null, / dev / random, dan / dev / zero
Sistem file / dev tidak hanya berisi file yang mewakili perangkat fisik. Berikut adalah tiga perangkat khusus yang paling terkenal yang dikandungnya:
- / dev / null - Buang semua data yang ditulis padanya - anggap itu sebagai tempat sampah atau lubang hitam. Jika Anda pernah melihat komentar yang memberitahu Anda untuk mengirim komplain ke / dev / null - itu adalah cara culun untuk mengatakan "buang mereka ke tempat sampah."
- / dev / random - Menghasilkan keacakan menggunakan kebisingan lingkungan. Ini adalah penghasil angka acak yang dapat Anda gunakan.
- / dev / zero - Menghasilkan nol - aliran nol yang konstan.
Jika Anda menganggap ketiganya sebagai file, Anda tidak akan melihat penggunaannya. Sebaliknya, anggap itu sebagai alat.
Sebagai contoh, secara default, perintah Linux menghasilkan pesan kesalahan dan output lain yang mereka cetak ke output standar, biasanya terminal. Jika Anda ingin menjalankan perintah dan tidak peduli dengan outputnya, Anda bisa mengarahkan output itu ke / dev / null. Mengarahkan output perintah ke / dev / null segera membuangnya. Alih-alih meminta setiap perintah mengimplementasikan "mode diam" sendiri, Anda dapat menggunakan metode ini dengan perintah apa pun.
perintah> / dev / null
Jika Anda menginginkan sumber keacakan - misalnya, untuk menghasilkan kunci enkripsi, Anda tidak perlu menulis generator nomor acak Anda sendiri - Anda bisa menggunakan / dev / random.
Untuk menghapus konten hard drive dengan menuliskan 0 di dalamnya, Anda tidak memerlukan utilitas khusus yang didedikasikan untuk mem-nolkan drive - Anda dapat menggunakan utilitas standar dan / dev / nol. Misalnya, DD perintah membaca dari suatu lokasi dan menulis ke lokasi lain. Perintah berikut ini akan membaca nol dari / dev / zero dan menulisnya langsung ke partisi hard disk pertama di sistem Anda, benar-benar menghapus isinya.
(Peringatan: Perintah ini akan menghapus semua data di partisi pertama Anda jika Anda menjalankannya. Hanya jalankan perintah ini jika Anda ingin menghancurkan data.)
dd if = / dev / zero of = / dev / sda1
Di sini kita menggunakan dd dengan file khusus (/ dev / zero dan / dev / sda1), tetapi kita juga bisa menggunakan dd untuk membaca dan menulis ke file yang sebenarnya. Perintah yang sama berfungsi baik untuk memanipulasi perangkat secara langsung maupun bekerja dengan file.
Klarifikasi
Dalam praktiknya, lebih akurat untuk mengatakan bahwa "semuanya adalah aliran byte" daripada "semuanya adalah file." / Dev / random bukanlah file, tetapi tentu saja adalah aliran byte. Dan, meskipun hal-hal ini secara teknis bukan file, mereka dapat diakses dalam sistem file - sistem file adalah "ruang nama" universal di mana semuanya dapat diakses. Ingin mengakses generator nomor acak atau membaca langsung dari perangkat? Anda akan menemukan keduanya di sistem file; tidak diperlukan bentuk pengalamatan lain.
Tentu saja, beberapa hal sebenarnya bukan file - proses yang berjalan di sistem Anda bukan bagian dari sistem file. "Semuanya adalah file" tidak akurat, tetapi banyak hal berperilaku sebagai file.