Slackware – контроль

Когда меня спрашивают, почему я в свое время использовал Slackware, я обычно отвечаю просто: потому что мне нужна была операционная система, а не нянька.

На дворе 2008 год. Интернет уже перестал быть игрушкой для гиков, Linux становится модным, Ubuntu раздают бесплатно по почте, толпы вчерашних виндузятников начинают ставить себе красивые темы и Compiz, чтобы окна горели пламенем и вращались кубом.

Именно тогда я окончательно понял одну вещь: чем более «дружелюбным» становится дистрибутив, тем меньше пользователь понимает, что у него вообще происходит внутри.

Slackware был полной противоположностью.

Это был Linux для параноиков.

Для людей, которые хотят знать, какой демон стартует, почему он стартует, откуда берется конфиг, кто именно открыл порт и что за чертов процесс сожрал всю память.

Slackware никогда ничего не скрывал.

Нет магии.

Нет волшебных кнопок.

Нет шаманских утилит, которые переписывают половину конфигов, а потом разводят руками: «Ну оно само так получилось».

Ты сам отвечаешь за систему.

Именно поэтому Slackware прекрасно учит Linux.

## init как хирургический стол

В большинстве современных дистрибутивов система напоминает больницу, где пациента подключили к сотне аппаратов, половину из которых никто уже не понимает.

Slackware больше похож на анатомический театр.

Вот rc.M.

Вот rc.inet1.

Вот rc.modules.

Вот rc.local.

Читай.

Редактируй.

Понимай.

Хочешь отключить сервис?

“`bash
chmod -x /etc/rc.d/rc.httpd
“`

Все.

Никаких уровней абстракции.

Никаких демонов, управляющих другими демонами, которые запускают третьих демонов.

Простое и понятное поведение.

Это как хирургия.

Если врач не знает, где проходит артерия, пациент умрет.

Если администратор не знает, какой скрипт поднимает сеть, система однажды не загрузится.

Slackware заставляет это понимать.

## Пакетный менеджер без наркотиков

В Slackware нет автоматического разрешения зависимостей.

И это прекрасно.

Да, сейчас это звучит дико.

Но именно отсутствие dependency hell делает тебя инженером.

Потому что ты обязан понимать:

* зачем тебе нужна библиотека;
* кто от нее зависит;
* что произойдет после обновления;
* почему именно эта версия собирается именно с этими ключами.

В других системах пакетный менеджер напоминает медсестру, которая без вопросов вкалывает пациенту двадцать препаратов сразу.

Slackware заставляет читать инструкцию.

И внезапно оказывается, что половина библиотек тебе вообще не нужна.

## Компиляция как способ познания

Многие жалуются:

> «Зачем что-то собирать руками?»

А я всегда задавался другим вопросом:

> «Почему вы настолько доверяете бинарнику, который собрал неизвестно кто?»

Компиляция заставляет понимать систему.

Ты начинаешь узнавать:

* как устроен autotools;
* зачем нужны CFLAGS;
* почему x86 и x86_64 ведут себя по-разному;
* откуда появляются проблемы ABI;
* как работает динамическая линковка;
* что такое ld.so и зачем существует ldconfig.

Один раз собрав KDE или Xorg руками, начинаешь понимать Linux больше, чем после года использования Ubuntu.

Это как вскрытие.

Пока студент-медик читает книжки, хирург уже держит органы руками и видит, как все устроено на самом деле.

## Система становится предсказуемой

Это главное преимущество Slackware.

Предсказуемость.

Если в системе что-то сломалось, ты почти всегда понимаешь где искать проблему.

Никакой черной магии.

Никаких скрытых генераторов конфигов.

Никаких десятков слоев автоматизации.

Если не работает сеть — идешь в rc.inet1.

Если не запускается демон — смотришь его rc-скрипт.

Если не стартует X11 — читаешь лог.

Linux снова становится инженерной системой, а не набором заклинаний.

## Паранойя как образ мышления

Slackware формирует крайне вредную привычку.

После нескольких лет на нем начинаешь с подозрением смотреть вообще на любое ПО.

Почему этот сервис стартует?

Почему этот демон открыт наружу?

Почему этот бинарник имеет SUID?

Почему эта программа требует двадцать зависимостей?

Почему система делает что-то без моего разрешения?

И вот тут приходит понимание.

Безопасность — это не набор патчей.

Безопасность — это понимание происходящего.

Большинство взломов происходит не потому, что люди глупые.

А потому что они не знают, что именно работает у них на машине.

Slackware от этой болезни лечит быстро и жестоко.

## Минимализм как терапия

Современные системы напоминают пациента в реанимации:

* пятьсот процессов;
* сотни мегабайт логов;
* десятки сервисов;
* гигабайты зависимостей.

Slackware же похож на здоровый организм.

Все просто.

Все видно.

Все можно объяснить.

И если ты не можешь объяснить, зачем в системе существует какой-то компонент, значит ты недостаточно хорошо понимаешь собственную инфраструктуру.

## Почему я использовал Slackware

Потому что хотел контролировать машину полностью.

Потому что хотел понимать Linux, а не пользоваться Linux.

Потому что хотел знать, что происходит в памяти, какие демоны слушают порты, как стартует система и почему она вообще работает.

Slackware не делает тебя удобным пользователем.

Он делает тебя немного параноиком.

Но именно эта паранойя потом спасает сервера, инфраструктуру и нервы.

Сегодня многие считают Slackware устаревшим.

Возможно.

Но именно он дал огромному количеству людей фундаментальное понимание Unix.

И когда очередной модный дистрибутив внезапно ломается после обновления, а пользователь начинает искать магическое решение на форумах, старый слаковод просто открывает лог, смотрит на проблему и спокойно исправляет ее.

Потому что он знает анатомию системы.

А врач, который знает анатомию, всегда имеет преимущество перед тем, кто умеет только нажимать красивые кнопки.