Apa yang dimaksud dengan “Everything Is a File” di Linux?

Daftar Isi:

Apa yang dimaksud dengan “Everything Is a File” di Linux?
Apa yang dimaksud dengan “Everything Is a File” di Linux?

Video: Apa yang dimaksud dengan “Everything Is a File” di Linux?

Video: Apa yang dimaksud dengan “Everything Is a File” di Linux?
Video: Cara Mengurangi Kecanduan Gadget (Metode Dopamine Detox) - YouTube 2024, Mungkin
Anonim
Salah satu fitur mendefinisikan Linux dan sistem operasi UNIX-like lainnya adalah bahwa "semuanya adalah file." Ini adalah penyederhanaan, tetapi memahami apa artinya akan membantu Anda memahami bagaimana Linux bekerja.
Salah satu fitur mendefinisikan Linux dan sistem operasi UNIX-like lainnya adalah bahwa "semuanya adalah file." Ini adalah penyederhanaan, tetapi memahami apa artinya akan membantu Anda memahami bagaimana Linux bekerja.

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

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

/ proc

Misalnya, katakanlah Anda ingin mencari informasi tentang CPU Anda. Direktori / proc berisi file khusus - / proc / cpuinfo - yang berisi informasi ini.

Image
Image

Anda tidak memerlukan perintah khusus yang memberi tahu Anda info CPU - Anda cukup membaca konten file ini menggunakan perintah standar yang berfungsi dengan file teks biasa. Misalnya, Anda bisa menggunakan perintah kucing / proc / cpuinfo untuk mencetak konten file ini ke terminal - mencetak informasi CPU Anda ke terminal. Anda bahkan bisa membuka / proc / cpuinfo di editor teks untuk melihat isinya.

Ingat, / proc / cpuinfo sebenarnya bukan file teks yang berisi informasi ini - kernel Linux dan sistem file proc mengungkap 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:
Direktori / proc juga berisi file lain yang serupa, misalnya:
  • / proc / uptime - Mengekspos uptime kernel Linux Anda - dengan kata lain, berapa lama sistem Anda telah aktif tanpa mematikan.
  • / proc / version - Menampilkan versi kernel Linux Anda.

/ dev

Di direktori / dev, Anda akan menemukan file yang mewakili perangkat - serta file yang mewakili hal-hal khusus lainnya. Misalnya, / dev / cdrom adalah drive CD-ROM Anda. / dev / sda mewakili hard drive pertama Anda, sementara / 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 mount. 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 di hard drive pertama Anda? Jalankan perintah format dan kirim ke format / dev / sda1.

Image
Image

Seperti yang Anda lihat, mengekspos perangkat ini sebagai bagian dari sistem file memiliki kelebihannya. Sistem file menyediakan "ruang nama" yang konsisten yang dapat digunakan oleh 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 - Membuang semua data yang dituliskan padanya - menganggapnya sebagai tempat sampah atau lubang hitam. Jika Anda pernah melihat komentar yang memberi tahu Anda untuk mengirim keluhan ke / dev / null - itu adalah cara yang aneh untuk mengatakan "buang mereka ke tempat sampah."
  • / dev / random - Menghasilkan keacakan menggunakan kebisingan lingkungan. Ini adalah generator nomor acak yang dapat Anda gunakan.
  • / dev / zero - Menghasilkan nol - aliran konstan nol.

Jika Anda menganggap ketiganya sebagai file, Anda tidak akan melihat penggunaannya. Sebaliknya, pikirkan mereka 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 dapat mengalihkan output itu ke / dev / null. Mengarahkan output perintah ke / dev / null segera membuangnya. Daripada memiliki setiap perintah, terapkan "mode tenang" -nya sendiri, Anda dapat menggunakan metode ini dengan perintah apa pun.

command > /dev/null

Jika Anda menginginkan sumber keacakan - katakanlah, untuk menghasilkan kunci enkripsi, Anda tidak perlu menulis pembuat nomor acak Anda sendiri - Anda dapat menggunakan / dev / acak.
Jika Anda menginginkan sumber keacakan - katakanlah, untuk menghasilkan kunci enkripsi, Anda tidak perlu menulis pembuat nomor acak Anda sendiri - Anda dapat menggunakan / dev / acak.

Untuk menghapus konten hard drive dengan menuliskannya ke 0, Anda tidak memerlukan utilitas khusus yang didedikasikan untuk membunyikan kandar - 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 / nol dan menulisnya langsung ke partisi hard disk pertama di sistem Anda, benar-benar menghapus isinya.

(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/zero of=/dev/sda1

Di sini kami menggunakan dd dengan file khusus (/ dev / nol dan / dev / sda1), tetapi kami juga dapat menggunakan dd untuk membaca dari dan menulis ke file yang sebenarnya. Perintah yang sama berfungsi baik untuk memanipulasi perangkat secara langsung dan bekerja dengan file.

Klarifikasi

Dalam praktiknya, lebih akurat untuk mengatakan bahwa "semuanya adalah aliran byte" daripada "semuanya adalah file." / Dev / random bukan file, tetapi tentu saja adalah aliran byte.Dan, meskipun hal-hal ini secara teknis tidak 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 ada bentuk lain dari pengalamatan yang dibutuhkan.

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

Direkomendasikan: