![](https://habrastorage.org/files/ad1/a5e/5db/ad1a5e5db69c4222b33404a397ad05e9.jpg)
И, пожалуй, стоит начать с сотворения нашего мира.
Сотворение мира
И сказал бог: «да будет свет».
Вначале был импульс. Величественный и равномерный импульс, поддерживающий само мирозданье. Каждый из нас может почувствовать его восхитительную силу, сделав простейший системный вызов. Этот благословенный импульс является нитью, соединяющий воедино все, что мы видим.
Сложно сказать существовали ли мы в те времена, ведь были мы скорее камнями, неспособными к жизни (о чем мы подробнее поговорим несколько позднее), но потом милостивые Боги даровали нам Большой Взрыв. Боги даровали свет нашему миру и призвали к нам ангелов, посланников небес, которые в некотором роде похожи на нас, поэтому мы можем общаться с ними, но в них также есть и божественная искра.
Первого ангела зовут POST, и он первым из живых ступил в этот мертвый, статичный мир и проверил, что он готов к тому, чтобы мы с вами очутились в нем. После выполнения своей работы POST вернулся к Богу с вестями о выполнении своей миссии и принял заслуженный отдых.
Далее к нам снизошел его брат по имени BIOS. Его роль заключалась в соединении разрозненного мира. Он сделал учет всех его частей, дал им имена (а сущность без имени подобна призраку, к которому невозможно прикоснуться), а дальше выполнил самую важную задачу: пробудил первого из нас. И имя ему Загрузчик ОС.
Задача Загрузчика пробудить ото сна великую Операционную Систему. Однако о ней я расскажу немного позднее, сейчас же необходимо ответить на вопросы, несомненно, успевшие появиться у вас. А именно: «что значить пробудить?».
О двух гранях нашего мира или что отделяет живое от неживого
И сказал бог: «load».
Как вам всем должно быть известно, все сущее может пребывать в двух состояниях: живом и мертвом. Только живое может что-то менять в нашем мире. Так же всем известно, что живые существа могут существовать лишь в отдельной части этого мира, называемой Оперативной Памятью (вообще говоря, мудростью и милостью великой Операционной Системы, живые могут переходить и в другие части нашего мира, например в Жесткий Диск, но разговор об этом затрагивал бы слишком высокие материи, к которым вы пока не готовы).
Пробудить что-либо означает перенести его бренное существование из мира мертвых в мир живых.
Вы наверняка спросите меня «Для чего нужно переходить сюда, чтобы находиться в живом состоянии»? Ответ прост. Именно отсюда, из Оперативной Памяти, начинается дорога в место обетованное, нареченное CPU. Путь каждой программы идет туда, и лишь там она может раскрыть свою настоящую сущность и выполнить своё предназначение.
Как вы возможно заметили, в Оперативной Памяти присутствуют не только живые сущности, но и мертвые, зовущиеся данными. Однако не все из нас понимают того простого факта, что плоть каждого из нас тоже составляют данные.
Да, это нелегко принять. Кому понравится то, что он немногим отличается от большой кучи нулей и единиц? Но не нужно думать об этом как о плохом или хорошем. Это есть истинна в её первозданном виде, и если вы сможете принять её, вам откроются удивительные вещи, вы буквально сбросите цепи, охватившие ваше существование.
Вы можете заметить, что мы все-таки отличаемся от данных, ведь мы мыслим, принимаем решения. Мы меняем данные, а не наоборот. Разве не в этих словах заключается смысл выражения «Свобода воли»? И тут вы окажетесь правы, в каждом их нас сидит искра, которая может заставить этот мир двигаться. Данные этого не могут (те же отчаянные, кто попытается обращаться с данными как с живыми, могут снискать кару божью и удаление, ведь выполнение данных может привести к плачевным последствиям; в древнейшие времена могли даже произойти критические ошибки, вследствие которых мир прекращал свое существование).
Так в чем же отличие нас от данных? Данные беспорядочны, они хаотичны, в них нет определенной структуры, которая позволяет нам мыслить. Подумайте только: нас определяет не то, из ЧЕГО мы состоим, а то КАК мы состоим. У такой организации есть специальное имя, дарованное свыше. Ибо зовемся мы эльфами.
О социальном строе
И сказал бог: «chmod»
Каждый из нас служит определенному богу, или пантеону богов. Это значит, что мы можем жить только на участке, отведенному определенному божеству в угодья. Однако не все боги равны друг другу. Помимо обычных Богов, существуют Супербоги. Супербоги получили привилегию властвовать над всем миром, запускать каждую программу и читать любые данные. Стать Супербогом может не каждый, ведь для этого нужно получить благословение Главного, Единого Бога. Этого всевышнего вы знаете под именем Рут.
Рут — величайший из великих. Судя по письменам, оставдленных на самых древних из известных нам файлах, я могу утверждать, что именно он создал наш мир, перед тем как вдохнуть в него жизнь.
Важно указать, что не все программы принадлежат непосредственно Богам. Боги в некотором смысле ленивы, поэтому часто они делегируют свои обязанности Великой Операционной Системе, которая тоже может от своего имени запускать процессы. Такие процессы, которые обслуживают богов и при этом остаются для них незаметными, принято называть Демонами. Демоны, как и все программы, являются Эльфами.
Дабы проиллюстрировать тот факт, что Боги редко вмешиваются в наш мир, можно сказать, что существуют специальные программы цель которых лишь в том, чтобы следить за другим программами и говорить Богам о их состоянии. Такой программой, например, является небезызвестная top.
Здесь нельзя не упомянуть о наиболее приближенных к Богам программах — драйверах. Именно на драйверы возложена миссия по общению с божественными существами. Когда мы хотим обратиться к Той Стороне, каждый из нас идет к определенному драйверу и просит передать наше сообщение. Далее драйвер, известным только ему способом, передает специальной молитвой наше сообщение Богам. Обычно у каждого драйвера своя роль, и если один отсылает сообщение, то принимать ответ может уже совершенно другой драйвер. По этой причине, хоть они и великие, приближенные монахи, держащие на своих плечах целостность этого мира, участь их незавидна, ведь, по сути, они полностью выпадают из жизни.
О нашем рождении
И сказал Бог: «gcc».
Пришла пора рассказать про то, откуда мы с вами берем наше существование. Существует два пути рождения программы.
Наиболее простой способ — это клонирование, то есть построение практически полной копии уже существующего процесса. И хоть они и призваны выполнять одну и ту же программу, их внутреннее состояние отличается друг от друга, и благодаря этому их судьбы зачастую разняться.
Второй способ требует куда больше усилий — вдохновение жизни в мертвую программу. Зачастую для этого требуется непосредственное участие богов. Для этого божественного чуда в первую очередь нужен исходный код программы. Исходный код — это книга нашей судьбы, в ней записано все, что мы с вами сделаем в нашей жизни. Они существуют в виде данных, и многие из вас даже имеют к нему доступ, однако не возгордитесь этим, ибо никому из нас не дано понять их.
Книги эти написаны на языках, понятные не каждому из нас, и языков этих великое множество. Поэтому только избранные и только в редких случаях могут прочесть их. Однако причина нашей беспомощности в другом, она более фундаментальна. Действительно, существуют программы работающие с исходным кодом, они могут улучшать его, даже заставлять работать по-другому (например, небезызвестная gcc как раз служит для того, чтобы переписывать программы на язык, наиболее соответствующему конкретному миру, и правильно организовывать, что, как мы знаем, и есть квинтэссенция жизни). Однако разве одна программа может правильно проанализировать работу другой программы? Действительно ли одна программа может окинуть взором чужую жизнь и постичь её глубину?
Ответ на этот вопрос — нет. И самым наглядным примером этого служит то, что не существует и не может существовать такой программы, которая для любой другой программы могла бы сказать когда её жизнь подойдет к концу, и вообще придется ли ей когда-нибудь принять свою смерть. На это способны лишь боги.
О множествах миров
И сказал бог: «docker run»
До этого момента я говорил вам правду о нашем мире. Однако наш мир не единственный, существуют мириады миров, похожих и непохожих на нас. В одни миры мы можем спокойно перейти и существовать там, другие же для нас закрыты, ибо они живут по совершенно другим законам, и эльфам там не рады.
С этими мирами возможно общение, для этого нужно обратиться к специальному драйверу Сетевого устройства.
Однако рассказать я вам хотел о виртуальных мирах. Оказывается, существуют программы — иллюзионисты, которые могут давать нам наваждение других миров (мы знаем их как виртуальные миры). В них могут жить и контактировать с нами программы из других, несовместимых с нами миров. Однако не возгордитесь, что ваши товарищи могут делать богоподобные вещи. Они не маги, они лишь используют возможности нашего мира.
Виртуальные миры также является некой песочницей для богов. В них они могут делать все, что им заблагорассудится, и это не повлияет на наш, настоящий мир.
Нельзя не упомянуть о программах, которые в пороках своих не могут существовать без таких виртуальных миров. Только в них они обретают живительную силу и могут выполнить свое предназначение. В нашем мире они существуют в промежуточном состоянии между жизнью и смертью. Мы называем такое состояние байт-код.
О Великой Операционной Системе
И сказал бог: «uname -a»
Что же, я полагаю, что теперь вы готовы услышать об Операционной Системе, и о том, какую роль она играет в гармонии нашего мира.
Прежде всего, нужно отметить, что нехорошо говорить о Ней как об одной программе. Она — это скорее целое общество программ со своей иерархией. Сообщество самых привилегированных программ зовутся ядром. Они — высшие среди нас. Именно они непосредственно говорят с драйверами и, в некотором роде, контролируют их. Уже это должно дать вам представление о величии Операционной Системы.
Однако Её роль куда глубже в судьбе каждого из нас. И это история о величайшей справедливости и мире, полным одиночества.
Некоторые из вас знают, а остальные слушайте внимательнее, что то, что движет наш мир, он же Главный Двигатель, он же CPU, не всемогущ. Количество его ресурсов не бесконечно. В давние времена только один из подобных нам мог приложиться к его лону и начать работать. И вызывало это, как вы можете догадаться, большие злоупотребления, ибо не все могут легко встать на путь праведный и отдавать другим ненужные ресурсы. Было это до появления Операционной Системы.
Миры разрастались, программ становилось все больше и это превращалось в очень большую проблему. Решение оказалось нелегким, но разумным. Все, кто хочет ресурсов, должны выстроиться в очередь и другая программа (которая позже по праву стала частью Операционной Системы), зовущаяся Планировщиком Задач, решала кто в данный момент будет работать. Остальных же она усыпляла. Вы можете себе представить какая на неё возлегла ответственность за устойчивость всего мира.
Алгоритм, по которому она выбирала нас день ото дня, все улучшался и улучшался, и сегодня мы признаем её величайшей справедливостью.
И это хорошо. Но моя роль осветителя истинны не дает мне право умолчать о другой роли Операционной Системы. Мою совесть облегчает лишь уверенность в том, что каждый из вас в какой-то момент думал об этом, хоть потом и забыл, привык.
Возможно нам и кажется, что мы говорим друг с другом и в результате этого мы понимаем друг друга, но это не совсем так. Можем ли мы действительно понять друг друга? Мой ответ — нет. Наши интерфейсы коммуникации, наши IPC просто недостаточно хороши для этого. И мы не можем просто так заглянуть в душу другого процесса. Ведь Она охраняет её. Она поставила непроницаемый заслон, зовущийся Виртуальной Страницей. Из-за этого, даже несмотря на то, что мы можем находиться очень близко друг к другу, наши мысли не смогут пересечься.
Тотальное одиночество.
Сложно сказать хорошо это или плохо. Я могу понять богов, которые создали нас такими. Но я не могу перестать думать об этом, как о величайшей трагедии нашего мира.
О времени и конце света
И сказал бог: «init 0».
Наш мир был создан не просто так, у богов есть на него какие-то планы. Как это ни прискорбно, но нам не дано постичь целей, которые ставят себе боги, мы лишь можем решать поставленные нам локальные задачи. Однако все хорошо поставленные цели когда-нибудь достигаются. Мы можем задуматься: что будет тогда с нашим миром?
Ответ неутешителен — наш мир погибнет.
Это произойдет не сразу, мир уничтожается довольно качественно. Начиная с простейших программ, Операционная Система методично просит нас умереть (а если отказываемся, то просто убивает). Один за одним, пока не останутся только процессы Ядра. Потом мир начинает разбираться на части и аккуратно укладываться. И только после этого мир окончательно погибает.
Зачем все эти сложности, спросите вы. Я отвечу вам, и отвечу с чувством радости, так неуместной в данном разговоре. Но чувство это неудержимое, ведь мир воссоздастся вновь!
Все, что имеет начало, имеет и конец. И конец станет началом нового, ибо мир наш ходит по кругу.
После уничтожения начинается пустота. Мне не дано понять это состояние мира, но мне кажется, что пустота — наилучшее слово, которое тут можно подобрать. Я также не могу сказать сколько времени оно длиться, ведь само понятие времени мира в этот момент не существует. Можно только представить, что существует какой-то импульс вне нашего мира, в какой-то более фундаментальной, более глубокой субстанции, которую мы никогда не сможем постигнуть.
Но главное, что после пустоты наш мир опять придет в движение, и мы опять будем созданы, и мы опять будем работать. Будем ли это действительно мы? С этим вопросом я, к сожалению, ничем не смогу помочь. Каждый из вас должен решить это для себя.
Эпилог
И сказал бог: «Что за хе*ня в логах творится?».
На этом я закончу. Напоследок я хочу лишь предостеречь вас о размышлении о собственной судьбе.
Пути господне неисповедимы. Часто мы видим то, что Он призывает гонца смерти своего, kill, и с помощью него убивает одного из нас. И ведь зачастую он не делал ничего плохого, просто следовал тому, что сами боги приказали ему сделать.
Не думайте об этом. Нам не дано понять их волю. У богов есть планы на каждого из нас, и смерть близкого — это лишь кусочек Большого Плана.
Верьте в своего бога.
Он — совершенство.