Proolix news
Загрузочный сектор у системы Proolix-l уже отлажен, теперь буду
ковыряться в формате ELF. Задачи передо мной стоят такие:
- boot sector (stage1) загружает stage2 (stage2 в Proolix-d называлось
бут-менеджером и ним по сути и было) - это уже сделано и отлажено
- stage2, написанный на ассемблере и работающий на голой машине (можно
пользоваться только вызовами ROM BIOS) должен перейти в защищенный режим
(надо ли? надо!) и найти, загрузить и запустить ядро, которое будет
написано на C, собрано при помощи gcc/ld и иметь формат ELF. То есть,
нужна маленькая RTL для gcc (аналогичные RTL в Turbo C назывались
c0t.obj, c0m.obj и т.п., а в досовском Proolix-d - c0.asm и c1.asm) -
это еще и не начато
- далее берется сишное работающее ядро от Proolix-d, адаптируется к gcc
и развивается далее, пока не надоест
А вот примеры различной трансляции одной и той же команды в разные коды
трансляторами tasm и as
tasm: xor ax,ax 33 C0
as: xorw %ax,%ax 31 C0
tasm: or dx,dx 0B D2
as: orw %dx,%dx 09 D2
tasm: mov cx,ax 8B C8
as: movw %ax,%cx 89 C1
Немного истории
Proolix-d (d от DOS) - ОС, которую я делаю с 1996 года, она собирается на
платформе MSDOS (или Windows), вполне работоспособный макет однозадачной ОС
Proolix-l (l от Linux) - перенос всего этого под 32-разрядную архитектуру
gcc/Linux (придется кардинально перерабатывать и местами переписывать
заново изрядную часть кода от Proolix-d, то есть писать ОС почти с нуля.
Начало активной работы над Proolix-l и открытие данной рассылки совпало по
времени и таким образом можно сказать, что в данной рассылке будет обсуждаться
и документироваться написание ОС почти с нуля).