Господа, а сырцов на UZIX ни у кого часом не завалялось?
Господа, а сырцов на UZIX ни у кого часом не завалялось?
Честь имею, Ne01eX!
ПК "Арус" - 48кБ ОЗУ/32 кБ ПЗУ/2*5.25' НГМД TEAC FD-55GFR.
Последний ламер на платформе. Я вернулся, чтобы уйти красиво....
У меня кое-что из исходников UZIX для MSX есть.Сообщение от Ne01eX
Но боюсь из этого полноценную рабочую систему не собрать.
так на http://sourceforge.net/projects/uzix/ лежат ведь сорцы для 1.0Сообщение от Ne01eX
Спасибо, не сразу нашел.Сообщение от boo_boo
Честь имею, Ne01eX!
ПК "Арус" - 48кБ ОЗУ/32 кБ ПЗУ/2*5.25' НГМД TEAC FD-55GFR.
Последний ламер на платформе. Я вернулся, чтобы уйти красиво....
Помоему некоторая каша в голове у некоторых товарищей.
1. MMU и многозадачность - ВЕЩИ НИКАК НЕ СВЯЗАННЫЕ. Пример - у меня ucLinux прекрасно крутится на самодельной платке с ARMом - никакого MMU там отродясь не было. MMU лишь позволяет уменьшить время на загрузку и упростить использование разделяемых библиотек. Но это уже отдельная тема.
2. Для многозадачности лучше всего использовать таймер повешанный на NMI. Который (в обычном случае) собственно и будет делать то же, что и
void OS()
{
while(1) {
task1();
task2();
task3();
}
}
с одним существенным отличием - можно будет "убить" повисшую задачу. В предложенной же программке достаточно одного глюка в одной задаче - и все - мертвый висяк всей системы.
3. Переписывать bash,pppd, tcp/ip - бессмысленно. Лучше уж пусть кто-нибудь знающий портируе GCC для Z80. Это на 100% возможно, поскольку для 8 разрядных процов GCC код собирает и прекрасно оптимизирует (я на нем под AVR писал - специально дизассемблировал чтобы посмотреть что он там мне накомпилил).
Зато если GCC будет - то основные системные утилиты можно просто перекомпилировать. Даже если и потребуется где напильник - все равно это гораздо меньше работы чем писать все с нуля. Да и кому охото в 100й раз писать ls, cat и т.п.
Вот мой взгляд на вещи.
А что SDCC для этого не подходит?Сообщение от SfS
Написать компилятор С с нуля - сложная задача. С другой стороны, современные компиляторы написаны так, что собственно генерацией кода занимается отдельная довольно независимая часть. Такие компиляторы называются retargetable. GCC формально таким является, но далеко не самый удобный для реализации своего back-end'а. Я думаю поэтому так и не появился генератор для z80, хотя начинания были.
Я просмотрел имеющиеся открытые разработки и думаю проще всего было бы написать кодогенератор для LCC. Но там есть две проблемы: его полное описание не существует в электронном виде принципиально, а единственная книжка по нему продавалась давно и только на amazon'е, и, во-вторых, все-таки он ориентирован на risc-процессоры. Тем не менее, существует back-end для x86.
Есть еще один, более экзотический компилятор из набора Amsterdam Compiler Kit, также использущий промежуточный псевдокод и поэтому позволяющий реализовать back-end. Более того, там уже присутствует back-end для z80, но код, сгенеренный им, назвать оптимальным сложно. Однако, исчерпывающее описание для создание своего генератора есть.
Про sdcc и z88dk уже говорили в какой-то ветке, и с выводом я согласен - не дотягивают они по качеству кода для написания UNIX-like OS на C. Не спроста в UZIX используется Hi-Tech - на сегодняшний день он остается самым продвинутым компилером для z80, и единственный его недостаток, что его бесплатная версия есть только для CP/M, да и то без исходников.
У него оптимизация примерно на уровне НУЛЯСообщение от caro
Кстати - все утилиты собирались именно gcc - потому я про него и пишу. Проще уж один раз портировать gcc, чем переписывать 1000 Makefile под ключи другого компилятора.
Тут, ИМХо, дело не в трудности, а в том, что это никому не надо... Ну кто сейчас серьезные пром. разработки на Z80 делает ? Вон для AVR (тоже 8 разрядов проц) - gcc переделали махом, поскольку это надо.Сообщение от maximk
Проблема в том, что никому, кто РЕАЛЬНО МОЖЕТ переделать gcc под Z80 - это не надо...
неужели???Сообщение от SfS
В старых версиях - 100%... Новой пока не компилил, так что ничего сказать не могу.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)