Sistem file vs partisi vs direktori

30

Saya baru mengenal Linux, jadi maafkan saya atas kemungkinan kebingungan yang mungkin Anda temui dalam pertanyaan ini.

Dari apa yang saya mengerti, filesystem menentukan bagaimana sebuah partisi menyimpan / mengelola file, dengan standar seperti ext2, ext3, reiserfs, xfs, dll. Kadang-kadang saya melihat orang-orang tampaknya merujuk masing-masing " directory" sebagai

    /boot filesystem
    /usr/bin filesystem
    /root filesystem
    /bin filesystem

Mengapa kita menyebutnya sebagai filesystems?

Jika masing-masing dari mereka adalah partisi, itu membingungkan saya karena sejauh yang saya tahu, /usrdan /usr/bincenderung berada di partisi yang sama, tetapi saya melihat orang-orang merujuk keduanya /usr filesystemdan /usr/bin filesystem.

Jika di filesystemsini setara dengan Window's directory, tidak jelas bagi saya karena ternyata filesystem lebih dari sekadar direktori. Juga, sejauh yang saya tahu, Linux tidak memiliki directorykonsep; semua adalah file.

Kenny
sumber
Saya belum pernah melihat instance dari "the / root filesystem". Apapun filesystem yang dipasang pada "/" adalah "filesystem root". Beberapa titik pemasangan lain pada distro Linux modern adalah "/ boot", "/ home", dan "/ mnt / xx" atau "/ media / xx" untuk berbagai nilai "xx". Kernel 2.x + (?) Distro akan memiliki "/ proc" dan "/ sys", Systemd memiliki mountpoints "/ var / run / nnnn" untuk berbagai UID numerik nnnn. Instalasi Unix yang lebih lama mungkin me-mount "/ usr" melalui NFS, tetapi itu tidak mungkin pada distro Linux pribadi. "/ bin" dan "/ usr / bin" biasanya bukan mountpoint yang terpisah.
david
Ada / root , kan? Apakah maksud Anda nevers tetap di sistem file yang terpisah?
Kenny
Kanan. "/ root" adalah direktori home standar untuk "root" pengguna, tetapi biasanya hanya direktori lain pada sistem file root.
david
Topik ini telah dibahas secara luas di Ask Ubuntu , yang, IMNSHO, konyol, karena, AFAIK, konsep-konsepnya tidak berbeda di Ubuntu bahwa mereka berada pada bentuk lain dari Unix atau Linux. Misalnya, Apa itu "mount"? ditanya hanya beberapa hari yang lalu.
Scott
Saya cukup terkesan dengan pertanyaan itu. Berasal dari sedikit pengetahuan Anda sudah bisa memahami cukup banyak saat ini dan bahwa Anda telah melewatkan kesimpulan bahwa "/ root filesystem" dapat merujuk ke filesystem yang telah di-mount di partisi /root, saya pikir itu dapat diabaikan mengingat kompleksitas dari situasi.
erikbwork

Jawaban:

14

Seperti yang saya tulis di https://superuser.com/a/293160/38062 :

Masalahnya di sini adalah kata "filesystem". Dalam dunia POSIX / Unix / Linux, digunakan untuk mengartikan beberapa hal berbeda.

  1. "Filesystem" kadang-kadang seluruh sistem file, di-root pada /dan seperti yang disajikan ke perangkat lunak aplikasi oleh kernel sistem operasi. Dengan makna ini, orang berbicara tentang sistem operasi POSIX yang memiliki " pohon sistem file tunggal ", misalnya.
  2. "Filesystem" kadang-kadang merupakan satu (atau lebih) irisan dari (atau beberapa) DASD (s) - satu atau lebih koleksi sektor disk yang berdekatan yang diformat sebagai volume tunggal dengan format yang diberikan - sebagaimana ditandai oleh beberapa partisi disk. skema. Dengan makna ini, orang berbicara tentang, katakanlah, "memformat /usrsistem file saya ". " /usr" di sini adalah titik mount (diharapkan) volume, atau (dalam beberapa skema partisi) label pengenalnya.
  3. "Filesystem" kadang-kadang merupakan pohon abstrak yang dapat digabungkan dengan direktori dan file, disajikan oleh driver filesystem (yaitu lapisan VFS) ke seluruh sistem. Dengan makna ini, orang berbicara tentang, misalnya, "memasang sistem file proc pada /proc" atau "menggunakan sistem file tmpfs untuk /tmp".

Anda melihat arti # 1 ketika Anda melihat " /usr/binfilesystem". Ini pohon sistem file yang di-root di direktori /usr/bin. Ya, Linux memang memiliki konsep direktori.

Arti # 2 dan makna # 3 adalah salah baca Anda. Orang-orang tidak berbicara tentang /usr/binsebagai set data pada disk, ditandai oleh slicing / partisi. Mereka juga tidak berbicara tentang /usr/binjenis driver sistem file tertentu, atau format volume disk tertentu.

Bacaan lebih lanjut

  • Ramesh Bangia (2010). "berkas sistem". Kamus Teknologi Informasi . Laxmi Publications, Ltd. ISBN 9789380298153. p. 224.
  • Sistem File . "Definisi Basis". Spesifikasi Basis Grup Terbuka . Edisi 7 IEEE 1003.1. Grup Terbuka. 2013
  • Binh Nguyen (2004-08-16). "berkas sistem". Kamus Linux . Versi 0.16. hal. 616.
JdeBP
sumber
8

Tentu saja Linux menggunakan konsep direktori. Konsep direktori sama dengan di Windows.

Konsep sistem file juga sangat mirip dengan apa yang digunakan di Windows. Windows biasanya menggunakan NTFS atau FAT - Linux biasanya menggunakan ext2, ext3, ext4 dan sebagainya, itu bedanya.

Apa yang berbeda, adalah bahwa di Linux file / direktori dari semua partisi yang tersedia disusun menjadi satu pohon. Di Windows Anda merujuk ke partisi yang berbeda menggunakan huruf, fe "a:", "c:", di Linux path lengkap ke file yang tersedia dimulai dengan "/" - direktori root. Sebagai contoh, ada partisi terpisah pada Anda hdd dengan file yang direkrut untuk mem-boot sistem: Anda menjalankan perintah 'mount' dengan argumen yang sesuai dan konten dari partisi ini tersedia di jalur "/ boot /". Jadi, jalur "/ boot" dan "/ home" dapat merujuk ke data pada partisi yang berbeda, partisi ini mungkin memiliki sistem file yang berbeda. Mungkin menyebabkan kesalahpahaman Anda.

Direktori yang secara fisik terletak di partisi yang sama akan selalu "memiliki sistem file yang sama". Ketika seseorang berbicara tentang sistem file dari suatu direktori, itu sebenarnya tentang sistem file dari partisi di mana direktori ini berada.

(Koreksi kecil dan mungkin tidak penting: kadang-kadang sistem file adalah virtual dan tidak ada partisi yang sesuai. Misalnya "/ proc" berisi sesuatu, yang terlihat sangat mirip dengan file, tetapi "file" ini virtual, mereka tidak tinggal di hard drive dan berisi informasi tentang proses yang sedang berjalan. Dan ada sistem file "procfs" khusus yang menyediakan antarmuka seperti file yang biasa untuk data ini)

lesnik
sumber
Anda menyebutkan "filesystem direktori", apakah itu mengalir ke semua subdirektori. Apakah mungkin satu direktori dan subdirektori memiliki sistem file yang berbeda? Misalnya / a dan / a / b , dengan / b adalah partisi lain dengan F2 filesystem sendiri dipasang sebuah F1 filesystem memiliki?
Kenny
Adapun apakah direktori yang terletak di partisi yang sama sebenarnya adalah bagian dari sistem file yang sama dapat menjadi sedikit kabur untuk beberapa sistem file yang sangat modern seperti ZFS atau btrfs; Anda dapat memiliki volume ZFS dengan beberapa sistem file membaginya, dengan mountpoints yang sepenuhnya berbeda.
Charles Duffy
@ Kenny Ya, Anda benar. Contoh langsung: Saya memasukkan compact disk ke dalam drive-cd. Linux saya memasang CD di "/ mount / cdrom". Direktori "/ mount" (dan semua file yang saya buat di dalamnya) terletak di hard drive saya. Tetapi isi "/ mount / cdrom" sudah ada di CD.
lesnik
6

Disk dibagi menjadi satu atau lebih partisi . Untuk Windows, biasanya hanya ada satu, mungkin dengan partisi pemulihan bersembunyi di suatu tempat. Partisi adalah area disk yang berdekatan secara logis, misalnya "sektor 1 hingga 10.000.000".

Pada sebuah partisi dapat dibangun sistem file. Untuk Windows, ini adalah NTFS atau FAT; untuk Linux ini adalah salah satu extversi atau berbagai opsi lainnya.

Di dalam sistem file adalah file dan direktori. Linux memiliki direktori, saya tidak tahu bagaimana Anda mendapatkan ide yang tidak.

Bagaimana sistem operasi menghadirkan banyak partisi pada banyak disk kepada pengguna? Pada Windows, hal ini dilakukan dengan huruf drive : C:, D:dll pada Linux, tidak ada huruf drive dan semuanya dilakukan dengan mount point : di direktori tertentu, akses mengubah rute ke filesystem yang berbeda (+) Seringkali jika Anda memasukkan CD. atau USB stick akan muncul di suatu tempat di bawah /mediaatau /mnt.

/usrdan /usr/binbiasanya akan berada pada sistem file yang sama tetapi tidak diharuskan. Orang bisa berarti "sistem file yang kebetulan berisi /usr/bindirektori" ketika mereka menggunakan frasa itu.

(+) Anda dapat melakukan ini dengan titik persimpangan NTFS juga, tetapi orang jarang melakukannya. Sampai mereka kehabisan huruf drive.

pjc50
sumber
Perbaiki saya jika saya salah: Di Linux, 1 disk fisik dapat dibagi menjadi beberapa partisi, masing-masing memiliki sistem file sendiri? Analog dengan cara harddisk di Windows berisi beberapa partisi, satu bisa FAT dan yang lain NTFS?
Kenny
1
Ya, Anda benar: tetapi ini tidak analog, mekanisme dasarnya persis sama. Mesin dual-boot mungkin memiliki partisi NTFS dan ext3 pada disk yang sama, dan setiap manajer sistem operasi disk melihat set partisi yang sama. Hanya saja Windows tidak dapat melihat me-mount partisi ext3 untuk melihat file.
pjc50
3

Dimungkinkan untuk menjaga seluruh sistem Linux pada satu partisi, dengan semua subdirektori berada pada satu sistem file.

Mungkin juga untuk menyebarkannya ke beberapa partisi, dengan subtitle direktori tertentu berada pada sistem file yang berbeda. Sebagai contoh, itu umum untuk menempatkan /home, /tmp, /usr, dan /varpada filesystem terpisah. Untuk menjawab salah satu pertanyaan Anda, kadang /usr/bin- kadang akan berada di sistem file sendiri juga.

Ada beberapa keuntungan dari skema ini. Misalnya, jika /vardiisi dengan banyak email, sistem lainnya tidak akan terpengaruh. Demikian juga, jika satu filesystem rusak karena crash atau sesuatu, filesystem lain masih bagus dan lebih mudah untuk memulihkan sistem.

Ketika sistem melakukan boot, pada awalnya hanya sistem file root yang tersedia. Program yang disimpan di sana dijalankan selama proses boot. Salah satu dari program ini,, mountdijalankan beberapa kali, menggunakan data dari file /etc/fstab, tabel sistem file. Untuk mengambil satu contoh: awalnya, /homehanya direktori biasa di sistem file root. Kemudian kita jalankan perintah ini sebagai root:

mount /dev/sda7 /home

Ini memberi tahu sistem bahwa sistem file pada partisi /dev/sda7 harus dipasang pada direktori /home. Jadi sekarang, semua yang ada di sistem file itu dianggap berada di bawah /home.

Anda dapat melihat apa yang saat ini dipasang dengan menjalankan df.

Tom Zych
sumber
3

Kami terkadang menyebutnya sebagai filesystems , karena kadang-kadang direktori tersebut adalah titik tunggakan. Begitu banyak untuk satu-satunya pertanyaan yang Anda tanyakan ...

filesystem dapat merujuk pada dua hal yang berbeda ... atau sebenarnya dua aspek yang sangat berbeda dari hal yang sama:

  1. Struktur logis yang digunakan untuk mengatur data pada media penyimpanan.
  2. Metodologi yang digunakan oleh OS untuk menawarkan proses akses terpadu ke data.

Konsep file dan direktori adalah metafora. Untuk komputer hanya ada data dan semua media tidak lain adalah perangkat yang dapat menyimpan data. Beberapa perangkat memperbolehkan membaca dan menulis data (mis. HDD), perangkat lain hanya membolehkan membaca data (mis. CD-ROM) dan bahkan ada perangkat yang hanya mengizinkan penulisan data (mis. Printer). Kami menggunakan metafora file dan direktori untuk menyusun data, sehingga kami dapat mengakses potongan kecil data, dan bukan semuanya sekaligus.

Sistem file yang kami letakkan di media penyimpanan, misalnya ext4, xfs, fat do the structuring part. Kami menggunakannya untuk menempatkan label pada potongan data (file) dan untuk memiliki daftar terstruktur yang konsisten dari semua label (direktori). Daftar terstruktur sebenarnya adalah pohon. Aspek yang paling penting adalah bahwa pohon memiliki tepat satu permulaan, akarnya. Mempertahankan struktur ini dan memastikan data tersedia dan tetap dapat diakses adalah tugas yang cukup, itulah sebabnya mengapa tidak hanya ada satu aroma sistem file.

Aspek lain dari sistem file adalah, bahwa itu adalah tugas OS untuk membuat data yang disimpan pada perangkat penyimpanan dapat diakses oleh semua program. Ini dicapai dengan dua hal:

  1. OS menawarkan tepat satu antarmuka (pemrograman) untuk mengakses dan berinteraksi dengan file dan direktori. Untuk program / proses, tidak masalah apakah sistem file pada perangkat penyimpanan adalah ext2, xfs, fat, atau apa pun. Progams / proses mengakses file dan direktori dengan cara yang seragam.

  2. OS mengatur semua media penyimpanan, yaitu sistem file mereka, dalam satu struktur yang lebih tinggi. Program mengakses file dan direktori melalui struktur yang sangat tinggi ini dan tidak perlu berinteraksi dengan perangkat penyimpanan secara langsung. Dengan begitu program tidak perlu peduli pada perangkat mana data sebenarnya berada. Struktur superordinat ini sering disebut sebagai "sistem file virtual" kernel.

Menambahkan filesystem perangkat penyimpanan ke sistem file virtual disebut "mounting" filesystem. Ketika Linux Anda memulai, kernel menciptakan sistem file virtual (VFS). Tepat setelah pembuatan itu kosong dan hanya terdiri dari titik masuknya, alias akarnya, ditranskripsi /. Kemudian kernel memasang sistem file di root VFS. Ini adalah ramdisk atau sistem file di partisi pada hard drive. Seperti yang ditambahkan pada root VFS, partisi ini sering disebut sebagai sistem file root.

Sekarang inilah bagian di mana garis-garisnya kabur dan kita melihat bahwa filesystem pada perangkat penyimpanan dan VFS kernel sebenarnya adalah dua aspek dari tugas OS yang sama: Dengan pemasangan filesystem root, VFS berisi banyak file dan direktori, yang kesemuanya ada di partisi root. Namun, setiap direktori dapat menjadi "titik mount". Mount point adalah tempat VFS menempatkan titik masuk ke sistem file pada perangkat penyimpanan. Ini berarti bahwa setiap kali kita memasang sistem file pada direktori, kita memberi tahu VFS bahwa alih-alih mengakses data yang disimpan dalam direktori itu, kita lebih suka mengakses data pada perangkat penyimpanan yang berbeda. Mount point biasanya direktori kosong, sehingga kami tidak membuat data tidak dapat diakses dengan memasang sistem file lain di atasnya.

Ketika Anda menginstal OS Anda, terserah Anda apakah Anda ingin meletakkan semua data pada satu sistem file yang kemudian menjadi sistem file root Anda, atau Anda ingin membagi data Anda antara beberapa sistem file. Yang terakhir membutuhkan OS Anda untuk memasang semua sistem file individual, untuk membuat semua data dapat diakses. Bagaimana Anda memisahkan berbagai hal adalah pertanyaan tentang bagaimana Anda merancang sistem Anda. Inilah sebabnya mengapa kadang-kadang direktori yang Anda tahu dari instalasi Anda disebut sebagai sistem file.

Untuk komputer yang biasanya kita miliki di rumah memisahkan instalasi Anda ke beberapa sistem file tidak diperlukan lagi. Masih ada alasan bagus untuk melakukannya, tetapi ini di luar cakupan posting ini.

Untuk membuat sisa posting ini singkat: Partisi adalah cara lain untuk menyusun data pada perangkat penyimpanan. Dengan partisi, seseorang mengukir ruang penyimpanan yang berdekatan dari perangkat penyimpanan fisik dan menawarkannya sebagai perangkat penyimpanan individual ke OS (di mana orang dapat menempatkan filesystem untuk dipasang ke VFS). Salah satu alasan untuk melakukan ini adalah karena seseorang hanya memiliki satu hard drive, tetapi ingin menggunakan banyak sistem file yang berbeda. Partisi tempat sistem file root hidup sering disebut sebagai partisi root.

Bananguin
sumber
1

Anda melakukan sedikit kebingungan. Filesystemmenunjukkan mekanisme di mana file berada dan diorganisasikan pada perangkat penyimpanan atau pada memori massal, seperti hard drive atau CD-ROM dan, dalam beberapa kasus, juga pada RAM.

Bahkan windows menggunakan filesystem seperti NTFSatau, sebelumnya FAT,.

Contoh Anda menunjukkan praktik umum untuk sistem linux dan unix, untuk memiliki sistem mereka sendiri yang terdiri dari berbagai sistem file yang dipasang pada direktori bernama mount point. Hal ini memungkinkan, jika terjadi masalah, untuk membatasi kerusakan pada satu atau lebih tetapi tidak untuk semua sistem file.

Jadi, FS tidak setara dengan direktori, dan juga di linux ada direktori, yang merupakan jenis file khusus

LilloX
sumber