Код
#статьи

TempleOS: как Терри Дэвис ОС по Божьему велению делал

Весьма странная история про сумасшедшего гения, который в одиночку создал уникальную операционку и вдохновил программистов на творчество.

Иллюстрация: Wikimedia Commons / TempleOS / Colowgee для Skillbox Media

Что движет разработчиком, создающим новый продукт? Смотря какой это разработчик.

Одни просто хотят стать богатыми, как Билл Гейтс. Другие, как Линус Торвальдс, горят идеей облегчить жизнь другим программистам, а заодно утереть нос Биллу Гейтсу. Есть и более глобальные ребята, желающие изменить мир в целом, — как Стив Джобс, на которого до сих пор молятся миллионы фанатов.

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

Терри Дэвис
Фото: Wikimedia Commons

Причудливый человек и что-то странное

Терри Дэвис родился в 1969 году в штате Висконсин, США. Впервые он увидел компьютер ещё в начальной школе — это был Apple II, что уже слегка предвещало… Позже он пытался программировать на Commodore 64, изучал в университете электротехнику, и ещё до окончания учёбы его наняли в компанию Ticketmaster для разработки операционной системы. Всё шло хорошо, пока в 1996 году не начались странности.

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

Терри Дэвис,
Vice

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

Там Терри показалось, что врачи обсуждают артефакты, которые инопланетяне оставили внутри его организма. Он снова бежал и был арестован при попытке угнать машину. В итоге излишне чувствительный к потустороннему влиянию программист оказался в психиатрической больнице, где у него диагностировали шизофрению.

Терри Дэвис
Фото: The Wayback Machine

Потеряв возможно работать, Терри переселился к родителям и стал жить на социальное пособие. В 2003 году он пережил новый инсайт: к нему обратился Сам Господь и велел создать Третий храм в виде операционной системы.

Дэвис приступил к трудам в поте лица и не отрывался от них почти 10 лет. Сначала он назвал своё творение J Operating System, потом LoseThos, SparrowOS и, наконец, TempleOS.

«Божий храм закончен. Теперь Бог убивает ЦРУ, пока оно не распространилось».

Терри Дэвис,
эпиграф к сайту TempleOS

TempleOS принесла Дэвису известность, он выкладывал ролики на YouTube, участвовал в обсуждениях на популярных платформах. Однако из-за болезни программист часто срывался в параноидальные мысли, ругался и допускал расистские высказывания, из-за чего его забанили на Hacker News, Something Awful и Reddit.

Терри Дэвис за два месяца до гибели
Фото: Wikimedia Commons

В 2018 году Терри стал бездомным. Фанаты предлагали ему деньги и лекарства, но он отказывался, считая, что таблетки глушат его творческое начало. В своём последнем видеообращении к миру 11 августа 2018 года Дэвис рассказал, что учится очищать себя и уважать чистоту окружающего мира.

«Возможно, сейчас я просто маленький причудливый человек, который ходит туда-сюда».

Терри Дэвис,
из последнего видеообращения

Последнее видеообращение Терри Дэвиса

В тот же день Терри Дэвис отправился бродить по железнодорожным путям в штате Орегон и был насмерть сбит поездом. Ему было 48 лет.

Богоугодная система TempleOS

Логотип TempleOS
Изображение: The Wayback Machine

TempleOS — это 64-битная многозадачная ОС с открытым исходным кодом для компьютеров платформы x86-64, состоящая из 121 176 строк кода. Это примерно как в Photoshop 1.0. Для сравнения: в Windows 7 около 40 млн строк.

«TempleOS — официальный храм Бога. Подобно храму Соломона, это центр общины, где совершаются жертвоприношения и можно общаться с Божьим оракулом».

Устав TempleOS

Она имеет полноценный оконный менеджер, поддерживает 8-битную кодировку ASCII с графикой в исходном коде, а также 2D- и 3D-библиотеки, работающие в режиме VGA 640 × 480 пикселей и 16 цветов. Кроме того, есть поддержка файловых систем ISO 9660, FAT32 и RedSea. Последняя создана самим Дэвисом. Занимает ОС всего 17,5 МБ.

«Бог сказал, что 640 × 480 пикселей и 16-битная графика — это завет, подобный обрезанию. В будущем, даже если один GPU будет универсальным, мы всё равно сохраним 640 × 480 пикселей и 16 цветов и не будем использовать GPU-ускорение».

Устав TempleOS

Одна из самых примечательных фишек TempleOS — язык разметки DolDoc. Он представляет собой нечто среднее между RTF и HTML и лежит в основе оболочки и текстового редактора.

DolDoc позволяет хранить в документах изображения, макросы и гиперссылки. Другими словами, он стирает различия между текстом, программами, меню и формами; с его помощью можно встраивать гипертекстовые ссылки, изображения и 3D-модели в обычные ASCII-файлы. Наглядный пример — некоторые иконки приложений в TempleOS, реализованные в виде 3D-моделей.

Интерфейс системы
Скриншот: TempleOS / Skillbox Media

Правда, даже у такой совершенной системы есть свои минусы: TempleOS не поддерживает работу с Сетью, никакую графику, кроме VGA, и звуковые карты (только динамик ПК). Но всё это перекрывается огромным плюсом — скоростью работы, ведь систему ничто не перегружает!

В TempleOS нет другой защиты памяти, кроме молитвы. Весь код запускается в режиме супервизора («кольцо 0»), который обеспечивает максимальный доступ к ресурсам. «Кольцо 0» — это самый высокий уровень привилегий, доступный в ОС: пользователь может обращаться к любым данным любой программы в памяти и выполнять операции ввода-вывода через любые порты.

Это весело — иметь доступ ко всему. Когда я был подростком, у меня была книга Mapping the Commodore 64, в которой рассказывалось, что делает каждая ячейка в памяти. Мне нравилось копировать ROM в RAM и ковыряться в переменных ROM BASIC. Все напрямую тыкали в аппаратные порты.

Терри Дэвис,
A Constructive Look At TempleOS

Терри считал, что Linux предоставляет избыточные возможности, которые большинству пользователей попросту не нужны. Он же отсекал всё лишнее, чтобы ничто не отвлекало человека от его «истинных потребностей».

Интерфейс ОС
Скриншот: TempleOS / Skillbox Media

Linux — это фура с 20 передачами для управления.

Windows больше похожа на автомобиль.

TempleOS — это мотоцикл. Если вы слишком сильно наклонитесь, то упадёте. Не делайте так.

Терри Дэвис,
A Constructive Look At TempleOS

TempleOS ставится быстрее, чем Ubuntu, и сразу готова к использованию. Каждое имя файла, выводимое в оболочке, является гиперссылкой. Щёлкнув правой кнопкой мыши, можно вызвать контекстное меню. Встроенного калькулятора нет — им служит сама оболочка: достаточно ввести, например, 5 + 7 в командной строке, и будет вам ответ 12.

То, как TempleOS выполняет встроенный набор тестов, просто поражает воображение. Невозможно не впечатлиться, когда перед глазами пролетает огромное количество демо-версий программ, игр, графических калькуляторов, отладчиков и компиляторов. Видеть множество материалов, которые были написаны здесь за эти годы, видеть усилия, потраченные на то, что любишь, — это удивительно трогательно».

Ричард Миттон,
A Constructive Look At TempleOS

Есть в TempleOS и свои игры. Они делятся на две группы: весёлые (fun games) и невеселые (unfun games). И те и другие — очень необычные. Например, в Wenceslas вы ходите вокруг дома, занесённого снегом, и поджигаете деревья, чтобы согреть крестьян. В ZoneOut вы стреляете в розовые танки — при попадании танк подпрыгивает и меняет цвет на голубой.

Игра ZoneOut
Скриншот: TempleOS / Skillbox Media

Я не хочу передирать оригинал, поэтому намеренно сделал игру отстойной. Я добавил её в демонстрационных целях. Пишите игры, не играйте в них.

Из описания игры ZoneOut

Обзор игр TempleOS

Помимо обычных программ в TempleOS есть оракул After Egypt. С его помощью можно подняться на гору Синай вместе с Моисеем. На вершине появляются ломаные линии, быстро меняющие цвет, — они символизируют горящий куст. Перед ним нужно воздать хвалу Богу.

В техническом плане TempleOS показала, что можно делать уникальные вещи, если не заботиться о безопасности. Например, создать документ, который будет отображать любые данные из любого места в памяти, принадлежащего любому процессу, и вызывать произвольный код.

Обзор TempleOS

Святой Си

Большинство авторов ОС не придумывают для них специальный язык программирования. Обычный путь — написать ядро на С. Так создавались Linux, DOS и Windows. Это просто и очевидно. Но Терри Дэвис не искал простых путей. Он создал свой язык — HolyC. Его часто сравнивают с C, но сходство между ними довольно поверхностное.

Они похожи не больше, чем Java и C: у них есть общий синтаксис, но это принципиально разные языки.

Программист Джек Уитам,
Porting third-party programs to TempleOS

// Hello World на HolyC
U0 Hello(){
    "Hello World\n";  //Строка сама вызывает функцию printf
}
Hello;

Из этого следует, что TempleOS существует в своей экосистеме программного обеспечения. Чтобы включить какую-то утилиту, написанную на С в TempleOS, нужно буквально вручную переводить её в HolyC.

Я думаю, C просто не вписывался в представление Терри Дэвиса о том, как должна работать его ОС. Многие противники языка С согласятся с мудростью этого решения!

Программист Джек Уитам,
Porting third-party programs to TempleOS

Уитам пробовал портировать несколько программ в TempleOS, ему это удалось, но задача оказалась не из простых.

Работая над этим проектом, я осознал, насколько мы зависим от компилятора C, отладчиков, редакторов и системы контроля версий. А TempleOS — словно кнопка Reset. Было настоящим культурным шоком работать в среде, где ни один из привычных инструментов не доступен.

Программист Джек Уитам,
Porting third-party programs to TempleOS

Источник восхищения и вдохновения

Из-за ограничений, не основанных ни на чём, кроме Божьей воли (640 × 480, 16-цветная графика и так далее) и демонстративно любительского статуса, TempleOS не получила дальнейшего развития. Но в то же время она приобрела культовый статус в интернет-сообществе. Вряд ли кто-то мог предположить, что человек в одиночку способен не только создать с нуля полноценную ОС, включая ядро, основные утилиты, файловую систему (RedSea), оконный менеджер, но ещё и компилятор, свой язык программирования, демо-версии программ, игры и документацию.

Обычно над каждым из перечисленных элементов работает команда инженеров. Разработку Unix начинали сразу десятки людей, к которым присоединились контрибьюторы со всего мира. Над Linux трудятся тысячи инженеров. Терри Дэвис доказал, что один в поле тоже воин.

Для одних TempleOS стала хорошим примером того, чего можно достичь, не будучи скованным требованиями рынка и прочими ограничениями. Других Терри Дэвис вдохновил на эксперименты, дал возможность по-новому взглянуть на программирование и вспомнить про творческое начало.

Наблюдая за ним на протяжении многих лет, я начал писать собственные инструменты, вместо того чтобы просто принимать встроенный набор функций приложения.

Разработчик Джейсон Слэк,
The Troubled Legacy of Terry Davis, 'God’s Lonely Programmer'


Я рад, что такие операционные системы существуют. Они показывают, что компьютеры всё ещё могут быть хобби. Почему все такие серьёзные в наши дни? Если я хочу написать ОС, которая использует интерпретируемый танец в качестве метода ввода, мне должно быть позволено это сделать. К чёрту такие компании, как Apple!

Крок Кеймен,
редактор OSnews. The Troubled Legacy of Terry Davis, 'God’s Lonely Programmer'

Больше интересного про код — в нашем телеграм-канале. Подписывайтесь!

Проверьте свой английский. Бесплатно ➞
Нескучные задания: small talk, поиск выдуманных слов — и не только. Подробный фидбэк от преподавателя + персональный план по повышению уровня.
Пройти тест
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована