BSD и развитие Интернета
Следующий важный этап нашей экскурсии по развитию операционной системы Unix переносит нас в 1974 год на противоположное побережье от Bell Labs, где ученые в области компьютерных наук Калифорнийского университета в Беркли решили попробовать установить на свои системы Unix. Они и их студенты сочли Unix подходящим вариантом для своих исследований и начали совершенствовать ОС, расширяя её функционал путем добавления всевозможных новых системных вызовов и утилит.
Эволюция BSD (сокр. от англ. «Berkeley Software Distribution») была плавной и последовательной: от набора небольших улучшений до чего-то совершенно нового. Студенты, некоторые из которых позже стали лидерами в области вычислительной техники, добавляли в систему различные улучшения. Одним из таких крупных улучшений стал редактор vi, ежедневно применяемый в своей работе многими пользователями Unix, а теперь и пользователями Linux. Билл Джой, который в студенческие годы изобрел редактор vi во время своей ранней работы над системой Unix в Беркли, организовал в 1977 году первый выпуск своего редактора под маркой «Berkeley Software Distribution». Позже Джой (вместе с другими сооснователями) создал компанию Sun Microsystems, которая позволила Unix взять на себя крупномасштабные вычисления.
Beastie — талисман BSD
Применяя Unix для тяжелых, связанных с сетями вычислений, разработчики BSD обнаружили отсутствие многих необходимых системных вызовов. В результате чего они добавили в систему новые системные функции, а также библиотечные вызовы (которые выполняются в пространстве пользователя, а не в пространстве ядре). Связь между Bell Labs и BSD стала двунаправленной, поскольку разработчики Unix позаимствовали свои любимые системные и библиотечные вызовы из BSD.
Сетевой стек был самым важным вкладом BSD в этом деле. История гласит, что BBN Technologies создали Интернет в рамках сотрудничества с оборонным агентством ARPA (позже DARPA). Но когда Интернет стал мейнстримом, в нем использовались стеки протоколов, сетевые службы и инструменты, созданные проектом BSD.
Компания AT&T, которой принадлежала Bell Labs, неплохо зарабатывала на лицензировании Unix.
Примечание: Кстати, официальное название Unix, в соответствии с зарегистрированным товарным знаком, пишется большими буквами — UNIX.
Как уже ранее упоминалось, к системе прилагались её исходные коды. Но в Беркли сделали нечто гораздо более радикальное: они выпустили свой собственный код под лицензией, которая разрешала пользователям вносить изменения и делать всё, что они захотят, включая продажу системы с внесенными в нее изменениями. Лицензия BSD была одной из первых свободных лицензий на программное обеспечение с открытым исходным кодом. И она до сих пор применяется многими проектами.
Популярность BSD обуславливалась бесплатным распространением системы, а не каким-либо её техническим превосходством над Unix от Bell Labs. Как я уже упоминал, AT&T не испытывала никаких угрызений совести по поводу включения наработок BSD в Unix. Сегодня код BSD выглядит устаревшим и в некоторых моментах немного пугающим, но операционная система и её утилиты были очень популярны в то время. В конце 1970-х и начале 1980-х годов, до того, как персональные компьютеры стали коммерчески доступны, большой популярностью пользовались VAX и миникомпьютеры с BSD.
BSD также послужила толчком к прорыву, который привел Unix в коммерческое русло: основанию Sun Microsystems. Билл Джой и его коллеги воспользовались разрешительной лицензией BSD для продажи компьютеров с их собственной доработанной версией операционной системы BSD, называемой SunOS. Рабочие станции и серверы мини-компьютеров Sun Microsystems уничтожили поколение других компаний, производящих мини-компьютеры, и начали устанавливать стандарты для современных вычислений и сетей — всё на основе SunOS, что, конечно же, подразумевало использование BSD.
Что нового появилось в UNIX, чего до неё не было
Вот что впервые появилось именно в UNIX — и в виде идей, и в виде готового кода:
Файловая система с любой глубиной вложенности. Мы сейчас привыкли к папкам, в которых можно создавать другие папки, а в них третьи и так почти до бесконечности. Но до UNIX глубина вложенности была ограничена — нельзя было создать, например, папку внутри другой папки.
Модель работы с файлами. Пользователю раньше нужно было самому предусмотреть формат, размер и физическое размещение файлов на диске. В UNIX это всё взяла на себя операционная система.
Работа с программами напрямую. До UNIX настройку работы всех программ можно было сделать только в командной строке: запустил → компьютер что-то посчитал → показал результат. Если нужно изменить параметры, то это надо было делать через командную строку. В новой системе можно было менять настройки программ прямо внутри них — именно так и устроены сейчас все программы.
Вывод всего как текста. Раньше компьютеры работали с битами и выводили битовые последовательности. Их нужно было отдельно разбивать на нужные фрагменты или использовать встроенные программы для перевода битов в байты, а из них — в текст.
В UNIX единица вывода — это не бит, а байт. А в байт как раз умещается символ текста, а значит, с ним можно работать как с текстом: искать, склеивать с другими, отправлять в файл и так далее.
Регулярные выражения стали использоваться не только в профессиональных задачах, но и как основа для обработки вывода программ.
Язык C. Этот язык появился в UNIX как замена языка B. Но B был интерпретируемым языком (как Python), и для запуска программ нужен был его интерпретатор. Язык C — компилируемый, а значит, готовые программы можно запускать на любом совместимом компьютере, даже если на нём нет компилятора C.
Протокол TCP/IP. До UNIX этот протокол не был популярен, и компьютеры связывались друг с другом по более старому протоколу, который не имел столько возможностей. Теперь благодаря этой операционной системе весь мир пользуется интернетом, построенным на протоколе TCP/IP. Справедливости ради, этот протокол появился не в первой поставке UNIX.
UNIX — многопользовательская операционная система
Создатели UNIX Кен Томпсон и Деннис Ритчи (который потом напишет язык C) решили проблему так:
- Есть один центральный компьютер — сервер, на котором выполняются все программы.
- Если кто-то хочет поработать за этим компьютером, то он подключается к нему не напрямую, а через терминал. Терминал — это монитор и клавиатура, которые соединены с сервером. Сам терминал ничего не считает, а только отправляет и получает результаты с сервера.
- Пользователь вводит свой логин и пароль и получает право запускать на сервере программы, которые ему нужны. При этом на сервере может быть запущено одновременно много программ от разных пользователей.
- Сервер помнит, кто на каком терминале зашёл под каким логином, поэтому результаты работы программы он отправляет в нужный терминал.
Со стороны пользователя кажется, что весь сервер в его распоряжении, но на самом деле сервером могут пользоваться одновременно десятки человек и не знать о том, что сервер выполняет что-то ещё. Сейчас это звучит обычно и примитивно, но для того времени это был прорыв.
Операционную систему, которая умеет всё это делать, назвали UNIX — сокращение от Uniplexed Information and Computing Service (единый информационно-вычислительный сервис). Изначально это называлось UNICS, но потом последние две буквы превратились в одну.
Как и где Unix используется сегодня?
Прямо сейчас популярность может быть основным различием между Linux и Unix. Тем не менее, есть свободно доступные дистрибутивы Unix, которые работают под управлением того же программного обеспечения, что и Linux. Двумя наиболее популярными являются FreeBSD и OpenBSD, оба варианта BSD, как следует из названий.
Любое устройство Apple, которое вы покупаете в эти дни, будь то MacBook, iPhone или даже Apple Watch, работает под управлением Unix-подобной операционной системы. На iPhone или Apple Watch вы никогда не узнаете об этом, используя их. Однако это не так на компьютере Mac.
Просто запустите приложение Mac Terminal, и вы получите доступ к стандартным утилитам Unix, таким как ls, pwd и даже редакторам, таким как vim.
Как я могу получить поддержку?
Точно так же, как когда вы впервые начали использовать Windows или OS X, у вас есть несколько вещей, которые нужно изучить, когда вы начнете использовать Linux. В настоящее время Linux довольно просто установить и начать использовать, так как большинство дистрибутивов сосредоточены на простоте использования для конечного пользователя.
Однако могут быть случаи, когда вам нужна небольшая помощь с вашей операционной системой. Не бойтесь, так как у Linux есть большая фан-база и сообщество, готовое помочь вам в любой проблеме, с которой вы можете столкнуться. В большинстве случаев поиск и устранение неисправностей в Linux не будет таким трудным, поскольку многие из них можно решить, набрав что-то в командной строке, и сообщество поможет вам с пошаговыми инструкциями.
История создания Linux
В январе 1991 года, финский студент Линус Торвальдc, находясь под впечатлением от купленной им книги «Проектирование и реализация операционных систем» автора Эндрю С. Таненбаума, с целью детального изучения концепций и строения ОС Unix, решает купить новый компьютер на базе процессора Intel 80386, на который ставит разработанную Таненбаумом учебную ОС Minix.
Но учебная система — она на то и учебная, что обладает рядом недостатков. В частности, в Minix не только была плохая эмуляция терминала, но и не было возможности перевести в фоновый режим программу, которой временно не пользуешься.
И тогда в августе 1991 года Торвальдс объявляет в сети Usenet о том, что создает свою собственную (свободную) операционную систему с открытыми исходными кодами — Linux. Стоит отметить, что в тот момент речь еще не шла о полноценной системе, скорее это был её прообраз в виде ядра.
17 сентября того же 1991 года, без каких-либо особо публичных объявлений, выходит Linux версии 0.01.
Вскоре после этого, 5 октября, Торвальдс представляет версию 0.02, ставшей первой «официальной» версией своей ОС.
А уже 16 апреля 1994, когда, по мнению Линуса, система стала полностью работоспособной, вышел первый, после более чем двух лет развития, мажорный релиз системы — Linux 1.0.
Примечание: Изначально ОС называлась Freax, что является гибридом от английских слов «freak» (чудак) и «free» (бесплатный) с окончанием X, как дань операционной системе Unix. Однако имя «Linux» системе дал Ари Леммке (Ari Lemmke), по просьбе Торвальдса разместивший ОС на FTP-сервере университета в директории , а не .
Открытие исходных кодов операционной системы сыграло решающую роль в дальнейшем развитии Linux. Но необходимо все-таки помнить, что технически Linux — это только лишь ядро, без сопутствующих прикладных программ. Полноценной ОС его делает сопутствующее программное обеспечение. Пока роль такого программного обеспечения играли компоненты учебной системы Таненбаума.
Позже, когда Linux немного «окреп и встал на ноги», приложения из проекта GNU заменили соответствующие программы из Minix, так как лицензия (GNU GPL) на исходные коды программ проекта GNU была более удобна для применения в молодой операционной системе.
Таким образом, миру явилась полноценная работающая операционная система под названием «GNU/Linux», которую мы привыкли называть просто «Linux», состоящая из ядра Linux, написанного Торвальдсом, и окружающего программного обеспечения, созданного в рамках проекта Столлмана, GNU.
Операционная система UNIX-подобная на ноутбуке
Это может быть разная операционка, но только не Windows. Например Линукс, Minix, FreeBSD, NetBSD, OpenBSD. Скорее всего вам эти слова ни о чем не говорят и здесь нет ничего удивительного — эти малоизвестные операционки, они бесплатны или стоят копейки, поэтому чтобы сделать дешевле ноутбук — производители ставят именно их.
Стоит ли брать ноут с такой системой? Стоит если:
- Вы понимаете что такое UNIX-системы.
- Если вы администратор, специалист, вам нужна стабильная система для определенных задач, которые например почти никогда не выполняются на обычном домашнем компьютере или ноутбуке.
- Понимаете, что программ под UNIX-системы — намного меньше, чем под Windows.
- Если вы продвинутый пользователь и сможете самостоятельно поставить Windows. На самом деле это просто и справится любой мастер, вообще стоимость установки виндовс не должна быть высокой. Зато ноут с UNIX-системой будет стоить дешевле, чем с Windows.
Пример внешнего вида Nexenta OS, это система из семейства UNIX:
Все хорошо, да, но приложений в сотни раз меньше, чем под Windows, мало игр поддерживает UNIX, в интернете намного меньше инструкций как что настроить. Помните что Windows — сама популярная ОС в мире, под нее собственно и подстраивается весь компьютерный мир.
Для чего используется Linux
Linux используется для чего угодно. Так как любой дистрибутив Linux собирается из разных кирпичиков, можно найти дистрибутивы:
- для домашнего ежедневного использования (например, Ubuntu);
- для реанимации старого железа (например, поставить Calculate для слабых компьютеров в школьных классах);
- для серверов предприятий;
- для суперкомпьютеров;
- для отказоустойчивых станций для работы в бесперебойном режиме;
- для систем безопасности и шифрования;
- для создания сети из компьютеров для параллельных вычислений;
- для обслуживания сигнализаций, умных домов и районов;
- для роутеров и прочего компьютерного железа;
- для роботов и робототехники.
Если того, что вам нужно, нет в списке, то вы можете сами сделать свой дистрибутив или взять что-то за основу и поставить туда нужный софт. Такой подход и делает Linux универсальной операционной системой для всего.
Дистрибутивы Linux
Самые популярные дистрибутивы:
- Ubuntu — ориентирован на лёгкость в освоении и использовании.
- openSUSE — бесплатно распространяемая версия дистрибутива SuSE, принадлежащая компании Novell. Отличается удобством в настройке и обслуживании благодаря использованию утилиты YaST.
- Fedora — поддерживается сообществом и корпорацией RedHat, предшествует выпускам коммерческой версии RHEL.
- Debian — международный дистрибутив, разрабатываемый обширным сообществом разработчиков в некоммерческих целях. Послужил основой для создания множества других дистрибутивов. Отличается строгим подходом к включению несвободного ПО.
- Mandriva — французско-бразильский дистрибутив, объединение бывших Mandrake и Conectiva.
- Mageia — дистрибутив Linux, основанный на Mandriva Linux бывшими сотрудниками компании Mandriva, разрабатываемый в цикле, составляющем 9 месяцев.
- Slackware — один из старейших дистрибутивов, отличается консервативным подходом в разработке и использовании.
- Gentoo — дистрибутив, собираемый из исходных кодов. Позволяет очень гибко настраивать конечную систему и оптимизировать производительность, поэтому часто называет себя мета-дистрибутивом. Ориентирован на экспертов и опытных пользователей.
- Arch Linux — ориентирован на применение самых последних версий программ, постоянно обновляется, поддерживает одинаково как бинарную, так и установку из исходных кодов и «KISS» («Keep it simple, stupid» / «Не усложняй»).
- Linux Mint — дистрибутивы, основанные как на Ubuntu, так и на Debian (LMDE) и полностью с ними совместимые, включающие в себя по умолчанию Java, Adobe Flash и многое другое.
- CentOS (Community ENTerprise Operating System)|CentOS — дистрибутив, основанный на свободных исходных текстах коммерческого дистрибутива Red Hat Enterprise Linux компании Red Hat, и совместимый с ним. Срок поддержки каждой версии CentOS составляет 7 лет (с помощью выпуска обновлений безопасности). Новая версия CentOS выходит раз в 2 года и каждая версия регулярно обновляется (каждые 6 месяцев) для поддержки новых аппаратных средств. В результате это приводит к безопасной, легко обслуживаемой, надёжной, предсказуемой и масштабируемой Linux среде.
- PCLinuxOS — LiveCD дистрибутив с возможностью установки операционной системы на жёсткий диск. Основанный изначально на Mandrake 9.2, PCLinuxOS придерживается собственного пути развития.
Помимо перечисленных, существует множество других дистрибутивов, как базирующихся на перечисленных, так и созданных с нуля и зачастую предназначенных для выполнения ограниченного количества задач .
Основные характеристики
ОС UNIX имеет следующие основные характеристики:
- переносимость;
- вытесняющая многозадачность на основе процессов, работающих в изолированных адресных пространствах в виртуальной памяти;
- поддержка одновременной работы многих пользователей;
- поддержка асинхронных процессов;
- иерархическая файловая система;
- поддержка независимых от устройств операций ввода-вывода (через специальные файлы устройств);
- стандартный интерфейс для программ (программные каналы, IPC) и пользователей (командный интерпретатор, не входящий в ядро ОС);
- встроенные средства учета использования системы.
Истоки 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 — это:
- Unix подобная операционная система, которая ведет себя как Unix, но не использует его код;
- не имеет сертификата Unix, но по функциональности имеет множество сходств;
- реализует много принципов работы Unix, но не является его частью.
Linux простая система для работы даже новичков. В Сети можно найти большое количество инструкций и при этом не нужно разбираться в программировании. Unix более сложный и изначально был создан для тех пользователей, которые имеют навыки в создании программ.
ОС Линукс — это дистрибутив, который состоит из ядра, утилит и приложений. Система создана на добровольных основах и предоставляется абсолютно бесплатно для всех желающих.
Первоначальные преимущества Unix
Деннис Ритчи и Кен Томпсон выпустили первый релиз операционной системы Unix 3 ноября 1971 года. Когда историки обсуждают, что особенного было в Unix в то время, они обычно подчеркивают, что Unix поддерживала возможность одновременной работы нескольких пользователей, в то время как в других операционных системах того времени одно задание выполнялось от начала и до конца без возможности прерывания. Я думаю, что более важным отличием Unix была портируемость системы. В те года большинство операционных систем были привязаны к конкретной архитектуре процессора. С помощью Unix вы могли обновлять свой компьютер годами и десятилетиями и по-прежнему использовать одну и ту же операционную систему, и приложения. Это дало большой толчок в развитии вычислительной техники.
Если бы Unix была привязана к компьютеру PDP-11, на котором велась её первоначальная разработка, то данная ОС вряд ли бы оставила сколь-нибудь заметный след в истории. Свойство переносимости системы позволило Unix пережить эволюцию компьютерного оборудования и, в конечном счете, занять лидирующие позиции среди других ОС. Как гласит официальная временная шкала Unix: «В 1973 году система была переписана на язык программирования Си. Это сделало её переносимой и сильно повлияло на историю развития ОС в целом».
Сегодня переносимость Unix и её утилит в полной мере присутствует и в Linux: изначально разрабатываемая под процессоры Intel, система работает на нескольких различных архитектурах. Когда ядро Linux совершило скачок от процессоров Intel к архитектуре ARM, тем самым сделав доступным использование Linux на небольших (появившихся в 1990-х годах) мобильных устройствах, то это событие вызвало всеобщее волнение в Linux-сообществе и открыло новые перспективы развития вычислительной техники.
Распространенность
Более популярным выбором считается Windows 10, она установлена на 35% всех стационарных устройств на планете.
Но большинство установленных версий представляет собой пиратский продукт.
- Первое отличие «начинки» windows от linux – это явная коммерческая составляющая. Для того чтоб установить лицензионную версию Windows, пользователь вынужден будет расстаться с некоторой суммой.
- Встроенный официальный магазин Microsoft включает расширенный набор полезных утилит. Но произвести легальную установку дополнительного программных инструментов, типа «Microsoft Office», скачать игры, популярные треки и фильмы, можно только заплатив деньги.
Linux пользуется меньшей популярностью, потому как, больше ориентирован на профессионалов, а не рядовых потребителей. Хотя, программная начинка не настолько сложна, как кажется при первом знакомстве, к ней нужно просто привыкнуть.
Что такое Unix
Термин Unix может относиться к таким понятиям:
- Оригинальная операционная система, разработанная в AT&T Bell Labs, на основе которой развиваются другие ОС.
- Товарный знак, написано заглавными буквами. UNIX принадлежит The Open Group, которая разработала набор стандартов для операционных систем — Single UNIX Specification. Только те системы, которые соответствуют стандартам могут законно называться UNIX. Сертификация не бесплатная и требует от разработчиков платить за использование этого товарного знака.
- Все операционные системы зарегистрированы с именем Unix. Потому что они соответствуют вышеупомянутым стандартам. Это AIX, A/UX, HP-UX, Inspur K-UX, Reliant UNIX, Solaris, IRIX, Tru64, UnixWare, z/OS и OS X — да, даже те что работают на компьютерах Apple.
Движение за свободное ПО
Теперь мы можем обратиться к причине, по которой Linux-системы добились больших успехов, в то время как BSD-системы потерпели в этом неудачу.
Точно так же, как первоначальная привлекательность BSD в значительной степени основывалась на свободной лицензии, Linux-системы были замечены растущими центрами обработки данных 21 века как отличные операционные системы для массового развертывания. Проприетарные системы были обременены не только своей стоимостью, но и явными бюрократическими накладными расходами на приобретение лицензий и контроль за ними.
К концу 1990-х годов все компании, которые предлагали несколько иные версии Unix, поняли, что любое ПО и услуги, которые они надеялись предложить в будущем, должны будут работать на GNU/Linux. Предложение операционной системы, которую любой желающий мог бы свободно устанавливать, должно было стать центральным элементом их бизнес-стратегий.
Примечание: IBM официально перешла на GNU/Linux в 2000 году. В 2019 году они купили ведущего коммерческого поставщика GNU/Linux — компанию Red Hat. Даже Oracle, больше известная своими базами данных, нежели операционными системами (несмотря на покупку Sun Microsystems), лицензирует версию GNU/Linux — Oracle Linux.
Академическое и деловое признание свободного программного обеспечения с открытым исходным кодом демонстрирует то, насколько изменилось это движение со времен расцвета BSD. Ричард Столлман объединил движение за свободное программное обеспечение с проектом GNU. Некоторое время спустя сообщество сторонников ПО с открытым исходным кодом набрало силу, о чем свидетельствовало проведение в том же году крупной конференции по свободному программному обеспечению под названием LinuxWorld Conference and Expo (различные специалисты по свободному программному обеспечению также называют 1998 год поворотным моментом для свободного программного обеспечения).
Надежность и стабильность
Одно из принципиальных отличий Linux от конкурента — открытый исходный код, в который пользователь может самостоятельно вносить изменения в соответствии со своими потребностями. Это значит, что в случае обнаружения ошибки она может быть исправлена программистом в кратчайшее время. Windows — это коммерческая ОС с закрытыми кодами ядра. Доступ к ним есть только у ограниченного числа пользователей. Поэтому в случае сбоев в работе системы, на устранение ошибки уходит больше времени.
Кроме того, если при сбоях или замедлении работы систему Windows приходится переустанавливать, что всегда связано с риском потери важной информации, то Linux способен бесперебойно работать в течение более продолжительного времени без переустановки