Сравнение файловых систем windows и linux

Безопасность, свобода, бесплатность, открытый код, популярность, количество программного обеспечения, все это основные отличия Linux от Windows, которые чаще всего становятся причиной перехода пользователей на эту операционную систему. О них знают все, либо почти все пользователи. Но что если копнуть глубже, чем именно отличаются эти системы? В чем принципиальные технические отличия?

В этой статье мы рассмотрим чем отличается windows от linux с технической точки зрения, попытаемся разобраться почему Linux считается более безопасным, а также понять суть различий.

1. Ядро системы

Основной компонент каждой операционной системы – это ее ядро. И даже с этого, между операционными системами есть огромные отличия. Ядро Linux – монолитное, оно состоит из одного файла, а для расширения его функциональности можно использовать модули.

Все программы общаются с ядром через системные вызовы, они стандартизированы, поэтому одни и те же программы без переписывания смогут работать на разных платформах под управлением Linux, например, x86 и ARM.

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

Это главное, но не очевидное отличие Linux от Windows. Windows имеет совершенно другой тип ядра. Тут используется гибридное ядро, которое состоит из множества небольших частей – библиотек dll, каждая из которых отвечает строго за свою функцию.

Но и это еще не все, системные вызовы не используются, вместо них пользовательские программы вынуждены обращаться к документированным библиотекам user32.dll, gdi32.dll, kenel32.dll, advapi32.dll. Эти библиотеки вызывают функции из ntdll.dll, которая напрямую связана с ядром.

Драйверами управляет библиотека hal.dll и подключаются они к ядру отдельно. Выводом на экран управляет графическая подсистема ядра, туда входит вся работа с графикой, в том числе и с оболочкой. Возможность использования пользовательского режима ядра позволяет легко адаптировать систему к любому типу программ, например win16 или POSIX. Но за эту гибкость приходится платить производительностью.

2. Структура файловой системы и диски

То, что сильно отличается операционная система linux от windows структурой файловой системы вы заметите сразу. Linux предоставляет файловую систему более реально, такой как она есть на самом деле. Начинается структура файловой системы с корня, или, другими словами, основного каталога системного раздела, а уже туда подключаются все другие диски по нужных подкаталогах.

Файлы сортируются по каталогам в зависимости от типа, например, исполняемые – в /bin/, настройки – /etc/, а ресурсы – в /usr/. Получается что одна программа разделена по всей файловой системе, но это не выведывает трудностей из-за пакетного менеджера.

Устройства хранения в Linux именуются по алфавиту, а разделы на них – цифрами. Например, первый жесткий диск будет иметь имя sda, второй – sdb. А разделы на первом будут нумероваться – sda1, sda2, sda3 и так далее. Разделы могут свободно монтироваться в любую нужную папку, например, в качестве домашнего каталога или /var/.

Windows создает дополнительную абстракцию. Хотя диски и разделы именуются похожим образом, как и в Linux, но все это скрыто операционной системой. Пользователю же предоставляется такая абстракция, как диск C:, D:, E:, F: и так далее. Каждый из них – это раздел на жестком диске, а более подробную информацию от пользователя система скрывает. Это и к лучшему для новичков. Что касается распределения файлов, то одна программа находится в одной папке, со всеми исполняемыми файлами, настройками и ресурсами.

3. Хранение конфигурации и данных

В Linux все настройки хранятся в обычных файлах, которые расположены в файловой системе. Глобальные файлы настроек находятся в папке /etc/. Они применимы ко всем пользователям, которые используют этот компьютер. Настройки пользовательских программ находятся в скрытых подкаталогах домашнего каталога пользователя.

Такое хранение достаточно удобно, поскольку конфигурационные файлы легко перенести на другой компьютер, а децентрализованность увеличивает надежность системы. Каждая программа создает свой конфигурационный файл, со своим синтаксисом, и редактируются они, в основном, вручную. Почти все настройки можно выполнить через графический интерфейс, но часто графические утилиты создают очень запутанные конфигурации. Ручная работа всегда выглядит лучше.

Это тоже важное отличие linux от windows. Windows хранит все настройки приложений, системы и драйверов в специальной базе данных, под названием реестр Windows. Все настройки разделены по ветвях и ключах, а программы могут очень быстро получить к ним доступ.

Читайте также:  Risen 3 titan lords карта

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

К тому же программы очень быстро переполняют реестр и он начинает занимать слишком много, поэтому на его начальную загрузку нужно много времени. Трудно сказать какая технология лучше, но это тоже разница между linux и windows и только вам выбирать что использовать.

4. Управление пользователями и права

Linux изначально был разработан как многопользовательская система. Файлы имеют три категории доступа – это пользователь-владелец, группа пользователей и все остальные. Также есть три параметра доступа – чтение, запись и выполнение. С помощью комбинации этих простых параметров и осуществляется контроль доступа ко всем файлам в системе, а поскольку в Linux – все есть файл, значит ко всему.

Со временем начали считать что такая система устарела и были доработаны списки доступа ACL, SELinux и AppArrmor – они полностью удовлетворяют все нужды в безопасности. Но они так и не набрали большой популярности.

Windows была предназначена для работы только одного пользователя, изначально из-за этого возникало очень много проблем с безопасностью. Но потом система пользователей была доработана многопользовательская система, которая, кроме владельца, группы и остальных включает подробные ACL списки доступа. Можно сказать, что тут различие windows и linux не так велико.

5. Управление программами и обновление

Продолжим сравнение windows и linux. Управление программами и их обновлением это огромная разница windows и linux, настолько все реализовано по-другому.

В Linux существуют репозитории пакетов программ. Там есть если не все, то почти все необходимые программы, драйвера и компоненты системы. У вас почти не будет необходимости качать программы из интернета, хотя такая возможность тоже есть.

Использование централизованных репозиториев дает большую безопасность и надежность, а также возможность обновления. Как только новая версия программы появилась в репозитории, вы можете ее обновить. Процесс обновления выполняется одной командой сразу для всей системы, тогда, когда вам это удобно.

В Windows нет репозиториев, вам придется искать все необходимые программы в интернете и устанавливать их вручную. Каждая программа будет обновляться сама, когда будет считать нужным, в том числе и система. Для обновления системы понадобиться перезагрузка, причем в вопросе установки обновлений Windows бывает очень настойчивой.

Выводы

В этой статье мы попытались разобраться чем отличается windows от linux. Причем мы не останавливались на таких общеизвестных вещах, как свобода и бесплатность, а попытались раскрыть именно технические подробности, насколько это возможно в такой небольшой статье. Если вы только стоите перед выбором операционной системы, надеюсь это сравнение windows и linux было для вас полезным.

На завершение небольшое видео о вечном споре Windows vs Linux, хотя оно уже немного устарело, но рассказано довольно интересно и по делу:

Фа́йловая систе́ма (англ. file system) — порядок, определяющий способ организации, хранения и именования данных на носителях информации в компьютерах, а также в другом электронном оборудовании: цифровых фотоаппаратах, мобильных телефонах и т. п.

Различие файловых систем

У Windows файловые системы – NTFS и FAT32. Минус Windows в том, что он не различает другие файловые системы.FAT32 — последняя версия файловой системы FAT и улучшение предыдущей версии, известной как FAT16. Она была создана, чтобы преодолеть ограничения на размер тома в FAT16, позволяя при этом использовать старый код программ MS-DOS и сохранив формат. FAT32 использует 32-разрядную адресацию кластеров. FAT32 появилась вместе с Windows 95 OSR2.

Linux имеет более ста различных файловых систем. Самые популярные это EXT3, reiserfs и другие. Распознает файловые системы Windows. Файловую систему reiserfs разработали сотрудники МГУ. Файлы всех пользователей в Linux хранятся раздельно, у каждого пользователя есть собственный домашний каталог, в котором он может хранить свои данные. Доступ других пользователей к домашнему каталогу пользователя может быть ограничен. Информация о домашнем каталоге обязательно должна присутствовать в учётной записи, потому что именно с него начинает работу пользователь, зарегистрировавшийся в системе. Файловая система не только систематизирует данные, но и является основой метафоры "рабочего места" в Linux. Каждая выполняемая программа "работает" в строго определённом каталоге файловой системы. Такой каталог называется текущим каталогом, можно представлять, что программа во время работы "находится" именно в этом каталоге, это её "рабочее место". В зависимости от текущего каталога может меняться поведение программы: зачастую программа будет по умолчанию работать с файлами, расположенными именно в текущем каталоге – до них она "дотянется" в первую очередь. Текущий каталог есть у любой программы, в том числе и у командной оболочки (shell) пользователя. Поскольку взаимодействие пользователя с системой обязательно опосредовано командной оболочкой, можно говорить о том, что пользователь "находится" в том каталоге, который в данный момент является текущим каталогом его командной оболочки.

Читайте также:  Чем убрать тополь с машины

Перевод поста HTG Explains: Which Linux File System Should You Choose? (2010 год) с некоторыми дополнениями и уточнениями.

Журналирование

Прежде, чем говорить о файловых системах — давайте кратко рассмотрим понятие «журналирование«.

Журналирование в том или ином виде применяется практически во всех современных файловых системах.

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

При использовании журналирования — файл сначала записывается в журнал (или «лог»). После этого — файл записывается на жесткий диск а потом удаляется из журнала, после чего операция записи считается завершённой. Если во время записи выключилось питание — то после включения системы файловая система может проверить журнал, и найти незавершённые операции.

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

Файловые системы Ext

Ext означает «Extended» (расширенная) файловая система, и она являлась первой, которая была разработана специально для Linux-систем. Всего на сегодняшний день существует 4 файловые системы Ext . Самая первая из них — просто Ext — являлась серьёзным обновлением ФС ОС Minix.

Характеристики Ext :

  • максимальный размер файла: 2GB;
  • максимальный размер раздела: 2GB;
  • максимальный размер имени 255 символов.

Разработчик — Rémy Card , а первая версия появилась в 1992 году.

Мы не будем её рассматривать, т.к. скорее всего вы уже никогда с ней не столкнётесь.

Ext2 — не журналируемая ФС, выпущенная в 1993 году, основная задача для которой была поддержка устройств размером до 2 Террабайт. Т.к. у Ext2 нет журналирования — она выполняет намного меньше операций записи на диск, что сказывается на быстродействии и области её применения.

  • максимальный размер файла: 16GB — 2TB;
  • максимальный размер раздела: 2 — 32 TB;
  • максимальный размер имени 255 символов.

Рекомендации по использованию:

  • в силу низкого количества операций записи-удаления данных — является идеальной для различных флеш-накопителей;
  • в то же время современные SSD-диски имеют улучшенные показатели их жизненного цикла (изноустойчивости элементов накопителя) и некоторые другие особенности, которые нивелируют недостатки Ext2 как не журналируемой ФС.

Ext3 — появилась в 2001 году, вместе с выпуском Linux Kernel 2.4.15. Фактически является той же Ext2 , но с поддержкой журналирования. Основной целью Ext3 была возможность её обратной совместимости с Ext2 без необходимости переформатирвоания разделов. К преимуществам же можно отнести тот факт, что большая часть тестирования, багфиксов и т.д. для Ext3 была то же, что и в Ext2 , что сделало Ext3 более стабильной и быстрой ФС.

  • максимальный размер файла: 16GB — 2TB (в зависимости от размера блока);
  • максимальный размер раздела: 2 — 32 TB (в зависимости от размера блока);
  • максимальный размер имени файла: 255 символов.

Рекомендации по использованию:

  • подходит, если у вас используется Ext2 , и вы хотите исподьзовать журналирование;
  • в силу своей производительности и стабильности — вероятно, будет наиболее подходящей ФС для серверов баз данных;
  • возможно не лучший выбор для серверов, т.к. не поддерживает создание снимков (shapshot) ФС и сложностей с восстановлением удалённых файлов.

Ext4 — как и Ext3 имеет обратную совместимость с предыдущими версиями ФС. Собственно говоря, вы можете смонтировать Ext2 или Ext3 как Ext4 -и при определённых условиях добиться большей производительности. Вы так же можете смонтировать Ext4 как Ext3 без каких-либо побочных эффектов.

Ext4 — стабильная версия была выпущена в 2008 году. Является первой ФС из «семейства» Ext , использующая механизм « extent file system «, который позволяет добиться меньшей фрагментации файлов и увеличить общую производительность файловой системы. Кроме того — в Ext4 реализован механизм отложенной записи ( delayed allocation — delalloc ), который так же уменьшает фрагментацию диска и снижает нагрузку на CPU. С другой стороны — хотя механизм отложенной записи и используется во многих ФС — но в силу сложности своей реализации он повышает вероятность утери данных. См. тут>>> для более подробной информации.

  • максимальный размер файла: 16 TB;
  • максимальный размер раздела: 16 TB;
  • максимальный размер имени файла: 255 символов.
Читайте также:  Что такое био в инстаграме

Рекомендации по использованию:

  • наилучший выбор для SSD;
  • наилучшая производительность по сравнению с предыдущими Etx-системами;
  • она так же отлично подходит в качестве файловой системы для серверов баз данных, хотя сама система и моложе Ext3 .

BtrFS

BtrFS — разработана компание Oracle в 2007 году. По своей схеме схожа с ReiserFS , основной принцип её работы — это т.н. В-дерево . BtrFS позволяет динамически выделять inode, создавать снимки ФС во время её работы, выполнять прозрачную компрессию файлов и делать дефрагментацию в рабочем режиме.

Хотя стабильная версия BtrFS ещё не включена в большинство дистрибутивов Linux (на сегодняшний день, судя по этому>>> посту — только SUSE и Oracle Linux ) — она вполне может заменить Ext3/4 в обозримом будущем и уже предоставляет возможности по конвертации Ext3/4 в BtrFS . Кроме того, стоит упомянуть, что один из разработчиков Ext , Theodore Ts’o , сказал, что « BtrFS — это шаг в будущее».

  • максимальный размер файла: 16 EB ( Exabyte );
  • максимальный размер раздела: 16 EB;
  • максимальный размер имени файла: 255 символов.

Рекомендации по использованию:

  • в силу производительности, снимкам и другим возможностям — BtrFS является отличной файловой системой для сервера;
  • Oracle так же разрабатывает замену для NFS и CIFS, которая называется CRFS и которая призвана улучшить производительность для файловых хранилищ с BtrFS ;
  • тесты производительности показали отставание BtrFS от Ext4 на твердотельных носителях, таких как SSD и при операциях со сравнительно небольшими файлами:

ReizerFS

ReizerFS — представленная в 2001 году реализовала в себе многие возможности, которые никогда не смогут быть реализованы в Ext *. В 2004 на замену ReizerFS была выпущена ФС Reizer4 .

В то же время — разработка Reizer4 продвигается очень медленно, и до сих пор имеет ограниченную поддержку (?) в ядре Linux. В настоящее время реально доступной для использования остаётся только ReiserFS .

  • максимальный размер файла: 1 EB ( Exabyte );
  • максимальный размер раздела: 16 TB;
  • максимальный размер имени файла: 4032 байт, но ограничено до 255 символов Linux VFS .

Рекомендации по использованию:

  • отличная производительность при работе с небольшими файлами, такими как файлы логов и отлично подойдёт для серверов баз данных или почтовых серверов;
  • ReiserFS хорошо поддаётся увеличению размера тома — но не поддерживает его уменьшение и шифрование на уровне ФС;
  • будущее Reiser4 пока остаётся под вопросом и пока BtrFS остаётся предпочтительным (?) выбором между этими двумя ФС.

ZFS — стоит упомянуть тут, т.к. она так же разрабатывалась компание Oracle и имеет возможности, схожие с BtrFS и ReizerFS . Она так же стала весьма известна после того, как компания Apple заявила о намерении использовать её в качестве ФС по умолчанию. Первый релиз ZFS состоялся в 2005 году.

В силу ограничений из-за лицензии — ZFS не может быть включена в ядро Linux, однако её поддержка возможна с помощью механизма Linux’s Filesystem in Userspace (FUSE).

  • максимальный размер файла: 16 EB ( Exabyte );
  • максимальный размер раздела: 256 ZiB (Zebibyte);
  • максимальный размер имени файла: 255 байт.

Рекомендации по использованию:

  • показыавет отличную производительность при работе с большими дисковыми массивами;
  • поддерживает возможности по объединению дисков в массивы, созданию снимков ФС, и работе со «расслоённым отображением» ( dynamic disk striping) данных;
  • возможны сложности при попытке установки и использования в Linux-системах, в силу необходимости использования FUSE.

Swap — не является файловой системой вообще. Файл или раздел со swap -ом используется системой виртуальной памяти ядра и не имеет структуры файловой системы вообще. Её нельзя примонтировать и считать с неё данные, т.к. swap используется исключительно ядром Linux для записи страниц памяти не диск. Как правило — swap используется только в том случае, когда ОС испытывает недостаток в свободной RAM и «сбрасывает» часть данных из памяти в swap для её освобождения.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock detector