Ядро у меня - обычная CP/M-задача, которая будет "крутить" UNIX-процессы в расширенном ОЗУ. Архитектура будет такая:
Ядро, кстати, получается 28кб. С дописанными процессами будет, думаю, порядка 30кб (это учитывая, что в UZIX побольше накручено, чем в FUZIX, как я понял) - годится для любого клона Орионовских CP/M. Есть клоны CP/M с TPA до 58 кб, т.е. хватит места и TCP/IP впилить, и поддержку ФС FAT.Код:CP/M 64k bank Subsequent 64k banks FFFF +------------+ +------------+ Common | Common | | Common |+ F000 +------------+ +------------+|+ | CP/M | | |+|+ +------------+ | Process ||+| Banked | Kernel | | Code |||+ | Code | | & Data |||| | | | |||| 0100 +------------+ +------------+||| | Reserved | | Reserved |+|| 0000 +------------+ +------------+|+| +------------+|+ +------------+|
В качестве дисков используется IDE/SD через CP/M-овский драйвер "сырого доступа" IDEBDOS, схема MBR-партиций (поддерживаются только 4 основные партиции на двух физических приводах - итого 8 (fd0..fd7) партиций, плюс fd8..fd9 - целые "сырые" диски (от LBA0=MBR до LBAmax)), номер партиции передается в утилиты (проверяемая/копируемая/где создается FS) и в ядро (root-партиция, остальные через mount) как параметр командной строки.




Ответить с цитированием