Ленивый линукс: история Slackware
Привет, хабр!
Моя прошлая статья была посвящена древним языкам программирования и истории программировании в СССР. Она набрала большой отклик — даже скажу больше, та статья — больше всех других моих статей по рейтингу!
Сегодня мы изучим историю одного из старейших, и до сих пор живущих дистрибутивов линукс — Slackware.
В современную компьютерную эпоху Slackware можно считать старым пережитком давно забытого прошлого. Старый король, возможно, и отрекся от престола, но угли былой славы все еще тлеют.
Но для начала проведу краткий экскурс в историю Linux.
История Linux
Корни Linux прослеживаются ещё с 70-х годов 20-го века. Точкой отсчёта можно считать появление операционной системы Unix в 1969-м году в США в фирме Bell Laboratories, дочернем подразделении компании AT&T. Unix стала основной для большого количества операционных систем промышленного класса. Самые основные из них отображены на этой временной шкале:
Здесь мы видим и Unix, и BSD системы, и Linux
Linux обязан своей жизнью двум проектам — GNU и Minix. Насчет этого, поговорим попозже.
О Патрике — создателе Slackware
Всё началось в в 1973 году. Обычный ребёнок по имени Патрик вместе со своим классом отправился на экскурсию в компьютерный департамент North Dakota State University.
«Комната, где они держали машины тотально поразила меня — множество больших шумящих машин с мерцающими огоньками повсюду. И ряды больших приводов с дисковыми пластинами. Один из системных операторов показал мне, как играть в StarTrek на Dec Writer — телетайпо-подобном терминале. Это была мгновенная зависимость.»
Зависимость зависимостью, а в 1973 году компьютеры были большими, а интернеты медленными и ни школьник, ни его родители не могли позволить себе покупку компьютера. Именно это заставило Патрика заинтересоваться электроникой — она была более доступной и не менее интересной.
После выхода в свет и появлении в продаже первых персональных компьютеров, таких как TRS-80, Apple II и Atari 400/800 магазины, занимавшиеся продажей, стали постоянным местом обитания Патрика. Владельцы разрешали ему здесь ошиваться и пользоваться машинами, а взамен получали маленькие программки с рекламой магазина или что-то подобное, получившееся в результате изучения Патриком BASICа.
В возрасте 14 лет Патрик всё таки обзавёлся личным ПК. Это был Apple II Plus с 300 бодовым модемом AppleCat. На нём была установлена unix-подобная ОС, даже не напоминавшая Linux. На то время это как раз были очень популярные модели. Эта машина прослужила ему верой и правдой вплоть до 1990 г.
Впервые Патрик услышал о Linux, где-то в конце 1992 года, от друга по имени Wes, на вечеринке в Фарго, Северная Дакота. О Linux он вспомнил, только когда ему понадобилось найти LISP -интерпретатор для для проекта. Так была скачана одна из версий дистрибутива Питера МакДональда SLS.
За несколько недель в установленной ОС было исправлено всё, что необходимо и у профессора возникло вполне логичное желание сделать так, чтобы при последующих установках Linux на машины, ОС имела те же исправления, что имеет сейчас. Это дало старт проекту. Патрик исправил оригинальные установочные скрипты SLS, устранил баги, добавил автоматическую установку общих библиотек и образа ядра. Отредактировал файлы описаний, сделав их более информативными и вообще прошёлся по всем пакетам ПО, устраняя все увиденные баги, портировал новые выходившие версии программных пакетов. При старте работы будущий дистрибутив, тогда ещё просто хак-версия SLS, имел ядро 0.98pl4, а по завершении работы и сдачи её профессору — уже 0.99pl9. К тому времени Патрик в своей сборке SLS обогнал оригинальный дистрибутив в половине пакетов, и сделал множество исправлений во второй половине. Различия между SLS и Slackware стали более, чем косметические.
В Мае — Июне 1993 г. после добавления в уже собственный дистрибутив библиотек С 4.4.1 и ядра 0.99pl11A — система стала существенно стабильней и улучшились работа с сетью. Друзья из Minnesota State University уговаривали Патрика выложить дистрибутив на FTP, но думая что выйдет новая версия SLS, Патрик ждал. За несколько недель множество людей в сети спрашивало о новом релизе SLS с исправлениями. Тогда в сеть ушло письмо с темой «Кто-то хочет SLS-подобную 0.99plA систему?». И ответов было огромное множество.
Патрику разрешили создать анонимный FTP на старой 3b2, которая загнулась совсем скоро, после объявления о выложенном архиве. Те, кто успел скачать Slackware 1.0, оставляли хорошие отзывы в сети и репутация дистрибутива не заставила себя долго ждать. Патрику предложили дисковое пространство на ftp.cdrom.com.
И однажды настал момент, когда проснулся Питер МакДональд и потребовал дистрибутивных прав на установочные скрипты, взятые из SLS, вместо того, чтобы смотреть на примере Slackware исправлять SLS, как этого хотел Фолькердинг. Патрик полностью переписал установочные скрипты для Slackware и после такого объёма проделанных работ понял, что сдаваться он не собирается.
Название Slackware предложил друг Патрика J.R. «Bob» Dobbs. Slack — означает ленивый, нерадивый, расхлябанный, расслабленный, вялый, а также лодырничать. Многие говорили, что название несёт негативную коннотацию, но Патрику название нравилось. То, что он называл Slackware — было действительно хак-версией SLS. Он не собирался обнародовать дистрибутив. Но когда выложил его на FTP, то имя оставил. Он по началу не хотел, чтобы люди воспринимали дистрибутив так серьёзно.
История Slackware
Итак, дистрибутив SLS умер. Но душа его жила. Ещё в период его активного развития Патрик Фолькердинг принял SLS за основу своей Linux-системы, названной Slackware, первая версия которой была обнародована 17 июля 1993 года и с тех пор успешно развивается по сей день.
Именно со Slackware началась и история Linux-дистрибуции в организационном, так сказать, аспекте. Сразу же после своего появления Slackware, помимо обычных сетевых каналов, начала распространяться на CD известной медиа-фирмой Walnut Creek.
Slackware в своём внутреннем устройстве унаследовала первозданную простоту SLS. И не только унаследовала — именно простоту Патрик возвёл в основополагающий принцип построения системы. Реализация его выразилась в сохранении BSD-стиля инициализации, простого формата пакетов, и «идеологически обусловленного» отказа от контроля их зависимостей.
Создававшиеся чуть позже (но в масштабах эпохи — практически одновременно) дистрибутивы Debian и Red Hat пошли по прямо противоположному пути: всё более усложняющаяся со временем схема инициализации в стиле System V, включение максимально большого количества метаинформации в структуру пакетов и все более изощрённые формы контроля их зависимостей.
30 лет назад Патрик Фолькердинг (Patrick Volkerding) представил первый релиз дистрибутива Slackware Linux, оказавшего влияние на многие проекты и являющегося старейшим из ныне существующих дистрибутивов. Наиболее известным ответвлением от Slackware является SUSE Linux. Из продолжающих развитие модификаций Slackware можно отметить Salix, Slax, Slackel, Porteus, Zenwalk, Slackware Live Edition и Absolute Linux.
Первый выпуск Slackware был основан на ядре Linux 0.99pl10 и собран с использованием gcc 2.4.5. Графическое окружение было построено с использованием XFree-86 1.3 и оконного менеджера Open Look. Расцвет Slackware пришёлся на 1994–96 годы, в которые дистрибутив занимал лидирующие позиции среди других систем. Например, Slackware стал первым дистрибутивом, выпустившим релизы на основе ядра Linux 1.0 и 2.0 (Debian Buzz с ядром 2.0 вышел на несколько недель позже, а Red Hat 4.0 отстал на несколько месяцев). В последующем такие проекты, как Debian, Red Hat и SUSE, вытеснили Slackware, но вопреки многочисленным прогнозам о скором забвении проекта, дистрибутив по-прежнему жив и обновляется.
Основной причиной долгой жизни дистрибутива является неиссякаемый энтузиазм Патрика Фолькердинга, который спустя 30 лет по-прежнему остаётся лидером и основным разработчиком проекта. Кроме того, несмотря на солидный возраст, дистрибутив смог сохранить самобытность и простоту в организации работы. Отсутствие усложнений и простая система инициализации в стиле классических систем BSD делают дистрибутив интересным решением для изучения работы Unix-подобных систем, проведения экспериментов и знакомства с Linux.
Новшествами Slackware были:
• собственная программа инсталляции — меню-ориентированная, работающая в псевдографическом режиме, похожая по виду и родственная по духу создававшейся в то же самое время утилите sysinstall из FreeBSD;
• выделение категорий пакетов — базовой системы (A), консольных приложений (AP), средств разработки (D), оконной системы X и ее приложений (X и XAP, соответственно), и так далее;
• набор утилит для управления индивидуальными пакетами, не предусматривающего, однако, никакого контроля зависимостей.
Время показало провиденциализм подхода Патрика — Slackware живёт и развивается вот уже 15 лет, не поступаясь своими принципами, сохраняя редкую по нынешним временам компактность, лишь обновляя версии ядра, компоненты базовой системы и приложений. Сохраняется и устойчивый круг пользователей этого дистрибутива.
Исходный «примитивизм» формата пакетов Slackware не мешает использовать в этом дистрибутиве весьма развитые средства пакетного менеджмента, обеспечивающие учёт и автоматическое разрешение зависимостей. Поскольку внутри самих пакетов никакой метаинформации не содержится, для хранения её можно использовать любую внешнюю базу.
Этой особенностью формата пакетов Slackware активно пользуются все, у кого возникает к тому желание или необходимость, приспосабливая к ней любые системы управления пакетами. Так, мне доводилось слышать об удачных попытках применения в Slackware системы портов, которая была взята из FreeBSD. Для Slackware поддерживается система pkgsrc — портообразная система, разработанная первоначально для NetBSD. На базе синтеза Slackware и pkgsrc активно развивается несколько дистрибутивов, например, Voltalinux и Draco GNU/Linux.
Механизм apt-get, обеспечивший славу Debian, а в дальнейшем немало способствовавший и популярности семейства Ubuntu, также был адаптирован для использования в Slackware: здесь он получил название slapt-get. На основе синтеза Slackware и пакетного менеджера pacman, происходящего из Archlinux (кстати, во многом — идейного наследника Slackware), возник дистрибутив Frugalware.
Разработан был для Slackware и собственный менеджер пакетов, swaret. Однако в штатный комплект дистрибутива он, вследствие заветов Патрика, так и не вошёл. Потому что для собственно Slackware в качестве основных средств управления пакетами Патрик по прежнему признает только два: установку официальных бинарников с помощью штатных утилит, при ручном разрешении зависимостей, и компиляцию из исходников — в случае, если нужных пакетов нет в репозитории или их официальная сборка по тем или иным причинам не удовлетворяет пользователя. Всё остальное — от глюкавого. То есть дистрибутив этот должен рассматриваться не столько как законченная система, сколько как каркас для конструирования системы собственной.
Интересный факт — SUSE Linux был немецким переводом Slackware Linux
Debian был основан на Slackware
Истории о том, как в первые дни существования GNU/Linux шли разговоры о слиянии Debian и Slackware, ходили всегда, но я никогда не знал, что Debian изначально был основан на Slackware.
Сам этот человек, Патрик Волкердинг, поделился следующим фрагментом истории вычислений на LinuxQuestions.org еще в 2017 году, когда ответил на сообщение о том, что Debian никогда не был основан на Slackware:
Согласно тому, что Ян рассказал мне по телефону в 1993 году, это было когда-то еще до того, как оно было выпущено, чего бы это ни стоило.
— Волкерди
Для тех, кто не знаком с историей Debian, «Иан» относится к покойному Яну Мердоку, основателю проекта Debian. Увы, Patian GNU/Linux так и не появился, и Debian сосредоточился на завоевании доли рынка за счет Slackware Linux.
Сайт из 90-х
Slackware.com не подвергался редизайну с 1999 года, и, насколько я понял, серверная часть также практически не изменилась. Однако пользователи Slackware не возражают, видя, как классический дизайн HTML-таблиц легко работает в терминале с lynx. Кому нужен адаптивный дизайн, оптимизированный для мобильных устройств в 2023 году, я прав?
Честно говоря, были инициативы предоставить Фолькердингу новый веб-сайт для slackware.com, но по какой-то причине он решил остаться на старом сайте.
И если говорить о старых фактах, я считаю, что на сервере, на котором размещен slackware.com, работает Slackware 12.0.
Заключение
Вот и закончился наш экскурс в историю Slackware. Надеюсь, вам понравилось. Оставляйте комментарии, я готов ответить на ваши вопросы.