Mengapa sistem file Linux dirancang sebagai pohon direktori tunggal?

91

Adakah yang bisa menjelaskan mengapa Linux dirancang sebagai pohon direktori tunggal?

Sedangkan di Windows kita dapat memiliki beberapa drive seperti C:\, dan D:\, ada satu root di Unix. Adakah alasan khusus di sana?

pengguna2720323
sumber
14
@terdon - Saya pikir dia bertanya tentang memiliki direktori root tunggal (/) vs. gaya DOS (C: \ D: \).
jordanm
27
Anda dapat (dan biasanya) memiliki banyak drive di Linux juga. Faktanya, prinsip dasarnya sama, C:dan D:me-mount poin di Windows juga. Setara dengan Windows /adalah My Computer, semuanya terpasang di bawah itu.
terdon
61
Saya pikir pertanyaan yang lebih relevan adalah "mengapa sistem operasi TIDAK memiliki satu root"? (Jawaban untuk DOS / Windows adalah kesalahan desain / kegagalan untuk merencanakan masa depan / asumsi yang tidak perlu)
JoelFan
21
Windows memilih sistem aneh itu karena MS-DOS sebelum itu, dan MS-DOS mengikuti preseden awal yang ditetapkan oleh CP / M. MS-DOS adalah sistem berbasis floppy drive (A: dan B: awalnya, kadang-kadang misalnya, pada sistem drive tunggal, A: dan B: adalah drive yang sama, tetapi dua disk logis yang berbeda untuk keperluan operasi swap / copy) . Seperti kebanyakan orang yang dirusak oleh PC MS-DOS, OP berpikir bahwa /di Linux sama dengan C: di MSDOS / Windows, padahal sebenarnya tidak sama.
Warren P
25
Sebenarnya, C:, D:dan hal-hal hanya kompatibilitas dengan DOS dan Win32; Windows NT secara internal memiliki hierarki objek yang agak seperti UNIX, jika huruf drive (dan secara umum Win32) hanyalah tautan simbolis ke objek "nyata" ( c:\file.txtsebenarnya \??\c:\file.txt, dengan \??\c:menjadi symlink ke eg \device\harddisk0\partition1). Lihat misalnya di sini
Matteo Italia

Jawaban:

192

Karena sistem file Unix telah mendahului Windows selama bertahun-tahun, orang dapat mengubah pertanyaannya menjadi "mengapa Windows menggunakan penunjuk yang terpisah untuk setiap perangkat?".

Sistem file hierarkis memiliki keuntungan bahwa setiap file atau direktori dapat ditemukan sebagai anak dari direktori root. Jika Anda perlu memindahkan data ke perangkat baru atau perangkat jaringan, lokasi dalam sistem file dapat tetap sama dan aplikasi tidak akan melihat perbedaannya.

Misalkan Anda memiliki sistem di mana OS statis dan ada aplikasi yang memiliki persyaratan I / O tinggi. Anda dapat me-mount / usr hanya-baca dan meletakkan / memilih (jika aplikasi ada di sana) ke drive SSD. Hirarki sistem file tidak berubah. Di bawah Windows ini jauh lebih sulit, terutama dengan aplikasi yang bersikeras hidup di bawah C: \ Program Files \

selesai24
sumber
27
Dan pertanyaan (retoris) itu memang memiliki jawaban: tradisi. Hanya tradisi yang berbeda dari Unix. Windows mendapatkannya dari DOS, yang mendapatkannya dari CP / M-80, yang mengikuti pola umum banyak komputer mini dan sistem operasi mainframe. Nama drive baru saja disingkat dari DISK0:atau SY:ke A:.
RBerteig
6
@RBerteig - mungkin tradisi, terutama dalam kasus Windows, tetapi Rob Pike menyajikan argumen yang cukup meyakinkan untuk skema penamaan gaya Unix di The Hideous Name, pdos.csail.mit.edu/~rsc/pike85hideous.pdf
Bruce Ediger
13
Sejak Windows NT, saya percaya, adalah mungkin untuk memasang perangkat di jalur virtual yang diberikan pada Windows untuk mencapai hal yang sama persis seperti Unix, meskipun jarang pada PC rumahan (agak lebih umum pada server dan penyebaran bisnis). Anda dapat memilih untuk melihat ini sebagai pembenaran dari Unix Way (tm), jika Anda mau.
JSB ձոգչ
8
@BruceEdiger Saya tidak akan mencoba untuk berdebat bahwa DOS itu benar. Hanya menunjukkan bahwa ada konteks mengapa Windows seperti itu, dan bahwa itu bukan hanya sesuatu yang ditarik MS dari topi.
RBerteig
1
@BruceEdiger: Wow. Kertas bagus. Ini juga salah satu dari beberapa kali saya melihat Pike salah tentang sesuatu. (Yaitu bahwa sistem penyajian nama ARPANET tidak dapat menskala. Saat ini kami menyebutnya DNS, dan telah menskala dengan cukup baik. Konsep inti ruang hirarki absolut dengan otoritas dan delegasi tetap sama sekali tidak berubah). Memang ini karena jaringan non-IP yang relevan dengan email telah mati.
Kevin Cathcart
87

Ini sebagian karena alasan historis, dan sebagian karena lebih masuk akal dengan cara ini.

Multics

Multics adalah sistem operasi pertama yang memperkenalkan sistem file hirarkis seperti yang kita kenal sekarang, dengan direktori yang dapat berisi direktori. Mengutip "Sistem File Tujuan Umum Untuk Penyimpanan Sekunder" oleh RC Daley dan PG Neumann:

Bagian 2 dari makalah ini menyajikan struktur hirarkis file, yang memungkinkan penggunaan sistem yang fleksibel. Struktur ini mengandung kemampuan yang cukup untuk memastikan fleksibilitas. (...)

Untuk memudahkan pemahaman, struktur file dapat dianggap sebagai pohon file, beberapa di antaranya adalah direktori. Yaitu, dengan satu pengecualian, setiap file (misalnya, setiap direktori) menemukan dirinya langsung menunjuk ke tepat dengan satu cabang di persis satu direktori. Pengecualian adalah direktori root, atau root, di root tree. Meskipun tidak secara eksplisit menunjuk dari direktori mana pun, root secara implisit ditunjuk oleh cabang fiktif yang dikenal dengan sistem file. (...)

Pada suatu saat, pengguna dianggap beroperasi di suatu direktori, yang disebut direktori kerjanya. Ia dapat mengakses file yang secara efektif ditunjukkan oleh entri di direktori kerjanya hanya dengan menentukan nama entri. Lebih dari satu pengguna dapat memiliki direktori kerja yang sama sekaligus.

Seperti dalam banyak aspek lain, Multics mencari fleksibilitas. Pengguna dapat bekerja di subtree dari sistem file dan mengabaikan sisanya, dan masih mendapat manfaat dari direktori untuk mengatur file mereka. Direktori juga digunakan untuk kontrol akses - atribut BACA memungkinkan pengguna untuk membuat daftar file dalam direktori, dan atribut EXECUTE memungkinkan pengguna untuk mengakses file dalam direktori itu (ini, seperti banyak fitur lainnya, hidup dalam unix).

Multics juga mengikuti prinsip memiliki kumpulan penyimpanan tunggal. Makalah ini tidak membahas aspek ini. Satu kumpulan penyimpanan cocok dengan perangkat keras saat itu: tidak ada perangkat penyimpanan yang dapat dilepas, setidaknya tidak ada yang dipedulikan pengguna. Multics memang memiliki kumpulan penyimpanan cadangan yang terpisah, tetapi ini transparan bagi pengguna.

Unix

Unix mengambil banyak inspirasi dari Multics, tetapi ditujukan untuk kesederhanaan sedangkan Multics bertujuan untuk fleksibilitas.

Sistem file hierarkis tunggal sangat cocok untuk Unix. Seperti halnya Multics, kumpulan penyimpanan biasanya tidak relevan bagi pengguna. Namun, ada perangkat yang dapat dilepas, dan Unix memang mengekspos mereka kepada pengguna, melalui perintah mountdan umount(disediakan untuk "pengguna super", yaitu administrator). Dalam “Sistem Berbagi Waktu UNIX” , Dennis Ritchie dan Ken Thompson menjelaskan:

Meskipun root dari sistem file selalu disimpan di perangkat yang sama, tidak perlu seluruh hierarki sistem file berada di perangkat ini. Ada permintaan sistem mount dengan dua argumen: nama file biasa yang ada, dan nama file khusus yang volume penyimpanan terkait (misalnya, paket disk) harus memiliki struktur sistem file independen yang berisi hierarki direktori sendiri . Efek mount adalah menyebabkan referensi ke file biasa sebelum ini untuk merujuk sebagai gantinya ke direktori root dari sistem file pada volume yang dapat dilepas. Akibatnya, mount menggantikan daun hierarki pohon (file biasa) dengan subtree yang sama sekali baru (hierarki yang disimpan pada volume yang dapat dilepas). Setelah mount, hampir tidak ada perbedaan antara file pada volume yang dapat dilepas dan yang ada di sistem file permanen. Dalam instalasi kami, misalnya, direktori root berada di partisi kecil dari salah satu drive disk kami, sedangkan drive lain, yang berisi file-file pengguna, dipasang oleh urutan inisialisasi sistem. Sistem file mountable dihasilkan dengan menulis pada file khusus yang sesuai. Program utilitas tersedia untuk membuat sistem file kosong, atau seseorang dapat dengan mudah menyalin sistem file yang ada.

Sistem file hierarkis juga memiliki keuntungan berkonsentrasi kompleksitas mengelola beberapa perangkat penyimpanan ke dalam kernel. Ini berarti bahwa kernel lebih kompleks, tetapi semua aplikasi lebih sederhana sebagai hasilnya. Karena kernel harus peduli dengan perangkat keras tetapi kebanyakan aplikasi tidak, ini adalah desain yang lebih alami.

Windows

Windows melacak leluhurnya kembali ke dua garis keturunan: VMS , sistem operasi yang awalnya dirancang untuk komputer mini VAX , dan CP / M , sistem operasi yang dirancang untuk mikrokomputer Intel awal.

VMS memiliki sistem file hirarkis terdistribusi, File-11 . Dalam Files-11, path lengkap ke file berisi nama node, penunjukan akun pada node itu, nama perangkat, path tree direktori, nama file, tipe file, dan nomor versi. VMS memiliki fitur nama logis yang kuat yang memungkinkan pintasan untuk didefinisikan ke direktori tertentu, sehingga pengguna jarang harus peduli dengan lokasi "nyata" direktori.

CP / M dirancang untuk komputer dengan 64kB RAM dan floppy drive, jadi mudah saja. Tidak ada direktori, tetapi referensi file dapat menyertakan indikasi drive ( A:atau B:).

Ketika MS-DOS 2.0 memperkenalkan direktori, ia melakukannya dengan sintaks yang kompatibel dengan MS-DOS 1 yang dengan sendirinya mengikuti CP / M. Jadi jalur di-root pada drive dengan nama huruf tunggal. (Juga, karakter slash /digunakan dalam VMS dan CP / M untuk memulai opsi baris perintah, jadi karakter yang berbeda harus digunakan sebagai pemisah direktori. Inilah sebabnya mengapa DOS dan kemudian Windows menggunakan backslash, meskipun beberapa komponen internal juga mendukung slash ).

Windows mempertahankan kompatibilitas dengan pendekatan DOS dan VMS, sehingga ia mempertahankan gagasan huruf drive bahkan ketika mereka menjadi kurang relevan. Hari ini, di bawah tenda, Windows menggunakan jalur UNC ( awalnya dikembangkan oleh Microsoft dan IBM untuk OS / 2 , keturunan terkait). Meskipun ini dicadangkan untuk pengguna listrik (mungkin karena beratnya sejarah), Windows memang memungkinkan pemasangan melalui titik-titik yang berulang .

Gilles
sumber
3
Meskipun itu bukan perilaku default, dengan sistem file NTFS Windows juga dapat me-mount semua penyimpanan Anda di bawah satu root: technet.microsoft.com/en-us/library/cc753321.aspx howtogeek.com/98195/… serverfault.com/questions / 24400 / ...
gerlos
3
Tampaknya bagian yang relevan adalah bahwa MS-DOS 1.0 berbasis floppy. Pada sistem seperti itu, (a) penting untuk mengetahui di mana disk fisik file Anda berada, dan (b) A:dan B:merupakan konvensi yang layak untuk membedakan antara floppy drive Anda jika Anda memiliki dua di antaranya. Ketika dukungan hard drive ditambahkan dalam MS-DOS 2.0, C:penunjukan drive memungkinkan kompatibilitas dengan memperlakukan HD sebagai satu floppy BESAR.
user1024
5
Sebenarnya, pada awalnya CP / M dirancang untuk berjalan pada 16 , bukan 64, KB dari RAM. Angka 64 KB mungkin untuk memungkinkan aplikasi beberapa ruang bernapas; sementara prosesor perintah (CCP) ditimpa dan dimuat kembali jika perlu, BIOS dan BDOS adalah memori yang tetap setiap saat. Yap, dari situlah BIOS berasal - IBM tidak datang dengan istilah itu! Lihat Wikipedia CP / M: Model perangkat keras dan Komponen sistem operasi . Perlu diingat bahwa 16 KB hanya sekitar tiga halaman yang ditulis dengan padat (70 baris × 80 karakter / baris × 3 halaman = 16800 byte).
CVn
36

Tidak ada masalah keamanan di balik memiliki pohon direktori tunggal.

Orang-orang yang merancang Unix memiliki banyak pengalaman dengan sistem operasi yang mengharuskan pengguna untuk mengetahui perangkat fisik apa yang mengandung sumber daya yang diberikan. Karena bagian dari tujuan sistem operasi adalah untuk membuat mesin abstrak di atas perangkat keras yang nyata, mereka pikir itu jauh lebih mudah untuk membuang sumber daya pengalamatan dengan lokasi fisik mereka dan memutuskan untuk memasukkan semuanya ke dalam satu pohon nama.

Ini hanya satu bagian dari kejeniusan di balik desain Unix .

msw
sumber
28

Perhatikan bahwa nama huruf drive dari MS-DOS yang bertahan ke Windows modern adalah herring merah di sini. Nama huruf drive bukan representasi terbaik dari struktur sistem file yang memiliki banyak akar. Mereka adalah pelaksana implementasi sistem semacam itu.

Filesystem yang diimplementasikan dengan benar yang mendukung banyak root akan memungkinkan penamaan sewenang-wenang untuk volume, seperti dvdrom:/path/to/file.avi. Sistem seperti itu akan menyingkirkan masalah antarmuka pengguna yang menggelikan yang mengganggu Windows. Misalnya, jika Anda mencolokkan perangkat seperti kamera, Windows Explorer UI membuat Anda percaya bahwa ada perangkat yang disebut Kamera (atau apa pun), dan Anda memiliki jalur seperti Computer\Camera\DCIM\.... Namun, jika Anda memotong dan menempel versi tekstual dari path ini keluar dari Explorer, itu sebenarnya tidak berfungsi karena beberapa komponen pathname adalah fiksi antarmuka pengguna, tidak diketahui oleh OS yang mendasarinya. DALAM sistem yang diimplementasikan dengan baik dengan banyak root, akan baik-baik saja: akan ada acamera:\DCIM\...jalur yang diakui secara seragam di setiap tingkat dalam sistem. Selain itu, jika Anda melakukan porting pada hard drive lama dari PC LAMA, Anda tidak akan terjebak dengan beberapa nama huruf drive F:, tetapi Anda akan dapat menamainya apa pun yang Anda inginkan old-disk:.

Jadi, jika Unix memang memiliki banyak root dalam struktur sistem file, itu akan dilakukan secara waras seperti ini, dan tidak seperti di MS-DOS dan Windows dengan nama drive satu huruf. Dengan kata lain, mari kita bandingkan skema Unix dengan desain multi-root yang bagus.

Jadi, mengapa Unix tidak memiliki implementasi multi-root yang waras, yang mendukung implementasi one-root yang waras? Mungkin hanya untuk kesederhanaan. Mount points menyediakan semua fungsionalitas untuk dapat mengakses volume melalui nama. Tidak perlu memperluas namespace dengan sintaks awalan tambahan.

Secara matematis, setiap grafik pohon disjoint ("hutan") dapat digabungkan dengan menambahkan simpul akar dan membuat potongan disjoint menjadi anak-anaknya.

Selain itu, lebih fleksibel bahwa volume tidak harus berada di level root. Karena tidak ada sintaks khusus yang menunjukkan volume (itu hanya komponen jalur), mount poin bisa di mana saja. Jika Anda membawa tiga disk lama ke mesin Anda, Anda dapat memiliki mereka sebagai /old-disk/one, /old-disk/two, dll Anda dapat mengatur disk namun Anda inginkan, cara Anda mengatur file dan direktori.

Aplikasi dapat ditulis yang bergantung pada jalur, dan validitas jalur dapat dipertahankan ketika perangkat penyimpanan dikonfigurasi ulang. Misalnya, aplikasi dapat menggunakan jalur terkenal seperti /var/logdan /var/lib. Terserah Anda apakah /var/logdan /var/libberada di volume disk yang sama atau yang terpisah. Anda dapat memigrasi sistem ke topologi penyimpanan baru, sambil mempertahankan jalurnya.

Mount point adalah ide yang bagus, itulah mengapa Windows telah memilikinya sejak sekitar Windows 2000.

Volume mount point kuat terhadap perubahan sistem yang terjadi ketika perangkat ditambahkan atau dihapus dari komputer. Microsoft Technet

Kaz
sumber
6
Mungkin secara kebetulan, "desain multi-root bagus" Anda terdengar sangat mirip dengan sistem AmigaDOS lama , yang memungkinkan nama volume sewenang-wenang, termasuk volume "yang diberikan" yang merujuk ke direktori tertentu di dalam volume lain. Anda bahkan dapat (dengan perangkat lunak yang sesuai ) memiliki volume "virtual" seperti, katakanlah, FTP:volume yang memungkinkan Anda untuk mengakses file di server FTP apa pun dengan jalur seperti FTP:hostname/path/to/file.
Ilmari Karonen
3
Ini sebenarnya bukan jawaban yang baik karena tampaknya sangat subyektif. Ini bashing Windows yang cukup terang.
Rig
3
@Rig Meskipun itu mungkin benar, Windows pantas melakukan bashing secara menyeluruh karena masih memiliki nama-nama huruf drive ini, yang berasal dari MS-DOS. Ini adalah sistem file multi-root yang akrab dengan sebagian besar pengguna, namun kami tidak dapat benar-benar menggunakannya untuk tujuan perbandingan dengan root-tunggal, karena ini adalah contoh sederhana dari sistem semacam itu.
Kaz
3
@ Ka, saya masih menemukan jawaban ini lebih sebagai kata-kata kasar. Windows membuat sistem file berbeda tetapi tidak membuatnya salah, mengerikan, atau kejahatan terhadap kemanusiaan. Anda tidak menyukainya karena Anda berhak. Microsoft bahkan tidak membuat skema ini, mereka meminjamnya dari sistem yang populer saat itu, tetapi mereka harus memeliharanya untuk pemeliharaan yang wajar dengan kode warisan.
Rig
1
@Rig Tentu; itu tidak lebih buruk daripada, katakanlah, mendapatkan makan malam Anda berikutnya dengan panah batu. Panah Flint sebenarnya canggih di masa jayanya . Ah, tapi oops, kita tidak bisa mengatakan itu tentang DOS dan huruf drive, bisakah kita ... begitu banyak analoginya.
Kaz
13

* Nix dan Windows memasang drive mereka. Di Windows ini secara otomatis dipasang di mount point yang, secara default, dalam urutan abjad. Standarnya adalah:

  • A:dan B:=> disket
  • C: => partisi pertama dari hard drive pertama
  • D: => partisi berikutnya atau hard drive berikutnya atau drive CD / DVD jika tidak ada partisi lain.

Masing-masing titik pemasangan ini adalah direktori.

Di * nix, titik pemasangan ditentukan oleh pengguna. Sebagai contoh, saya memiliki satu partisi yang dipasang sebagai /, dan yang lain sebagai /home. Jadi, /homeadalah drive terpisah, itu akan menjadi setara dengan katakanlah E:pada Windows.

Dalam kedua kasus, Windows dan * nix, mount point adalah direktori yang terpisah. Satu-satunya perbedaan adalah bahwa di * nix, direktori terpisah ini adalah sub-direktori /, C:sementara di Windows, setiap titik pemasangan dipasang langsung di bawah /, My Computerkatakanlah.

Dari perspektif pengguna, keuntungan utama adalah bahwa tunggangan benar-benar transparan. Saya tidak perlu tahu bahwa direktori /homesebenarnya berada di partisi yang terpisah. Saya hanya bisa menggunakannya sebagai direktori normal. Sebagai gantinya, dalam DOS, saya harus secara eksplisit menyebutnya dengan nama mount point, katakanlahE:\home

Drive eksternal dipasang dengan cara yang hampir sama di kedua sistem. Katakan D:untuk Windows dan /mnt/cdromuntuk Linux. Masing-masing adalah direktori, saya tidak benar-benar melihat perbedaannya. Ketika Anda meletakkan CDROM ke drive Anda di bawah Windows, disk sudah terpasang D:seperti di Linux.

terdon
sumber
3
Karena penasaran, tahukah Anda apa yang akan terjadi jika seseorang ingin membuat 27 drive di Windows? Apa yang akan Windows sebut sebagai drive ke-27? : D
Joseph R.
2
Ha ha ha. Sepertinya Windows terlalu membosankan untuk melakukan itu.
Joseph R.
3
Minor nitpick: huruf drive di Windows default untuk urutan abjad naik, tetapi mereka bisa dan sering diganti nama.
RBerteig
3
@terdon: dia hanya akan memasang drive di dalam direktori - persis seperti yang Anda lakukan di POSIX OS.
Matteo Italia
3
@ JosephephR: Pada titik tertentu - Saya tidak yakin kapan, tapi mungkin NT - Windows memperoleh kemampuan untuk memasang drive di direktori, seperti halnya Unix. Secara default, tidak ada yang benar-benar melakukan ini (yang mengejutkan saya: dengan frekuensi menginstal ulang nuke-and-pave, saya akan berpikir sesuatu yang analog dengan menempatkan / rumah pada volume yang terpisah akan menjadi populer sekarang). Namun, jika Anda kehabisan huruf drive / angka / simbol, inilah yang harus Anda lakukan jika Anda ingin menambahkan lebih banyak drive ke sistem.
The Spooniest
10

Saya setuju dengan jawaban di atas, terutama jawaban Doug O'Neal, tetapi saya pikir mereka semua kehilangan sedikit, seperti halnya perangkat eksplisit me-mount poin seperti MS-DOS "C:" atau "A:".

Rob Pike menulis The Hideous Name tentang sintaksis nama, tetapi Russ Cox merebusnya :

Ruang nama ... paling kuat ketika semantik baru dapat ditambahkan tanpa menambahkan sintaks baru.

Satu ruang nama tempat perangkat dapat dipasang secara sewenang-wenang memungkinkan operasi yang sangat fleksibel. Saya secara teratur menggunakan /mnt/sdb1dan /mnt/cdromuntuk sementara menempatkan disk atau CD yang saat ini tidak digunakan ke dalam sistem file keseluruhan. Sama sekali tidak umum untuk memiliki direktori home di server NFS, sehingga tidak peduli mesin apa yang Anda masuki, Anda mendapatkan yang sama di $HOMEmana-mana.

Yang terjadi adalah: memiliki sintaks khusus untuk hal-hal khusus memberikan batasan pasti pada apa yang dapat Anda lakukan. Jika Anda hanya dapat memasang disk atau CD atau DVD yang tidak digunakan, atau sistem file jaringan / "bagikan" pada "E:" atau "W:" atau apa pun, Anda memiliki fleksibilitas yang jauh lebih sedikit.

Bruce Ediger
sumber
1
Anda tidak benar-benar membutuhkan symlink untuk itu. Anda dapat langsung me-mount partisi (atau penyimpanan jaringan atau apa pun) di jalur apa pun, seperti / usr / local - meskipun itu selalu membingungkan saya ketika saya menemukan jaringan di mana / usr / local menunjuk ke mount jaringan. Ya, mereka memang ada dan ada beberapa alasan untuk melakukannya: / usr / local adalah salah satu tempat standar untuk admin Anda untuk menempatkan barang bukan dari distributor OS.
Christopher Creutzig
@Christopher Creutzig - setuju, tautan simbolis tidak diperlukan untuk contoh saya, saya hanya ingin memberikan contoh lain tentang bagaimana skema penamaan yang fleksibel dapat bekerja untuk Anda. Itu mungkin bukan contoh terbaik.
Bruce Ediger
Lihatlah web bodoh itu. proto://specifichost.domain.tld/topleveldir/middle/specificdoc.html.
Kaz
2
@Christopher Creutzig - Saya telah mengatur / usr / local sebagai drive jaringan di beberapa tempat. "local" berarti lokal ke situs, bukan ke mesin.
selesai24
3
@ Ka, saya pikir proto://bisnis adalah kebutuhan pragmatis. Setiap bagian dari perangkat lunak tidak dapat diharapkan untuk mengetahui tentang semua skema URI di luar sana. Dengan demikian dapat membantu untuk mengetahui kapan ID skema berakhir, dan sisa URI dimulai.
Adrian Ratnapala
5

Ini konyol. Windows juga memiliki titik hierarki tunggal. Tapi itu tersembunyi dan tidak standar. Seperti kebanyakan hal windows.

Dalam hal ini, itu adalah konsep "My Computer". Itu setara dengan root (/) di Unix. Ingat bahwa root adalah konsep yang ada di kernel. kamu suka atau tidak. Sama seperti windows memperlakukan "My Computer". tentu saja, Anda dapat memasang partisi pada root di unix, dan itulah yang dilakukan kebanyakan orang. Dan banyak hal akan melihat jalur khusus untuk hal-hal (misalnya / etc /) tetapi Anda tidak dibatasi olehnya. Dengan segala cara, pasang drive Anda di / C: /. Anda tidak dilarang melakukan itu di unix.

C: \ bukan root di windows, itu adalah titik mount dari satu partisi. Yang HARUS di tingkat atas "My Computer". Sementara di unix Anda dapat memasang partisi di bawah pohon lain. Jadi linux Anda dapat memiliki C: terpasang /sementara Anda memiliki D: dipasang di /mnt/d/... atau bahkan juga dipasang di /tapi itu rumit dan tergantung pada bagaimana dua sistem file berperilaku saat pemasangan di atas jalur yang sudah terpasang.

Jadi Anda bisa mendapatkan yang sama persis seperti yang Anda miliki dengan windows dengan "memaksa" diri Anda untuk mengikuti batasan yang sama yang diterapkan windows secara acak pada Anda.

/ (treat this as "My Computer")
/c/ (mount your first data partition here)
/d/ (mount your second data partition here)

Maka Anda harus melewati opsi mount pada opsi boot. karena Anda tidak akan memiliki / etc / ... tapi itu juga mensimulasikan pembatasan yang diberlakukan windows, seperti yang dilakukannya.

gcb
sumber
4
Windows memang memiliki hierarki tunggal di bawah tenda, dan bahkan memiliki titik pemasangan, tetapi tidak menggunakannya secara default.
Gilles
1
@Gilles tidak yakin saya mengerti. Bagaimana cara melampirkan setiap driver ke simpul root "My Computer" tidak menggunakannya secara default?
gcb
5
Itu hanya presentasi GUI. Jalur file tidak digunakan My Computer.
Gilles
3
My Computeradalah simpul akar dari hierarki Shell. itu berisi drive, jika mereka memiliki huruf drive , tetapi juga panel kontrol dan Windows Phone yang terhubung. Hirarki Shell menggunakan PIDL sebagai ganti jalur.
MSalters
4
@ gcb: intinya adalah bahwa hierarki shell tidak dapat langsung digunakan dalam aplikasi "normal". Anda tidak dapat memanggil CreateFilelewat "Komputer Saya" atau folder shell lainnya; ini adalah abstraksi yang hanya dipahami oleh kode yang berhubungan dengan shell, semua panggilan kernel (dan dengan demikian 90% aplikasi, karena manajemen file dalam sebagian besar bahasa diimplementasikan dalam hal API file kernel) tidak tahu apa-apa tentang hal ini. Folder shell hanya dapat digunakan ketika program menggunakan "dialog standar" (yang memahami ruang nama shell) dan hanya ketika file yang dipilih langsung memetakan ke jalur "nyata" (= dipahami kernel).
Matteo Italia
5

Alasan Windows memiliki huruf drive mungkin lebih jauh dari Microsoft dan DOS. Menugaskan surat ke drive yang dapat dilepas adalah hal yang umum pada sistem IBM, jadi Microsoft mungkin baru saja bertindak atas instruksi IBM dengan menyalin CP / M. Dan pada awalnya, DOS juga tidak memiliki direktori.

Ketika MS-DOS berjalan pada komputer dengan satu atau dua disk yang dapat dilepas dan tidak ada media tetap, Anda tidak benar-benar membutuhkan sistem file dengan direktori. Dengan satu, atau mungkin dua, 180 kilobyte disk, Anda tidak pernah memiliki cukup file sehingga sulit mengaturnya.

https://en.wikipedia.org/wiki/Drive_letter_assignment

david25272
sumber
1
Ini paling tidak akurat. CP / M mendahului setiap Microsoft / IBM-PC DOS dalam beberapa tahun (saya percaya ide asli IBM adalah menggunakan CP / M untuk "PC" mereka, karena itu adalah standar industri de-facto yang cukup mapan pada saat itu meskipun fakta bahwa berbagai sistem CP / M bisa tidak kompatibel), dan hampir tidak diperdebatkan bahwa IBM-PC DOS sangat didasarkan pada 86-DOS yang pada dasarnya merupakan klon CP-M yang kompatibel dengan kode sumber .
CVn
4

Sebenarnya, Linux didasarkan pada Unix (atau Unix, lihat diskusi ) dan Unix berasal dari lingkungan mainframe, di mana menggunakan beberapa perangkat cukup jelas. Perangkat pemasangan dalam pohon direktori tunggal memberi Anda fleksibilitas maksimal, dan tidak membatasi jumlah perangkat yang dapat diakses sistem operasi.

Di sisi lain, huruf DOS untuk drive adalah desain yang bagus untuk PC dengan 1 atau 2 stasiun disket dan drive disk tunggal. Floppy besar 5,25 'selalu A :, si kecil 3,5' selalu B :, dan disk drive selalu C :. Anda selalu tahu jika Anda menyalin file ke floppy atau di suatu tempat ke disk. Anda tidak memerlukan fleksibilitas apa pun jika secara fisik Anda tidak dapat menghubungkan lebih dari 2 floppy drive dan 2 (atau 4) hard disk.

Desain DOS lebih ramah pengguna akhir, sedangkan desain Unix ramah administrator. Sekarang huruf kandar adalah beban bagi Windows, pengguna lebih bergantung pada secara otomatis membuka jendela penjelajah dengan konten kandar yang dapat dilepas daripada mengetahui hurufnya ... Ubuntu juga melakukan hal yang sama.

Pelaut Danubia
sumber
1

Sebenarnya itu tidak benar. Windows menggunakan skema jalur lain (baik, tidak sama)

"Unit Letters" hanyalah sesuatu yang mudah diingat jalur, disk, dan partisi.

Jalur ARC menentukan jalur file di windows (tetapi hanya dapat dilihat oleh pengguna saat boot):

http://support.microsoft.com/kb/102873

https://serverfault.com/questions/5910/how-do-i-determine-the-arc-path-for-a-particular-drive-letter-in-windows

Di Windows NT tidak ada hubungan antara disk, partisi dan huruf satuan: Anda dapat "meletakkan" seluruh volume dalam folder (misalnya: c: \ myseconddisk bisa menjadi seluruh disk fisik!)

AndreaCi
sumber
1
Jalur ARC hanya untuk booting, untuk kompatibilitas dengan beberapa ROM ketika NT porting ke Alpha dan MIPS. Ketika sistem sedang berjalan itu menggunakan jalur UNC.
ninjalj
0

Dua hal yang ingin saya tunjukkan -

  1. Hard drive di linux sebenarnya dengan cara yang ditetapkan huruf / nama, seperti / dev / sdb1. Tetapi mereka dapat dipasang di mana saja untuk dijangkau dari struktur single / root
  2. Alasan paling umum bahwa orang (termasuk saya di masa lalu) memiliki drive terpisah di Windows adalah memiliki tempat untuk menyimpan dokumen, musik, program, dll. Sehingga ketika Windows mau tidak mau perlu diinstal ulang atau diganti, apakah itu upgrade atau virus atau kegagalan sistem file, masih ada akses ke file-file itu. Saya tidak memiliki masalah ini di linux - sistem file jauh lebih dapat diandalkan, OS tidak rusak kecuali dengan beberapa tindakan langsung atau kesalahan pada bagian saya (ooh! Repo tepi berdarah, mari kita coba itu!), Dan upgrade JAUH lebih sederhana. Dan, dalam kasus yang jarang saya harus menginstal ulang, karena semua perangkat lunak tersedia melalui repos atau ppa yang saya tambahkan (dan saya dapat dengan mudah menyalin dir rumah saya dengan disk langsung),
Drake Clarris
sumber
2
Anda sedang menggabungkan hard drive dan sistem file di poin pertama Anda. Jika Anda me-mount / dev / sdb1 di beberapa titik di sistem file Anda dapat mengakses file di drive. Jika Anda membuka / dev / sdb1 secara langsung, Anda dapat melihat blok disk mentah. Umumnya tidak terlalu berguna, terutama jika Anda menggunakan sistem file terenkripsi.
selesai24
Saya mencoba mengaitkannya dengan cara yang mungkin dimengerti pengguna Windows. C: bukan hard drive di Windows juga, tetapi semua orang menyebutnya sebagai itu
Drake Clarris
1. Anda masih dapat menyimpan file Anda tanpa surat. 2.Dalam sistem POSIX, hard drive dapat dipartisi secara keseluruhan tanpa tabel partisi, dan thumb drive dapat memiliki tabel partisi. nama.
Behrooz
0

Jika Anda melihat kembali sejarah Anda juga dapat melihat bahwa Unix dimulai pada saat sistem 8 track tape untuk audio dan 9 track sistem data IBM (8 track / 8 bit untuk data, satu untuk paritas). Secara teknis sangat mirip.

Pada saat itu informasi tentang lokasi file disimpan di bagian informasi pada tape dan maju dan mundur didefinisikan ketika Anda membaca data dari rekaman (seperti file, dengan posisi awal dan tanda tangan akhir); itu menjelaskan juga mengapa Anda tidak hanya memiliki satu FAT di awal drive — Anda memiliki beberapa FAT untuk mempercepat pencarian. Dan jika Anda memiliki banyak drive, mereka terhubung di dalam / dev dan melalui alamat file yang Anda pindah di antara perangkat.

Saya percaya Anda dapat memiliki pandangan bahwa itu dimulai hanya sebelumnya dan bahwa keputusan di belakang area MS Dos (CP / M) dan kemudian Windows NT hanya terkait dengan huruf drive mainframe VM daripada satu titik masuk karena pada saat itu terlihat lebih modern, jumlah data hari ini tidak ada dan mereka tidak berpikir bahwa Anda pada akhirnya akan memiliki huruf drive tidak cukup atau itu akan lebih berantakan.

Penugasan 9-Track-Drive dan Drive Letter

Peter
sumber