Мой блог
Критика архитектуры Linux: почему Unix-модель устарела
Подробности изложены в материале первоисточника. Размышляя о развитии GNU/Linux, я пришел к выводу, что мое недовольство этой системой кроется не в мелких шероховатостях интерфейса, а в глубоких архитектурных проблемах. Давайте разберем истоки операционных систем и пойдем дальше.
Исторические корни современных свободных систем уходят во времена создания MINIX. Эндрю Таненабаум разрабатывал ее как учебное пособие, а Линус Торвальдс взял за основу для своей ОС в 1991 году, ориентируясь на концепции 1987 года. При этом и MINIX, и GNU/Linux восходят к архитектуре BSD Unix, спроектированной еще в 1978 году.
Эволюция ядер и подход к разработке
Самое главное здесь — не календарный возраст проектов, а интенсивность модернизации их внутренних структур. Судя по всему, ядро Linux за десятилетия принципиально не менялось, а лишь обрастало новыми компонентами, включая драйверы файловых систем.
Сравнение с ранней философией Microsoft
В период с 1981 по 1993 год создавалась MS-DOS. Не пытаясь спорить о ее технологическом превосходстве, я отмечу ее высокую практическую доступность. Microsoft изначально ориентировала свои продукты на рядового владельца ПК, тогда как разработчики Unix-подобных решений концентрировались на серверном администрировании, из-за чего эргономика уходила на второй план.
Сложность программного обеспечения
Здесь уместно провести параллель со старыми видеоиграми, где создатели намеренно завышали уровень сложности просто потому, что сами уже слишком хорошо в них разбирались. В мире Linux ситуация похожа: авторы мыслят категориями «я это придумал и настроил, значит, и остальные легко разберутся».
Проверка временем для архитектурных решений
Позже появилась Windows, стартовавшая в 1985 году и прошедшая через множество перерождений. Но вне зависимости от хронологии, фундаментальные принципы 30–40-летней давности сегодня уже не выдерживают критики. В ту эпоху считалось, что 640 Кб памяти хватит абсолютно каждому, поэтому долгосрочные перспективы тогда никто просчитать не мог.
Два тупиковых пути индустрии
В итоге сформировалось две крайности:
- Unix-концепция заявляет, что идеальный фундамент уже найден и изобретать что-то заново не требуется.
- Microsoft готова отказываться от архаики, но в погоне за коммерческой выгодой перегружает софт избыточными функциями, ненужными обычным людям.
Современный застой в ОС
Сегодня в сфере десктопных платформ заметен явный кризис идей. Корпорация из Редмонда вместе с производителями комплектующих делает Windows все более прожорливой к ресурсам. В то же время архитектуру Linux никто не переосмысливал на фундаментальном уровне. Этот программный монолит с годами настолько запутался, что точечное изменение кода превратилось в невыполнимую задачу.
Миллионные бюджеты и здравый смысл
Меня всегда забавляли отчеты о якобы астрономической стоимости переписывания компонентов GNU/Linux, которая с каждым новым исследованием вырастает на сотни миллионов долларов. Относиться к таким цифрам серьезно довольно сложно.
Автомобильные аналогии
В качестве примера можно вспомнить отечественные «Жигули», созданные на базе итальянского Fiat 124. Сам итальянский седан завоевывал престижные титулы, но именно доработанная советская «копейка» обрела поистине народную популярность. Этот исторический факт доказывает, что порой проще и эффективнее создать принципиально новый продукт, чем бесконечно латать старый.
Написание кода с нуля
Применительно к Linux намного целесообразнее написать всю кодовую базу с чистого листа, чем пытаться реорганизовать текущую реализацию. На глубокое погружение в чужие алгоритмы уходит масса времени. Ровно столько же ресурсов потребовалось бы на постановку четких целей и создание эффективного решения на их основе.
Философия «все есть файл»
Рассуждать о достоинствах и недостатках Unix-систем можно бесконечно, но любой внешний опыт неизбежно упирается в анализ их базовых компонентов. Вспомните знаменитый принцип «всё есть файл», который часто приписывают миру Linux.
Ошибки восприятия
Здесь отлично работает мудрая поговорка: если человеку дать в руки молоток, все вокруг начнет казаться гвоздями. Подобным образом, досконально изучив файловую систему, разработчики начинают подгонять под эту концепцию абсолютно все процессы, спустя годы осознавая ошибочность изначального выбора.
