Велика різниця між Linux та Windows, принаймні, що стосується їх файлових систем та дерев каталогів, полягає в тому, що в Linux "все є файлом", і все походить з одного кореня. Це стосується майже всіх ОС, отриманих від Unix, таких як BSD, OS X, Solaris тощо, але я просто скажу "Linux", щоб бути загальним (якщо не зовсім точним).
Але що це означає на практиці?
Windows дозволяє отримати декілька названих коренів для своїх файлових систем. Ви розумієте це як букви приводів: C: D: E:
тощо. У кожного є корінь ( \
) і дерево, яке спускається з нього. Останні версії Windows дозволяють такі речі, як точки монтажу гучності, де том (те, що ви вважаєте розділом) можна встановити у існуючу порожню папку. Тож замість D:
\ репрезентації кореня, скажімо, вашого оптичного (CD / DVD / BR) диска, ви можете C:\Optical
замість цього встановити його . Це більше схоже на те, що робить Linux. Також є простір імен об'єктів, що лежить в основі одного об'єкта, для всього в Windows, подібного до того, що використовує Linux і керується Менеджером об’єктів , але більшість користувачів рідко бачать на нього посилання, оскільки це в першу чергу для використання ядра.
Linux має один корінь: /
. Все походить від цього, і це не обов'язково представляти ваш жорсткий диск. Жорсткі диски, оптичні диски, карти пам'яті, мережеві спільні пристрої, принтери, сканери, процесори, оперативна пам’ять, процеси, ... все представлено десь усередині цього простору імен, і до нього можна отримати доступ будь-яким процесом із стандартними API управління файлами, якщо вважати, що у вас є достатньо високий рівень доступу. Тільки тому, що ви можете читати чи писати з нього, не означає, що це файл на вашому жорсткому диску в Linux. Наприклад, зазвичай встановлені пристрої /dev
, тому доступ до речей там часто означає, що ви спілкуєтесь із пристроєм - можливо, це звукова карта, сканер або камера тощо. Вони відомі як файли пристроїв . Прокфце спеціальна "файлова система", яка зазвичай монтується /proc
і має "каталог" для кожного запущеного процесу, з файлами у кожному каталозі, що стосуються таких речей, як командний рядок, який використовується для виклику цього процесу, карт пам'яті, відкритих файлів тощо. Sysfs - це ще одна спеціальна файлова система (встановлена на /sys
), що використовується для викриття великої кількості інформації про запущені об'єкти ядра, а також може використовуватися для тонкої настройки працюючого ядра, просто записуючи в певний файл.