Вступление
Ни для кого из читателей не будет секретом, что IT давно стало неотъемлемой частью нашей жизни. Остаться без интернета равноценно чуть ли не смерти, комьютеры и смартфоны почти наше прямое продолжение. Но с чего это всё началось? Об этом ниже:
История Си и UNIX
Всё начилось с компании AT&T и её подразделения Bell Labs. Эти компании существуют до сих пор и их основная деятельность - разработка и создание средств телекоммуникаций. Как и любым подобным компаниям, им нужны были свои собственные наработки по части программного обеспечения (в будущем просто ПО) и оперционных систем (ОС). Поначалу компании пытались написать свою ОС на ассемблере, но язык ассемблера очень сложный, слишком близкий к машинному коду и далёкий от языка обычных людей. Поэтому двум сотрудникам, Брайану Кернигану и Деннису Ритчи поручили создание более простого, понятное и человечного языка, на основе которого можно будет написать свою собственную ОС и программы к ней. Эту задачу они выполнили с блистательным успехом и миру был явлен язык Си. На этом языке написаны ядра ряда оперционных систем, таких как UNIX, macOS, Linux, BSD и т.д.. Помимо ядер написана куча ПО для этих систем. Так же почти вся современная сетевая инфраструктура зиждется на маршрутизаторах, где скромно вертится реализация этого милого языка.
В дальнейшем все наработки по части UNIX были переписаны с ассемблера на Си. Но что же это за ОС такая? Сейчас я поведаю об её главных особеностях:
- Всё является текстовым файлом, даже папка (более правильное название - директория), и даже различные устройства и файлы с настройками программ (в Windows это хранится в виде электронной базы данных - великий и ужасный регистр!)
- Сама система представляет из себя ядро, которое с помощью специальной утилиты запускает все остальные программы. Самые главные программы, которые должны работать с самого старта системы и к ним не дожно быть допуска от обычных пользователей принято называть демонами (от англ. Deamon. Да-да, я не опечатался, в названии этого канала тоже)
- Одна программа должна выполнять строго одну функцию. Если требуется сложная операция, она выполяется путём создания конвейера (англ. pipeline) из нескольких простых программ.
Таких особенностей сильно больше, но я не пишу научную диссертацию по UNIX'у и не хочу усыпить читателей от скуки, так что перечислил, как по мне, самые главные особенности.
Конец и наследие UNIX
AT&T и Bell Labs были монополистами в своей сфере, поэтому правительство США принудило их передать наработки UNIX в крупные университеты. Понятное дело, что свято место пусто не бывает и студенты и профессора американских ВУЗ'ов с жадностью изучили UNIX вдоль и поперёк.
Там подтянулся университет Беркли, который выпустил свою реализацию UNIX - Berkeley Software Distribution, или просто BSD, система так любимая русскими сис. админами. На основе BSD создавалась macOS, мечта любого профессионального дизайнера, фотографа, музыканта и порою даже программиста, а так же и вторая по популярности мобильная ОС.
Параллельно с этим появилось ядро MINIX, созданное знаменитым профессором Эндрю Таненбаумом в образовательных целях. За Таненбаумом последовал Линус Торвальдс, вдохновившийсь MINIX'ом, Линус создал Linux - ядро на котором держиться почти весь современный интернет, обрабатывается самая крутая компьютерная графика, и работает большая часть мобильных устройств.
Без всяких преувеличений можно сказать, что UNIX и язык Си, не смотря на свою древность, (созданны в конце 60-ых, начале 70-ых годов прошлого века) до сих пор оказывают колоссальное влияние на развитие современных компьюетрных технологий.