Цитата Сообщение от 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

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