Search
Write a publication
Pull to refresh
147
0
Дмитрий Завалишин @dzavalishin

Архитектор

Send message
Никакие игры никогда не работают с данными, которые отсутствуют в оперативной памяти. Любая оперативная память приложения виртуальна. И нет гарантии, что она подкреплена физической памятью. Ни в какой ОС.

Изначально сжатые данные приложением разжимаются при начале работы.

Имитировать функции чтения из обычной ОС (ФС?) не приходится. Фантом легко хранит содержимое скомпрессированного объекта просто в строке и из неё же можно распарсить финальный объект.

Вот тут есть пример программы для Фантома: phantomdox.readthedocs.io/en/latest/#example-of-phantom-program

Обратите внимание на строки

bmp = new .internal.bitmap();
bmp.loadFromString(getBackgroundImage());


По сути они сводятся к

bmp.loadFromString(import "../resources/backgrounds/weather_window.ppm");


Конструкция import возвращает строковую константу, инициализированную содержимым файла в момент компиляции.

Эта строка будет содержать в данном случае картинку в файловом формате.

loadFromString парсит и конвертирует в финальный битмап, который и живёт в персистентной переменной.

Не подробные. Когда начинаешь писать вылезает миллион вопросов, и ответов нет. Навскидку первый: как распаковать бинарник приложения. Имеющаяся документация на этот счёт ошибочна.

VM будет закрыт JIT-ом.
(Искреннее спасибо за подробный разбор. Всё очень по делу.)

Из VNC не приезжают IBM scan codes, приезжают как раз иксовые коды.

Сам по себе IBM scan code — штука мерзкая, а ближе к принтскрину и вообще сумасшедшая, не хочется его применять как опорный.

Может быть, обойтись троицей?

— Нетранслированный x11 code или ascii char без локализации
— char транслированный по полной — если нажат ctrl, то 00-1F, если локальный кеймап, то кириллица/японица, что там — в UTF32. Короче, tty char
— модификаторы

Кажется, эта схема закрывает всё и хорошо ложится на VNC и X11.
В принципе, нет проблем отправить в приложение два кода — транслированный и чистый.
Есть две причины.

1. Был в Фантоме такой эксперимент, как реализация API KolibriOS. А там в апи входят контролы. Кстати, некоторые приложения Колибри запустить удалось, но подробных спек на апи нет, а разработчики на связь не вышли, так что он пока на паузе.

2. Быстрее
Вы очень правы, действительно раздражает. Учёл, модификаторы запрещают трансляцию.
1 — да, наверное, действительно незачем
2 — github.com/dzavalishin/phantomuserland/blob/master/phantom/libwin/rect_cmp.c

Структура имеет исторические корни. :)
А откуда берётся это вездесущее «воровать»? Насколько я помню, СССР лицензировал 360.
Отсутствие в машине возможности преобразовать что либо в указатель порождает машину с абсолютной защитой.

432 претендовал на это, Эльбрус сделал. И ощутимо проще, чем это пытались сделать инженеры Интела.
При всём уважении к БНФ и прочей научной красоте, книгам Гриса (читали, да) и протч., парсеры отлично пишутся без знания слова «грамматика» и всей формальной мишуры. Рекурсивный спуск интуитивен, легко отлаживается и делается из биоматериалов не отходя от кассы со скоростью придумывания языка или быстрее.
Он почему-то тоже требует центрального сервера
«более российской ОС сегодня не найти.»

Ну… как бы… можно бы сформулировать это эмоциональное утверждение несколько корректнее.

Я уж молчу про Фантом, в котором, на минуту, под двести тысяч строк кода, и 95% из них — Российские.

А ещё есть Embox, OS2000 для военной авиации, JetOS для гражданской и ещё несколько ОС. Не копий Линукса.

Кстати, несколько лет пытаюсь докричаться до кого-нибудь из команды Колибри, помочь мне сделать в Фантоме поддержку приложений Колибри ОС. 90% работы сделал, но дальше без знатоков системы сдвинуться не могу. А жаль — есть реальная возможность сделать в Фантоме персистентные приложения Колибри, это был бы успех для обоих систем.
Ресурсы ограничены, но работа продолжается.

Кстати, начал работу по руководству разработчика- phantomdox.readthedocs.io/en/latest

Там есть разделы и про прикладную разработку для Фантом, и про ядерное программирование.

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

Последнее качественное изменение — новый UI. Старый был уж больно рабоче-крестьянский. :)

Сейчас система выглядит примерно так: github.com/dzavalishin/phantomuserland/wiki/ScreenShots

Вообще последний прогресс описан тут: github.com/dzavalishin/phantomuserland/wiki/ChangeLog

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

Как-то так.

Ну и — всех приглашаю присоединяться к проекту, хотя бы как альфа-тестеров.
Описал совсем схематически
Изящная железка. Люблю вещи, сделанные в условиях жёсткой нехватки ресурсов. В них инженерная мысль работает лучше всего.

Спасибо. Написано с любовью. Действительно, самые красивые игры были в 256 цветах. Мой девятилетний сын, избалованный трёхмерной графикой, смотрел на Dig затая дыхание и сказал, что это самая красивая игра на свете.

Не было там никакого кидка. Вся эта история подробно расписана и сводится к мудизму менеджеров ИКЕИ. Запустились на генераторах не имея энергоснабжения, и влетели в бешеные расходы.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity