Чем отличается Windows от Linux, и что же лучше?

Операционная система персонального компьютера играет очень большую роль при работе, ведь ОС это целый комплекс из программ, которые управляют и используют ресурсы компьютера, и обеспечивают взаимодействие с пользователем. На текущий момент, среди десктопных операционок закрепилась тройка лидеров: Linux, OS X, Windows. Сегодня мы попытаемся выполнить сравнение Linux и Windows (OS X рассматривать не будем, так она официально доступна только на компьютерах Apple).

Прежде чем выяснить какая ОС лучше и почему, давайте определимся с критериями сравнения. Для наглядности и объективности сравнения, определим такие критерии:

  1. Ядро операционной системы;
  2. Файловая система;
  3. Способ хранения настроек ОС;
  4. Разграничение прав доступа;
  5. Прикладное программное обеспечение;
  6. Поддержка и обновление;
  7. Безопасность;
  8. Конфиденциальность.

1. Ядро — сердце операционной системы!

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

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

Первым и самым значительным отличием Windows от Linux является архитектура ядра.

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

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

2. Файловая система.

Файловая система определяет физический способ хранения информации, а также имеет определенные характеристики:

  • максимально допустимое значение:
    • имени файла;
    • каталога;
    • размера отдельного файла;
    • размера раздела накопителя.
  • наличие атрибутов файла;
  • разграничение прав доступа;
  • поддержка журналирования.

Если рассмотреть примеры дерева каталогов двух конкурирующих систем, разница в структуре очевидна:

Дерево каталогов систем стандарта UNIX:

/
    /usr
        /bin
            /arch
            /ls   
            /raw
        /lib
            /libhistory.so.5.2
            /libgpm.so.1
    /home
        /lost+found
            /script.sh
        /shifthackz
            /Pictures
                /null.png
            /Video
                /compromat.avi
                /localhost
                    /ideas.txt
Дерево каталогов систем Windows / DOS:

C:
  \Program files (x86)
      \CDEx
           \CDEx.exe
           \CDEx.hlp
           \mppenc.exe
  \Документы
      \Пароли.txt
      \Фотка.jpg
D:
  \Мультимедиа
      \Музыка
           \Accept
           \U.D.O
               \Azrael.mp3
           \Разное

Файловая система UNIX берет начало с корня, отдельные разделы жесткого диска можно смонтировать в любой каталог (например /mnt/data, /etc, /home). Накопители именуются по алфавиту (/dev/sda, /dev/sdb, и т.д.), а разделы цифрами (/dev/sda1, /dev/sda2, …). Имена системных каталогов заданы в соответствии с тем, что храниться в каталоге (в /etc конфигурационные файлы, в /usr ресурсы, вроде иконок, и т.д., в /home данные пользователей).

В Windows каждый раздел каждого жесткого диска имеет свой корень, который нумеруется по алфавиту (С:, D:, E:, …). На один разделов хранятся системные файлы ОС (как правило это диск C:), на нем имена системных папок также имеют логически связанные имена (в папке Windows все системные библиотеки и исполняемые файлы, в папке Program Files исполняемые файлы прикладных программ, в папке Users данные пользователей).

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

 

NTFS

Максимальные значения:

  • Размер раздела: 264 байт — 1 кластер
  • Размер файла: 264 байт (или 16 ЭиБ) — 1 КиБ
  • Кол-во файлов: 4 294 967 295 (232 — 1)
  • Длина имени файла: 255 символов

 

ext4

Максимальные значения:

  • Размер раздела: 260 байт
  • Размер файла: 260 байт
  • Кол-во файлов: задается при создании
  • Длина имени файла: 255 символов

3. Способ хранения настроек.

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

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

В Windows глобальные настройки хранятся в одном месте — реестре Windows, где доступ к каждому значению происходит по полному пути к ключам (HKEY_LOCAL_MACHINE\SOFTWARE\…). Значения в реестре можно поменять с помощью графического приложения — редактора реестра. Прикладное ПО имеет свойство забивать реестр ненужными данными, а некоторые деинсталяторы не очищают за собой реестр при удалении программы. Если случайно или преднамеренно повредить реестр — это приведет к ошибкам в системе. Перенос настроек возможен, но есть риск перенести вместе с настройками мусор от некорректно работающего софта.

4. Разграничение прав доступа.

Обе системы являются многопользователскими, и на текущем этапе развития не сильно отличаются, хотя так было не всегда.

Ядро Linux изначально разрабатывалось с поддержкой многопользовательского режима работы. Имеется 3 уровня доступа к файлам и каталогам: владелец, группа, все остальные. Также как и 3 критерия доступа: разрешение на чтение, запись, выполнение. Есть поддержка расширенных списков доступа (SELinux, ACL).

Ядро Windows NT берет свое начало из MS DOS, а DOS разрабатывался с расчетом на одного пользователя. Поддержка нескольких пользователей была реализована позднее. Сейчас, по разграничению прав мало чем отличается от Linux, те же 3 уровня доступа (владелец, группа, остальные) и списки ACL.

Со своего опыта работы системным администратором, могу сказать что несмотря на отсутствие отличий в разграничениях прав доступа в Linux и Windows, настройка прав на Linux у меня занимает меньше времени и вызывает меньше проблем. А на Windows был случай когда права на удаленный ресурс считывались некорректно из-за несовместимости разных версий протокола Samba.ShiftHackZ

5. Прикладное программное обеспечение.

Разница в программном обеспечении, которое предназначено для сравниваемых ОС значительна, и требует пристального рассмотрения.

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

В Windows нету репозиториев с доверенным ПО. Большинство программ имеют закрытый исходный код, поставляются в виде скачиваемых установочных файлов с сайтов разработчиков (.exe, .msi). Нет возможности понять как работает установленная программа, и что она на самом деле делает в фоновом режиме. Как правило открытый исходный код имеют Windows-версии свободного ПО из Linux (например Gimp, Inkscape).

Теперь стоит сравнить имеющиеся ПО для обеих систем.

Современное свободное программное обеспечение в Linux способно решить те же задачи что и аналогичный проприетарный софт для Windows. Исключением могут стать только некоторые непопулярные программы с узконаправленным спектром задач.

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

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

Существует определенное число игр для Linux, большинство бесплатные и с открытыми исходниками — в лучших традициях линукса. К тому же не так давно компания Valve выпустила свой дистрибутив SteamOS, который позиционируется как игровая платформа будущего. Таким шагом компания Valve стимулирует разработчиков выпускать кросплатформенные игры. Но на данный момент Linux проигрывает по качеству и количеству игр.

Отдельного упоминания стоит Wine — программа которая может запускать некоторые приложения и игры, написанные под Windows в среде Linux, путем трансляции системных вызовов. Но таким образом можно поиграть только в старые игры, с целью вспомнить детство и понастольгировать.

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

Очевидно, что в игровых возможностях винда превосходит своего конкурента, но с выпуском SteamOS, ситуация с играми на линукс может постепенно измениться, а через время возможно и обогнать Windows.

6. Поддержка и обновление.

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

В Windows процесс обновления несколько хаотичен. Центр обновления качает новые версии программ от Microsoft в фоновом режиме, а затем сразу же начинает их устанавливать (в Windows 10 были случаи принудительной остановки работы приложений пользователя, затем запускался процесс обновления). Способ обновления прикладного ПО выбирается его разработчиком. Некоторые программы умеют обновляться сами, некоторые нужно вручную скачивать и устанавливать.

Во времена когда интернет не был безлимитным и тарифицировался трафику, помню появился у меня ноутбук Asus F7S с лицензионной Windows Vista. На тот момент я уже был уверенным пользователем ПК, но не был знаком с компонентами ОС и не знал про загрузку обновлений в фоновом режиме по-умолчанию. Это приводило к тому, что лимит по трафику за день достигался всего за 20 минут. И я долго не мог понять почему и сидел без интернета, пока в гости случайно не зашел знакомый, и не поведал мне причину. В тот момент я готов был взорвать Microsoft, ведь я потерял много денег впустую, а обновление так и не скачалось полностью… ShiftHackZ

7. Безопасность.

Linux — достаточно безопасная операционная система. Такой результат достигнут благодаря разграничению прав доступа запускаемых приложений. Каждое приложение которое запускает пользователь исполняется в изолированной среде, если допустить наличие вредоносного кода в программе, то он не сможет нанести ущерб системным файлам. Но в любом ПО есть уязвимости, и ни одну систему в мире нельзя считать на 100% безопасной и взломоустойчивой.

Так как платформа Windows популярна, под нее существует большое многообразие вредоносного и шпионского ПО. Встроенный в ОС от майкрософта «Защитник Windows» плохо справляется со своей задачей, и рядовой пользователь вынужден ставить сторонний антивирус, который нагружает систему.

8. Конфиденциальность.

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

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

До выхода Windows 10 ситуация отличалась лишь тем, что конфиденциальность могли нарушить прикладные программы с закрытым исходным кодом, что не так просто выявить.

Заключение.

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

Критерий Windows Linux
1. Ядро ОС 0 1
2. Файловая система 1 1
3. Хранение настроек 1 1
4. Разграничение прав доступа 1 1
5.1 Открытость ПО 0 1
5.2 Разнообразие ПО 1 0
5.3 Игры 1 0
6. Поддержка и обновление 0 1
7. Безопасность 0 1
8. Конфиденциальность 0 1
ИТОГО 5 8

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

ShiftHackZ

ShiftHackZ

Автор блога LocalHost // Blog. Интересуюсь компьютерными технологиями, системным администрированием и веб-разработкой. Днями напролет провожу время за своим компьютером и самосовершенствуюсь. Подробнее

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

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