мне жутко интересно
libc.lib, он вроде как свободно лежал на страничке проекта в архиве
у msх забавная архитектура, но она не мешает symb os?
мне жутко интересно
libc.lib, он вроде как свободно лежал на страничке проекта в архиве
у msх забавная архитектура, но она не мешает symb os?
Последний раз редактировалось Totem; 17.01.2015 в 05:10.
Ты слыхал как грузится Flyshark ?! нет, совсем не тот, что на дискете...а Flyshark, тот самый блин Flyshark...тот ,что был когда то на кассете...
zx spectrum 48 issuse 6a, Ленинград-1, zx spectum 128 +2 grey,Пентагон-128, ZXM-Phoenix 5.02 ( assembly)
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Запуск фоновых процессов делается двумя способами:
1. При запуске жмем ^Z (Ctrl+Z) и приложению будет отправлен сигнал остановки с терминала, попутно оболочка выведет номер задания, под которым находится остановленный процесс. Далее берем этот номер и делаем команду bg <номер> процесс уйдет в фон. Но это для линуксов/фрях и другиг взрослых юниксов
2. После имени команды поставить амперсанд:
# long_running_task &
long_running_task заменить на свою команду соответственно
Но это опять же во возрослых юниксах
А в нашем случае скорее всего ни как, т.к README к sash говорит нам
https://github.com/menelkir/uzix/blo.../Source/README* UZIX doesn't have the concept of background/foreground applications
controlled by user;
Весьма куцая многозадачность получается, если сильно хочется -- придется пилить систему самому, чтобы в нее это добавить.
2:5083/89
Да, это понятно. Тут беда как sash заюзать. Наверное проще всего nohup спортировать.
Вот за ссылку на 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
Да, я в курсе про 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
А то, что в сообщении #35 zip-архивы не открываются - так и должно быть?
Потому что это на самом деле половинки одного архива, а не отдельные целые архивы. Я же пишу в том сообщении:
И уже в том сообщении:Как собрать образ из половинок, и утилиты - описаны тут:
http://zx-pk.ru/showpost.php?p=769417&postcount=16
"tty-sd5.zip из двух частей собирать так:
cmd> copy /b tty-sd5-001.zip + tty-sd5-002.zip tty-sd5.zip
"
Изначально это были файлы *.zip.001 и .002, но форум не дает выкладывать файлы с таким расширением. Пришлось переименовать.
Я их пока не удаляю, т.к. в них дистро CP/M c базовым ПО, а вот UZIX в "половинках" менее интересен, он болеее полный в образе uzix.7z. И далее я буду использовать как базу тот дистриб, что в .7z.
CP/M в последнем *.7z минимальная, только чтобы запускать UZIX. (партиция CPM то там большая, но я записал туда мало файлов CPM для уменьшения веса архива - опять же у движка форума ограничение: вложение не более 640к)
---------- Post added at 10:10 ---------- Previous post was at 09:54 ----------
ЫЫЫ
df безбожно врет на большой партиции.
А на партиции в 720к не врало. Видимо во времена написания этой программы, дискеток в 28мб не было
Последний раз редактировалось Error404; 20.01.2015 в 10:20.
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
Предрелиз.
Итого: я запилил/портировал все что хотел и что было в ядре uzix 1.0. Размер ядра имеем 30к (как и планировалось).
Из последних правок:
- отлажена работа с системным временем (пришлось поправить CPM-овский driver.sys), теперь корректно работает отображение и установка системного времени - date / setclock
- в образе ohi-uzix.7z заменен /bin/setclock - он был битый
- допилена работа с прямым доступом к устройствам, теперь корретно работает dd if=/dev/rfd*
- пришлось поправить CP/M-овский idebdos.com
- попутно исправлен баг долго описывать какой
- еще reboot заработал
- добавил устройство /dev/zero
Дальше буду пилить LIBC.LIB чтобы можно было кодить приклад (т.к. libc для Uzix в природе есть только в исходниках, самой либы нет), в ядре будут только правки ошибок. Как обычно, исходники в первом посте, мой рабочий образ HDD (SD) во вложении этого сообщения
Последний раз редактировалось Error404; 23.01.2015 в 13:39.
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
А на реале кто-нибудь пробовал?
А то я еще с ремонта коробки не распаковывал, в т.ч. и с Орионами, уже полгода как.
Последний раз редактировалось Error404; 23.01.2015 в 13:40.
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
А под какой реал-то писАлось? Простой или ПРО?
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)