Просмотр полной версии : и еще раз о uzix
http://www.linux.org.ru/view-message.jsp?msgid=1000302
Speccyfan
03.01.2006, 09:44
И почему эту тему никто не развивает ? Вроде у MSX тоже Z-80 можно ведь попробывать раскрутить ppp,TCP/IP и хотябы telnet.
CityAceE
03.01.2006, 10:36
Если бы у Спектрума был MMU, то можно было бы о чём-то говорить... Я так понимаю, что именно в него всё и упирается. Хотя действительно жаль... Даже на КПК Линукс запускают. Чем Спектрум хуже?
CityAceE
03.01.2006, 12:30
UZIX живёт здесь (http://uzix.sourceforge.net/).
А вот так эта система выглядит на MSX:
UZLO bootloader
http://uzix.sourceforge.net/uzix2.0/scrshots/uzixscrsht13.gif
Graphical UZLO bootloader
http://uzix.sourceforge.net/uzix2.0/scrshots/uzixscrsht12.gif
UZIX secondary bootstrap (ZILO)
http://uzix.sourceforge.net/uzix2.0/scrshots/uzixscrsht0.gif
UZIX session with guest logon
http://uzix.sourceforge.net/uzix2.0/scrshots/uzixscrsht2.gif
Directory, mountable FS and process management example
http://uzix.sourceforge.net/uzix2.0/scrshots/uzixscrsht3.gif
UZIX running top
http://uzix.sourceforge.net/uzix2.0/scrshots/uzixscrsht4.gif
Multiple logins and a ping on the local host
http://uzix.sourceforge.net/uzix2.0/scrshots/uzixscrsht6.gif
Reading mail with PINE through a telnet into a host
http://uzix.sourceforge.net/uzix2.0/scrshots/uzixscrsht7.gif
Accessing UZIX page using FudeBrowZer Web Browser
http://uzix.sourceforge.net/uzix2.0/scrshots/uzixscrsht8.gif
Reading the news on MSX Resource Center using FudeBrowZer Web Browser
http://uzix.sourceforge.net/uzix2.0/scrshots/uzixscrsht9.gif
Accessing Sean Young's MSX Net using FudeBrowZer Web Browser
http://uzix.sourceforge.net/uzix2.0/scrshots/uzixscrsht10.gif
Reading the news on Generation MSX using FudeBrowZer Web Browser
http://uzix.sourceforge.net/uzix2.0/scrshots/uzixscrsht11.gif
Accessing Baboo! using FudeBrowZer Web Browser
http://uzix.sourceforge.net/uzix2.0/scrshots/uzixscrsht14.gif
alexfreed
03.01.2006, 13:20
Если бы у Спектрума был MMU, то можно было бы о чём-то говорить... Я так понимаю, что именно в него всё и упирается. Хотя действительно жаль... Даже на КПК Линукс запускают. Чем Спектрум хуже?
Есть варианты не требующие MMU, например uCLinux. A разве у MSX есть MMU?
Если бы у Спектрума был MMU, то можно было бы о чём-то говорить... Я так понимаю, что именно в него всё и упирается. Хотя действительно жаль... Даже на КПК Линукс запускают. Чем Спектрум хуже?
Давайте не забывать что КПК 32-битные все!
Второй вопрос а нахрена Линукс на Спекки?
CityAceE
03.01.2006, 14:57
Второй вопрос а нахрена Линукс на Спекки?
Just for Fun! Сделал же Быстров эмулятор Спектрума на Спектруме... От Линукса, на мой взгляд, пользы (Интернет, например) и интереса было бы больше - всё же серьёзная ось.
Сделал же Быстров эмулятор Спектрума на Спектруме...
Где сиё чудо взять и где о нём можно почитать ?
CityAceE
04.01.2006, 04:06
Где сиё чудо взять и где о нём можно почитать ?
В последнем номере InfernoGuide.
Speccyfan
04.01.2006, 14:39
ИМХО портировать линух на спекки никак не получиться, да это и не обязательно. А вот переписать на асм'е bash,pppd, tcp/ip,icmp,и все такое было бы интересно.
Максагор
04.01.2006, 21:15
В последнем номере InfernoGuide.
А он его еще не написал - только пишет. И описывал первые результаты. Вот зарелизит, тогда...
... эмулятор Спектрума на Спектруме... жестоко... ;)
Если бы у Спектрума был MMU, то можно было бы о чём-то говорить... Я так понимаю, что именно в него всё и упирается. Хотя действительно жаль... Даже на КПК Линукс запускают. Чем Спектрум хуже?
1. у спектрума есть винт.
2. для 16кбайт задач мму уже есть.
3. мму паяется на одной мелкосхеме 1533ИР16, вроде. Там 4 регистра по
4 разряда внутри. К жёлтому скорпиону. Я делал. Софта нет. ММУ управляет
первыми 256-ю килобайтами.
4. ММУ нафиг не нужно, на самом-то деле. Многозадачнность как в юнихе
не очень-то и нужна. И прекрасный пример тому macos старая и win-3.11.
Максагор
26.01.2006, 18:30
4. ММУ нафиг не нужно, на самом-то деле. Многозадачнность как в юнихе
не очень-то и нужна. И прекрасный пример тому macos старая и win-3.11.
Тады давай аналог MacOS на Спеке забабахаем! Третьи винды идут лесом. Так даже красивше будет, особенно если Breeze графику рисовать будет! :)
Тады давай аналог MacOS на Спеке забабахаем!
Тут ключевое слово не 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_%288-bit_operating_system%29 сцыла на описуху этой байды (GEOS), со скринами
Vladimir Kladov
22.02.2006, 17:27
эмуль спека на спеке - я такое делал. Ничего сложного. Медленно правда. Зато эмуляция очень простая. Я команды кроме переходов пересылал к себе в специальное место (4 байта было выделено, остальные нопами забивались), и выполнял. Такты, правда, не считал, да и за R не следил.
Offline товарищи интересуются, никто не встречал русскоязычного описания UZIX?
Offline товарищи интересуются, никто не встречал русскоязычного описания UZIX?
Знаменитая переведённая книга М. Баха легко находится в сети. Правда не UZIX, а UNIX. Но версии как раз примерно той. Так что внутри оно очень похоже должно быть.
Господа, а сырцов на UZIX ни у кого часом не завалялось?
Господа, а сырцов на UZIX ни у кого часом не завалялось?У меня кое-что из исходников UZIX для MSX есть.
Но боюсь из этого полноценную рабочую систему не собрать.
Господа, а сырцов на UZIX ни у кого часом не завалялось?так на http://sourceforge.net/projects/uzix/ лежат ведь сорцы для 1.0
так на http://sourceforge.net/projects/uzix/ лежат ведь сорцы для 1.0
Спасибо, не сразу нашел.
Помоему некоторая каша в голове у некоторых товарищей.
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 и т.п.
Вот мой взгляд на вещи.
... Лучше уж пусть кто-нибудь знающий портируе GCC для Z80. ...А что SDCC для этого не подходит?
Написать компилятор С с нуля - сложная задача. С другой стороны, современные компиляторы написаны так, что собственно генерацией кода занимается отдельная довольно независимая часть. Такие компиляторы называются 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, да и то без исходников.
А что SDCC для этого не подходит?
У него оптимизация примерно на уровне НУЛЯ :)
Кстати - все утилиты собирались именно gcc - потому я про него и пишу. Проще уж один раз портировать gcc, чем переписывать 1000 Makefile под ключи другого компилятора.
GCC формально таким является, но далеко не самый удобный для реализации своего back-end'а. Я думаю поэтому так и не появился генератор для z80, хотя начинания были.
Тут, ИМХо, дело не в трудности, а в том, что это никому не надо... Ну кто сейчас серьезные пром. разработки на Z80 делает ? Вон для AVR (тоже 8 разрядов проц) - gcc переделали махом, поскольку это надо.
Проблема в том, что никому, кто РЕАЛЬНО МОЖЕТ переделать gcc под Z80 - это не надо...
У него оптимизация примерно на уровне НУЛЯ
неужели???
James DiGreze
21.08.2006, 14:23
В старых версиях - 100%... Новой пока не компилил, так что ничего сказать не могу.
Недано последнюю версию смотрел конструкция вида tmp = tmp & 0xF8 | arg & 0x07; заняла 12 команд причем в флаг оптимизировать по размеру до одного места. Он даже один единственный 8 битный параметр передает через стек
Он даже один единственный 8 битный параметр передает через стек
оч странно.. смотрел несколько компиляторов, но именно он мне больше всего понравился.. запомнилось, что как раз, если аргументы умещаются в регистрах, то стек он не юзает.. хм.. и вырезал всё лишнее из кода.. хотя, код был простенький у меня
James DiGreze
21.08.2006, 19:30
Вообще, проблема как раз не в оптимизации компилятора, а в возможности его использования в качестве средста разработки. SDCC этим требованиям удовлетворяет, хоть и не совсем.
Проблемы начнут возникать во время стыковки программ с интерфейсом системы, н-р TR-DOS...
Хотя... Базис вполне подходит... ;)
Господа, возьмите IAR, наверняка чудный код сгенерит... А странички в uzix нужны, он только так может задачи переключать...
Powered by vBulletin® Version 4.2.5 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot