Как создаются файлы?

Я хочу знать, каковы основные отличия между созданием файлов Windows и Linux.

Предположим, что я на терминальном сеансе, и я печатаю: touch file . Что происходит за кулисами в Linux? Каков процесс в операционной системе?

В Linux при создании файла:

  1. Генерируется индекс. Это дескриптор, который указывает на блоки данных на диске, которые также хранят информацию, такую ​​как право собственности, разрешения и т. Д.
  2. Создана жесткая ссылка на этот индекс. Это по существу «имя файла» и где он находится в остальной части файловой системы.

Вначале это может быть запутанной концепцией, чтобы заставить ваш мозг вокруг, но это довольно просто. Inodes существуют как знаковые записи для фактических данных, но для того, чтобы использовать любую из них, вам нужны жесткие ссылки, чтобы показать структуру файловой системы.

Это позволяет, например, иметь несколько жестких ссылок на один индексный дескриптор, если они оба находятся в одном разделе.


В Windows (и это может стать неверным, поскольку Microsoft развивает свои файловые системы), inode и hardlink не являются отдельными, они одно и то же. Это означает, что при создании файла он просто создает этот блок.

Очевидные побочные эффекты заключаются в том, что множественных жестких ссылок не существует, но это более того – вы часто не можете удалить файл (который просто удалит жесткую ссылку в Linux), который заблокирован для открытия (который будет обрабатываться данными inode в Linux).

Но кроме этого (довольно крупного) различия, они очень похожи.

Оказывается, что с Vista, NTFS очень похожа на обычные файловые системы Linux. Он поддерживает как жесткие, так и мягкие ссылки, предполагая, что у них есть объект, подобный inode, между данными и контуром.

Короче: в наши дни нет большой разницы. В более старых версиях Windows, чем Vista, мой обработанный ответ выше переносится.