Saya mengerti apa itu pemasangan di Linux, dan saya mengerti file perangkat. Namun saya tidak mengerti MENGAPA kita perlu me-mount.
Misalnya, seperti yang dijelaskan dalam jawaban yang diterima dari pertanyaan ini , menggunakan perintah ini:
mount /dev/cdrom /media/cdrom
kami memasang perangkat CDROM ke /media/cdrom
dan akhirnya dapat mengakses file-file CDROM dengan perintah berikut
ls /media/cdrom
yang akan mencantumkan konten CDROM.
Mengapa tidak melewati pemasangan sama sekali, dan lakukan hal berikut?
ls /dev/cdrom
Dan memiliki konten CDROM Terdaftar. Saya berharap salah satu jawabannya adalah: " Ini adalah bagaimana Linux dirancang ". Tetapi jika demikian, mengapa itu dirancang seperti itu? Mengapa tidak mengakses /dev/cdrom
direktori secara langsung? Apa tujuan sebenarnya dari pemasangan?
mount -t umsdos
untuk me-mount, Anda memiliki semua izin Linux, kepemilikan, file khusus, fifos dll. Jika Andamount -t vfat
berperilaku seperti partisi Windows biasa.Why not access the /dev/cdrom directory directly?
Karena itu bukan direktori.Jawaban:
Salah satu alasannya adalah akses level blok sedikit lebih rendah daripada yang
ls
bisa digunakan./dev/cdrom
, ataudev/sda1
mungkin drive CD ROM dan partisi 1 dari hard drive Anda, masing-masing, tetapi mereka tidak menerapkan ISO 9660 / ext4 - mereka hanya pointer RAW ke perangkat yang dikenal sebagai File File .Salah satu hal yang ditentukan oleh mount adalah BAGAIMANA menggunakan akses mentah itu - apa logika sistem file / driver / kernel modul akan mengelola membaca / menulis, atau menerjemahkan
ls /mnt/cdrom
ke blok mana yang perlu dibaca, dan bagaimana menafsirkan konten dari mereka memblokir hal-hal sepertifile.txt
.Di waktu lain, akses tingkat rendah ini bisa cukup baik; Saya baru saja membaca dan menulis ke port serial, perangkat usb, terminal tty, dan perangkat lain yang relatif sederhana. Saya tidak akan pernah mencoba membaca / menulis secara manual dari / dev / sda1 ke, katakanlah, edit file teks, karena pada dasarnya saya harus mengimplementasikan kembali logika ext4, yang mungkin termasuk, antara lain: mencari file inode, menemukan blok penyimpanan, baca blok lengkap, buat perubahan saya, tulis blok penuh, lalu perbarui inode (mungkin), atau alih-alih tulis ini semua ke jurnal - terlalu sulit.
Salah satu cara untuk melihatnya sendiri adalah dengan mencobanya:
/dev
adalah direktori, dan Anda bisacd
danls
semua yang Anda suka./dev/sda1
bukan direktori; itu adalah jenis file khusus yang ditawarkan kernel sebagai 'pegangan' untuk perangkat itu.Lihat entri wikipedia pada File Perangkat untuk perlakuan lebih mendalam.
sumber
/dev/sda1
. Perhatikan beberapa alat DO berinteraksi langsung dengan disk mentah, sepertiswapon/swapoff
dandd
.cat >/dev/sda1
sesuka hati Anda dan Linux tidak akan menghentikan Anda. (Tak perlu dikatakan, hal itu akan merusak sistem file.)Pada dasarnya, dan untuk membuatnya lebih mudah, sistem operasi perlu tahu cara mengakses file pada perangkat itu.
mount
tidak hanya "memberi Anda akses ke file", ia memberi tahu OS sistem file yang dimiliki drive, jika itu hanya baca atau akses baca / tulis, dll./dev/cdrom
adalah perangkat tingkat rendah, fungsi sistem operasi tidak akan tahu cara mengaksesnya ... bayangkan Anda meletakkan cdrom yang diformat secara aneh di dalamnya (bahkan cd audio), bagaimana carals
mengetahui file mana (jika ada) yang ada di cd-rom tanpa "mount" terlebih dahulu?Perhatikan bahwa ini terjadi secara otomatis di banyak OS (bahkan Linux pada beberapa distribusi dan antarmuka grafis), tetapi itu tidak berarti OS lain tidak "memasang" drive.
sumber
Untuk konsistensi
Bayangkan Anda memiliki beberapa partisi pada hard drive pertama di sistem Anda. Sebagai contoh
/dev/sda2
,. Anda kemudian memutuskan bahwa drive tidak cukup besar sehingga Anda membeli yang kedua dan menambahkannya ke sistem. Tiba-tiba, itu menjadi/dev/sda
dan drive Anda saat ini menjadi/dev/sdb
. Partisi Anda sekarang/dev/sdb2
.Menggunakan sistem yang Anda usulkan, Anda harus mengubah semua skrip, aplikasi, pengaturan, dll. Yang mengakses data di partisi lama Anda untuk mencerminkan perubahan nama ini.
Namun, pemasangan memungkinkan Anda untuk tetap menggunakan titik pemasangan yang sama untuk drive yang diganti nama ini. Anda harus mengedit
/etc/fstab
untuk memberi tahu sistem Anda bahwa (misalnya)/media/backup
sekarang/dev/sdb2
sebagai gantinya, tetapi itu hanya satu pengeditan.Perhatikan bahwa sistem modern bahkan lebih mudah. Alih-alih merujuk perangkat sebagai
/dev/sda2
atau/dev/sdb2
, mereka memilikiUUIDS
, yang terlihat miripc5845b43-fe98-499a-bf31-4eccae14261b
atau dapat diberi label ramah sepertibackup
yang dapat digunakan untuk referensi perangkat saat pemasangan. Dengan cara ini, nama perangkat tidak berubah ketika menambahkan perangkat baru yang membuat administrasi lebih mudah:Untuk keamanan
Dengan mengharuskan perangkat untuk dipasang, administrator dapat mengontrol akses ke perangkat. Perangkat dapat dihapus saat dilepas, tetapi tidak saat digunakan (kecuali jika Anda ingin kehilangan data). Jika Anda (adalah) pengguna Windows, ingat ikon hijau kecil di area notifikasi yang memberi tahu Anda aman menghapus stik USB? Itu adalah pemasangan Windows dan pelepasan tongkat untuk Anda. Jadi prinsipnya bukan hanya Unix / Linux.
sumber
Saya menyebutnya alasan historis. Bukannya jawaban yang lain salah, tetapi ada sedikit lebih banyak dari cerita itu.
Bandingkan Windows: Windows dimulai sebagai satu-komputer, OS satu-pengguna. Komputer tunggal itu mungkin memiliki satu floppy drive dan satu hard drive, tidak ada koneksi jaringan, tidak ada USB, tidak ada apa-apa. (Windows 3.11 memiliki kemampuan jaringan asli; Windows 3.1 tidak .)
Pengaturan Windows yang dilahirkan begitu sederhana sehingga tidak perlu mewah: Hanya me-mount semuanya (semua dua perangkat) secara otomatis setiap kali, tidak ada (tidak) banyak hal yang bisa salah.
Sebaliknya, Unix dibuat untuk berjalan di jaringan server dengan banyak pengguna sejak awal.
Salah satu keputusan desain Unix adalah bahwa sistem file harus muncul sebagai entitas seragam tunggal untuk pengguna akhir, tidak peduli berapa banyak komputer disk fisik tersebar, tidak peduli apa jenis disk, dan tidak peduli yang mana dari puluhan komputer pengguna akan mengaksesnya dari. Jalur logis ke file pengguna akan tetap sama, bahkan jika lokasi fisik file-file tersebut telah berubah dalam semalam, misalnya karena pemeliharaan server.
Mereka mengabstraksi sistem file logis, jalur ke file, dari perangkat fisik yang menyimpan file-file itu. Katakanlah server A biasanya hosting / home, tetapi server A membutuhkan pemeliharaan: Hanya unmount server A dan mount server cadangan B on / home sebagai gantinya, dan tidak ada seorang pun selain dari administrator yang akan menyadarinya.
(Berbeda dengan konvensi Windows untuk memberikan nama yang berbeda untuk perangkat fisik yang berbeda - C :, D :, dll. - yang berfungsi melawan transparansi yang diperjuangkan Unix.)
Dalam pengaturan semacam itu, Anda tidak bisa hanya me-mount segala sesuatu yang terlihat mau tak mau,
Dalam jaringan besar, disk dan komputer terpisah tidak ada komisi. Administrator perlu kemampuan untuk mengatakan apa yang dipasang di mana dan kapan, misalnya untuk melakukan shutdown yang terkontrol dari satu komputer sementara komputer lain secara transparan mengambil alih hosting file yang sama.
Jadi itu sebabnya dari perspektif sejarah: Windows dan Unix berasal dari latar belakang yang berbeda. Anda bisa menyebutnya perbedaan budaya, jika Anda suka:
Baru-baru ini, OS telah bergerak lebih dekat satu sama lain:
Tetapi masih mudah untuk mengatakan bahwa keduanya adalah hasil dari tradisi yang berbeda.
sumber
Ada beberapa keuntungan dari pengaturan saat ini. Mereka dapat dikelompokkan ke dalam keuntungan dari memblokir file khusus dan keuntungan dari mountpoints.
File khusus adalah file yang mewakili perangkat. Salah satu Ide unix dibangun adalah segalanya adalah file. Ini membuat banyak hal sederhana, misalnya interaksi pengguna hanya membaca dan menulis file pada perangkat tty, yang merupakan file karakter khusus. juga memeriksa blok buruk, mempartisi atau memformat disk hanyalah operasi file. Itu tidak mater jika disk adalah mfm, ide, scsi, fiberchanel, atau sesuatu yang lain itu hanya sebuah file.
Tetapi di sisi lain Anda mungkin tidak ingin berurusan dengan seluruh disk atau partisi hanya file, dan dalam banyak kasus lebih banyak file daripada yang akan muat pada disk. Jadi kita punya mountpoints. Mountpoint memungkinkan Anda untuk meletakkan seluruh disk (atau partisi) pada direktori. Kembali di masa Slackware saya ketika hard disk berukuran baik adalah beberapa ratus MB, itu umum untuk menggunakan CD sebagai / usr dan hard disk untuk /, / usr / local, dan swap. Atau Anda bisa meletakkan / di satu drive dan / home di drive lain.
Sekarang saya perhatikan bahwa Anda menyebutkan memasang CD di / media / cdrom, yang berguna untuk komputer dengan hanya satu drive cdrom, tetapi bagaimana jika Anda memiliki lebih dari satu? di mana Anda harus me-mount yang kedua? atau yang ketiga? atau kelima belas? Anda tentu bisa menggunakan / media / cdrom2, dll. Atau Anda bisa memasangnya di / src / samba / resources / windows-install, atau / var / www, atau di mana pun masuk akal untuk melakukannya.
sumber
mount
, dan hanya berinteraksi/dev/cd0, /dev/cd2, /dev/sda1, /dev/sda2
secara langsung - masing-masing sudah memiliki semacam 'direktori' yang ditunjuk.dd if=/file of=/dev/sda2 bs=4096 skip=382765832 count=84756
apalagi pembaruan inode / FAT / jurnal terkait.Judul pertanyaan bertanya: Mengapa kita perlu me-mount di Linux?
Salah satu cara untuk menafsirkan pertanyaan ini: Mengapa kita perlu mengeluarkan
mount
perintah eksplisit untuk membuat sistem file tersedia di Linux?Jawabannya: kita tidak.
Anda tidak perlu me-mount sistem file secara eksplisit, Anda dapat mengaturnya agar dilakukan secara otomatis, dan distribusi Linux sudah melakukan ini untuk sebagian besar perangkat, seperti halnya Windows dan Mac.
Jadi itu mungkin bukan yang ingin Anda tanyakan.
Interpretasi kedua: Mengapa kita terkadang perlu mengeluarkan
mount
perintah eksplisit untuk membuat sistem file tersedia di Linux? Mengapa tidak membuat sistem operasi selalu melakukannya untuk kita, dan menyembunyikannya dari pengguna?Ini adalah pertanyaan yang saya baca di teks pertanyaan, ketika Anda bertanya:
Mengapa tidak melewati pemasangan sama sekali, dan lakukan hal berikut
dan sudahkah isi CD-ROM terdaftar?
Mungkin, maksud Anda: mengapa tidak minta perintah itu melakukan apa
lakukan sekarang?
Nah, dalam hal ini,
/dev/cdrom
akan menjadi pohon direktori, bukan file perangkat. Jadi pertanyaan sebenarnya Anda tampaknya: mengapa memiliki file perangkat di tempat pertama?Saya ingin menambahkan jawaban ke yang sudah diberikan.
Mengapa pengguna bisa melihat file perangkat?
Setiap kali Anda menggunakan CD-ROM, atau perangkat lain yang menyimpan file, perangkat lunak digunakan yang menafsirkan apa pun yang ada di CD-ROM Anda sebagai pohon direktori file. Itu dipanggil setiap kali Anda menggunakan
ls
atau segala jenis perintah atau aplikasi yang mengakses file pada CD-ROM Anda. Perangkat lunak itu adalah driver sistem file untuk sistem file tertentu yang digunakan untuk menulis file ke CD-ROM Anda. Setiap kali Anda mendaftar, membaca atau menulis file pada sistem file, itu tugas perangkat lunak itu untuk memastikan bahwa operasi membaca dan menulis tingkat rendah yang sesuai dilakukan pada perangkat yang bersangkutan. Setiap kali Andamount
menggunakan sistem file, Anda memberi tahu sistem driver sistem file mana yang akan digunakan untuk perangkat. Apakah Anda melakukan ini secara eksplisit dengan amount
perintah, atau biarkan ke OS untuk dilakukan secara otomatis, itu perlu dilakukan, dan tentu saja perangkat lunak driver sistem file harus ada di sana di tempat pertama.Bagaimana driver sistem file melakukan tugasnya? Jawabannya: ia melakukannya dengan membaca dari dan menulis ke file perangkat. Mengapa? Jawabannya, seperti yang sudah Anda nyatakan: Unix dirancang dengan cara ini. Di Unix, file perangkat adalah abstraksi tingkat rendah yang umum untuk perangkat. Perangkat lunak khusus perangkat (driver perangkat) untuk perangkat tertentu seharusnya menerapkan pembukaan, penutupan, pembacaan, dan penulisan pada perangkat sebagai operasi pada file perangkat. Dengan begitu, perangkat lunak tingkat tinggi (seperti driver sistem file) tidak perlu tahu banyak tentang cara kerja internal masing-masing perangkat. Driver perangkat level rendah dan driver sistem file dapat ditulis secara terpisah, oleh orang yang berbeda, selama mereka sepakat tentang cara umum untuk berinteraksi satu sama lain, dan itulah gunanya file perangkat.
Jadi driver sistem file memerlukan file perangkat.
Tapi mengapa kita, pengguna biasa, bisa melihat file perangkat? Jawabannya adalah bahwa Unix dirancang untuk digunakan oleh pemrogram sistem operasi. Itu dirancang untuk memungkinkan penggunanya untuk menulis driver perangkat dan driver sistem file. Sebenarnya itulah cara mereka ditulis.
Hal yang sama berlaku untuk Linux: Anda dapat menulis driver sistem file Anda sendiri (atau driver perangkat), menginstalnya, dan kemudian menggunakannya. Itu membuat Linux (atau varian Unix lainnya) mudah diperpanjang (dan inilah alasan mengapa Linux dimulai): ketika beberapa perangkat keras baru hadir di pasaran, atau cara baru yang lebih cerdas untuk mengimplementasikan sistem file dirancang. , seseorang dapat menulis kode untuk mendukungnya, membuatnya berfungsi, dan berkontribusi ke Linux.
File perangkat membuat ini lebih mudah.
sumber
Banyak mesin database dapat bekerja secara langsung dengan disk atau partisi mentah. Sebagai contoh, MySQL:
http://dev.mysql.com/doc/refman/5.7/en/innodb-raw-devices.html
Ini menghindari overhead melalui driver filesystem, ketika semua mesin DB benar-benar membutuhkan adalah satu file besar yang mengisi disk.
sumber
Karena
/dev/cdrom
merupakan perangkat, sedangkan/media/cdrom
adalah filesystem . Anda harus memasang yang pertama pada yang terakhir untuk mengakses file pada CD-ROM.Sistem operasi Anda sudah secara otomatis memasang sistem file root dan pengguna dari perangkat hard disk fisik Anda, ketika Anda mem-boot komputer Anda. Ini hanya menambahkan lebih banyak sistem file untuk digunakan.
Semua sistem operasi melakukan ini - namun, beberapa (seperti Windows, ketika CD-ROM dipasang ke
D:
) melakukannya secara transparan. Linux menyerahkannya kepada Anda sehingga Anda memiliki kontrol yang lebih besar atas prosesnya.sumber
/dev/cdrom
adalah file perangkat (yang memiliki kemampuan khusus yang memungkinkan kita untuk dengan mudah berkomunikasi dari / ke perangkat terkait)./media/cdrom
adalah direktori, tetapi pada dasarnya itu adalah file lain (ingat, semuanya adalah file di Linux, termasuk direktori). Sekarang, ketika kitamount
akhirnya memiliki kemampuan khusus untuk melihat konten file perangkat sebagai sistem file. Pemahaman saya tentang kalimat terakhir adalah dari membaca jawaban di atas.Itu terjadi karena ada, dengan banyak media untuk desktop dan laptop UI, ambiguitas tentang apa yang harus dilakukan ketika media dimasukkan, karena intuisi pengguna adalah bahwa memasukkan disk ke dalam kotak fisik yang dengannya pengguna berinteraksi tidak berbeda dengan, katakanlah , memasukkannya ke perangkat di sebelah komputer yang memiliki koneksi jaringan.
Jadi dalam arti mendasar, UI untuk media perlu memperlakukan dua jenis peristiwa pemasangan potensial yang serupa, dan tidak ada cara yang baik bagi komputer untuk menangani pemasangan jaringan dengan cara yang intuitif seperti yang dapat dilakukan untuk pemasangan jaringan dengan UI lain ke komputer, seperti smartphone, tablet, dan komputer yang dapat dipakai, yang tidak memiliki kemungkinan memasukkan media fisik ke dalam perangkat. (Perhatikan betapa mengerikannya antarmuka iPhone untuk berpindah kartu SIM, satu-satunya jenis media fisik yang dimasukkan perangkat iOS ke dalamnya.
Perhatikan juga bahwa pendekatan populer lainnya untuk UI untuk jenis kotak fisik ini (misalnya, Windows 98, Windows 8, Mac OS X v10.2 (Jaguar), dan Mac OS X v10.9 (Mavericks)) mengalami masalah yang sama , dan gunakan dialog GUI tambahan untuk memilah-milah potensi kebingungan (misalnya, Windows 8 biasanya dikonfigurasikan untuk meminta setiap CD baru yang dimasukkan apakah harus dipasang sebagai sistem file, media musik, atau jika perlu, koleksi video MP4 ). Tidak ada alasan mengapa dialog pengguna ini tidak dapat digunakan dengan Linux atau UNIX lainnya.
sumber