История создания Linux
В 1991 году большинство компьютеров работало под управлением дисковой операционной системы корпорации Microsoft (Disk Operating System, MS-DOS, PC-DOS или DOS). По сегодняшним меркам система DOS была крайне ограниченной. Эта однозадачная операционная система (способна обеспечить работу только одного приложения в тот или иной момент времени) даже не могла в полной мере воспользоваться доступной памятью или ресурсами процессора. Версии операционной системы Microsoft Windows, которые были доступны в 1991 году, работали поверх системы DOS. Несмотря на то что начальные версии Windows помогали обойти некоторые из ограничений DOS, они не решали полностью ни одну проблему. Например, в ранних версиях Windows использовалась кооперативная многозадачность — программы могли добровольно выделять ресурсы процессора для выполнения других процессов. Ядро DOS не могло забрать контроль у программы, потребляющей время процессора.
Unix была распространенной ОС в 1991 году. По сравнению с DOS и версией Windows того времени Unix представляла собой довольно сложную систему. Unix поддерживала несколько учетных записей и обеспечивала истинную вытесняющую многозадачность, при которой ядро может управлять выделенными для программ ресурсами процессора, даже если программы добровольно не возвращают контроль. Эти особенности являлись практическими потребностями для многих серверов и многопользовательских компьютеров, таких как мини-ЭВМ и мейнфреймы.
Unix была не единственной многопользовательской и многозадачной ОС в 1991 году. Была доступна система виртуальной памяти Virtual Memory System (VMS). Тем не менее Unix имеет самое непосредственное отношение к истории Linux.
Со временем возможности каждого класса компьютеров возросли. По большинству показателей современные персональные компьютеры имеют такую же мощность, какую имели мини-ЭВМ или даже мейнфреймы в 1991 году. Операционные системы, которые использовались на ПК в 1991 году, не очень хорошо масштабировались до более мощных аппаратных средств. Тем не менее сама по себе большая вычислительная мощность не снимала ограничений, свойственных системе DOS.
По этой причине DOS и ее современники, предназначенные для компьютеров меньшего размера, были заменены системой Unix и другими альтернативами.
Современные версии Windows не являются производными от DOS. Вместо этого они используют новое ядро, которое имеет много общего в плане дизайна с системой VMS.
В 1991 году Линус Торвальдс изучал информатику в Хельсинкском университете. Его интересовали Unix и возможности только что купленного им нового компьютера на базе процессора х86. Торвальдс начал разрабатывать программу, которой предстояло превратиться в ядро Linux, как эмулятор программы-терминала низкого уровня для подключения к более крупным компьютерам университета. По мере развития своей программы он добавлял в нее новые функции, которые превратили его программу-терминал в то, что больше походит на ядро ОС. В конце концов, он поставил перед собой цель создать ядро, совместимое с Unix, то есть ядро, которое позволяло выполнять широкий спектр доступных на тот момент программ Unix.
История Unix началась двумя десятилетиями ранее — в 1969 году в компании АТ&Т. Поскольку в то время АТ&Т была телефонным монополистом в Соединенных Штатах, она не имела права продавать программное обеспечение. Таким образом, создав Unix, сотрудники АТ&Т фактически подарили ее. Университеты с энтузиазмом восприняли Unix, а некоторые даже начали модифицировать систему, поскольку компания АТ&Т сделала исходный код доступным. Таким образом, в истории Unix был 20-летний период развития открытого программного обеспечения. Большинство программ Unix распространялось в виде исходного кода, поскольку Unix работала на самых разнообразных аппаратных платформах — двоичные программы, созданные для одной машины, редко могли работать на другой машине.
Уже на раннем этапе Linux начала использовать потенциал имеющегося программного обеспечения. Разработчики ранних версий Linux были особенно заинтересованы в программном обеспечении проекта GNU, поэтому эта операционная система быстро обзавелась коллекцией соответствующих утилит. Большая часть этих программ создавалась с учетом рабочих станций и более мощных компьютеров, и ввиду продолжавшегося совершенствования компьютерного оборудования они хорошо работали на компьютерах х86 начала 1990-х годов.
В начале 1990-х годов ОС 386BSD представляла собой конкурирующую Unix-подобную операционную систему. Сегодня она разделена на несколько родственных операционных систем: FreeBSD, NetBSD, OpeпBSD, DragonFly BSD и PC-BSD.
Linux быстро обрела преданных разработчиков, которые оценили ее потенциал в плане приспособления ПО класса рабочих станций к ПК. Эти люди трудились над улучшением ядра Linux для внесения необходимых изменений в существующие программы Unix, чтобы они работали на Linux, а также для создания программ поддержки специально для Linux. К середине 1990-х годов существовало уже несколько дистрибутивов Linux, в том числе те, которые используются сегодня. (Например, дистрибутив Slackware был выпущен в 1993 году, а Red Hat — в 1995-м).
Линус Торвальдс: биография «могучего финна»
Отец и мать Торвальдса — финские шведы. В 60-е годы их называли студентами, симпатизирующими радикалам. Единственного сына они назвали в честь Лайнуса Полинга — американского физика и химика, лауреата Нобелевской премии 1954 года.
Политические предпочтения отца Линуса (он был членом коммунистической партии) часто являлись причиной для насмешек со стороны одноклассников мальчика. Несмотря на это, Линус, которого считали замкнутым ребенком, учился на отлично. Особенно хорошо ему давались точные науки — математика и физика.
В 1988-м Торвальдс пополнил ряды студентов Хельсинского университета, благополучно отучился и окончил (1996 год), получив звание магистра кибернетики.
На сегодняшний день Линус Торвальдс и его жена Туве, шестикратная чемпионка Финляндии по карате и бывшая студентка Линуса, проживают в американском городе Портленде. Они воспитывают троих дочерей: Патрицию Миранду (1996), Даниэлу Йоланду (1998) и Селесту Аманду (2000) вместе с котом Рэнди.
Интересные факты
С ранних лет Линус всё делал сам. Как-то раз он, не дождавшись помощи отца, самостоятельно собрал макет сложной модели морского судна, а через несколько лет, будучи двадцатилетним студентом, «сошёл с ума» и самостоятельно создал сложнейшую компьютерную программу.
Приступая к выстраиванию собственной системы, студент Хельсинкского университета не планировал как-либо конкурировать с компаниями вроде Microsoft, программирование было для него всего лишь хобби, которое всего за восемь лет незаметно трансформировалось в одну из самых перспективных операционных систем.
Пингвин Тукс — эмблема Linux — сначала был личным талисманом, который облюбовал для себя Торвальдс. Линус так объясняет свой выбор: когда он был в зоопарке, его укусил пингвин.
Среди «законов Линуса» есть один, который полностью сформулировал программист из США Эрик Реймонд. Он звучит так: «Когда наблюдательность на должном уровне — все ошибки лежат на поверхности». Когда глубинную ошибку ищет множество людей, она становится поверхностной. Обоих разработчиков программного обеспечения объединяют одинаковые взгляды на вещи.
Есть только один вопрос. Реймонд считает его серьёзной проблемой, и его же не хочет замечать Торвальдс. Линус считает, что важнее всего — открытость программного кода, а Эрик уверен, что гораздо более важной проблемой является слишком высокая стоимость программ.
На сегодняшний день Торвальдс без лишней скромности может назвать себя создателем приблизительно двух процентов системного ядра. Также он владеет одноимённым товарным знаком и имеет право принимать решения относительно изменений официальной ветви ядра. Следить за эксплуатацией системы «Линукс» Торвальдсу помогает некоммерческая организация Linux International, а также пользователи «операционки» Linux.
Сегодня ведущие компьютерные компании, такие как Microsoft, нанимают программистов, разбирающихся в Linux, а в Поднебесной операционная система Linux объявлена официальной государственной ОС. Первой славянской компанией, отказавшейся от обновления Windows, стала российская Aquarius.
Ежегодно, 25 августа, сообщество, названное «Открытым исходным кодом», отмечает день рождения Linux — операционной системы, которую создал Торвальдс. Линус, в свою очередь, заботится об общедоступности своего изобретения, тем самым привлекая к нему внимание тысяч прогрессивных программистов.
Особенности
Перечислим основные особенности ОС Linux.
Большинство пользователей среду Линукса являются программисты и администраторы. Это довольно опытные и «прошаренные» пользователи. Поэтому их не пугает то, что очень много действий приходится делать через терминал (консольная строка). Для любителей Windows это покажется настоящим «маразмом», но со временем к терминалу быстро привыкаешь:
Для более быстрого «общения» с командной строкой можно использовать кнопку «Tab», которая сразу подскажет все команды начинающиеся на введённый набор символ или же сразу применит автозаполнение, если возможен лишь один доступный набор.
Большинство серверов (хостинги, хранилища и прочее) используют в качестве основной ОС Линукс. Это связано с тем, что она бесплатна, проще настраивается и более стабильна. Однако среди обычных пользователей бесспорное лидерство занимает Windows. Лишь 5% населения пользуются Линуксом в качестве домашней операционной системы.
Linux является многозадачной и многопользовательской операционной системой. Windows в этом плане также сильно преуспел, но все же его возможности не очень удобные для работы нескольких пользователей
В Linux нету жестких дисков, как на Windows. Здесь все хранится в едином каталоге, который начинается с «/» (корневой каталог, root directory). Файлы пользователей лежат в каталогах «/home/name_users/».
Программные оболочки bash или tcsh. С помощью них Linux выполняет команды пользователей. Отдаваемая команда относится к текущему каталогу (current directory). Домашний каталог можно обозначать символом «~» (тильда). Это аналог «/home/name_users/»
Файловые системы в Linux отличны от Windows:
- ext4 — журналируемая файловая система (стандарт для Linux)
- btrfs — новая файловая система, основанная на структурах B-деревьев
- xfs — данную файловую систему отличает достаточно высокая производительность в части записи и чтения данных.
Стоит отметить, что Линукс поддерживает очень много файловых систем (в том числе Windows-ие NTFS, FAT32). Напомню, что Windows не поддерживает ext4. Про файловые системы Linux будет рассказано более подробно в отдельной статье.
Существует два вида дистрибутивов Linux, которые делятся по способу организации и управления программным обеспечением (пакетами)
DEB — используются в дистрибутиве Debian и во всех основанных на нем дистрибутивах
RPM — менеджер пакетов, использующийся в дистрибутиве Red Hat, а также во многих других популярных дистрибутивах (Fedora)
Процессы разделены по ресурсам. Чтобы добавить новое устройств нужен драйвер. Его можно написать самостоятельно и запустить в ядре. Драйверы устройств либо интегрируются непосредственно в ядро, либо добавляются в виде модулей, загружаемых во время работы системы.
В Linux все считается файлами: жесткие диски, разделы, папки, приводы оптических дисков, съемные носители информации.
Структура
Linux состоит из следующих компонентов:
Ядро
Ядро — это своего рода главная программа, являющаяся основной частью операционной системы. Оно выступает в роли посредника между устройствами компьютера (процессором, видеокартой, оперативной памятью и т.д.) и его программным обеспечением, абстрагируя от обычных программ и пользователей сложную, низкоуровневую работу с «железом» компьютера, предоставляя взамен простой, понятный и удобный в использовании интерфейс. Для этого в код ядра были включены драйверы устройств, которые могут, как загружаться в память вместе с ядром ОС, так и подключаться по мере возникновения потребности в ресурсах необходимого устройства.
Как вы наверняка знаете, на компьютере может быть запущено сразу несколько программ: какие-то из них работают в фоновом режиме, другие могут ожидать определенных действий от пользователя, а третьим необходимо получать информацию из другой запущенной программы. В такой ситуации именно ядро берет на себя функцию оптимального распределения ресурсов компьютера между запущенными программами и организацию параллельной работы множества различных процессов. Оно первым загружается в оперативную память компьютера и всегда находится в запущенном состоянии, постоянно взаимодействуя с его аппаратным обеспечением и установленными программами.
Как правило, большинство ядер делятся на три типа:
- микроядра;
- монолитные;
- гибридные.
Микроядро — это ядро, состоящее из нескольких подгружаемых в память по мере надобности независимых модулей, выполняющихся в отдельных адресных пространствах. По сути, грубо говоря, в таком варианте исполнения оно не сильно отличается от обычных прикладных программ. К достоинствам данного ядра можно отнести теоретически большую надежность в сравнении с другими архитектурами (в действительности же — не всё так радужно и гладко) и его модульность (легкость в подключении дополнительных частей ядра). К минусам же микроядерной архитектуры относится то, что ядро, построенное по такой схеме, получается очень медленным (ведь ему нужно постоянно переключаться между отдельными частями).
Монолитное ядро — это полная противоположность микроядра, т.к. в памяти компьютера всегда находится весь (или почти весь) код ядра. Вследствие чего, скорость его работы выше в сравнении с микроядром.
Гибридное ядро — это ядро, сочетающее в себе элементы как монолитной, так и микроядерной архитектур.
Ядро Linux хоть и относится к монолитным ядрам, но оно также заимствует и некоторые идеи из микроядерной архитектуры, что означает, что вся операционная система работает в пространстве ядра, а драйвера устройств (в виде модулей) могут быть легко загружены (или выгружены) прямо во время работы операционной системы.
На следующем рисунке показана архитектура системы Linux:
Рассмотрим детально:
«Железо» — аппаратное обеспечение компьютера (процессор, видеокарта, оперативная память и т.д.) со всеми его периферийными устройствами.
Ядро — является основным компонентом операционной системы, взаимодействует непосредственно с аппаратным обеспечением, играя роль посредника между низкоуровневым «железом» и компонентами верхнего уровня.
Оболочка (или«командный интерпретатор») — интерфейс для взаимодействия между пользователями системы и ядром ОС, абстрагирующий внутреннее устройство системы. Принимает команды от пользователей и запускает на выполнение соответствующие функции.
Утилиты (vi, cat, sed, date и т.д.) — служебные программы, которые предоставляют пользователю большую часть функциональных возможностей операционной системы.
У ядра есть четыре обязанности:
Управление устройствами. Система имеет множество подключенных к ней устройств, таких как: процессор, устройство памяти, звуковые карты, графические карты и т.д. Ядро хранит все данные, относящиеся ко всем устройствам, в драйвере устройства (без этого ядро не сможет управлять устройствами). Таким образом, ядро знает, что может сделать каждое устройство и как им манипулировать, чтобы добиться наилучшей производительности. Оно также управляет связью между всеми устройствами. Ядро имеет определенный набор правил, которым должны следовать все устройства.
Управление памятью. Ядро отслеживает используемую и неиспользуемую память и с помощью механизма виртуальной памяти следит за тем, чтобы процессы не манипулировали данными друг друга.
Управление процессами. Ядро управляет процессами, выделяя для их работы требуемое количество времени и наделяя их необходимым приоритетом выполнения. Оно также имеет дело с информацией о правах доступа, ограничениях безопасности и владельце каждого процесса.
Обработка системных вызовов. Обработка системных вызовов означает, что программист может написать запрос к ядру или попросить ядро выполнить задачу.
Системные библиотеки
Системные библиотеки — это специальные программы, которые помогают получить доступ к функциям ядра. Для выполнения какой-либо задачи ядро сначала должно получить системный вызов, и этот вызов исходит от приложений. Но приложения должны знать, как выполнить данный вызов, потому что каждое ядро имеет свой набор системных вызовов. Для этого программистами была разработана стандартная библиотека процедур для взаимодействия с ядром, описывающая набор системных вызовов для каждой конкретной операционной системы.
Самой известной системной библиотекой для Linux является библиотекаglibc (GNU C library).
Системные утилиты
В Linux имеется набор утилит, представляющий собой простые команды. Используя эти команды, вы можете, например, получить доступ к своим файлам и каталогам: редактировать и манипулировать данными, хранящимися в них, изменять расположение файлов и пр.
Утилиты разработки ПО
С помощью вышеперечисленных трех компонентов ваша ОС может запускаться и работать. Но для обновления системы и создания для нее новых программ у вас должны быть дополнительные инструменты и библиотеки. Данный набор инструментов называется toolchain. Toolchain — это жизненно-важный набор программ, утилит и инструментов, используемый разработчиками для создания рабочего приложения из исходных кодов.
Пользовательские программы
Подобные программы не относятся к обязательным компонентам операционной системы, и часто их пишут сами пользователи. Они нужны для того, чтобы пользователь мог задать компьютеру какую-то конкретную работу. К таким утилитам относятся: инструменты графического дизайна, офисные пакеты, браузеры, различные плееры и т.д.
Дистрибутивы Linux — что это и какие они бывают
Говоря простыми словами:
Дистрибутив Linux — разновидность ОС Линукс
Существуют множество видов дистрибутивов Linux. Самые распространённые в мире дистрибутивами являются:
- Linux Mint. Самый простой для пользователя дистрибутив. Очень напоминает Windwos 7. Основан на Ubuntu и Debian
- Ubuntu. Долгое время считался самым популярным дистрибутивом. Стабильная и интуитивно понятная версия для ежедневного использования Основан на Debian
- Debian. Лег в основу множества других популярных Линуксов.
- Mageia. Предок бывшей и популярной ОС Mandriva.
- Fedora. Универсальный, быстро развивающейся и современный Linux. Каждый год появляются новые версии.
- OpenSUSE. стабильный и мощный дистрибутив
- ArchLinux. Современный и быстро обновляющейся дистрибутив.
- CentOS
- PCLinuxOS
- Slackware. Консервативный подход разработки и использования
Интересными дистрибутивами также являются и те, которые можно самостоятельно собрать. К таким относятся LFS, Gentoo, CRUX.
Линукс также практикует такой вид дистрибутивов, которые не требуют установки на жесткий диск. Они работают в режиме «LiveCD». Информация загружается в оперативную память и уже работает с нее. Примеры таких систем: Knoppix, Fedora.
Существуют и чисто российские версии:
- Rosa
- ALT Linux
- ASPLinux
- НауЛинукс
- Calculate Linux
- Runtu
- Rosinka
- Astra Linux
Появление игр
Сейчас Linux практически целиком и полностью покорил все сервера мира, но не забыл и о домашних ПК. А какие домашние компьютеры могут быть без игр. Февраль 2013-го, Valve портирует Steam на Linux, вызывая этим бурную реакцию сообщества. Ведь в то время нормальные игры запускались только через эмуляторы «окон», а те, что создавались специально под Linux, попросту были никому не нужны.
Еще пару лет спустя Valve выпустили свой дистрибутив Linux, назвав его SteamOS. Правда, выпущен он был только для специальных консолей от самих Valve. К 2018-ому на Linux можно было поиграть более чем в 3000 игр из Steam.
Все больше новых дистрибутивов стало появляться на свет. ArchLinux завоевывал популярность все быстрее. На его основе стали создаваться отдельные дистрибутивы, например, Manjaro. Созданный в 2013-ом, он до сих пор находится в лидерах по популярности. Главная его особенность – упрощенная установка ArchLinux, сохраняющая его гибкость и функционал. Подобный Manjaro, такой же простой и основанный на Arch, ElementaryOS, также пользуется огромной популярностью, особенно у новичков.
К 2015-ому Linux обновился до версии 4.0, и опять без глобальных изменений. Просто по итогам голосования в сообществе, разработчики решили сменить версию. Добавилась лишь поддержка UEFI и некоторые обновления системы безопасности и стабильности.
Ubuntu тоже не стояла на месте. Вышла ее мобильная версия Ubuntu Touch, которая должна была сделать из вашего смартфона полноценный ПК при подключении его к монитору. Снова оболочка Unity, отказ от X Window в пользу нового Mir, выпуск пары смартфонов, и закрытие проекта в 2017 из-за низкой популярности. DEX от Самсунг тоже сильно повлиял на это решение.
Но самое важное событие произошло в версии Ubuntu 17.10, где была убрана Unity и возвращено окружение Gnome. Достаточно много лет понадобилось разработчикам, чтобы это понять. Mir тоже решили заменить на новый Wayland. Ubuntu стала той, которую мы видим сейчас.
Но на этом ее история не заканчивается, как и всего Linux в целом. Ядро развивается, получает новые версии, новый функционал, творит новую историю Linux.
Linux сегодня
Если взять, к примеру, ядро Linux версии 3.6, то можно увидеть, что оно состоит из (без малого) 15 миллионов строк кода, а общее число пользователей системы уже перевалило за 40 миллионов.
Многие компании, по типу Red Hat, Canonical и пр., выпускают свои собственные дистрибутивы Linux — пакеты, включающие ядро системы и большой набор различных приложений и программного обеспечение для установки ОС.
Сегодня, большинство веб-страниц, которые вы просматриваете, и большинство приложений, которые вы используете (даже тот же Android), — в той или иной мере обслуживается или работает на базе ядра Linux.
- https://tech-geek.ru/history-of-linux/
- https://www.syl.ru/article/291678/programmist-torvalds-linus-biografiya-dostijeniya-i-interesnyie-faktyi
- https://1linux.ru/info/obzor-os-linux.html
- https://ravesli.com/chto-takoe-linux-ego-struktura-i-preimushhestva/
- https://safe-comp.ru/istoriya-sozdaniya-linux.html
- https://ravesli.com/istoriya-linux/