Операционная система Xmtwolime
Введение[1][править]
Xmtwolime — это операционная система, которая уважает вашу свободу. Работает на виртуальной машине iiixmish2 и не выполняет операций над файлами.
Требования[править]
Вы должны иметь:
- Java Runtime Environment и Java Development Kit (>= 8; OpenJDK подойдёт)
- iiixmish2
- makexm2c-tools
- компилятор Си
- GNU bash
- зависимости вышеперечисленных пакетов
Сборка…[править]
Ниже показаны инструкции для GNU+Linux. Для других ОС, действия могут отличаться.
…iiixmish2 и makexm2c-tools[править]
$ cd iiixmish2/
$ bash build.sh
$ cd ../makexm2c-tools
$ bash build.sh
…системы[править]
$ cd xmtwolime/
$ bash build.sh </путь/к/makexm2c-tools> <устройство> # «ls etc» для получения списка доступных «устройств»
Загрузка[править]
Запустите iiixmish2:
$ cd iiixmish2/
$ java downadow.iiixmish2.main.Iiixmish2 <путь к каталогу xmtwolime>/image --no-communication
Если ничего не нажимать, должна пойти нормальная загрузка системы. Если нажать клавишу «f», то загрузка пойдёт в FastBoot, где, при условии разблокированного состояния, можно прошивать файлы, используя xtl-fastboot-tool (в таком случае, отпустите параметр --no-communication при запуске машины). Если же нажать «r», то загрузится «рекавери».
Работа с Xmtwolime[править]
Войдите в систему как «обычный пользователь», оставив поле ввода пустым.
sed 8700000 STRока
запишет строку «STRока», начиная с ячейки памяти 8700000.
bed 9000200 0001024
(набирать точно так, как показано) положит
число 1024 в ячейку 9000200. Команда tnp изменяет знак яч. памяти.
str 8700003
покажет содержимое памяти, начиная с яч. 8700003. vwb показывает значение ячейки памяти (формат как у txt).
gam
запустит игру. txt 9000000
начнёт записывать
пользовательский ввод в память, начиная с ячейки 9000000.
thm
выведет информацию о цветах. thm 1 0
изменит цвет фона на белый, а цвет текста — на чёрный. Программа who печатает идентификатор пользователя (UID). Есть и другие программы.
Архитектура[2][править]
Сперва, выполняется код программы-загрузчика bootrom. По умолчанию, он просто переходит к коду xloader, но, как правило, bootrom также включает программу прошивки (edl или brom)[3].
Раздел xloader содержит ещё один загрузчик, который:
- выполняет переход к началу кода fastboot, либо
- переходит к fastboot RESCUE_MODE, либо
- загружается в recovery
Следующий раздел, fastboot, хранит программу перехода к коду ядра операционной системы (<boot_start>
), а также содержит программу RESCUE_MODE, которую можно использовать для прошивки нового recovery, system и т. д. (bootrom прошивать там нельзя).
recovery содержит программу восстановления (в частности, имеется возможность стереть пользовательские данные). В неё можно попасть, нажав «r» при загрузке.
Раздел info содержит информацию о «pkey» (это код, на основе которого генерируется код разблокировки загрузчика), ключ разблокировки fastboot RESCUE_MODE (используется не всегда!), состояние загрузчика (1 — разблокирован, 0 — разблокирован). Попробуйте перезаписать его.
boot содержит ядро операционной системы, а system — остальные её данные (например, анимация загрузки и приложения).
userdata может содержать данные программ, хранящих значения в памяти, и, конечно же, данные «обычного пользователя» (начинаются с ячейки 8700000).
Xmtwolime не знает слова «файл», не пугайтесь данной особенности. Память можно разделить на вышеупомянутые разделы.
Написание программного обеспечения[править]
Пример программы на Makexm2c |
---|
;; эта программа выводит свои аргументы
ech:
mov %R_FA_0%, %ARGS_ST%
mov %R_FA_1%, %OUT_ST%
mov %R_FA_2%, %OUT_ST%
mov2 %R_FA_3%, <ech_loop>
ech_loop:
vld %R_FA_0%, %R_FA_4%
vsv %R_FA_4%, %R_FA_1%
inc %R_FA_0%
inc %R_FA_1%
if %R_FA_0% < %R_FA_2%, %R_FA_3%
updd
%__END_THE_APP__%
|
Makexm2c — это язык ассемблера для iiixmish2. Xmtwolime-программы написаны на нём. См. следующие учебники: Makexm2c, Makexm2c и Xmtwolime.