http://www.linux.org.ru/view-message.jsp?msgid=1000302
Вид для печати
И почему эту тему никто не развивает ? Вроде у MSX тоже Z-80 можно ведь попробывать раскрутить ppp,TCP/IP и хотябы telnet.
Если бы у Спектрума был MMU, то можно было бы о чём-то говорить... Я так понимаю, что именно в него всё и упирается. Хотя действительно жаль... Даже на КПК Линукс запускают. Чем Спектрум хуже?
UZIX живёт здесь.
А вот так эта система выглядит на MSX:
UZLO bootloader
http://uzix.sourceforge.net/uzix2.0/...ixscrsht13.gif
Graphical UZLO bootloader
http://uzix.sourceforge.net/uzix2.0/...ixscrsht12.gif
UZIX secondary bootstrap (ZILO)
http://uzix.sourceforge.net/uzix2.0/...zixscrsht0.gif
UZIX session with guest logon
http://uzix.sourceforge.net/uzix2.0/...zixscrsht2.gif
Directory, mountable FS and process management example
http://uzix.sourceforge.net/uzix2.0/...zixscrsht3.gif
UZIX running top
http://uzix.sourceforge.net/uzix2.0/...zixscrsht4.gif
Multiple logins and a ping on the local host
http://uzix.sourceforge.net/uzix2.0/...zixscrsht6.gif
Reading mail with PINE through a telnet into a host
http://uzix.sourceforge.net/uzix2.0/...zixscrsht7.gif
Accessing UZIX page using FudeBrowZer Web Browser
http://uzix.sourceforge.net/uzix2.0/...zixscrsht8.gif
Reading the news on MSX Resource Center using FudeBrowZer Web Browser
http://uzix.sourceforge.net/uzix2.0/...zixscrsht9.gif
Accessing Sean Young's MSX Net using FudeBrowZer Web Browser
http://uzix.sourceforge.net/uzix2.0/...ixscrsht10.gif
Reading the news on Generation MSX using FudeBrowZer Web Browser
http://uzix.sourceforge.net/uzix2.0/...ixscrsht11.gif
Accessing Baboo! using FudeBrowZer Web Browser
http://uzix.sourceforge.net/uzix2.0/...ixscrsht14.gif
Есть варианты не требующие MMU, например uCLinux. A разве у MSX есть MMU?Цитата:
Сообщение от CityAceE
Давайте не забывать что КПК 32-битные все!Цитата:
Сообщение от CityAceE
Второй вопрос а нахрена Линукс на Спекки?
Just for Fun! Сделал же Быстров эмулятор Спектрума на Спектруме... От Линукса, на мой взгляд, пользы (Интернет, например) и интереса было бы больше - всё же серьёзная ось.Цитата:
Сообщение от CHRV
Где сиё чудо взять и где о нём можно почитать ?Цитата:
Сообщение от CityAceE
В последнем номере InfernoGuide.Цитата:
Сообщение от Costa
ИМХО портировать линух на спекки никак не получиться, да это и не обязательно. А вот переписать на асм'е bash,pppd, tcp/ip,icmp,и все такое было бы интересно.
А он его еще не написал - только пишет. И описывал первые результаты. Вот зарелизит, тогда...Цитата:
Сообщение от CityAceE
жестоко... ;)Цитата:
Сообщение от CityAceE
1. у спектрума есть винт.Цитата:
Сообщение от CityAceE
2. для 16кбайт задач мму уже есть.
3. мму паяется на одной мелкосхеме 1533ИР16, вроде. Там 4 регистра по
4 разряда внутри. К жёлтому скорпиону. Я делал. Софта нет. ММУ управляет
первыми 256-ю килобайтами.
4. ММУ нафиг не нужно, на самом-то деле. Многозадачнность как в юнихе
не очень-то и нужна. И прекрасный пример тому macos старая и win-3.11.
Тады давай аналог MacOS на Спеке забабахаем! Третьи винды идут лесом. Так даже красивше будет, особенно если Breeze графику рисовать будет! :)Цитата:
Сообщение от fk0
Тут ключевое слово не OS. А окна. Нужна оконная система.Цитата:
Сообщение от Максагор
Хоть бы и "однозадачная".
Чтоб было чем ту графику рисовать. Это, фактически библиотека.Цитата:
Так даже красивше будет, особенно если Breeze графику рисовать будет! :)
Но опять же -- кто под это будет софт писать? Тетрис, калькулятор
и часы -- это будут все "приложения" под такую ОС.
А что до "многозадачности", она прекрасно реализуется и в рамках
параллельной системы автоматов. Грубо говоря:
void OS()
{
while(1) {
task1();
task2();
task3();
}
}
С некоторыми функциями взаимодействия между автоматами.
ВСЁ. Хоть сколько задач. Лишь бы в память влезло. Ключевой
момент: стек один на всех. Состояние полностью сохраняется
в статических переменных. Учитывая, что это есть основной
способ выделения памяти на спектруме, в языке ассемблера,
-- никаких проблем...
Похоже Спекки единственная 8ми битная платформа, которая осталась без GUI :) На что я обратил внимание, просматривая попытки его "нарисовать" (всякие doors zxwidows и иже с ними): попытки иммитировать интерфейс винды! Спрашивается, зачем? Есть масса примеров интерфейсов (и архитектур, кстати) на восьмерках. Так нет! Смотрим именно на винду и линух! Взять к примеру С64. На нем есть замечательная ось с оконным интерфейсом. Geos называется (есть еще порт на Apple II). Производит очень приятное впечатление. Посмотрите, хоть текстовый редактор GeosWrite. ВИЗИВИГ в наличие. Есть даже подобие буфера объмена с DDE (dynamic data exchange). Несмотря на дикие тормоза :) Ну, тормоза дело понятное... (на 64ке просто ужасные дисковые интерфейсы, ужасно медленные, ужасно малообъемные :) ). А по большому счету, чем (в архитектурном плане) C64 лучше Спекки? Первое, что в голову приходит VIC II (их графический чип), отсюда количество цветов и более высокое разрешение. Ну а в остальном? В остальном он слабее Spectrum`а. (под остальным я подразумеваю, конечно, ЦП). Наш Z80 против их 6510, просто монстр! Частота почти в три раза выше! А GUI у нас не было... и нет... Обидно, товарищи! Надо с этим что-то делать...
да еще...
чуть не забыл!
http://en.wikipedia.org/wiki/GEOS_%2...ting_system%29 сцыла на описуху этой байды (GEOS), со скринами
эмуль спека на спеке - я такое делал. Ничего сложного. Медленно правда. Зато эмуляция очень простая. Я команды кроме переходов пересылал к себе в специальное место (4 байта было выделено, остальные нопами забивались), и выполнял. Такты, правда, не считал, да и за R не следил.
Offline товарищи интересуются, никто не встречал русскоязычного описания UZIX?
Знаменитая переведённая книга М. Баха легко находится в сети. Правда не UZIX, а UNIX. Но версии как раз примерно той. Так что внутри оно очень похоже должно быть.Цитата:
Сообщение от spensor
Господа, а сырцов на UZIX ни у кого часом не завалялось?
У меня кое-что из исходников UZIX для MSX есть.Цитата:
Сообщение от Ne01eX
Но боюсь из этого полноценную рабочую систему не собрать.
так на http://sourceforge.net/projects/uzix/ лежат ведь сорцы для 1.0Цитата:
Сообщение от Ne01eX
Спасибо, не сразу нашел.Цитата:
Сообщение от boo_boo
Помоему некоторая каша в голове у некоторых товарищей.
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%... Новой пока не компилил, так что ничего сказать не могу.
Недано последнюю версию смотрел конструкция вида tmp = tmp & 0xF8 | arg & 0x07; заняла 12 команд причем в флаг оптимизировать по размеру до одного места. Он даже один единственный 8 битный параметр передает через стек
оч странно.. смотрел несколько компиляторов, но именно он мне больше всего понравился.. запомнилось, что как раз, если аргументы умещаются в регистрах, то стек он не юзает.. хм.. и вырезал всё лишнее из кода.. хотя, код был простенький у меняЦитата:
Сообщение от heroy
Вообще, проблема как раз не в оптимизации компилятора, а в возможности его использования в качестве средста разработки. SDCC этим требованиям удовлетворяет, хоть и не совсем.
Проблемы начнут возникать во время стыковки программ с интерфейсом системы, н-р TR-DOS...
Хотя... Базис вполне подходит... ;)
Господа, возьмите IAR, наверняка чудный код сгенерит... А странички в uzix нужны, он только так может задачи переключать...