29Jul

Apa itu "Everything Is a File" Berarti di Linux?

Salah satu fitur yang menentukan dari Linux dan sistem operasi mirip UNIX lainnya adalah bahwa "semuanya adalah file." Ini adalah penyederhanaan yang berlebihan, namun memahami apa artinya akan membantu Anda memahami bagaimana Linux bekerja.

Banyak hal di Linux muncul di sistem file Anda, tapi sebenarnya bukan file. Mereka adalah file khusus yang mewakili perangkat keras, informasi sistem, dan hal-hal lain - termasuk generator bilangan acak.

File khusus ini mungkin terletak pada sistem file pseudo atau virtual seperti / dev, yang berisi file khusus yang mewakili perangkat, dan / proc, yang berisi file khusus yang mewakili sistem dan informasi proses.

/ proc

Sebagai contoh, 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 memberitahukan info CPU Anda - Anda bisa membaca isi file ini dengan menggunakan perintah standar yang sesuai dengan file teks biasa. Misalnya, Anda bisa menggunakan perintah

cat /proc/ cpuinfo untuk mencetak isi file ini ke terminal - mencetak informasi CPU Anda ke terminal. Anda bahkan bisa membuka cpuinfo /proc/ dalam editor teks untuk melihat isinya.

Ingat, cpuinfo /proc/ sebenarnya bukan file teks yang berisi informasi ini - kernel Linux dan sistem berkas proc mengungkap informasi ini kepada kami sebagai file. Ini memungkinkan kita untuk menggunakan alat yang familiar untuk dilihat dan bekerja dengan informasinya.

Direktori / proc juga berisi file sejenis lainnya, misalnya: uptime

  • /proc/ - Mengekspos uptime kernel Linux Anda - dengan kata lain, berapa lama sistem Anda menyala tanpa mematikan. Versi
  • /proc/ - 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, cdrom /dev/ adalah drive CD-ROM Anda. Sda /dev/ mewakili hard drive pertama Anda, sementara /dev/ sda1 mewakili partisi pertama pada hard drive pertama Anda.

Ingin me-mount CD-ROM Anda? Jalankan perintah mount dan tentukan cdrom /dev/ sebagai perangkat yang ingin Anda mount. Ingin partisi harddisk pertama anda? Jalankan utilitas partisi disk dan tentukan /dev/ sda sebagai hard disk yang ingin Anda edit. Ingin memformat partisi pertama di harddisk pertama anda? Jalankan perintah pemformatan dan kirim ke format /dev/ sda1.

Seperti yang Anda lihat, memperlihatkan perangkat ini sebagai bagian dari sistem file memiliki kelebihan. Sistem file menyediakan "ruang nama" yang konsisten yang dapat digunakan oleh semua aplikasi untuk menangani dan mengakses perangkat.

/dev/ null, /dev/ acak, dan /dev/ nol

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 tong sampah atau lubang hitam. Jika Anda pernah melihat komentar yang memberi tahu Anda untuk mengirim keluhan kepada /dev/ null - itu adalah cara culun untuk mengatakan "membuangnya ke tempat sampah."
  • /dev/ acak - Menghasilkan keacakan menggunakan kebisingan lingkungan. Ini adalah generator bilangan acak yang bisa Anda sentuh.
  • /dev/ nol - Menghasilkan angka nol - arus nol konstan.

Jika Anda memikirkan ketiga file ini sebagai file, Anda tidak akan melihat penggunaannya untuk mereka. Sebagai gantinya, anggap mereka sebagai alat.

Sebagai contoh, secara default, perintah Linux menghasilkan pesan kesalahan dan keluaran lainnya yang dicetak ke keluaran standar, biasanya terminal. Jika Anda ingin menjalankan perintah dan tidak peduli dengan hasilnya, Anda dapat mengalihkan output ke /dev/ null. Mengalihkan output perintah ke /dev/ null segera membuangnya. Alih-alih memiliki setiap perintah menerapkan "mode tenang" sendiri, Anda dapat menggunakan metode ini dengan perintah apa pun. Perintah

& gt;/dev/ null

Jika Anda menginginkan sumber keacakan - misalnya, untuk menghasilkan kunci enkripsi, Anda tidak perlu menulis generator bilangan acak Anda sendiri - Anda bisa menggunakan /dev/ secara acak.

Untuk menghapus isi hard drive dengan menulis 0 untuk itu, Anda tidak memerlukan utilitas khusus yang didedikasikan untuk zero'ing drive - Anda bisa menggunakan utilitas standar dan /dev/ nol. Misalnya, perintah berbunyi dari lokasi dan menulis ke lokasi lain. Perintah berikut akan membaca angka nol dari /dev/ nol dan menuliskannya langsung ke partisi hard disk pertama di sistem Anda, hapus isinya sepenuhnya.

( Peringatan : Perintah ini akan menghapus semua data pada partisi pertama Anda jika Anda menjalankannya. Hanya jalankan perintah ini jika Anda ingin menghancurkan data.)

dd if = /dev/ nol dari = /dev/ sda1

Di sini kita menggunakan dddengan file khusus( /dev/ nol dan /dev/ sda1), tapi kita juga bisa menggunakan dd untuk dibaca dari dan menulis ke file sebenarnya. Perintah yang sama bekerja baik untuk memanipulasi perangkat secara langsung dan bekerja dengan file.

Klarifikasi

Dalam praktiknya, lebih tepat untuk mengatakan bahwa "semuanya adalah aliran byte" daripada "semuanya adalah file." /dev/ acak bukan file, tapi tentu saja adalah aliran byte. Dan, walaupun hal-hal ini secara teknis bukan file, file tersebut dapat diakses di sistem file - sistem berkas adalah "ruang nama" universal dimana semuanya dapat diakses. Ingin mengakses generator bilangan acak atau membaca langsung dari perangkat? Anda akan menemukan keduanya dalam sistem file;Tidak ada bentuk pengalamatan lain yang dibutuhkan.

Tentu saja, beberapa hal sebenarnya bukan file - proses yang berjalan di sistem Anda bukan bagian dari sistem file."Semuanya adalah file" tidak akurat, tapi banyak hal yang berperilaku seperti file.