Дисклеймер
Я являюсь новичком в сфере информационных технологий, а тем более в написании структурированных текстов, поэтому это не гайд. Вся информация представленная здесь является сборником изученного материала, подкреплённого моими мыслями.
Текст нацелен в первую очередь на таких же начинающих в этой области, как и я, поэтому если где-то допустил фактологические ошибки, то добро пожаловать в комментарии, буду только рад конструктивной критике.
Этот текст также есть в видеоформате. Ссылки на все остальные площадки есть в телеграм канале.
Оглавление
-
Введение
-
Что такое ОС?
-
История Windows
-
История Unix
-
История GNU/Linux
-
Свободное ПО против Проприетарного
-
Дистрибутивы и какой выбрать
-
Графическое окружение
-
Заключение
-
Источники
Введение
Привет! Здесь я хочу рассказать о том, почему GNU/Linux — это лучшая операционная система на данный момент и почему тебе срочно нужно пересесть с Windows на неё.
Мы дадим определение операционной системе, пробежимся по основным семействам ОС и кратко затронем их историю, рассмотрим концепцию свободного ПО и выберем идеальный дистрибутив.
Что такое ОС?
Начнём с самого начала. Что же такое операционная система? Мы не будем углубляться в детали, так как это обширная тема, затронем только основные моменты.
ОС — это одна из самых важных и сложных программ в системе. Она выполняет несколько ключевых задач:
-
Управление запуском и завершением программ.
-
Управление всеми периферийными устройствами, предоставляя остальным программам упрощённый доступ к этим устройствам.
Например, пользовательская программа может открыть файл на чтение, указав только имя файла, прочитать из него информацию, записать данные в ОЗУ и затем закрыть файл. Все эти возможности и их скрытые технические реализации предоставляет ОС.
Грубо говоря, это прослойка между прикладным ПО и аппаратным обеспечением компьютера.
С 1955 года начали появляться первые ОС, но самые популярные, и до сих пор используемые, системы появились в начале 90-х и разделились на два основных семейства: Windows и Unix.
История Windows
В 1975 году два друга-студента Гарварда, Пол Аллен и Билл Гейтс, разработали интерпретатор языка BASIC для компьютера Altair 8800. Спустя месяц было подписано лицензионное соглашение с компанией MITS, производителем этого ПК, на использование их интерпретатора BASIC в составе ПО для Altair. Так появилась компания Microsoft.
В 1980 году Microsoft заключила договор с IBM на поставку операционной системы для нового компьютера IBM PC. Для этого в 1981 году Microsoft наняла Тима Патерсона для завершения адаптации 86-DOS к прототипу IBM PC. Позже компания выкупила права на 86-DOS и переименовала её в MS-DOS. В то же время IBM использовала лицензированную версию MS-DOS под названием PC DOS.
Забавный факт: в 1984 году Microsoft разрабатывала ПО для Apple Macintosh.
Главной инновацией Macintosh на тот момент был графический интерфейс, который значительно упростил работу с компьютером для обычных пользователей. Билл Гейтс, вдохновившись этой идеей, решил создать графическую надстройку для MS-DOS. В конце 1985 года вышла первая версия Microsoft Windows, которая ещё не была полноценной операционной системой, а лишь графической оболочкой для MS-DOS.
Дальнейшее развитие Windows можно разделить на два направления: Windows на базе MS-DOS и Windows на базе NT (New Technology).
Windows на базе MS-DOS
В это направление входят такие операционные системы, как Windows 95, 98 и Me. Эти ОС не являлись полноценными многопользовательскими и многозадачными системами, как Windows NT. Например, подсистема пользовательского интерфейса и графики оставалась 16-битной, что приводило к низкой стабильности и производительности. Проблемы в 16-битном приложении могли привести к зависанию всей системы.
Windows на базе NT
Второе направление включает системы с припиской NT (New Technology), такие как Windows 10 (Windows NT 10.0) или Windows 11 (Windows NT 10.0.22000), а также серверные версии, например, Windows Server 2022 (Windows NT 10.3). Первая версия из этого подсемейства, Windows NT 3.1, была выпущена в 1993 году. Эти ОС полностью 32- или 64-битные и не зависят от MS-DOS даже для загрузки. Они работают на процессорах архитектур x86, x86-64 и ARM.
История Unix
Другая интересная линия событий происходила в конце 1960-х годов, где консорциум в составе General Electric, MIT и Bell Labs (подразделение AT&T) разрабатывал ОС под названием MULTICS. Позже Bell Labs, в составе которого работал Кен Томпсон, покинула проект, а сам Томпсон разработал свою ОС для компьютера PDP-7 и вместе с Брайаном Керниганом назвал её Unics, по аналогии с MULTICS. Окончательное название — Unix.
Позже совместно с Деннисом Ритчи они перенесли систему на более совершенный мини-компьютер PDP-11. Тогда возникла идея переписать ОС на язык программирования более высокого уровня. Попытка использовать язык "B" не увенчалась успехом, и Ритчи предложил расширить его, создав новый язык — Си.
В 1973 году Unix был переписан на языке Си. Это стало прорывом, так как многие считали, что высокоуровневые языки и ОС несовместимы. Однако этот шаг определил будущее развитие отрасли: язык Си и Unix остаются актуальными по сей день.
В 1977 году Unix был перенесён на новую архитектуру, благодаря Деннису Ритчи. Так появился первый переносимый компилятор Си.
Компания AT&T из-за антимонопольных ограничений не могла участвовать в компьютерном бизнесе и распространяла Unix на некоммерческой основе, лицензируя код учебным заведениям. Одним из таких заведений был университет Беркли, где была создана одна из самых популярных веток Unix — BSD, разработанная Биллом Джоем в 1977 году.
В начале 1980-х AT&T начала коммерциализацию Unix, создав Unix System 3. В 1984 году с компании были сняты антимонопольные ограничения, что привело к прекращению свободного распространения исходных кодов Unix. Это вызвало юридические споры между AT&T и BSDi, которые продолжались до 1993 года, когда AT&T продала подразделение, занимающееся Unix, фирме Novell. Последняя урегулировала разногласия с Беркли.
Пока разработчики Unix были заняты междоусобными спорами, рынок оказался заполнен множеством дешёвых компьютеров на основе процессоров Intel и ОС Windows.
История GNU/Linux
Когда в 1983 году началась коммерциализация Unix-систем, Ричард Столлман начал разработку своей Unix-подобной ОС с нуля. Он основал фонд Свободного ПО и опубликовал свой идеологический манифест. Проект получил название GNU — рекурсивный акроним фразы "GNU’s Not Unix".
Изначально это была среда разработки с компилятором gcc и набором утилит: gdb (дебаггер), glib (библиотека для Си), coreutils (основные утилиты по типу ls, rm, cat и т.п.), командная оболочка bash и ряд других программ, которые стали базовыми в подобных системах.
Разработку ядра GNU Hurd для ОС оставили в самую последнюю очередь. Само ядро хотели сделать не монолитным, а разделить на кучу мелких программ серверов, которые бы асинхронно общались между собой. Из-за подобной идеи отлавливать ошибки было намного сложнее, поэтому разработка затянулась.
Сторонники Столлмана уже успели написать много открытого ПО, но без открытого ядра, цель полностью Свободной ОС оставалась всё ещё далека.
В 1991 году финский студент Линус Торвальдс начал разработку своего монолитного ядра Unix-подобной ОС под названием Linux для платформы i386. Вдохновившись SunOS, он создал своё ядро и публиковал его исходный код, что привлекло множество добровольцев.
Это ядро стало недостающим элементом для проекта GNU, что позволило создать полностью свободную ОС — GNU/Linux.
Как отмечает сам Линус, важную роль в популяризации Linux сыграли судебные споры между AT&T и университетом Беркли, что мешало распространению BSD на платформе i386.
GNU/Linux — это самая популярная Unix-подобная ОС, подразделяющаяся на множество дистрибутивов, включая коммерческие. Примеры популярных коммерческих Unix-подобных ОС — macOS на основе BSD и Android на базе ядра Linux.
Свободное ПО против Проприетарного
Линус Торвальдс решил использовать для ядра Linux лицензию GNU GPL, предложенную Ричардом Столлманом. Давайте разберёмся, что это за лицензия и что такое Свободное ПО.
Движение за Свободное ПО началось в 1983 году благодаря Ричарду Столлману, который основал Фонд свободного программного обеспечения (Free Software Foundation, FSF), чтобы продвигать свои идеи в массы.
Что же такое Свободное ПО? В английском языке термин звучит как Free Software. Здесь слово Free означает не только бесплатное, но и свободное в плане свободы использования. Бесплатное ПО может не быть свободным, если оно закрытое и проприетарное, то есть является частной собственностью компании.
Вот четыре главных принципа Свободного ПО:
-
Свобода запуска программы для любых целей.
-
Свобода изучать и изменять исходный код, чтобы программа соответствовала вашим нуждам.
Если вы не являетесь программистом, вы можете работать в команде с разработчиком или использовать коллективный контроль: к проекту могут присоединяться другие люди, которые создадут документацию для упрощённого понимания.
-
Свобода распространять копии программы, будь то бесплатно или за деньги.
Это значит, что Свободное ПО можно использовать в коммерческих целях, например, предоставляя услуги технической поддержки.
-
Свобода распространять модифицированные версии программы.
Эти принципы реализуются через лицензию GNU GPL и распространяются на всё ПО, созданное с её использованием.
Существует также более распространённый термин — Open Source (открытый исходный код). Он охватывает второй принцип Свободного ПО, но не ограничивается им. Термин закрепили Эрик Реймонд и Брюс Перенс как альтернативу термину Free Software, так как слово "free" может вводить в заблуждение, подразумевая только бесплатность.
Однако, по мнению Столлмана, Open Source не всегда означает свободу. Примером может служить UnRAR — программа для распаковки RAR-архивов, исходный код которой открыт, но лицензия запрещает использовать его для создания RAR-совместимых архиваторов. Компании, такие как Microsoft, часто используют термин Open Source, избегая понятия Free Software.
Почему стоит переходить на Свободное ПО?
Главная причина — закрытый исходный код проприетарных программ. В таких ОС, как Windows или macOS, пользователи не видят исходного кода и не могут знать, что происходит при работе программы. Приходится верить разработчикам на слово, что ваши данные защищены. Однако закрытые программы могут собирать ваши данные и использовать их в интересах бизнеса. Одним из способов подобного несанкционированного доступа является бэкдор — намеренно встроенный разработчиками способ удалённого управления или доступа к данным. Примером является обязательное обновление в Windows, которое устанавливается независимо от желания пользователя.
По этим причинам закрытое ПО можно считать потенциально вредоносным.
Хотя Свободное ПО имеет свои преимущества, идея Столлмана может показаться слишком утопичной в современном мире. Лично я поддерживаю мнение Брюса Перенса, одного из лидеров проекта Debian, который считает, что свободное и несвободное ПО должны сосуществовать, и первое должно стать не только альтернативой, но и лучшим выбором.
Есть две дополнительные причины от меня для такого подхода:
-
Свобода выбора любого ПО, будь то свободное или проприетарное.
Например, многие дистрибутивы GNU/Linux распространяют проприетарное ПО через официальные репозитории, оставляя выбор за пользователем.
-
Конкуренция между различными видами ПО способствует развитию технологий и увеличению числа альтернативных программ.
Дистрибутивы и какой выбрать
Операционная система GNU/Linux является свободным ПО и, на мой взгляд, остаётся лучшим выбором среди доступных ОС. Теперь, имея базу в виде GNU/Linux, нужно выбрать дистрибутив.
Дистрибутив — это собранный набор компонентов, включающий в себя:
-
Ядро Linux вместе с предустановленными программами, утилитами и библиотеками от проекта GNU.
-
Пакетный менеджер — инструмент для управления установкой, обновлением и удалением ПО.
-
Опционально графическая оболочка.
-
Дополнительные конфигурации и настройки в зависимости от дистрибутива.
Среди множества дистрибутивов можно выделить три основных для новичков:
Debian
Один из самых первых и важных дистрибутивов. Сюда входит как сам Debian, так и популярные дистрибутивы основанные на нём. Это например Ubuntu, Linux Mint, Kali Linux.
Менеджер пакетов обычно используется apt (Advanced Packaging Tool), который является надстройкой над более низкоуровневым dpkg.
Debian является дистрибутивом со смешанной системой обновлений, то есть может использовать как стабильные, так и плавающие релизы ПО. Стабильные являются более популярным и предпочтительным вариантом в этих дистрибутивах. Из-за этого в таких системах присутствует очень много стабильного, но в то же время устаревшего ПО и тут уже пользователь сам выбирает, что ему важнее - стабильность или актуальность.
Red Hat
Одна из первых компаний, которая смогла коммерциализировать свободное ПО и продавать свой дистрибутив Red Hat Enterprise Linux по подписке.
Самый интересный для нас дистрибутив на основе Red Hat Linux является Fedora. Разрабатывается Проектом Fedora при коммерческой поддержке самой Red Hat и IBM, а также являющийся тестовым полем для фич, которые в будущем предполагаются к использованию в дистрибутиве Red Hat Enterprise Linux.
Формат пакетов RPM (Red Hat Package Manager) и DNF (Dandified YUM) в качестве инструмента для управления этими пакетами.
Используется также свой метод обновления через каждые 6 - 8 месяцев, поэтому ПО там не настолько устаревшее как в том же Debian, но всё ещё и не самое новое.
Arch Linux
Разработка Arch Linux возглавляется полностью некоммерческим сообществом, в отличие от тех же Ubuntu или Fedora.
Использует менеджер пакетов pacman, а также метод обновления - плавающих релизов, то есть получает самые последние версии ПО, из-за чего может быть не очень стабильной.
Отличительной чертой Арча является то, что он устанавливается в виде минимальной базовой системы, настраивается пользователем под собственные нужды путём построения уникальной среды с установкой только необходимых компонентов.
Что выбрать?
Я рекомендую Arch Linux по следующим причинам:
-
Прагматичность: полная свобода выбора между свободным и проприетарным ПО.
-
Гибкость настройки: установка и настройка системы полностью зависят от пользователя.
-
Документация: ArchWiki содержит исчерпывающие инструкции и рекомендации.
Для установки можно использовать скрипт на Python - archinstall, если вы не хотите углубляться в детали на первых порах. Но людям, которые хотят изучать систему GNU/Linux рекомендуется делать это с нуля.
Если выделять различия между другими дистрибутивами, можно отметить следующее:
-
Арч меньше всего захламлён предустановленными программами и говорит тебе - собери свою систему сам.
-
Здесь устанавливаются самые последние версии ПО, за счёт метода обновления плавающих релизов, поэтому, если вы хотите, например, использовать свой компьютер как игровую машину, то такой вариант поможет вам получить подобный опыт без проблем.
-
AUR - пользовательские репозотории Арч. Это поддерживаемое сообществом хранилище программ для пользователей Arch, не входящих в основной репозиторий. Даёт большой выбор сторонних программ от пользователей, но в то же время и накладывает на вас ответственность, так как они не проходят такую тщательную проверку, как то же ПО из официального источника, поэтому использовать их только на свой страх и риск. Существует система голосов за понравившиеся пакеты и многие хорошие программы из AUR переносятся в итоге в официальный репозиторий.
-
Ну и как уже упоминалось выше - он полностью поддерживается сообществом и не зависит от решений корпораций.
Графическое окружение
Важный аспект при выборе дистрибутива — графическое окружение. Существуют два основных графических сервера: Xorg и Wayland. Wayland более современный и безопасный, но пока не полностью заменил Xorg.
На видеокартах Nvidia - Wayland может работать некорректно.
Я использую композитор для Wayland'а — Hyprland, и всё работает отлично на видеокарте AMD + 2 монитора.
После установки Arch вы получите только терминал. Для работы с графическим интерфейсом можно установить среду рабочего стола (DE) или оконный менеджер (WM).
Среда рабочего стола (DE) — это набор программ с общим графическим интерфейсом (например, KDE Plasma, GNOME).
Оконный менеджер (WM) — программа для управления отображением окон. Может быть частью DE или работать отдельно.
Если идти по самому простому пути, например, через тот же archinstall, вам будет предложено выбрать среды рабочего стола, но я не рекомендую их ставить и вот по каким причинам:
-
Загруженность системы по средствам ненужных программ на фоне (привет Windows)
-
Плохая работа этих программ между собой и самого интерфейса в целом (хотя казалось бы должна быть максимальная совместимость)
-
Очень сложно изменять подобные среды под себя, например, изменить оконный менеджер, так как всё сделано с расчётом использования именно в таком виде и дополнительные изменения могут приводить к ошибкам. В Windows также используется своё окружение рабочего стола, но изменить вы сможете только то, что вам разрешит Microsoft, то есть практически ничего.
-
Ну и самое интересное, как по мне, — это то, что наверное во всех средах рабочего стола используются именно стековые оконные менеджеры, оправдывая это упрощённым переходом с того же Windows, но этим самым не сильно уходя от его концепции.
Здесь мы плавно перешли к различиям оконных менеджеров:
-
Стековые (плавающие) следуют традиционной метафоре рабочего стола, которая используется в коммерческих операционных системах вроде Windows и macOS. Окна отображаются подобно листкам бумаги на столе, накладываясь и перекрывая друг друга.
-
Фреймовые (тайловые) располагают окна на экране в виде плиток (фреймов) так, что они не перекрывают друг друга. Как правило, фреймовые оконные менеджеры подразумевают активное использование клавиатуры для управления окнами и имеют слабую поддержку мыши (либо не имеют её вовсе). Фреймовые оконные менеджеры могут предлагать набор стандартных расположений фреймов или позволять задавать их вручную.
Также существуют динамические версии, где объединены как стековые, так и фреймовые.
Почему я в первую очередь советую выбрать не среду рабочего стола, а именно отдельный оконный менеджер, так это по всем уже вышеперечисленным причинам и к дополнению к этому возможность поставить именно фреймовую версию такого менеджера.
Вот 2 главные причины, почему тайловые окна выигрывают плавающие:
-
Скорость работы за ПК ускоряется в разы, так как всё взаимодействие с системой можно осуществлять при помощи горячих клавиш на клавиатуре и переключением между виртуальными рабочими столами.
-
Все открытые окна будут занимать максимально возможное свободное пространство на мониторе, а при открытии новых, будут также эффективно распределяться между собой.
Вся сила Unix-подобных систем, в отличие от того же Windows, в подобном методе работы с системой. Так как много вещей вы будете делать с помощью эмулятора терминала, что я вам и советую, вместо использования только программ с графическим интерфейсом, подобный стиль управления системой даст большое преимущество.
Заключение
Программа, работающая в графическом окружении и которая выполняет функции терминала - называется эмулятором терминала.
Для новичков это может показаться чем то сложным, но когда вы немного освоитесь и привыкните, то поймёте насколько проще работать с системой через такой терминал.
Сам использую Alacritty, поэтому вам его тоже советую. Очень простая настройка в одном toml
файле.
С помщью эмулятора терминала вы можете как обновлять систему одной командой с аргументами:
pacman -Syu
Так и устанавливать нужные приложения в одну строчку:
pacman -S firefox
Базовые команды, нужные вам для работы в терминале, а также для работы с pacman.
GNU/Linux предлагает свободу выбора и контроля над системой, делая его отличным вариантом для пользователей, которым важна независимость от крупных корпораций и безопасность личных данных.
Надеюсь я заинтересовал вас и вы хотя бы попробуете данную ОС и оцените все её преимущества. Дальше остаётся только пробовать и изучать новое.
Спасибо за внимание, получайте новые знания и передавайте их другим!
Источники
История Windows
-
Microsoft (Википедия) — История компании Microsoft, её основатели и ключевые этапы развития.
-
MS-DOS (Википедия) — Информация о MS-DOS, её разработке и использовании в IBM PC.
-
Windows (Википедия) — Подробная история развития операционной системы Windows.
-
Windows 9x (Википедия) — Подсемейство Windows на базе MS-DOS, включая Windows 95, 98 и Me.
-
Windows NT (Википедия) — История развития линейки Windows NT и её отличия от других версий.
-
Краткая история Windows (Habr) — История Windows с 1985 года до наших дней.
История Unix
-
Unix (Википедия) — Основные этапы создания и развития Unix, ключевые фигуры и концепции.
-
MULTICS (Википедия) — Информация о предшественнике Unix, операционной системе MULTICS.
-
BSD (Википедия) — История Berkeley Software Distribution (BSD), её влияние на Unix и развитие отрасли.
История GNU/Linux
-
GNU (Википедия) — История проекта GNU, его философия и основные компоненты.
-
Linux (Википедия) — Информация о разработке ядра Linux и его значении для открытого ПО.
-
Richard Stallman (Википедия) — Биография Ричарда Столлмана, его вклад в движение свободного ПО.
-
Linus Torvalds (Википедия) — Биография Линуса Торвальдса и история создания ядра Linux.
-
SunOS (Википедия) — Информация об операционной системе SunOS, которая вдохновила Линуса Торвальдса.
-
Revolution OS (YouTube) — Документальный фильм о развитии GNU/Linux и открытого ПО.
Свободное программное обеспечение и лицензии
-
Лекция Столлмана о Свободном ПО (YouTube) — Лекция Ричарда Столлмана о философии и важности свободного ПО.
-
GNU General Public License (Википедия) — Лицензия GPL, её история и значение для открытого ПО.
-
Свободное программное обеспечение (СПО) (Википедия) — Понятие, критерии и примеры свободного ПО.
-
Открытое программное обеспечение (ОПО) (Википедия) — Отличие открытого ПО от свободного, принципы и примеры.
Дистрибутивы Linux и пакетные менеджеры
-
Debian (Википедия) — Информация о дистрибутиве Debian и его особенности.
-
dpkg (Википедия) — Пакетный менеджер для Debian и производных систем.
-
APT (Википедия) — Пакетный менеджер для Debian и его функционал.
-
Red Hat (Википедия) — Коммерческая компания и дистрибутив Linux для корпоративного использования.
-
Fedora (Википедия) — Открытый дистрибутив Linux, спонсируемый Red Hat.
-
RPM (Википедия) — Пакетный менеджер для дистрибутивов Red Hat и Fedora.
-
DNF (Википедия) — Современный пакетный менеджер для дистрибутивов, основанных на RPM.
-
Arch Linux (Википедия) — Лёгкий дистрибутив, известный своей гибкостью и минимализмом.
-
Pacman (Википедия) — Пакетный менеджер для Arch Linux и производных.
-
Rolling release (Википедия) — Модель обновления дистрибутивов Linux, включая Arch Linux.
-
AUR (Arch Wiki) — Репозиторий Arch Linux поддерживаемый сообществом.
Современные инструменты и окружения
-
Hyprland (Официальный сайт) — Современное окружение рабочего стола на базе Wayland.
-
Archinstall (Arch Wiki) — Официальный скрипт установки для Arch Linux, упрощающий процесс установки.
Дополнительные материалы
-
История Free Software Foundation (Википедия) — Фонд, основанный Ричардом Столлманом, и его роль в развитии свободного ПО.
-
Unix Wars (Википедия) — История конфликтов и конкуренции между различными версиями Unix.
-
История операционных систем (Википедия) — Общий обзор развития операционных систем, от ранних разработок до современных ОС.
Автор: zero-day-coding