Содержание статьи
Много ли ты видел операционных систем, написанных одним человеком? Такое, пожалуй, было возможно лишь в эпоху зарождения современных компьютеров. Автор TempleOS Терри Дэвис, человек невиданного героизма, не убоялся вернуться к истокам, чтобы подарить миру нечто совершенно потрясающее. Давай же скорей установим TempleOS и ознакомимся с азами этой поистине невиданной операционной системы.
А теперь серьезно
Этот материал был опубликован на первое апреля в качестве розыгрыша. Мы решили, что вокруг достаточно странного и удивительного, чтобы ничего не выдумывать. С одной стороны, розыгрыш удался: мы на полном серьезе написали об операционной системе, разработанной безумцем, и многие приняли этот текст за чистую монету.
С другой стороны, шутка удалась только отчасти. Одна из причин — в том, что TempleOS интересна, несмотря на все ее странности. Единый формат гипертекстовых документов, в котором выводится всё, начиная от консоли и заканчивая справкой и кодом программ, — это концепция, достойная сравнения с серьезными исследовательскими проектами.
Вряд ли кто-то, кроме автора TempleOS, сможет ей успешно пользоваться, так что рекомендуем воспринимать ее как что-то вроде художественного проекта и необычного источника для вдохновения.
Одну из удивительных черт TempleOS ты можешь наблюдать еще на этапе загрузки.
Как видишь, первое, что загружает TempleOS, — это компилятор. Он тут же компилирует всю пользовательскую часть ОС из исходных кодов, написанных на языке HolyC («священный C»).
В Parallels, правда, дальше этих строк загрузка не идет, но в VMware и VirtualBox таких проблем нет. Мы выбрали второй и, как рекомендует разработчик, выставили 64-разрядную архитектуру процессора и объем памяти 512 Мбайт.
Первое знакомство с TempleOS
Сложно передать то чувство благодати, которое снисходит на тебя, когда ты впервые запускаешь TempleOS! И уж точно не передает его этот скромный скриншот. На экране мигают два курсора, в заголовке каждого окна — бегущая строка. Праздник, да и только!
Как видишь, экран поделен на две части, и если тебе это напомнило Norton Commander, то не спеши с выводами. Перед тобой полноценный оконный менеджер — ты можешь двигать окна мышью, менять их порядок и размеры и так далее.
Первое, что нужно сделать, — это закрыть окошко с подсказкой, кликнуть в левой части экрана и нажать y
, согласившись установить образ системы на диск виртуальной машины. Можно работать и прямо с Live CD, но тогда ты не сможешь сохранять файлы.
Когда установка закончится, выключай виртуалку, отцепляй образ с Live CD и, помолясь, снова включай. Теперь TempleOS установлена на диск C:
.
Как видишь, все работает очень быстро, несмотря на компиляцию на лету. Все дело в том, что в TempleOS нет многих вещей, которыми перегружены современные системы. В частности, нет большинства драйверов устройств, поддержки сети и защиты памяти. От кого, скажи, пожалуйста, защищать память, если за компьютером сидишь ты один? Все программы здесь работают на уровне ядра — это эффективно и большую часть времени не вызывает никаких проблем.
Чтобы сразу оценить всю мощь и красоту TempleOS, нажми на кнопку Menu, которая мигает в верхней части любого окна.
Как видишь, TempleOS может выводить не только текст, но и графику, анимацию и даже трехмерные модели! Только посмотри на эти вращающиеся танки и фигуры людей на значках. Посмотри на них внимательно. И еще немного. А теперь скажи, может ли твоя операционка выводить 3D в качестве значка приложения? То-то же, не может!
Но прежде чем ты, пораженный внешней красотой TempleOS, перейдешь к изучению приложений и игр, разреши обратить твое внимание на красоту внутреннюю. То великолепие, что ты видишь в меню, — это самый обычный документ TempleOS, который лежит в папке Home и называется PersonalMenu.DD.Z
. Ты можешь отредактировать его или создать такой же!
Попробуй нажать Ctrl-T, чтобы посмотреть его текстовое представление.
Расширение DD означает, что этот файл — документ в формате DolDoc. Это язык разметки гипертекстовых документов, что-то среднее между RTF и HTML. Строки, обернутые в знаки $
, содержат шорт-теги и параметры к ним. Таким образом, в текст можно вставить картинку, макрос, ссылку на другой документ, страницу из справки, стих Священного Писания, текстовый или исполняемый файл, 3D-модель или даже мелодию. DolDoc поддерживает и интерактивные элементы вроде кнопок, чекбоксов и древовидных структур.
Вот еще один занятный факт. Второе расширение (Z
) означает, что файл заархивирован. TempleOS при их открытии автоматически разархивирует данные, а при сохранении сжимает обратно.
Игры
К формату DolDoc мы вернемся чуть позже, а пока — небольшая передышка на игры. Терри Дэвис, как честный и скромный человек, заранее разделил их на две группы: веселые (Fun Games) и невеселые (Unfun Games). Сравни с любым дистрибутивом Linux, где никто не предупреждает, что из двадцати игр на что-то годится только Pingus и с натяжкой — Tux Racer.
К сожалению, предусмотрительность Дэвиса не спасает, и даже игры из раздела Fun придутся по душе лишь самым неприхотливым.
Первой мы запустили гонку Varoom, где не смогли удачно проехать ни одного круга.
Затем изучили баскетбольный симулятор KeepAway, в котором люди без голов неторопливо ходят за мячиком. Иногда удается подобрать мяч и бросить его другому игроку, но радости в этом не много.
Нам не понравилась и стратегия ToTheFront: зеленое поле, на котором мигают загадочные символы. Попытки постичь их смысл и правила игры мы посчитали пустой тратой времени.
Игра Wenceslas отличается неоднозначным сюжетом: герой ходит и поджигает деревья вокруг занесенного снегом дома, чтобы крестьяне могли согреться. Можно ли делать что-то еще, нам узнать не удалось.
Среди недоделанных игр (Code Scraps) мы нашли интересный набросок ролевой игры в стиле Rogue, он называется DunGen. Герой перемещается по случайно сгенерированному подземелью и встречает врагов. Враги никак на него не реагируют.
ZoneOut — игра про роящиеся в пустыне розовые танки. Если стрелять в них, они становятся голубыми и подпрыгивают. Если один из них наезжает на нас, игра начинает серьезно тормозить.
Итак, игры — явно не конек TempleOS. Зато мы оценили предупреждение, которое встретило нас перед началом игры в розовые танки: «Я не стал передирать оригинал, и эта игра умышленно хреновая. Я написал ее исключительно с демонстрационными целями. Пиши игры, не играй в них». Вот и разгадка!
HolyC и командная строка
Послушаем доброго совета и посмотрим, как программировать в TempleOS. Но сначала понадобится освоить азы командной строки. Пользоваться ей с наскока не получится: если ты по привычке напишешь dir
или ls
, то увидишь лишь угрожающие сообщения об ошибках.
А дело все в том, что перед нами не командная строка, а интерпретатор (вернее, JIT-компилятор) HolyC! То есть вводить ты должен однострочные программы на си, которые тут же будут скомпилированы и исполнены.
Для вывода содержимого каталога напиши
Dir;
Скобки у функций, которые вызываются без параметров, в HolyC можно не писать, но если ты хочешь вывести каталог конкретной директории, то в качестве параметра укажи путь к ней. То же самое с командой Cd (смена каталога):
Cd("C:/Demo/Games");
Однако намного проще переходить по каталогам, если просто нажимать на названия папок. Консольный вывод, как и все, что ты видишь в TempleOS, — это документ DolDoc, так что названия файлов и папок — это просто гиперссылки!
Но вот задачка не для слабых умов: как запустить программу из командной строки? В си нет функций вроде Eval, которые можно встретить в динамических языках. Зато есть директива #include
, с помощью которой один файл на си вставляется в другой. Именно ей и следует воспользоваться:
#include "CharDemo.HC.Z"
Вместо #include
будет подставлено содержимое файла .HC (от HolyC) и тут же скомпилировано и выполнено. Красота, да и только! Кстати, каждый раз писать #include
не нужно — достаточно кликнуть по названию файла правой кнопкой мыши и выбрать Include из контекстного меню.
Просмотреть содержимое файла можно, кликнув на название левой кнопкой мыши. Выбери любой файл .HC, и убедишься, что программы не скомпилированы заранее. Ты можешь просматривать и редактировать исходники в любой момент.
С виду HolyC напоминает C++, но если вглядеться пристальнее, то можно найти некоторые отличия. К примеру, здесь нет функции main(), вместо нее код просто исполняется подряд, как в бейсике или JavaScript. Именно по этой причине все, что ты набираешь в командной строке, сразу же исполняется.
Еще ты можешь заметить, что Дэвис свободно использует в коде греческие буквы. Это возможно благодаря тому, что TempleOS — система продвинутая и поддерживает восьмибитные коды ASCII.
Если этого недостаточно, чтобы восхитить тебя, открой любой файл с игрой и узри невиданное: спрайты вставлены прямо в код!
Если навести курсор на спрайт и нажать Ctrl-R, то появляется меню редактирования. Графического редактора как такового в TempleOS нет, но он и не нужен, когда ты можешь просто выбирать инструменты по очереди и рисовать, что тебе заблагорассудится.
Как ты уже мог догадаться, исходные коды HolyC — это такие же документы DolDoc, как и все, что ты видишь в TempleOS. Именно поэтому в них можно напрямую вставлять картинки.
Редактируем DolDoc
Что ж, настало время постичь тайны DolDoc и создать свой документ. Сделать это проще простого, достаточно воспользоваться командой Ed:
Cd("C:/Home");
Ed("Doc.DD");
Новый документ сразу откроется в редакторе — можешь записать в нем какие-нибудь светлые мысли. Если же ничего толкового на ум не придет, то открой меню вставки (Insert) и воспользуйся одним из встроенных «оракулов». Команда GodWord вставит в текст псевдослучайное (то есть выбранное за тебя Господом) слово из Библии, GodBiblePassage — случайный отрывок Священного Писания, а GodSong и GodDoodle предназначены для создания и вставки псевдослучайных мелодий и картинок.
Прежде чем ты потратишь остаток дня на изучение того, что выдает «оракул», разреши рассказать тебе про другой полезный пункт меню — Insert → TextWidgets. Здесь на выбор предлагается много занятных вещей, но самая полезная из них — это гиперссылка. Чтобы сослаться на другой документ, выбирай Link и в следующем меню — тип ссылки. Ссылаться можно на заранее созданный якорь, подстроку, строку по номеру и так далее.
Для примера создадим ссылку на файл Doc2.DD.
Нажми Esc, чтобы подтвердить, и ты увидишь, что ссылка добавилась в текст.
Теперь если ты нажмешь Ctrl-T, то увидишь, как ссылка выглядит в текстовом представлении.
Вот она, в последней строке:
$LK, "This is a link", A="FF:Doc2.DD,1"$
Знаки $
ограничивают тег, LK
— это шорт-код ссылки, через запятую идет ее текст в кавычках, а параметр A
указывает путь к файлу и номер строки в нем. Как видишь, ничего сложного.
Теперь посмотрим, как вставить в текст картинку. Выбирай Insert → GraphicResource → Make Sprite и, например, PolyLine. Обрати внимание, что где ты нарисуешь картинку, там она и будет вставлена в текст. Удобно и наглядно!
Для завершения контура кликни правой кнопкой мыши. Если уже закончил с картинкой, жми Esc, и вернешься к редактированию документа (и пусть тебя не смутит мигание: нарисованный тобой контур мигает, потому что текстовый курсор стоит на его номере). Если нужно добавить что-то еще, снова жми правую кнопку мыши, и вернешься в меню выбора фигур. Когда картинка будет готова, выбирай Exit Sprite в самом низу.
Рисовать, между прочим, можно не только плоские фигуры, но и 3D! В меню редактирования спрайта есть пункт Create or Edit 3D Mesh, который перенесет тебя в трехмерный редактор. Сам автор признается, что 3D-моделирование — это «боль в попе», но нам с божьей помощью удалось нарисовать неплохой красный треугольник.
Не покривив душой, можем сказать, что редактор DolDoc — это лучшее, что есть в TempleOS. Он делает систему интереснейшим творческим инструментом, который поможет тебе творить и славить Господа.
Кстати, сам Дэвис любит рисовать в этом редакторе комиксы про разговоры Моисея с Богом. Например, Моисей говорит: «Арфы слишком тяжелые», а Бог ему отвечает: «Мы должны укрепить облака».
Напутствие
Итак, мы познакомили тебя с основами TempleOS. Наш скромный обзор не описывает и малой части особенностей и нюансов этой замечательной системы, но если ты крепок духом, то читай мануалы, и тебе откроется такая прорва знаний, о которой ты не мог и мечтать.
Мы бы вставили в статью ссылки на нужные страницы справки, но, к сожалению, ты читаешь этот текст не в TempleOS и перейти по ним не сможешь. Впрочем, не беда — ссылки на справку по системе ты можешь найти в любом окне терминала или в домашнем меню.
Крайне полезен, к примеру, список встроенных команд для работы с файлами.
Рекомендуем также прочесть FAQ и другие вводные разделы. Там ты найдешь ценные советы вроде такого: «Если меняешь файлы в каталоге Home, не забудь перезагрузиться. Правильно иметь на диске два раздела TempleOS на случай, если допустишь синтаксическую ошибку в одном из стартовых файлов и система не сможет загрузиться. Просто грузись со второго раздела и монтируй первый функцией Mount()».
Для наиболее продуктивной работы стоит изучить клавиатурные сочетания и прочие шоткаты. Например, клавиша «Пробел» выбирает пункты меню, а двойной клик правой кнопкой мыши почти всегда означает «назад».
В общем, учись, экспериментируй и не забывай благодарить Бога за то, что он дал тебе возможность выбирать операционную систему по своему вкусу и разумению!