User Tag List

Показано с 1 по 10 из 217

Тема: Техраздел UZIX

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    13.12.2007
    Адрес
    Архангельск
    Сообщений
    2,189
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    13
    Поблагодарили
    13 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    Клево. Это чья страница, твоя? И что такое P112?

    У народа прям пик интереса к UZI/UZIX/FUZIX

    Как посмотреть environment?
    Env, printenv, echo $VARIABLE - не работают.
    этим железякам сто лет в обед, как и uzi180, у меня просто камней 6 штук
    180 на 33Mгц и пара на 8, я озадачился их применением. тихонько железку свою ваяю на 180. Осталось вытравить и спаять. Подумываю чего по запускать. Почитываю профильные темы.
    а тема у тебя действительно интересная.
    UZI
    Task switching consists of saving the current process status in the User
    stack and data area, block moving the user data area and stacks to the
    respective process area in the reserved top 4k (via DMA), restoring the
    new task's data into common memory (also via DMA), changing the Bank Base
    Register in the Z180 MMU to bring the new task in context, resetting the
    new process' stack pointer, restoring processor status and continuing as
    before. This results in relatively rapid response since the bulk of time
    required is due to two 768-byte DMA transfers which consume 1536 * 6 T-
    states or 9216 / 18,432,000 = .0005 Sec = 500 microseconds on a 18.432 MHz
    P112 or YASBEC upgraded with the Z8S180, and double this time, or 1000
    microseconds (1 millisecond) on a standard 9.216 MHz YASBEC. This ignores
    any additional time due to insertion of memory wait states and the
    relatively insignificant overhead associated with housekeeping.
    таймеров 2, но полноценно можно использовать только 1.
    Ты слыхал как грузится Flyshark ?! нет, совсем не тот, что на дискете...а Flyshark, тот самый блин Flyshark...тот ,что был когда то на кассете...
    zx spectrum 48 issuse 6a, Ленинград-1, zx spectum 128 +2 grey,Пентагон-128, ZXM-Phoenix 5.02 ( assembly)

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Многозадачная версия ядра как-то заработала.
    Не без вопросов конечно (какие-то моменты надо прояснять коллективным разумом - есть желающие? напишу где у меня затыки), но уже что-то.
    Даже подогнал структуры чтобы бинарные MSX-ные ps, top заработали, чего сначала делать не собирался, но поскольку LIBC пока не готов (чтобы пересобрать своё), то пришлось выкручиваться так.
    Ошибки попутно чищу, но думаю их там пока еще богато, плюс кое-что тупо надо доделать (редкоиспользуемое - типа прямого блочного чтения устройств: там к примеру пока заглушка PANIC, т.к. тут еще и IDEBDOS надо чуть допилить), а оптимизировать даже не начинал.

    Вопрос такой - промежуточные работоспособные версии выкладывать? Кому-нить интересно их пробовать? А однозадачную недельной давности пробовали уже? А то я имею печальный опыт, когда в эмуляторе (где и отлаживаюсь) моё программирование на С работало, а на платке Орионе-2010 не работало.
    Если выкладывать то исходники или имидж диска, или и то и то?

    У кого-нить есть готовый libc.lib от Uzix 1.0? М.б. у sayman?

    Как запускать много процессов в юзиксовом шелле sash? Максимум чего я пока добился это 3-4 процесса:
    3 когда init+sh+process (просто команда под sash)
    и 4 когда init+sh+process+piped_process (типа команды cat file | more ).

    И кстати у кого есть бинарный sash в полной функциональности (он комплилируется на дефайнах в 3 варианта полноты)? Тот, что в моем образе, имеет только полдюжины встроенных команд: явно не самый полный. А памяти то вагон: 58 с гаком килобайт, не то что 32k на MSX, на Орионе можно было бы и пожирнее шелл пользовать.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	uzix5.jpg 
Просмотров:	248 
Размер:	22.4 Кб 
ID:	50729   Нажмите на изображение для увеличения. 

Название:	uzix6.jpg 
Просмотров:	262 
Размер:	22.9 Кб 
ID:	50730  
    Последний раз редактировалось Error404; 17.01.2015 в 02:30.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  4. #3

    Регистрация
    14.11.2011
    Адрес
    г. Алматы, Казахстан
    Сообщений
    19
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    Многозадачная версия ядра как-то заработала.
    Не без вопросов конечно (какие-то моменты надо прояснять коллективным разумом - есть желающие? напишу где у меня затыки), но уже что-то.
    Даже подогнал структуры чтобы бинарные MSX-ные ps, top заработали, чего сначала делать не собирался, но поскольку LIBC пока не готов (чтобы пересобрать своё), то пришлось выкручиваться так.
    Ошибки попутно чищу, но думаю их там пока еще богато, плюс кое-что тупо надо доделать (редкоиспользуемое - типа прямого блочного чтения устройств: там к примеру пока заглушка PANIC, т.к. тут еще и IDEBDOS надо чуть допилить), а оптимизировать даже не начинал.

    Вопрос такой - промежуточные работоспособные версии выкладывать? Кому-нить интересно их пробовать? А однозадачную недельной давности пробовали уже? А то я имею печальный опыт, когда в эмуляторе (где и отлаживаюсь) моё программирование на С работало, а на платке Орионе-2010 не работало.
    Если выкладывать то исходники или имидж диска, или и то и то?

    У кого-нить есть готовый libc.lib от Uzix 1.0? М.б. у sayman?

    Как запускать много процессов в юзиксовом шелле sash? Максимум чего я пока добился это 3-4 процесса:
    3 когда init+sh+process (просто команда под sash)
    и 4 когда init+sh+process+piped_process (типа команды cat file | more ).

    И кстати у кого есть бинарный sash в полной функциональности (он комплилируется на дефайнах в 3 варианта полноты)? Тот, что в моем образе, имеет только полдюжины встроенных команд: явно не самый полный. А памяти то вагон: 58 с гаком килобайт, не то что 32k на MSX, на Орионе можно было бы и пожирнее шелл пользовать.
    Запуск фоновых процессов делается двумя способами:
    1. При запуске жмем ^Z (Ctrl+Z) и приложению будет отправлен сигнал остановки с терминала, попутно оболочка выведет номер задания, под которым находится остановленный процесс. Далее берем этот номер и делаем команду bg <номер> процесс уйдет в фон. Но это для линуксов/фрях и другиг взрослых юниксов
    2. После имени команды поставить амперсанд:
    # long_running_task &
    long_running_task заменить на свою команду соответственно

    Но это опять же во возрослых юниксах

    А в нашем случае скорее всего ни как, т.к README к sash говорит нам

    * UZIX doesn't have the concept of background/foreground applications
    controlled by user;
    https://github.com/menelkir/uzix/blo.../Source/README

    Весьма куцая многозадачность получается, если сильно хочется -- придется пилить систему самому, чтобы в нее это добавить.
    2:5083/89

  5. #4

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от impressed Посмотреть сообщение
    Запуск фоновых процессов делается двумя способами:
    1. При запуске жмем ^Z (Ctrl+Z)
    2. После имени команды поставить амперсанд:
    Но это опять же во возрослых юниксах
    Да, это понятно. Тут беда как sash заюзать. Наверное проще всего nohup спортировать.

    Цитата Сообщение от impressed Посмотреть сообщение
    А в нашем случае скорее всего ни как, т.к README к sash говорит нам


    https://github.com/menelkir/uzix/blo.../Source/README

    Весьма куцая многозадачность получается, если сильно хочется -- придется пилить систему самому, чтобы в нее это добавить.
    Вот за ссылку на github спасибо, покопаюсь - может найду чего-то что нет у меня (я в 2007-2008г.г. собрал все что тогда смог найти в инторнетах, но не факт что это все что было). LIBC там только исходники вроде (надо собирать), бинаря библиотеки вроде нет?

    Кстати, в реадме пишут:
    "The number of processes is limited only by the swap space
    available, with a maximum of 31 processes (total of 1024k memory). As
    mentioned, UZIX implements UNIX well enough to run the Bourne Shell in its
    full functionality."

    Про 31 процесс врут конечно (по крайней мере в Uzix 1.0 на MSХ их в максимуме 8 штук - это размер таблицы процессов), и дело не только в свапе, а еще и в том что ядро урезано в т.ч. и по массивам - чтобы влезать в верхние 32к (по факту, из-за МСХ-биос еще и меньше).

    И кто бы портанул Bourne Shell - вот в нем то точно нормально все сделано.

    ---------- Post added at 15:27 ---------- Previous post was at 14:51 ----------

    В ps и top тупенько сделано: размер процесса взяли константой в 32к. Типа сложно было с адреса 0009 (8: jp unix) взять высоту (адрес начала) ядра и посчитать сколько там ниже его для процесса. Поэтому несмотря на то, что я им из ядра возвращаю правльное количество общей памяти, они неправильно считают %% использования памяти процессами (у меня ж страницы процессов больше чем 32к). Так бы я их поправил и пересобрал, а тут еще наперво надо LIBC делать (что нифига не интересно).
    Последний раз редактировалось Error404; 17.01.2015 в 15:30.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  6. #5

    Регистрация
    14.11.2011
    Адрес
    г. Алматы, Казахстан
    Сообщений
    19
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    И кто бы портанул Bourne Shell - вот в нем то точно нормально все сделано.
    Борновский шелл (это тот который не bash, а просто sh) вроде должен собраться, если его подправить под целевой компилятор. Как минимум нужна поддержа C89, а лучше C99 в компиляторе + набор хедеров согласно POSIX.
    2:5083/89

  7. #6

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от impressed Посмотреть сообщение
    Борновский шелл (это тот который не bash, а просто sh) вроде должен собраться, если его подправить под целевой компилятор. Как минимум нужна поддержа C89, а лучше C99 в компиляторе + набор хедеров согласно POSIX.
    Да, я в курсе про sh и bash
    Я и на sh и на ksh (Korn) вполне комфортно работаю, хотя bash поудобнее конечно.
    Надо бы найти и портировать какой-нить старозаветный борн, чтобы он попроще современных был (а сервиса и там скорее всего будет уже с избытком).

    Выкладываю исходники многозадачной версии в первом посте, и образ для загрузки на SD-card здесь. Как собрать образ из половинок, и утилиты - описаны тут:
    http://zx-pk.ru/showpost.php?p=769417&postcount=16

    Где у меня сейчас затыки.
    - В md.c отключены строки 388..395 (в исходном родном Юзиксе они были, с ними будет чуть получше работать многозадачность, хотя и сейчас работает). Но когда они включены в моей адаптации, то все почему-то разваливается. Почему это происходит я пока что не понимаю. Кто решит эту проблему - тому пожизненный респект.
    - Клавиатура на прерываниях (опрашивается в tty_poll() ) работает через чур быстро, замедлитель ввода пока не делал, на частотах до 10М мне ловкости ввести без повторных букв пока хватает.

    UPD 19.01.2015: Таки сделал замедлитель ввода с клавы, теперь набирать команды комфортно. Также из всех дискеток UZIX что у меня были собрал полный пак наиболее свежих бинарников на одну большую партицию UZIX (всего их в образе две считая загрузочную CPM-овскую) - загрузочный образ во вложении (uzix.7z). Одних команд в /bin более сотни, а еще консолидировал маны, конфиги и т.п. Вот к примеру как оно делалось из пустого образа с ФС:

    Скрытый текст


    #ucp 2: @filfs.sub

    cd /dev
    success :end
    mkdir /dev
    failure exit
    cd /dev
    umask 0
    # mknod -m 664 /dev/fd0 b 0 0
    # mknod /dev/rfd0 c 0 0
    # mknod -m 664 /dev/fd1 b 0 1
    # mknod /dev/rfd1 c 0 1
    # mknod -m 664 /dev/fd2 b 0 2
    # mknod /dev/rfd2 c 0 2
    # mknod -m 664 /dev/fd3 b 0 3
    # mknod /dev/rfd3 c 0 3
    # mknod -m 664 /dev/fd4 b 0 4
    # mknod /dev/rfd4 c 0 4
    # mknod -m 664 /dev/fd5 b 0 5
    # mknod /dev/rfd5 c 0 5
    # mknod -m 664 /dev/fd6 b 0 6
    # mknod /dev/rfd6 c 0 6
    # mknod -m 664 /dev/fd7 b 0 7
    # mknod /dev/rfd7 c 0 7
    # mknod -m 666 /dev/null c 1 0
    # mknod -m 222 /dev/lpr c 2 0
    # mknod -m 666 /dev/tty c 3 0
    # mknod -m 666 /dev/tty0 c 3 0
    # mknod -m 666 /dev/console c 3 0
    # mknod -m 666 /dev/tty1 c 3 1
    # mknod -m 666 /dev/tty2 c 3 2
    # mknod -m 644 /dev/mem c 4 0
    # mknod -m 600 /dev/kmem c 4 1

    mknod fd0 060664 0 0
    mknod rfd0 020644 0 0
    mknod fd1 060664 0 1
    mknod rfd1 020644 0 1
    mknod fd2 060664 0 2
    mknod rfd2 020644 0 2
    mknod fd3 060664 0 3
    mknod rfd3 020644 0 3
    mknod fd4 060664 0 4
    mknod rfd4 020644 0 4
    mknod fd5 060664 0 5
    mknod rfd5 020644 0 5
    mknod fd6 060664 0 6
    mknod rfd6 020644 0 6
    mknod fd7 060664 0 7
    mknod rfd7 020644 0 7
    mknod null 020666 1 0
    mknod lpr 020222 2 0
    mknod tty 020666 3 0
    mknod tty0 020666 3 0
    mknod console 020666 3 0
    mknod tty1 020666 3 1
    mknod tty2 020666 3 2
    mknod mem 020644 4 0
    mknod kmem 020600 4 1

    cd /
    mkdir /tmp
    chmod 040777 /tmp
    umask 022

    mkdir /bin
    mkdir /etc
    mkdir /usr
    mkdir /mnt
    mkdir /root
    mkdir /home
    mkdir /var

    cd /usr
    mkdir /usr/bin
    mkdir /usr/lib
    mkdir /usr/src
    mkdir /usr/man
    mkdir /usr/man/man1
    mkdir /usr/man/man6
    mkdir /usr/man/man8
    mkdir /usr/spool
    mkdir /usr/spool/lpd

    cd /home
    mkdir /home/user
    mkdir /home/guest

    cd /bin
    failure exit
    umask 022

    bget aal
    bget adduser
    bget banner
    bget basename
    bget bogomips
    bget cal
    bget cat
    bget cdiff
    bget cgrep
    bget chgcpu
    bget chgrp
    bget chmod
    bget chown
    bget cksum
    bget clear
    bget clone
    bget cmp
    bget cp
    bget cpir
    bget cr
    bget crc
    bget cron
    bget date
    bget dd
    bget df
    bget dhry
    bget diff
    bget dirname
    bget diskusag
    bget dosdel
    bget dosdir
    bget dosemu
    bget dosread
    bget doswrite
    bget dtree
    bget du
    bget echo
    bget ed
    bget false
    bget fgrep
    bget file
    bget find
    bget fld
    bget fortune
    bget grep
    bget gres
    bget head
    bget ic
    bget id
    bget init
    bget inodes
    bget key
    bget kill
    bget ln
    bget login
    bget lpd
    bget lpr
    bget ls
    bget man
    bget mkdir
    bget mknod
    bget more
    bget mount
    bget mv
    bget ncheck
    bget ncr
    bget od
    bget passwd
    bget pathchk
    bget pr
    bget printenv
    bget ps
    bget pwd
    bget readall
    bget reboot
    bget renice
    bget rm
    bget rmdir
    bget roff
    bget sash
    bget setclock
    bget sh
    bget sort
    bget split
    bget su
    bget sum
    bget tail
    bget tar
    bget tee
    bget termcap
    bget tget
    bget time
    bget top
    bget touch
    bget tr
    bget true
    bget umount
    bget uname
    bget uniq
    bget uudecode
    bget uuencode
    bget wc
    bget which
    bget whoami
    bget yes


    chmod 0755 aal
    chmod 0700 adduser
    chmod 0755 banner
    chmod 0755 basename
    chmod 0755 bogomips
    chmod 0755 cal
    chmod 0755 cat
    chmod 0755 cdiff
    chmod 0755 cgrep
    chmod 0700 chgcpu
    chmod 0755 chgrp
    chmod 0755 chmod
    chmod 0755 chown
    chmod 0755 cksum
    chmod 0755 clear
    chmod 0755 clone
    chmod 0755 cmp
    chmod 0755 cp
    chmod 0755 cpir
    chmod 0755 cr
    chmod 0755 crc
    chmod 0755 cron
    chmod 0755 date
    chmod 0755 dd
    chmod 4755 df
    chmod 0755 dhry
    chmod 0755 diff
    chmod 0755 dirname
    chmod 0755 diskusag
    chmod 0755 dosdel
    chmod 0755 dosdir
    chmod 0755 dosemu
    chmod 0755 dosread
    chmod 0755 doswrite
    chmod 0755 dtree
    chmod 0755 du
    chmod 0755 echo
    chmod 0755 ed
    chmod 0755 false
    chmod 0755 fgrep
    chmod 0755 file
    chmod 0755 find
    chmod 0755 fld
    chmod 0755 fortune
    chmod 0755 grep
    chmod 0755 gres
    chmod 0755 head
    chmod 0755 ic
    chmod 0755 id
    chmod 0755 init
    chmod 0755 inodes
    chmod 0755 key
    chmod 0755 kill
    chmod 0755 ln
    chmod 4755 login
    chmod 0755 lpd
    chmod 0755 lpr
    chmod 0755 ls
    chmod 0755 man
    chmod 0755 mkdir
    chmod 0755 mknod
    chmod 0755 more
    chmod 0755 mount
    chmod 0755 mv
    chmod 0755 ncheck
    chmod 0755 ncr
    chmod 0755 od
    chmod 0700 passwd
    chmod 0755 pathchk
    chmod 0755 pr
    chmod 0755 printenv
    chmod 0755 ps
    chmod 0755 pwd
    chmod 0755 readall
    chmod 0700 reboot
    chmod 0755 renice
    chmod 0755 rm
    chmod 0755 rmdir
    chmod 0755 roff
    chmod 0755 sash
    chmod 0755 setclock
    chmod 0755 sh
    chmod 0755 sort
    chmod 0755 split
    chmod 0755 su
    chmod 0755 sum
    chmod 0755 tail
    chmod 0755 tar
    chmod 0755 tee
    chmod 0755 termcap
    chmod 0755 tget
    chmod 0755 time
    chmod 0755 top
    chmod 0755 touch
    chmod 0755 tr
    chmod 0755 true
    chmod 0755 umount
    chmod 0755 uname
    chmod 0755 uniq
    chmod 0755 uudecode
    chmod 0755 uuencode
    chmod 0755 wc
    chmod 0755 which
    chmod 0755 whoami
    chmod 0755 yes


    cd /etc
    failure exit
    umask 022
    get group.etc group
    get passwd.etc passwd
    get termcap.etc termcap
    chmod 0644 group
    chmod 0644 passwd
    chmod 0644 termcap

    umask 0
    cd /root
    failure exit
    get aliasrc.rot .aliasrc
    get loginrc.rot .loginrc
    get uzixlogo.rot .uzixlogo
    chmod 0744 .loginrc

    cd /usr/lib
    failure exit
    umask 022
    get liberror.txt
    get fortune.dat


    cd /usr/man/man1
    failure exit
    umask 022

    get basename.1
    get bogomips.1
    get cal.1
    get cat.1
    get cdiff.1
    get cgrep.1
    get chgrp.1
    get chmod.1
    get chown.1
    get cksum.1
    get clear.1
    get cmp.1
    get cp.1
    get cpdir.1
    get crc.1
    get date.1
    get dd.1
    get df.1
    get dhry.1
    get diff.1
    get dirname.1
    get dosdel.1
    get dosdir.1
    get dosread.1
    get doswrite.1
    get du.1
    get echo.1
    get ed.1
    get false.1
    get fgrep.1
    get file.1
    get fld.1
    get grep.1
    get head.1
    get kill.1
    get ln.1
    get login.1
    get ls.1
    get man.1
    get mkdir.1
    get mknod.1
    get more.1
    get mv.1
    get passwd.1
    get printenv.1
    get ps.1
    get pwd.1
    get rm.1
    get rmdir.1
    get sash.1
    get su.1
    get sum.1
    get tail.1
    get tar.1
    get tee.1
    get time.1
    get top.1
    get touch.1
    get tr.1
    get true.1
    get uname.1
    get uniq.1
    get wc.1
    get whoami.1
    get yes.1

    cd /usr/man/man6
    failure exit
    umask 022
    get banner.6
    get fortune.6

    cd /usr/man/man8
    failure exit
    umask 022
    get adduser.8
    get init.8
    get mount.8
    get reboot.8
    get sync.8
    get umount.8

    :end

    exit
    [свернуть]
    Последний раз редактировалось Error404; 23.01.2015 в 10:35.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 0
    Последнее: 24.02.2009, 12:31
  2. и еще раз о uzix
    от sysop в разделе Оси
    Ответов: 33
    Последнее: 25.08.2006, 14:35

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •