Многим интересно почему из всех ему подобных именно Linux обошёл всех конкурентов и стал макс. успешен на своём поприще? В чём его особенность, каков секрет успеха? Это случайность или закономерность?
Linux успешен по совокупности факторов и обстоятельств, а именно: он имеет наиболее удачные лицензию – свободную, тип ядра – монолитное, и время появления, когда рынок сильно нуждался в этом.
К моменту выхода Linux у его конкурентов было след. положение:
- ОС GNU (GNU/Hurd) от FSF так и не смогли сделать, несмотря на громкие заявления и долгую разработку и ожидания.
- По поводу ОС BSD и её наследия шли долгие судебные тяжбы, которые закончились только в конце 90-ых, что сильно замедлило разработку и продвижение NetBSD, OpenBSD, FreeBSD и пр. вариаций продолжения ОС BSD.
- Оказалось, что у ОС Minix удобный для обучения, но совсем неудобный на практике в продакшене тип ядра «микроядро».
Поэтому Linux от Linux Foundation заслуженно одержал победу. Б.т., многое говорит о том, что другого и быть не могло, из-за след. существенных причин:
- Готовность GNU Hurd для продакшена и по сей день под вопросом. FSF говорят, что причиной неготовности GNU Hurd явл. успех Linux, т.е. в GNU Hurd отпала надобность рынка. Однако полная готовность к продакшену FreeBSD опровергает этот факт, т.е. Linux не помешал FreeBSD, но помешал GNU Hurd. Некоторые эксперты считают, что неуспех GNU Hurd обусловлен её неудачной для работы на практике архитектурой. GNU Hurd имеет микроядерную архитектуру. Оно представляет собой набор небольших автономно работающих программ-серверов и программ пользователя, которые обмениваются между собой формализованными сообщениями. На практике такая модель тяжела в разработке и отладке, т.к. нестабильна и вызывает много трудно отлавливаемых ошибок. В общем, стабильный GNU Hurd в любом случ. пришлось бы ещё оч. долго ждать, не говоря о том, что его в целом тяжелее разрабатывать и поддерживать, чем Linux.
- Правообладатели BSD перестали настаивать на своём и отступили только в конце 90-ых, когда Linux набрал популярность и стал успешным. Долгие судебные разбирательства по поводу наследия BSD прекратились только потому, что Linux обошёл BSD, и BSD потерял большую ценность, поэтому за него перестали бороться. Т.о., Linux открыл дорогу для развития всевозможных продолжений BSD, самым популярным из которых стала FreeBSD. Если бы не Linux, то суды по BSD могли длиться ещё долго, и никто бы не дал разрабатывать FreeBSD и пр.
- У ОС Minix неудобный на практике продакшена тип ядра «микроядро», и с этим ничего не поделаешь. Можно, конечно, переписать ядро. В общем-то, именно так и начинался Linux. Обучавшийся ранее разработке ОС на примере Minix, Торвальдс Линус переписывал с нуля ядро Minix, изменяя его тип ядра с микроядра на монолитное. ОС Minix разрабатывалась именно для учёбы, поэтому и хорошо подходит только для неё и ещё для каких-нибудь мелких встраиваемых систем. Поэтому Linux, посмотрев на Minix, изначально разрабатывался специально для продакшена.
Как видно, победа Linux закономерна. Иначе и быть не могло. Оглядываясь на GNU Hurd, BSD и Minix, и беря во внимание их опыт, Linux делался для победы.
Кол-во серверов Инета росло в геометрической прогрессии. Проприетарные варианты, вроде ОС Windows, Mac OS и пр., были неприемлемы. Назрела большая необходимость, поэтому когда делали Linux, никто уже не экспериментировал с типом ядра, как это делали в FSF с их GNU Hurd. Ядро делали сразу для продакшена, а не для учёбы, как ОС Minix. Надо было сразу исключить все возможные проблемы с правообладателями, поэтому писали с нуля, а не на основе более ранней ОС, как в случ. с последователями BSD. Был выбран наиболее успешный тип ядра – монолитное, свободная лицензия и готовые программы системного окружения ОС GNU от FSF. Когда писали Linux, не пытались придумывать ничего нового, а делали просто свободную рабочую и стабильную ОС по устоявшимся стандартам, таким как POSIX и UNIX. Linux делался для реальной работы, а не учёбы, экспериментов и разбирательств по поводу собственничества, как все остальные. В этом секрет и формула успеха Linux.
В каком-то плане, разработка Linux похожа на типичную разработку проприетарного ПО, когда чётко поставлена задача и сдать её надо точно в срок, поэтому нет времени на всякие эксперименты (как в GNU Hurd), судебные разбирательства (как в случ. ОС BSD) и несоответствия целевым задачам (как с ОС Minix).