Проект переноса системы Юникс на БК-0010 и БК-0011М
Разработка проекта bkunix ведется на сайте SourceForge.
За основу взят LSX - вариант Unix V6 для моделей PDP-11 с объемом памяти 40 килобайт.
Чтобы скачать тексты, выполните:
svn co https://bkunix.svn.sourceforge.net/svnroot/bkunix/trunk bkunix
Текущее состояние проекта
В настоящий момент система успешно загружается, работает шелл и базовые команды, включая df и fsck. В системе может быть до трех процессов, до двух смонтированных файловых систем. Если выполняемая программа занимает больше 16 килобайт - режим экрана автоматически переключается в 5-строчный режим и обратно.
Для БК-0010 и БК-0011М ядро надо компилировать по-разному. Остальные утилиты остаются бинарно совместимыми.
Распределение памяти для БК-0010
40000-77777 - видеопамять. Отображение области 40000-67777 может быть отключено в режиме "расширенной памяти". Экран 512x256 в черно-белом режиме, с программным знакогенератором, 24 строки по 64 символа плюс строка статуса. В режиме "расширенной памяти" - 5 строк и статусная.
100000-117777 - ПЗУ системного монитора.
120000-157777 - память ядра. Используется дополнительная память, расположенная в контроллере флопа.
160000 и выше - ПЗУ контроллера флопа.
Распределение памяти для БК-0011М
100000-137777 - память ядра.
160000 и выше - ПЗУ контроллера флопа.
Todo list
PCC: optimize compiling expressions like "a-\46gt;b[c]". Use register-displacement addressing instead of add instruction
PCC: compute subtract of pointers using ror instruction (not divide)
PCC: add option to forbid using mul, div, ashc and ash instructions (disable EIS).
Fsck: add checking for existence of "." and ".." in every directory.
Fsck: create lost+found directory when necessary.
Test long divide-assignment (aldiv routine) - it is buggy.
Port /bin/mount, /bin/umount, /bin/df commands.
Port /bin/if and /bin/goto commands.
Port awk, bc, tcl languages.
Port as and ld (almost).
Port CC by removing all floating point-related stuff.
Kernel/libc: stack within the .bss segment, crt0/sbrk, stack resizing tool
Kernel: "extended memory" (set based on the a.out header)
TTY driver: keyboard autorepeat
Kernel: pseudoclock
Kernel/ld: overlay mount/umount syscalls on top of startup code (?)
Kernel: merge multiprocessing (?)
Allow remounting of the root file system
Add fdformat; modify mkfs and fsck to allow disk switching
Доработки не требуются. Юникс запускается на стандартной БК-шке. В адресах памяти была ошибка, исправлено. Для БК-0011М ядро размещается в области 100000-137777.
5 окт 2007, автор: Suu
А какие доработки необходимы в БК0011м, учитывая, что в вашем описании на 11й машине по адресам 0140000..0157777 указана память ядра? В стандартной 11й модели по этим адресам расположено неотключаемое ПЗУ