bash.im ithappens.me zadolba.li
13471

О рябчиках и репе

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

Операционная система должна была уметь работать с файлами, запускать программы, управлять доступом к устройствам, памяти, терминалам. Позже добавилась потребность в поддержке многопользовательской работы, в работе с сетью и так далее — и вот новая ОС это умела.

Чтобы программисты не путались в том, как их программы должны взаимодействовать с ОС — была придумана определённая идеология:

* иерархия файловой системы: древовидная структура, в которой определены места для исполнимых программ, файлов с настройками, разделяемых библиотек и ресурсов, а также место для данных пользователей, чтобы всё лежало на своих местах;

* концепция «устройство как файл»: неважно, как оно устроено, но его можно читать и в него можно писать, будь это диск или принтер;

* концепция «одна задача — одна программа»: вместо многофункциональных мегамонстров — множество мелких утилит, умеющих что-то одно, но делающих это хорошо, как набор профессиональных инструментов;

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

Эта ОС дала многочисленное потомство — идеология оказалась настолько удобной, что самые разные производители создавали собственные варианты её реализации. Эволюция шла, что-то отмирало, что-то возникало, что-то передавалось потомкам.

Чуть позже и параллельно с ней родилась и развивалась другая идеология ОС:

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

* отсутствие единообразия в работе с устройствами: для каждого свой драйвер и своё API для работы с ним.

* в силу природной однозадачности — создание программ-мегамонстров, умеющих как можно больше, из-за чего часто дублирующих функции друг друга на одном и том же компьютере.

Правда, со временем и сюда пришла какая-никакая иерархичность, поддержка сети и нескольких пользователей — есть понятие «конвергентность». Короче, жизнь сама заставляет приходить к похожим решениям.

Долгое время ОС первого и второго типа почти никак не пересекались: первые работали на производстве, в системах связи, в вычислительных центрах, а вторые служили для запуска игрушек и текстового редактора. Поэтому первые были оптимизированы для универсальности и производительности, а вторые — для красоты и простоты.

Всё начало меняться, когда один студент написал свой клон ОС первого типа — написал он его скорее как поделку, но поскольку поделка работала точно как «взрослая» система, её постепенно начали развивать, пока другие, коммерческие варианты, отмирали за ненадобностью. Энтузиасты даже начали адаптировать её для работы в качестве персоналки.

А вот ОС второго типа, заняв почти 100% ПК, владельцы попытались протолкнуть и в промышленность. Тут-то её недостатки и повылезали: то, что было терпимо для запускалки редактора, оказалось неприемлемо в серьёзных системах. Но эти ребята не были готовы просто так отдать «хлебную» часть рынка, и началась война, известная нам как «Linux vs Windows».

В этой войне участвовали представители совершенно разных типов программистов: одни, ориентированные на промышленные решения, против других, ориентированных на офисно-домашние программы с менюшками. Естественно, то, что одни из них считали достоинствами, другие считали недостатками.

Прошли годы. ОС первого типа окружают нас повсюду — благодаря универсальности они оказались применимы везде. Даже известная своей гламурностью «ОС не для всех» — и та в основе своей теперь построена по принципам ОС первого типа. Просто это оказалось надёжнее и удобнее. Андроид просто повторил этот же опыт на новый лад.

А ОС второго типа существуют в основном из-за привычки пользователей к определённому интерфейсу, благодаря предустановке на ПК при продаже, а также из-за того, что некоторые программисты, даже переходя от программирования 100500-го почтового клиента к созданию сложной вычислительной системы, не в силах расстаться с привычными с детства инструментами типа Студии и привычной же идеологией «всё в одном», всё так же упихивают множество функций и настроек в одну Очень Большую Программу и почему-то никак не могут разобраться со стандартной иерархией размещения файлов.

Забавнее всего, если они искренне считают WinAPI и архитектуру Windows шедевром, а не просто троллят. Остальные-то дураки, наверное, только они самые умные.

Впрочем, когда ничего слаще репы не пробовал, а про ананас слышал только, что его одни буржуи едят, это неудивительно.