Linux
Linux — это семейство операционных систем (ОС), работающих на основе одноименного ядра. Нет одной операционной системы Linux, как, например, Windows или MacOS. Есть множество дистрибутивов (набор файлов, необходимых для установки ПО), выполняющих конкретные задачи.
Кратчайшая история создания Linux
Линус Торвальдс — первый разработчик и создатель Linux. Именно в честь него и была названа ОС. В 1981 году Линус начал работу над собственной ОС семейства Unix. Через три года появилась первая версия, доступная для скачивания. Но тогда она имела очень низкий спрос — ей пользовались буквально несколько человек.
Только через 10 лет ОС Linux получила широкое распространение. Сообщество программистов подхватило идею свободного ПО, специалисты стали помогать развивать проект.
Про логотип
Логотип и талисман Linux — пингвин Tux с желтыми лапами и клювом. В 1996 году разработчики ядра Linux решили выбрать талисман. Торвальдс обмолвился о том, что ему очень нравятся пингвины. Поэтому на логотипе ОС изображен пингвин.
Где нужен Linux?
Дистрибутивы Linux практически полностью захватили рынок веб-серверов. Согласно рейтингу аналитического агентства W3Techs, на Linux-серверах развернуты 75,1% сайтов.
ОС Android работает на ядре Linux, поэтому она используется и в мобильных устройствах.
Это специализированные вычислительные машины, превосходящие по своим техническим параметрам и скорости вычислений многие обычные компьютеры.
Они уникальны, для многих из них требуется особая ОС, способная решать конкретные задачи. Благодаря открытому исходному коду разработчики могут видоизменять ОС так, чтобы она работала и на таких машинах.
Linux занял свою нишу и в игровых консолях, но ориентированных на эту ОС игр пока не так много. Компания Steam работает над исправлением ситуации — разрабатывает операционную систему SteamOS. Она будет поставляться вместе с игровой консолью Steam Machine.
Устройства IoT и умная техника
Многие из них созданы на основе Linux. Так, компания Samsung разработала операционную систему Tize, LG — WebOS, а Panasonic и Philips используют FirefoxOS.
Авиация и транспорт
Во встроенных компьютерах Tesla и машинах с автопилотами Google используется операционная система Linux. ПО для отслеживания трафика в США аналогично разработано на этой ОС, а администрация авиации Америки перешла на нее еще в 2006 году.
Читайте также: Главные профессии в IT и что для них нужно.
Какие компоненты у дистрибутива Linux?
Начинающий программист должен знать структуру Linux, чтобы понимать, как она устроена и каким образом функционирует.
На компьютере могут быть запущены сразу несколько программ. Первые работают в фоновом режиме, вторые ожидают определенных действий от пользователя, третьи получают информацию из других запущенных программ. Именно ядро распределяет ресурсы компьютера между всеми программами и организует параллельную работу множества разных процессов.
Какие есть виды ядер? Всего выделяют 3 типа: микроядра, монолитные и гибридные.
Микроядро (microkernel)
Состоит из нескольких независимых модулей, которые подгружаются в память по мере надобности.
теоретически высокая степень надежности (по сравнению с другими архитектурами);
низкое потребление памяти;
легкое подключение дополнительных частей ядра (модульность).
низкая скорость из-за постоянного переключения между отдельными частями;
доступность аппаратных средств только через драйверы.
Монолитное ядро (monolithic)
Противоположность микроядра. В памяти ПК всегда размещен весь (либо практически весь) код ядра. Поэтому скорость его работы выше в сравнении с микроядром.
прямой доступ к аппаратным средствам;
простой обмен данными между процессами;
более высокая скорость реакции процессов.
меньшая степень безопасности (по сравнению с микроядром);
занимает много оперативной памяти.
Гибридное ядро (hybrid)
Комбинация элементов двух ранее описанных архитектур. Для ускорения работы запускает модули операционной системы в пространстве ядра.
возможность выбора того, что будет функционировать в пространстве ядра и пользователя;
меньший физический размер (в сравнении монолитным ядром);
большая степень гибкости.
более медленная работа;
выпуск драйверов устройств только производителями.
Начните свой путь в IT
Попробуйте себя в программировании, аналитике данных, Data Science и других востребованных специальностях — получите все курсы для входа в IT по цене одного.
Скидка 45% по промокоду BLOG.
Ядро Linux — монолитное, при этом оно заимствует некоторые идеи из микроядерной архитектуры. Это означает, что вся ОС функционирует в пространстве ядра, а драйвера устройств могут легко загружаться (или выгружаться) непосредственно при работе операционной системы.
Железо — аппаратное обеспечение ПК с его периферийными устройствами.
Ядро — основной компонент ОС, взаимодействует с аппаратным обеспечением, выступает посредником между низкоуровневым железом и компонентами верхнего уровня.
Оболочка — интерфейс для взаимодействия между ядром ОС и пользователями, абстрагирует внутреннее устройство системы, получает команды от пользователей, запускает необходимые функции.
Утилиты — служебные программы, дающие пользователю большую часть функциональных возможностей System OS Linux. Виды утилит: sed, cat, date, vi и прочие.
Компиляторы — технические средства, преобразующие программный код в машинный.
Системные утилиты
Утилиты — вспомогательные компьютерные программы в составе общего ПО. Они нужны для выполнения типовых задач, связанных с работой оборудования и ОС. У Linux есть набор простых утилит. Они позволяют, например, редактировать данные, изменять расположение файлов.
Системные библиотеки
Системные библиотеки — это специальные программы, дающие доступ к функциям ядра. Для выполнения какой-либо задачи ядро вначале получает системный вызов, исходящий от приложений. Но у каждого ядра свой набор системных вызовов, и они должны понимать формат выполнения задачи. Поэтому программисты разработали стандартную библиотеку процедур, описывающую набор системных вызовов для конкретной ОС.
Утилиты разработки ПО
При помощи трех вышеперечисленных компонентов операционная система сможет запускаться и функционировать. Но для обновления и создания новых программ нужно иметь дополнительные библиотеки и инструменты — toolchain. Этот набор программ, инструментов и утилит поможет создавать рабочее приложение из исходных кодов.
Пользовательские программы
Они не считаются обязательными компонентами ОС. Нередко их пишут сами пользователи. Программы помогают задать конкретную работу. К таким утилитам относятся браузеры, офисные пакеты, инструменты графического дизайна, плееры и пр.
Плюсы Linux
Минусы Linux
Поддержка и помощь
Существуют разные онлайн-форумы и чат-каналы, которые можно использовать для получения помощи. Эти каналы варьируются в зависимости от дистрибутива, который используется.
Станьте универсальным специалистом по администрированию Linux с нуля и разверните собственный кластер. Дополнительная скидка 5% по промокоду BLOG.
Краткая история Linux
Говоря «Linux», люди чаще всего подразумевают группу операционных систем, разработанных на базе Linux. Хотя, по сути, Linux – это только ядро операционной системы, и для разработки полноценной операционной системы используются различные инструменты и библиотеки GNU других ресурсов. Кроме того, все больше разработчиков используют Linux для разработки и запуска мобильных приложений. Кроме того, Linux играет ключевую роль в разработке таких устройств, как Хромбуки (портативные устройства под управлением операционной системы Chrome, которая в качестве ядра использует гибрид ядра Linux и сервисов, разработанных компанией Google).
Linux стал популярен по следующим причинам:
Но список причин, конечно, только этими не исчерпывается; существуют не только практические, но и этические причины. Например, многие разработчики воспринимают Linux как выражение открытости, самовыражения и доступности.
История разработки
Корни Linux уходят в два других проекта: Unix и Multics, которые ставили своей целью разработать многопользовательскую операционную систему.
Что такое Unix?
Unix – это собрание кроссплатформенных многопользовательских и многозадачных операционных систем.
Можно сразу сказать, что в данный момент Unix-системы являются одними из самых важных операционных систем. Влияние Unix распространилось и на языки программирования: язык C был разработан во время разработки Unix-систем.
Разработкой Unix занималась корпорация Bell Laboratories – в 1969 году они показали первую систему Unix. Чем дальше, тем большую популярность обретали системы Unix – в 70-х их начали устанавливать на компьютеры в учебных заведениях.
При создании Unix разработчики поставили перед собой три основные задачи:
Что касается отличительных особенностей Unix, то это:
Unix имеет свою собственную философию. Программист Дуглас Макилрой, который разработал конвейнер в Linux, определил следующие правила:
Пишите программы, которые делают что-то одно и делают это хорошо.
Пишите программы, которые бы работали вместе.
Пишите программы, которые бы поддерживали текстовые потоки, поскольку это универсальный интерфейс.
Одна из проблем, коснувшаяся Unix, – наличие разных версий и множества программ, которые писали разработчики под свои нужды. Из-за низкой совместимости программы, работающие с одной версией Unix, могли не работать на машинах с другими версиями. В итоге было решено создать общий документ со стандартами, которым должны следовать разработчики.
В 1983 году было объявлено о создании GNU (GNU’s Not UNIX), Unix-подобной операционной системы. Произошло это под влиянием идеи основателя проекта Ричарда Столманна о необходимости создания свободно распространяемой операционной системы и программного обеспечения с открытым исходным кодом.
Ричард Столманн также основал движение свободного программного обеспечения и сформулирован четыре права, которыми должен обладать пользователь: он может запускать программу для любых целей, он может изучать программы и изменять их согласно своим потребностям, он может распространять программу, чтобы помочь другим, и он может публиковать улучшения программы, чтобы помочь сообществу в целом. Все это говорило о том, что исходный код программы должен быть доступен всем.
Именно эта мысль вдохновила Линуса Торвальдса, создателя Linux, начать в 1991 году работу над своей операционной системой. Linux, как и GNU, это Unix-подобная система, то есть система, появившаяся под влиянием Unix.
В дальнейшем именно система GNU/Linux станет той системой, которую сейчас называют просто Linux.
Что такое Multics?
Multics – Multiplexed Information and Computing Service («Мультиплексная информационная и вычислительная служба») – это одна из самых первых операционных систем, в которой была реализована плоская модель хранения данных и четко разделена концепция файлов (сегментов). Создание Multics началось в 1964 году. Над системой работали разработчики компании Bell Laboratories – через несколько лет часть разработчиков начнет работу над созданием Unix.
Multics разрабатывали для того, чтобы, во-первых, дать возможность использовать ресурсы ЭВМ большому количеству пользователей одновременно, во-вторых, дать пользователям возможность совместно использовать данные, в-третьих, обеспечить хорошую скорость работы с данными.
Однако главные вычислительные задачи не были достигнуты при выпуске первой версии системы, и компания Bell Laboratories перевела свой интерес на другой проект, в результате которого на свет появился Unix.
Истоки Linux
История Linux начинается в 1991 году, когда финский программист Линус Торвальдс стал разрабатывать ядро операционной системы для своего компьютера. Свои наработки он выложил на сервере, и это стало ключевым событием в истории Linux. Сначала десятки, потом сотни и тысячи разработчиков поддержали его проект – общими усилиями на свет появилась полноценная операционная система.
Как уже было сказано, на Linux значительно повлияла система Unix, это заметно даже по названию. Впрочем, изначально проект назывался Freax, от слов «free» (бесплатный) и «freak» (странный), но в дальнейшем название было изменено на гибрид имени создателя (Линус) и Unix.
Эмблемой Linux стал Такс (Tux) – пингвин, нарисованный в 1996 году программистом и дизайнером Ларри Юингом. Впрочем, идею использовать именно пингвина придумал сам Линус Торвальдс. Теперь Такс является символом не только Linux, но и свободного программного обеспечения в целом.
Первая официальная версия Linux 1.0 вышла в 1994 году, вторая – в 1996 году. Товарный знак Linux был зарегистрирован на год раньше – в 1995.
С самого начала и по сей день Linux распространяется как свободное программное обеспечение с лицензией GPL. Это значит, что исходный код операционной системы может увидеть любой пользователь, и не только увидеть, но и доработать его. Единственное условие – измененный, модифицированный код должен быть доступен всем и распространяться по лицензии GPL. Это важно, так как дает возможность разработчикам использовать код и в то же время не бояться проблем из-за авторских прав.
Своему успеху Linux во многом обязан GNU: на момент выхода Linux существовало уже много свободных утилит, которые можно было использовать с разработанным ядром.
По факту Linux до сих представляет собой ядро Unix-подобной операционной системы, которое выполняет различные низкоуровневые задачи. В то же время проект GNU нуждался в ядре – разработка Линуса Торвальдса была очень своевременной.
Сейчас благодаря своей гибкости Linux используется на множестве разных устройств, начиная с компьютеров и заканчивая серверами и мобильными устройствами.
Популярные дистрибутивы Linux
Дистрибутив Linux – это определение операционной системы, которая использует ядро Linux и которую можно установить на машину пользователя. В дистрибутивах обычно содержатся не только ядро и сама операционная система, но и полезные приложения: редакторы, проигрыватели, инструменты для работы с базами данных и другое программное обеспечение.
То есть, как уже было сказано в начале статьи, дистрибутив Linux – это операционная система, состоящая из ядра Linux и утилит, которые разрабатываются в рамках GNU.
Количество существующих дистрибутивов Linux превышает 600 штук, более 300 из которых постоянно дорабатываются и обновляются.
Ubuntu
Ubuntu – один из самых распространенных дистрибутивов, легко устанавливается и интуитивно понятен в работе. Отлично подходит для персональных компьютеров, ноутбуков и серверов. Разрабатывается и спонсируется компанией Canonical Ltd, но имеет активную поддержку и со стороны свободного сообщества. Самая популярная операционная система для веб-серверов.
Debian
Debian – еще один популярный дистрибутив GNU/Linux, который оказал существенное влияние на развитие всех GNU/Linux-операционных систем в целом. Основные черты Debian: широкие возможности, наличие множества репозиториев, высокое качество версий. Это самый стабильный дистрибутив из всех существующих.
Linux Mint
Linux Mint – дистрибутив, основанный на Ubuntu и Debian. Linux Mint обладает красивым и удобным дизайном и подойдет даже начинающим пользователям. Поэтому его часто устанавливают на домашние компьютеры для того, чтобы иметь простую и удобную систему. Дистрибутив имеет поддержку различных мультимедийных форматов, в том числе включает проприетарные программы (Adobe Flash), поэтому хорошо подходит для работы с мультимедиа.
Manjaro
Manjaro – дистрибутив, основанный на Arch Linux. Благодаря большому количеству предустановленных программ (например, для офисной работы) он достаточно дружественен к новичкам, но в то же время может быть тонко настроен.
Arch
Arch – мощный дистрибутив, базирующийся на принципах простоты, современности, прагматизма, гибкости и идеи, что в центре внимания должен быть пользователь. Однако принцип простоты распространяется не на использование системы, а на ее внутреннюю организацию (принципы KISS и Unix-way). Поэтому Arch рассчитан на опытных пользователей, которые самостоятельно настроят и установят необходимые им утилиты.
Вся история Linux. Часть I: с чего все началось
В этом году ядру Linux исполняется 27 лет. ОС на его базе используют многие корпорации, государственные, исследовательские учреждения и дата-центры по всему миру.
За более чем четверть века вышло немало статей (в том числе и на Хабре), рассказывающих о разных отрезках истории Linux. В этой серии материалов мы решили выделить наиболее значимые и интересные факты, связанные с этой операционной системой.
Начнем с разработок, которые предшествовали Linux, и истории появления первой версии ядра.
Эпоха «свободного рынка»
Появление Linux считается одним из важнейших событий в истории открытого ПО. Рождение этой операционной системы во многом обязано идеям и инструментам, которые формировались и «зрели» десятилетиями в среде разработчиков. Поэтому для начала обратимся к истокам «опенсорсного движения».
На заре 50-х большая часть программного обеспечения в США создавалась сотрудниками университетов и лабораторий и распространялась без каких-либо ограничений. Это делалось с целью упрощения обмена знаниями в научной среде. Первым опенсорсным решением того периода считается система A-2, написанная для ЭВМ UNIVAC Remington Rand в 1953 году.
В те же годы сформировалась первая группа разработчиков свободного ПО — SHARE. Они работали по модели «совместного однорангового производства». Результатом труда этой группы ближе к концу 50-х стала одноименная ОС.
Эта система (и другие продукты SHARE) пользовалась популярностью у производителей компьютерного оборудования. Благодаря политике открытости они могли предложить клиентам не только аппаратное, но и программное обеспечение без дополнительных затрат.
Приход коммерции и рождение Unix
В 1959 году компания Applied Data Research (ADR) получила заказ от организации RCA — написать программу для автозаполнения блок-схем. Разработчики выполнили работу, но не сошлись с RCA в цене. Чтобы не «выбрасывать» готовый продукт, в ADR переделали решение для платформы IBM 1401 и начали самостоятельно его реализовывать. Однако продажи шли не очень хорошо, так как многие пользователи ждали бесплатную альтернативу решению ADR, которую планировали в IBM.
В ADR не могли допустить выпуск бесплатного продукта с аналогичной функциональностью. Поэтому разработчик Мартин Гетц (Martin Goetz) из ADR подал патент на программу и в 1968 году первым в истории США получил его. С этого момента принято отсчитывать эпоху коммерциализации в индустрии разработки — из «бонуса» к оборудованию ПО превратилось в самостоятельный продукт.
Приблизительно в то же время небольшая команда программистов из Bell Labs начала работу над операционной системой для мини-компьютера PDP-7 — Unix. Unix создавали в качестве альтернативы другой ОС — Multics.
Последняя была слишком сложной и работала только на платформах GE-600 и Honeywell 6000. Переписанная на языке СИ Unix должна была стать портативной и более простой в использовании (во многом благодаря иерархической файловой системе с единым корневым каталогом).
В 50-х холдинг AT&T, в состав которого на тот момент входила Bell Labs, подписал соглашение с правительством США, запрещающее корпорации продавать программное обеспечение. По этой причине первые пользователи Unix — научные организации — получали исходный код ОС бесплатно.
AT&T отдалилась от концепции свободного распространения ПО в начале 80-х. В результате вынужденного разделения корпорации на несколько компаний запрет на продажу ПО перестал действовать, и холдинг прекратил бесплатное распространение Unix. Разработчикам грозили исками за несанкционированный обмен исходным кодом. Угрозы не были беспочвенными — с 1980 года компьютерные программы стали объектом авторского права в США.
Не всех разработчиков устраивали условия, которые диктовали в AT&T. Поисками альтернативного решения занялась группа энтузиастов из Калифорнийского университета в Беркли. В 70-х учебное заведение получило лицензию от AT&T, и энтузиасты начали создавать на его основе новый дистрибутив, который впоследствии стал Unix Berkeley Software Distribution, или BSD.
Открытая Unix-подобная система возымела успех, на что сразу обратили внимание в AT&T. Компания подала в суд, и авторам BSD пришлось удалить и заменить весь задействованный исходный код Unix. Это немного замедлило распространение Berkeley Software Distribution в те годы. Последняя версия системы вышла в 1994 году, но сам факт появления свободной и открытой ОС стал важной вехой в истории опенсорсных проектов.

/ Flickr / Christopher Michel / CC BY / Фото обрезано
Назад — к истокам свободного ПО
В конце 70-х сотрудники Массачусетского технологического института написали драйвер для принтера, установленного в одной из аудиторий. Когда бумага застревала и создавалась очередь из заданий на печать, пользователи получали уведомление с просьбой устранить проблему. Позже в отделе появился новый принтер, для которого сотрудники захотели добавить такую функцию. Но для этого нужен был исходный код первого драйвера. Штатный программист Ричард Мэттью Столлман (Richard M. Stallman) запросил его у коллег, но получил отказ — выяснилось, что это конфиденциальная информация.
Этот незначительный эпизод, возможно, стал одним из судьбоносных в истории свободного ПО. Столлман негодовал из-за сложившегося положения вещей. Его не устраивали ограничения, накладываемые на обмен исходным кодом в ИТ-среде. Поэтому Столлман решил создать открытую операционную систему и позволить энтузиастам свободно вносить в нее изменения.
В сентябре 1983 года он объявил о создании проекта GNU — GNU’s Not UNIX («GNU не Unix»). В его основе лежал манифест, который послужил и базисом для лицензии на свободное программное обеспечение — GNU General Public License (GPL). Этот шаг стал началом активного движения за открытое ПО.

/ Flickr / Christopher Michel / CC BY
Рождение Linux и первых дистрибутивов
В 1991 году молодой программист из Хельсинкского университета Линус Торвальдс осваивал Minix. Его эксперименты с ОС переросли в работу над совершенно новым ядром. 25 августа Линус устроил открытый опрос группы пользователей Minix о том, что их не устраивает в этой ОС, и анонсировал разработку новой операционной системы. В августовском письме есть несколько важных тезисов о будущей ОС:
Далее последовала череда обновлений. В октябре того же года была выпущена версия ядра 0.02, а в декабре — 0.11. Изначально Linux распространялся без лицензии GPL. Это означало, что разработчики могли пользоваться ядром, модифицировать его, но не имели права перепродавать результаты своих трудов. Начиная с февраля 1992 года, все коммерческие ограничения были сняты — с релизом версии 0.12 Торвальдс изменил лицензию на GNU GPL v2. Этот шаг Линус позже назвал одним из определяющих факторов успеха Linux.
Популярность Linux в среде разработчиков Minix росла. Некоторое время обсуждения велись в фиде comp.os.minix сети Usenet. В начале 92-го создатель Minix Эндрю Таненбаум запустил в сообществе спор об архитектуре ядер, заявив, что «Linux устарел». Причина, по его мнению, заключалась в монолитном ядре ОС, которое по ряду параметров уступает микроядру Minix. Еще одна претензия Таненбаума касалась «привязки» Linux к линейке процессоров x86, которая, по прогнозам профессора, должна была кануть в небытие в ближайшее время. В полемику вступил сам Линус и пользователи обеих ОС. В результате спора сообщество разделилось на два лагеря, а у приверженцев Linux появился свой фид — comp.os.linux.
Сообщество занималось расширением функциональности базовой версии — разрабатывались первые драйверы, файловая система. Самые ранние версии Linux умещались на двух дискетах и состояли из загрузочного диска с ядром и корневого диска, который устанавливал файловую систему и несколько базовых программ из инструментария GNU.
Постепенно сообщество начало разрабатывать первые дистрибутивы на базе Linux. Большинство ранних версий создавались энтузиастами, а не компаниями.
Первый дистрибутив — MCC Interim Linux — был создан на основе версии 0.12 в феврале 1992 года. Его автор — программист из Компьютерного центра университета Манчестера — назвал разработку «экспериментом» с целью устранить некоторые недостатки в процедуре установки ядра и добавить ряд функций.
Вскоре после этого число пользовательских дистрибутивов значительно возросло. Многие из них остались локальными проектами, «прожившими» не более пяти лет, например, Softlanding Linux System (SLS). Однако были и дистрибутивы, которым удалось не только «закрепиться» на рынке, но и во многом повлиять на дальнейшее развитие опенсорсных проектов. В 1993 году состоялся релиз двух дистрибутивов — Slackware и Debian, — которые дали старт серьезным переменам в индустрии свободного ПО.
Debian создал Иан Мердок (Ian Murdock) при поддержке Free Software Foundation Столлмана. Он задумывался как «изящная» альтернатива SLS. Debian поддерживается по сей день и является одной из самых популярных разработок на базе Linux. На его основе, в свою очередь, был создан ряд других важных для истории ядра дистрибутивов — например, Ubuntu.
Что касается Slackware, это — еще один ранний и успешный проект на базе Linux. Его первая версия вышла в 1993 году. По некоторым оценкам, через два года на долю Slackware приходилось уже около 80% установок Linux. И десятилетия спустя дистрибутив оставался популярным среди разработчиков.
В 1992-м в Германии была основана компания SUSE (аббревиатура от Software- und System-Entwicklung — разработка программного обеспечения и систем). Она первой начала выпускать продукты на базе Linux для бизнес-клиентов. Первым дистрибутивом, с которым стали работать SUSE, как раз был Slackware, адаптированный для немецкоязычных пользователей.
Именно с этого момента начинается эпоха коммерциализации в истории Linux, о которой мы поговорим в следующей статье.













