Время на прочтение9 мин
Количество просмотров315K
Так уж получилось, что даже на Хабре многие имеют очень смутное представление о семействе OS Linux.
Цель данной статьи – максимально популярным языком рассказать про особенности и отличия Linux от Windows для тех, кто вообще не имел с ним дела.
Я уже не один год свободно пользуюсь Archlinux, загружая винду лишь «на поиграться». Данная статья рассказывает о вещах, которые я выяснил эмпирическим путем, тыкаясь словно слепой котенок. Если бы в свое время мне попалась бы именно такая информация именно в такой форме — это сэкономило бы мне как минимум 2 года, в течение которых я переходил с Windows на Linux.
Почти цитата с люркмора:
Краеугольный принцип работы с linux-системами — “От понимания – к действию”, в то время как в Windows — “Знаю куда нажать/где поставить галочку – делаю”. Говоря другими словами, чтобы что-то сделать – необходимо понимать, как оно там, внутри, устроено.
Тезис №1 – НЕОБХОДИМО владеть работой с системой из текстовой консоли!
“Чистый” линукс (базовая система) в любом дистрибутиве выглядит как DOS – черный экран, текстовый режим, мигающий курсор ожидает ввода. Когда сталкиваешься с таким впервые – сидишь и думаешь: “Блин, а что писать-то?”.
Современные user-friendly дистрибутивы дарят иллюзию, что пользователю консоль не нужна. Добрые дяди, мол, уже обо все позаботились. Вот тебе обоина в FullHD-разрешении, вот программа для настройки параметров – знай расставляй галочки, все как в Windows… Чтобы избежать ненужных холиваров, сделаю на этом месте отступление.
Есть пользователи Linux, у которых никогда ничего не глючит. Ubuntu обновляется с одной мажорной версии на другую, причем начиная с Ubuntu 1.0, и так далее. Ребята, не пишите ничего в комментариях про ненужность консоли для пользователя, идите лучше полюбуйтесь на радугу, которой какают розовые пони в вашем мире.
В моем мире Linux глючит и ломается. Нет, все вполне окей, если ты просто запускаешь программы и пользуешься ими. Но потом вдруг наступает момент, когда тебе позарез надо, скажем, сменить открытые дрова на проприетарные… ну или просто обновить систему. И вот тут, если звезды встали неудачно, ты получаешь сломанную систему и текстовую консоль как единственный метод взаимодействия с ней. И (что самое поганое) – подобная фигня имеет свойство случаться регулярно.
Мой опыт говорит о том, что в такие моменты Windows-пользователь действует так, как он привык, повинуясь привычной идеологии. Сначала идет попытка “починить”. Windows-идеология предписывает найти в инете обсуждение аналогичной проблемы и ее решение, после чего повторить все действия, которые привели к решению проблемы. Итог – пользователь бездумно вбивает непонятные ему команды. Иногда это даже помогает, чаще – нет: содержимое команд необходимо модифицировать под конкретные условия и конкретную локальную машину, а знаний для этого нет. Как следствие, дальнейшим логическим шагом идет переустановка системы. Поверьте, я знаю о чем говорю – я сломал и переустановил Ubuntu более 10 раз… из которых около трети после самопроизвольной смерти системы в процессе обновления, без корелляции с кривизной рук.
Изучение устройства системы и работы с ней из консоли сродни известному “день потерять – за час долететь”. Устранить проблему в этом случае – гораздо быстрее переустановки, не говоря уже о том, что куда проще становится “не ломать” Кроме того, полностью исчезает разница – сидишь за компьютером локально или через удаленную SSH-сессию. Поверьте, это ощущение многого стоит.
Тезис №2: user-friendly дистрибутивы для изучения системы подходят плохо.
Разработчики подобных дистрибутивов старательно создают интерфейсный графический слой, призванный свести взаимодействие пользователя и системы до бездумного кликанья мышкой. Технически же этот слой может представлять из себя совершенно феерическое нагромождение костылей – на bash’е, python’е, perl’е… совершеннейший ад для новичка, пытающегося понять логику работы системы. Кроме того, вменяемая документация (если она вообще есть) теряется среди форумных постов вида “чтобы получить А, введите в консоли Б, а в настройках нажмите кнопочку С”
Для обучения лучше всего подходят технически минималистичные дистрибутивы с качественной и подробной документацией. Таковыми, к примеру, являются Gentoo и Archlinux. Лично я рекомендую последний – просто потому, что в моем случае это сработало. После пары лет мытарств с Убунтой, всего пара месяцев с Арчем продвинула меня в постижении Linux раз в 10 дальше.
Причин тут несколько:
- Технический минимализм системы сильно облегчает ее понимание.
- Качественная, подробная документация облегчает процесс обучения.
- Выход из “зоны графического комфорта” весьма способствует!
Последний пункт стоит отметить особо. Ubuntu с ее графическим интерфесом никак не добавляет мотивации ковыряться в консоли. Другое дело – когда изначально есть лишь консоль и сильнейшая мотивация “настроить уже этот графический интерфейс” — тут просто деваться некуда, приходится осваивать документацию и обрастать знаниями.
Windows и Linux: принципиальные отличия
1. Файловая система
- В Linux логическим дисковым томам не назначаются буквы. Вместо этого один из них назначается корневым, а остальные подключаются к указанным папкам внутри него. Все пути начинаются с косой черты, без всяких дисков C:
- Все системные файлы свалены в корневой файловой системе, и разбиты по каталогам по типам/назначению. Условно говоря, все настройки находятся в /etc, исполняемые файлы в /bin и /usr/bin – и ко всему этому добру обычный пользователь (не администратор) имеет доступ только на чтение/выполнение, и то не всегда (когда дело касается системных сервисов)
- Расширения у файлов в linux – вещь совершенно необязательная. Является ли файл исполняемым, определяется специальной отметкой – по типу отметки “скрытый” или “архивный” в Windows. Исполняемые файлы без расширения в linux – норма вещей!
- В linux нет специальной отметки того, что файл скрытый. Вместо этого используются имена с точкой в начале, а уже файловые менеджеры позволяют отключать отображение таких файлов. То есть, файл /home/user/.bashrc – скрытый. Точка в этом случае – часть имени файла!
- Обычный пользователь имеет полный доступ только к своей личной папке, которая обычно находится в /home/%имя_пользователя%. По аналогии с диском D: в Windows, к папке /home часто подключают отдельный раздел диска. Таким образом, все данные пользователей находятся на отдельном разделе (или вообще физическом жестком диске).
- Все пользовательские (не системные) программы при необходимости сохранить какие-то свои данные или настройки, делают это только в домашней папке пользователя, от которого они запущены – просто потому, что только в ней они имеют право на запись.
- Само понятие “файл” в Linux немного другое, более широкое. Есть т.н. “файлы устройств”. Например, /dev/sda обычно жесткий диск (хотя может быть и флешка), а /dev/sda1 это первый раздел этого жесткого диска. Отсюда возможны такие хитрые маневры, как dd if=/dev/sda1 of=/home/user/backup – команда побайтно скопирует весь первый раздел диска /dev/sda в файл backup в домашнем каталоге пользователя. Есть т.н. “символьные ссылки” — в файловом менеджере они выглядят как обычный файл, по факту ссылаются на другой файл, и места на диске не занимают. То есть, может быть один исполняемый файл и куча символьных ссылок на него в разных местах.
2. Пакетный менеджер и понятие “пакета”, установка программ.
- Программы ставятся только от аккаунта администратора. При установке все файлы, относящиеся к программе (например, Firefox), “размазываются” по корневой файловой системе – общие для всех пользователей настройки пойдут в /etc, исполняемые файлы в /usr/bin, а иконки и различные ресурсы вроде графики и звуков – в /usr/share/firefox. При таком раскладе пользователь в принципе не может знать, где у него что конкретно лежит. За это отвечает пакетный менеджер. Например, пакет “Firefox” включает в себя кучу файлов. Пакетный менеджер при установке пакета разложит их по файловой системе, а при удалении – соответственно удалит.
- Еще одна важная функция пакетного менеджера – удовлетворение зависимостей пакета. Например, Firefox требует для работы библиотеку libjpeg. Значит, при установке менеджер пакетов автоматически доустановит пакет libjpeg, а при удалении – удалит, если тот не будет требоваться каким-либо еще пакетом.
- В пакетном менеджере обычно есть база данных со всеми доступными пакетами, и он имеет средства поиска по этой базе. Поэтому установка программ в linux невероятно проста – первой командой мы ищем по ключевым словам по базе точное название пакета, второй – ставим. Не нужно лезть на сайты, искать и что-то качать. Если мне надо в Арче поставить skype – я набираю pacman -S skype и жму ENTER, и через минуту у меня установлен скайп. Надо Firefox – пишу pacman -S firefox. И так далее. В другом дистрибутиве будет отличаться команда и синтаксис, возможно потребуется указать адрес репозитория – сам принцип неизменен.
- Никогда, никогда даже не пытайтесь качать и запускать что-либо через браузер, как в Windows! Только если вы полностью знаете, что делаете – но тогда зачем вы все это читаете?) Скачать и запустить файл — это часть полностью чуждой (даже враждебной) для Linux идеологии. Программы надо ставить через пакетный менеджер. Точка.
- Никогда не используйте для установки программы метод “configure && make && make install”. Каждый раз, когда это происходит – в мире мучительной смертью умирает с десяток невинных котят. Данный набор команд соберет из исходников программу, а потом раскидает ее файлы по файловой системе без ведома пакетного менеджера. Это нарушение нормальной логики работы с системой. Не делайте так))
- Добавлю, пожалуй, сюда еще вот что. Очень часто можно увидеть настойчивые советы «не работать из под администратора», и на это есть не совсем очевидная Windows-пользователям причина. Дело в том, что набор команды в консоли таит в себе опасность опечаток и случайных нажатий. Вполне реальна ситуация, когда ты собираешься удалить папку, начинаешь писать к ней путь и случайно задеваешь ENTER. Linux не имеет привычки спрашивать «Ты точно такой дурак? y/n» — он просто сделает. Поэтому под рутом набирать команды приходится предельно внимательно. В Windows такой проблемы, конечно, нет.
3. Графическое окружение пользователя
- Все графическое окружение пользователя – это совокупность прикладных программ. Исторически сложилось, что для Windows-пользователя такие понятия, как “Рабочий стол”, панель задач, системный трей, регулятор громкости, часы и календарь, меню “Пуск”, доступ к настройкам сети из трея – неотъемлимая часть ОС Windows. В Linux все вышеперечисленное реализуется отдельными программами. Более того, для каждой задачи из приведенного списка есть далеко не одна программа. В качестве регулятора громкости я могу поставить volumeicon, написанный на C, или volwheel на python
- В основе работы графического окружения лежат следующие программы:
- X-сервер, или просто “Иксы”. Программа, осуществляющая прием данных от пользователя (с устройств ввода) и базовое управление окнами, их сворачивание-разворачивание. “Сервером” называется потому, что обеспечивает “сетевую прозрачность”: для Linux не существует разницы, каким образом пользователь зашел в графический сеанс, локально или удаленно. Эдакий RDP как базовая функциональность, проще говоря.
- Менеджер окон, он же WM. Занимается отрисовкой элементов оконного интерфейса, плюс (в зависимости от навороченности) предоставляющий ряд других функций. Некоторые WM позволяют задать фон рабочего стола, некоторые добавляют функциональность “системного меню”. Иногда с X-сервером ставится простейший (чтобы было) менеджер окон – TWM. Страшный как божий грех, прямиком из 70х годов.
- Декоратор окон – иногда функционал по оформлению окон, возможность менять темы оформления выносится в отдельную программу
- Композит-менеджер – тоже бывает как часть WM, либо как отдельная программа. Его задачей является переложить отрисовку интерфейса на видеокарту. Технически принцип прост – каждое отрисованное окно это отдельная текстура в памяти видеокарты. А обращаться с текстурами, добавлять эффекты и искажения, проецировать на плоскость в пространстве, менять полупрозрачность и накладывать их друг на друга видеокарты умеют уже много лет.
- Элементы интерфейса: панель задач, трей, менеджер сети, системное меню, программа для задания обоев рабочего стола
- Базовый прикладной софт – диспетчер файлов, эмулятор терминала (чтобы консольные команды писать в красивом полупрозрачном окошке)
- Преднастроенные ”комплекты” подобранных друг под друга элементов графической среды, программ из списка выше, называются “Окружениями рабочего стола”, или DE. Наиболее известны такие DE, как Gnome и KDE, самые тяжеловесные и “жирные”. Есть также XFCE и LXDE. Установка часто реализуется посредством установки так называемого мета-пакета – сам по себе пакет не содержит файлов, но в качестве зависимостей требует установки всего комплекта программ, составляющих DE: WM, декоратора/композит-менеджера, файлового менеджера и так далее
- Также можно (и нередко является разумным) собирать для себя окружение из “кусочков” по своему вкусу – отдельно выбрать WM, отдельно файл-менеджер и так далее
Подведение итогов
После небольшого самообразования, получение из текстово-консольной системы графической происходит в одну команду. В моем случае, я набираю:
pacman -S xf86-video-ati xorg-server openbox tint2 nitrogen lxterminal xcompmgr wicd-gtk volumeicon.
Это команда установить все перечисленные пакеты:
xf86-video-ati это open-source драйвера для моей видеокарты
xorg-server это “иксы”
openbox это легковесный WM с системным меню (типа как “Пуск”)
tint2 это панель задач с треем, куда будут сворачиваться приложения
nitrogen позволяет задать фон рабочего стола
lxterminal – мой любимый эмулятор терминала
xcompmgr это самый простой композит-менеджер, добавляет полупрозрачность и тени
wicd-gtk это менеджер сетевых подключений, который висит в трее
volumeicon – регулятор громкости
После этого, уже из графической среды, через lxterminal устанавливаю все остальное, что нужно для жизни: браузер(ы), файл-менеджер, видео и аудиокодеки, плеер, libreoffice, gimp и прочее)
Рядовому пользователю компьютерных электронных устройств редко, но приходится сталкиваться с таким понятием, как «выбор файловой системы». Чаще всего это происходит при необходимости форматирования внешних накопителей (флешек, microSD), установке операционных систем, восстановлении данных на проблемных носителях, в том числе жестких дисках. Пользователям Windows предлагается выбрать тип файловой системы, FAT32 или NTFS, и способ форматирования (быстрое/глубокое). Дополнительно можно установить размер кластера. При использовании ОС Linux и macOS названия файловых систем могут отличаться.
Возникает логичный вопрос: что такое файловая система и в чем ее предназначение? В данной статье дадим ответы на основные вопросы касательно наиболее распространенных ФС.
Что такое файловая система
Обычно вся информация записывается, хранится и обрабатывается на различных цифровых носителях в виде файлов. Далее, в зависимости от типа файла, кодируется в виде знакомых расширений – *exe, *doc, *pdf и т.д., происходит их открытие и обработка в соответствующем программном обеспечении. Мало кто задумывается, каким образом происходит хранение и обработка цифрового массива в целом на соответствующем носителе.
Операционная система воспринимает физический диск хранения информации как набор кластеров размером 512 байт и больше. Драйверы файловой системы организуют кластеры в файлы и каталоги, которые также являются файлами, содержащими список других файлов в этом каталоге. Эти же драйверы отслеживают, какие из кластеров в настоящее время используются, какие свободны, какие помечены как неисправные.
Запись файлов большого объема приводит к необходимости фрагментации, когда файлы не сохраняются как целые единицы, а делятся на фрагменты. Каждый фрагмент записывается в отдельные кластеры, состоящие из ячеек (размер ячейки составляет один байт). Информация о всех фрагментах, как части одного файла, хранится в файловой системе.
Файловая система связывает носитель информации (хранилище) с прикладным программным обеспечением, организуя доступ к конкретным файлам при помощи функционала взаимодействия программ API. Программа, при обращении к файлу, располагает данными только о его имени, размере и атрибутах. Всю остальную информацию, касающуюся типа носителя, на котором записан файл, и структуры хранения данных, она получает от драйвера файловой системы.
На физическом уровне драйверы ФС оптимизируют запись и считывание отдельных частей файлов для ускоренной обработки запросов, фрагментации и «склеивания» хранящейся в ячейках информации. Данный алгоритм получил распространение в большинстве популярных файловых систем на концептуальном уровне в виде иерархической структуры представления метаданных (B-trees). Технология снижает количество самых длительных дисковых операций – позиционирования головок при чтении произвольных блоков. Это позволяет не только ускорить обработку запросов, но и продлить срок службы HDD. В случае с твердотельными накопителями, где принцип записи, хранения и считывания информации отличается от применяемого в жестких дисках, ситуация с выбором оптимальной файловой системы имеет свои нюансы.
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Подписаться
Основные функции файловых систем
Файловая система отвечает за оптимальное логическое распределение информационных данных на конкретном физическом носителе. Драйвер ФС организует взаимодействие между хранилищем, операционной системой и прикладным программным обеспечением. Правильный выбор файловой системы для конкретных пользовательских задач влияет на скорость обработки данных, принципы распределения и другие функциональные возможности, необходимые для стабильной работы любых компьютерных систем. Иными словами, это совокупность условий и правил, определяющих способ организации файлов на носителях информации.
Основными функциями файловой системы являются:
- размещение и упорядочивание на носителе данных в виде файлов;
- определение максимально поддерживаемого объема данных на носителе информации;
- создание, чтение и удаление файлов;
- назначение и изменение атрибутов файлов (размер, время создания и изменения, владелец и создатель файла, доступен только для чтения, скрытый файл, временный файл, архивный, исполняемый, максимальная длина имени файла и т.п.);
- определение структуры файла;
- поиск файлов;
- организация каталогов для логической организации файлов;
- защита файлов при системном сбое;
- защита файлов от несанкционированного доступа и изменения их содержимого.
Задачи файловой системы
Функционал файловой системы нацелен на решение следующих задач:
- присвоение имен файлам;
- программный интерфейс работы с файлами для приложений;
- отображение логической модели файловой системы на физическую организацию хранилища данных;
- поддержка устойчивости файловой системы к сбоям питания, ошибкам аппаратных и программных средств;
- содержание параметров файла, необходимых для правильного взаимодействия с другими объектами системы (ядро, приложения и пр.).
В многопользовательских системах реализуется задача защиты файлов от несанкционированного доступа, обеспечение совместной работы. При открытии файла одним из пользователей для других этот же файл временно будет доступен в режиме «только чтение».
Вся информация о файлах хранится в особых областях раздела (томах). Структура справочников зависит от типа файловой системы. Справочник файлов позволяет ассоциировать числовые идентификаторы уникальных файлов и дополнительную информацию о них с непосредственным содержимым файла, хранящимся в другой области раздела.
Операционные системы и типы файловых систем
Существует три основных вида операционных систем, используемых для управления любыми информационными устройствами: Windows компании Microsoft, macOS разработки Apple и операционные системы с открытым исходным кодом на базе Linux. Все они, для взаимодействия с физическими носителями, используют различные типы файловых систем, многие из которых дружат только со «своей» операционкой. В большинстве случаев они являются предустановленными, рядовые пользователи редко создают новые дисковые разделы и еще реже задумываются об их настройках.
В случае с Windows все выглядит достаточно просто: NTFS на всех дисковых разделах и FAT32 (или NTFS) на флешках. Если установлен NAS (сервер для хранения данных на файловом уровне), и в нем используется какая-то другая файловая система, то практически никто не обращает на это внимания. К нему просто подключаются по сети и качают файлы.
На мобильных гаджетах с ОС Android чаще всего установлена ФС версии ext4 во внутренней памяти и FAT32 на карточках microSD. Владельцы продукции Apple зачастую вообще не имеют представления, какая файловая система используется на их устройствах – HFS+, HFSX, APFS, WTFS или другая. Для них существуют лишь красивые значки папок и файлов в графическом интерфейсе.
Более богатый выбор у линуксоидов. Но здесь настройка и использование определенного типа файловой системы требует хотя бы минимальных навыков программирования. Тем более, мало кто задумывается, можно ли использовать в определенной ОС «неродную» файловую систему. И зачем вообще это нужно.
Рассмотрим более подробно виды файловых систем в зависимости от их предпочтительного использования с определенной операционной системой.
Файловые системы Windows
Исходный код файловой системы, получившей название FAT, был разработан по личной договоренности владельца Microsoft Билла Гейтса с первым наемным сотрудником компании Марком Макдональдом в 1977 году. Основной задачей FAT была работа с данными в операционной системе Microsoft 8080/Z80 на базе платформы MDOS/MIDAS. Файловая система FAT претерпела несколько модификаций – FAT12, FAT16 и, наконец, FAT32, которая используется сейчас в большинстве внешних накопителей. Основным отличием каждой версии является преодоление ограниченного объема доступной для хранения информации. В дальнейшем были разработаны еще две более совершенные системы обработки и хранения данных – NTFS и ReFS.
FAT (таблица распределения файлов)
Числа в FAT12, FAT16 и FAT32 обозначают количество бит, используемых для перечисления блока файловой системы. FAT32 является фактическим стандартом и устанавливается на большинстве видов сменных носителей по умолчанию. Одной из особенностей этой версии ФС является возможность применения не только на современных моделях компьютеров, но и в устаревших устройствах и консолях, снабженных разъемом USB.
Пространство FAT32 логически разделено на три сопредельные области:
- зарезервированный сектор для служебных структур;
- табличная форма указателей;
- непосредственная зона записи содержимого файлов.
К недостатком стандарта FAT32 относится ограничение размера файлов на диске до 4 Гб и всего раздела в пределах 8 Тб. По этой причине данная файловая система чаще всего используется в USB-накопителях и других внешних носителях информации. Для установки последней версии ОС Microsoft Windows 10 на внутреннем носителе потребуется более продвинутая файловая система.
С целью устранения ограничений, присущих FAT32, корпорация Microsoft разработала обновленную версию файловой системы exFAT (расширенная таблица размещения файлов). Новая ФС очень схожа со своим предшественником, но позволяет пользователям хранить файлы намного большего размера, чем четыре гигабайта. В exFAT значительно снижено число перезаписей секторов, ответственных за непосредственное хранение информации. Функция очень важна для твердотельных накопителей ввиду необратимого изнашивания ячеек после определенного количества операций записи. Продукт exFAT совместим с операционными системами Mac, Android и Windows. Для Linux понадобится вспомогательное программное обеспечение.
NTFS (файловая система новой технологии)
Стандарт NTFS разработан с целью устранения недостатков, присущих более ранним версиям ФС. Впервые он был реализован в Windows NT в 1995 году, и в настоящее время является основной файловой системой для Windows. Система NTFS расширила допустимый предел размера файлов до шестнадцати гигабайт, поддерживает разделы диска до 16 Эб (эксабайт, 1018 байт). Использование системы шифрования Encryption File System (метод «прозрачного шифрования») осуществляет разграничение доступа к данным для различных пользователей, предотвращает несанкционированный доступ к содержимому файла. Файловая система позволяет использовать расширенные имена файлов, включая поддержку многоязычности в стандарте юникода UTF, в том числе в формате кириллицы. Встроенное приложение проверки жесткого диска или внешнего накопителя на ошибки файловой системы chkdsk повышает надежность работы харда, но отрицательно влияет на производительность.
ReFS (Resilient File System)
Последняя разработка Microsoft, доступная для серверов Windows 8 и 10. Архитектура файловой системы в основном организована в виде B + -tree. Файловая система ReFS обладает высокой отказоустойчивостью благодаря реализации новых функций:
- Copy-on-Write (CoW) – никакие метаданные не изменяются без копирования;
- данные записываются на новое дисковое пространство, а не поверх существующих файлов;
- при модификации метаданных новая копия хранится в свободном дисковом пространстве, затем система создает ссылку из старых метаданных на новую версию.
Все это позволяет повысить надежность хранения файлов, обеспечивает быстрое и легкое восстановление данных.
Файловые системы macOS
Для операционной системы macOS компания Apple использует собственные разработки файловых систем:
- HFS+, которая является усовершенствованной версией HFS, ранее применяемой на компьютерах Macintosh, и ее более соверешенный аналог APFS. Стандарт HFS+ используется во всех устройствах под управлением продуктов Apple, включая компьютеры Mac, iPod, а также Apple X Server.
- Кластерная файловая система Apple Xsan, созданная из файловых систем StorNext и CentraVision, используется в расширенных серверных продуктах. Эта файловая система хранит файлы и папки, информацию Finder о просмотре каталогов, положениях окна и т.д.
Файловые системы Linux
В отличие от ОС Windows и macOS, ограничивающих выбор файловой системы предустановленными вариантами, Linux предоставляет возможность использования нескольких ФС, каждая из которых оптимизирована для решения определенных задач. Файловые системы в Linux используются не только для работы с файлами на диске, но и для хранения данных в оперативной памяти или доступа к конфигурации ядра во время работы системы. Все они включены в ядро и могут использоваться в качестве корневой файловой системы.
Основные файловые системы, используемые в дистрибутивах Linux:
- Ext2;
- Ext3;
- Ext4;
- JFS;
- ReiserFS;
- XFS;
- Btrfs;
- ZFS.
Ext2, Ext3, Ext4 или Extended Filesystem – стандартная файловая система, первоначально разработанная еще для Minix. Содержит максимальное количество функций и является наиболее стабильной в связи с редкими изменениями кодовой базы. Начиная с ext3 в системе используется функция журналирования. Сегодня версия ext4 присутствует во всех дистрибутивах Linux.
JFS или Journaled File System разработана в IBM в качестве альтернативы для файловых систем ext. Сейчас она используется там, где необходима высокая стабильность и минимальное потребление ресурсов (в первую очередь в многопроцессорных компьютерах). В журнале хранятся только метаданные, что позволяет восстанавливать старые версии файлов после сбоев.
ReiserFS также разработана в качестве альтернативы ext3, поддерживает только Linux. Динамический размер блока позволяет упаковывать несколько небольших файлов в один блок, что предотвращает фрагментацию и улучшает работу с небольшими файлами. Недостатком является риск потери данных при отключении энергии.
XFS рассчитана на файлы большого размера, поддерживает диски до 2 терабайт. Преимуществом системы является высокая скорость работы с большими файлами, отложенное выделение места, увеличение разделов на лету, незначительный размер служебной информации. К недостаткам относится невозможность уменьшения размера, сложность восстановления данных и риск потери файлов при аварийном отключении питания.
Btrfs или B-Tree File System легко администрируется, обладает высокой отказоустойчивостью и производительностью. Используется как файловая система по умолчанию в OpenSUSE и SUSE Linux.
Другие ФС, такие как NTFS, FAT, HFS, могут использоваться в Linux, но корневая файловая система на них не устанавливается, поскольку они для этого не предназначены.
Дополнительные файловые системы
В операционных системах семейства Unix BSD (созданы на базе Linux) и Sun Solaris чаще всего используются различные версии ФС UFS (Unix File System), известной также под названием FFS (Fast File System). В современных компьютерных технологиях данные файловые системы могут быть заменены на альтернативные: ZFS для Solaris, JFS и ее производные для Unix.
Кластерные файловые системы включают поддержку распределенных хранилищ, расширяемость и модульность. К ним относятся:
- ZFS – «Zettabyte File System» разработана для распределенных хранилищ Sun Solaris OS;
- Apple Xsan – эволюция компании Apple в CentraVision и более поздних разработках StorNext;
- VMFS (Файловая система виртуальных машин) разработана компанией VMware для VMware ESX Server;
- GFS – Red Hat Linux именуется как «глобальная файловая система» для Linux;
- JFS1 – оригинальный (устаревший) дизайн файловой системы IBM JFS, используемой в старых системах хранения AIX.
Практический пример использования файловых систем
Владельцы мобильных гаджетов для хранения большого объема информации используют дополнительные твердотельные накопители microSD (HC), по умолчанию отформатированные в стандарте FAT32. Это является основным препятствием для установки на них приложений и переноса данных из внутренней памяти. Чтобы решить эту проблему, необходимо создать на карточке раздел с ext3 или ext4. На него можно перенести все файловые атрибуты (включая владельца и права доступа), чтобы любое приложение могло работать так, словно запустилось из внутренней памяти.
Операционная система Windows не умеет делать на флешках больше одного раздела. С этой задачей легко справится Linux, который можно запустить, например, в виртуальной среде. Второй вариант — использование специальной утилиты для работы с логической разметкой, такой как MiniTool Partition Wizard Free. Обнаружив на карточке дополнительный первичный раздел с ext3/ext4, приложение Андроид Link2SD и аналогичные ему предложат куда больше вариантов.
Флешки и карты памяти быстро умирают как раз из-за того, что любое изменение в FAT32 вызывает перезапись одних и тех же секторов. Гораздо лучше использовать на флеш-картах NTFS с ее устойчивой к сбоям таблицей $MFT. Небольшие файлы могут храниться прямо в главной файловой таблице, а расширения и копии записываются в разные области флеш-памяти. Благодаря индексации на NTFS поиск выполняется быстрее. Аналогичных примеров оптимизации работы с различными накопителями за счет правильного использования возможностей файловых систем существует множество.
Надеюсь, краткий обзор основных ФС поможет решить практические задачи в части правильного выбора и настройки ваших компьютерных устройств в повседневной практике.
Большинство сравнений этих операционных систем проводится по принципам: свободное – несвободное, платное – бесплатное. Мы попробуем заглянуть глубже, разобрав основные принципы работы Windows и Linux.
Ядро
Основа, сердце и мозг любой операционной системы — это ее ядро. Его архитектура определяет принципы взаимодействия приложений с аппаратными ресурсами компьютера и периферийными устройствами.
Актуальные версии ОС Microsoft (7, 8.1 и 10) построены на гибридном ядре NT. Оно имеет модульную структуру и включается в себя микроядро, уровень аппаратных абстракций, драйверы и службы, работающие в режиме kernel-mode. Ядро работает в защищенной области и имеет полный доступ к системным и аппаратным ресурсам. Пользовательский режим состоит из двух подсистем: внутренней (интегральной) и внешней (подсистема окружения). Первая контролирует такие аспекты работы ОС, как авторизация, доступ к учетной записи, подключение к сети, использование сетевых сервисов и протоколов. Подсистема окружения отвечает за запуск программного обеспечения и графический интерфейс. Для операций пользовательского режима непосредственное обращение к аппаратной части исключается. Любой программный запрос предварительно обрабатывается ядром и передается дальше уже от его имени.
Схематическая модель ядра NT с разделением по режимам работы
В семействе операционных систем Linux используется монолитное ядро с динамически подключаемыми модулями. В нем собраны все базовые сервисы – драйверы устройств, сетевые протоколы, управление дисковыми пространствами и файловой системой. На схеме показано условное разделение модулей по основным выполняемым задачам. Динамический механизм подключения позволяет вводить их в работу по мере необходимости, к примеру, при обнаружении нового устройства или по желанию пользователя. Добавление и удаление компонентов выполняется без остановки системы. Главным достоинством монолитного ядра считается скорость работы.
Схема ядра Linux с кольцом решаемых различными модулями задач
В последние годы наблюдается картина взаимной интеграции ОС на уровне ядер. Microsoft осуществляет поддержку виртуализации, разместив дистрибутивы Ubuntu, openSUSE и Debian в магазине MS Store, а в 2020 году обещает внедрить ядро Linux в дистрибутив Windows 10. С другой стороны, свободное сообщество реализовало KVM (kernel-based virtual machine). С помощью этой виртуальной машины Linux может запускать Windows поверх своего ядра.
Файловая система
В обеих операционных системах пользователь имеет свою домашнюю директорию с набором папок для хранения мультимедийных файлов, документов или фото. На этом сходство заканчивается. Windows использует иерархическую систему адресации. Жесткие диски, CD или DVD-ROM, а также другие внешние носители информации обозначаются буквами латинского алфавита. На HDD располагаются системные и пользовательские директории. Физические устройства (например, мышь и клавиатура) вынесены в отдельную категорию.
Древовидная файловая структура Windows от жесткого диска до конечного файла
В Linux буквенной адресации нет, а любое устройство система способна воспринимать как файл. Вместо диска «С» используется понятие корневая директория, обозначаемое символом «/». К ней монтируются все остальные папки как системные, так и пользовательские. Устройства также попадают в эту иерархию. К примеру, CD-ROM будет смонтирован как /dev/cdrom, а мышь как /dev/mouse.
Точки монтирования каталогов в Linux расходящиеся от корневой директории
Кардинальные различия в подходе требуют и разных файловых систем. В Windows по умолчанию используется NTFS (NT File System), а в семействе Linux наибольшее распространение получила EXT (Extended File System). Четвертая редакция, обозначаемая как ext4 или ext4fs, основная в современных дистрибутивах.
Метод сохранения конфигурации
В Windows основным местом хранения конфигураций и параметров является реестр операционной системы. Часть программ дополнительно создает файлы INI для записи пользовательских настроек и их быстрого редактирования. Повреждение реестра может привести к краху ОС, но внесение в него правок не требует повышенных привилегий. С другой стороны, централизованное хранение параметров дает необходимую гибкость при удаленном администрировании.
Вид редактора реестра Windows и диалогового окна с командой его запуска
В Linux хранение конфигураций децентрализовано. Системные конфигурации хранятся в каталоге /ext, а пользовательские в скрытых папках домашней директории. Редактирование настроек доступно в обычном текстовом редакторе, но требует повышенных привилегий. Не зная пароля root (главного администратора), пользователь не сможет вносить правки, и, следовательно, нарушить работу системы.
Права пользователей
Обе рассматриваемые ОС способны работать в многопользовательском режиме, но имеют серьезные различия в механизме его реализации. В Windows по умолчанию используются три категории доступа для пользователей: обычный, гостевой и административный. Наибольшими правами обладает администратор, наименьшими – гость. Обычный пользователь изначально сильно урезан в возможностях. В дополнение к этому существует система квотирования дискового пространства, инструменты управления групповой политикой и родительский контроль. При грамотном подходе администратор может ограничить возможности пользователя настолько, что для него компьютер станет большой пишущей машинкой или калькулятором с экраном. Такой подход удобен для организаций, но мало применим к домашнему ПК. По этой причине разграничение прав в Windows используется в основном в корпоративной среде.
В Linux, которая, как мы знаем, способна все воспринимать как файл, реализована единая сквозная система разграничений. В общем виде принцип ее работы показан на следующей картинке.
Структурная схема распределения прав доступа пользователей в ОС Linux
Каждый файл имеет разрешения на чтение, запись и запуск, обозначаемые буквами RWX. Права дублируются для владельца-создателя, группы, в которую он входит, и остальных пользователей. Права могут комбинироваться в широком диапазоне.
Неограниченным доступом ко всей системе обладает root – суперпользователь. Он единственный имеет право открывать любой файл, вносить изменения в конфигурацию и запускать все программы. Образно говоря, если в своей директории пользователь – царь, то root в системе – бог.
В Windows на домашнем ПК быть администратором явление естественное. Только таким образом можно устанавливать программы и конфигурировать систему. Мало кто добровольно ограничит себя в правах. В Linux, наоборот, даже продвинутому пользователю никогда не придет в голову постоянно работать в режиме root.
Управление программным обеспечением
Обе операционные системы имеют двойственную систему установки ПО: на выбор можно использовать локальный инсталлятор или сетевой магазин приложений. Для Windows это файлы EXE/MSI и магазин Microsoft Store. В Linux используются пакеты RPM или DEB и разветвленная система репозиториев.
С программами для Windows все просто. Это самая распространенная операционная система в мире, и выбор ПО для нее не просто богат, он огромен. Найти подходящее приложение не составляет особого труда.
В семействе Linux все сложнее. Во-первых, существует две основные ветки – дистрибутивы семейства Red Hat (пакеты RPM) и семейства Debian (пакеты DEB). Во-вторых, внутри этих веток существует еще несколько десятков направлений. Разобраться в сложившейся картине сложно, и это отпугивает многих пользователей. Особенно если учесть, что для Windows линия развития будет практически прямой с небольшой тупиковой ветвью, заканчивающейся версией Millennium Edition в далеком 2003 году.
Дерево развития дистрибутивов Linux c выделением веток Red Hat и Debian
В заключение
С уверенностью можно сказать только одно – Windows и Linux разные. Невозможно полноценно сравнивать единственного ребенка какого-нибудь английского лорда, получившего хорошее образование и воспитание, и череду отпрысков вождя африканского племени. В семействе Linux есть выдающиеся экземпляры систем, но бороться на равных с гигантом мировой индустрии им не под силу.
Post Views: 1 851
Linux File System and Windows File System are two different approaches to organizing and managing files on a computer. Linux File System, also known as ext4, is designed for Unix-like operating systems and is known for its stability, security, and flexibility. It uses a hierarchical structure with a single root directory and allows for the use of symbolic links and mount points. On the other hand, Windows File System, known as NTFS, is designed for Windows operating systems and offers features like file compression, encryption, and access control. It uses a tree-like structure with multiple root directories and supports long file names. While both file systems have their own advantages and disadvantages, Linux File System is often preferred by advanced users and developers due to its open-source nature and compatibility with a wide range of devices.
Introduction
When it comes to operating systems, two of the most popular choices are Linux and Windows. Both have their own unique features and functionalities, including their respective file systems. The file system is a crucial component of any operating system as it determines how data is organized, stored, and accessed. In this article, we will compare the attributes of the Linux File System (ext4) and the Windows File System (NTFS), highlighting their similarities and differences.
File System Structure
The Linux File System follows a hierarchical structure, similar to a tree, with the root directory («/») at the top. It uses a forward slash («/») to separate directories and files. Each file or directory is represented by an inode, which contains metadata such as permissions, timestamps, and file size. Directories in Linux can be nested within each other, allowing for a flexible and organized file system.
On the other hand, the Windows File System follows a different structure. It uses drive letters (e.g., C:, D:) to represent different storage devices or partitions. Each drive can have its own file system, such as NTFS or FAT32. Windows uses backslashes («\») to separate directories and files. Unlike Linux, Windows does not have a single root directory, but rather a root directory for each drive.
Despite these structural differences, both file systems provide a way to organize and access files efficiently.
File System Features
Linux File System (ext4) offers several features that make it a popular choice among users. One of its notable features is journaling, which helps in recovering the file system in case of a system crash or power failure. Journaling ensures that file system operations are logged, allowing for faster recovery and reduced data loss. Additionally, ext4 supports file system encryption, allowing users to protect their sensitive data.
On the other hand, Windows File System (NTFS) also provides a range of features. NTFS supports file compression, enabling users to save disk space by compressing files and directories. It also supports file and folder permissions, allowing for fine-grained control over access rights. NTFS supports larger file sizes and volumes compared to older Windows file systems like FAT32, making it suitable for modern storage needs.
Both file systems offer features that cater to different user requirements, ensuring efficient and secure file management.
File System Performance
When it comes to performance, Linux File System (ext4) is known for its speed and efficiency. It utilizes various techniques such as delayed allocation and extents to optimize disk usage and minimize fragmentation. Ext4 also supports fast file system checks, reducing the time taken for system maintenance tasks. Overall, ext4 is well-suited for high-performance computing environments.
Windows File System (NTFS) also offers good performance, especially in terms of handling large files and volumes. NTFS uses a Master File Table (MFT) to store file metadata, which allows for faster file access compared to older Windows file systems. NTFS supports advanced features like file compression and encryption without significant performance degradation.
Both file systems have undergone continuous improvements over the years, resulting in efficient performance for their respective operating systems.
Compatibility and Interoperability
Linux File System (ext4) is the default file system for most Linux distributions, making it highly compatible within the Linux ecosystem. It is supported by various utilities and tools, ensuring seamless interoperability between different Linux systems. However, when it comes to compatibility with other operating systems, such as Windows, additional software or drivers may be required to access ext4 partitions.
Windows File System (NTFS), being the default file system for Windows, offers excellent compatibility within the Windows ecosystem. It is supported by various Windows utilities and applications, ensuring smooth interoperability. NTFS also provides limited compatibility with other operating systems, such as Linux, through third-party drivers or software.
While both file systems excel in their respective ecosystems, compatibility with other operating systems may require additional configuration or software.
Conclusion
Linux File System (ext4) and Windows File System (NTFS) have their own unique attributes and functionalities. The Linux File System follows a hierarchical structure, offers journaling and encryption, and provides efficient performance. On the other hand, the Windows File System uses drive letters, supports file compression and permissions, and offers good performance for handling large files and volumes.
Both file systems have their strengths and cater to different user requirements. The choice between Linux File System and Windows File System ultimately depends on the specific needs and preferences of the user. Whether it’s the flexibility and efficiency of Linux or the compatibility and familiarity of Windows, both file systems play a crucial role in the overall functionality and usability of their respective operating systems.
Comparisons may contain inaccurate information about people, places, or facts. Please report any issues.