Миска - ОС будущего для SPECCY.

Scream #02

|ОС будущего для SPECCY 
|3M^MSD 


    В данной статье я постараюсь осветить один наш незавершенный
проект  операционной  системы. Не оболочки, а именно полноценной
системы, которая,  на  мой  взгляд,  должна дать мощный толчок к
дальнейшему развитию SPECTRUM совместимых систем.

    Почему данный проект незавершен?

    Да   потому,  что   данный  проект  требует  самой  глубокой
проработки,  необходимо  учесть все факторы дальнейшего развития
нашей платформы,  и  мы  просто  не имеем права на необдуманное,
быстрое создание еще одной убогой системы, которые с каждым  го-
дом приближают смерть SPECCY.

    На сегодняшний день создан большой парк SPECTRUM совместимых
машин, и каждая тачка в своем стремлении к  совершенству  остав-
ляет  после себя горы новых стандартов, а современные требования
к софту достаточно высоки и не всем по  зубам.  Одним  из  узких
мест  платформы является память. Здесь стандартов просто немеря-
но.  Мучаешься,  значит, собираешь какой-нибудь прибамбас (типа-
расширения памяти через KEMPSTON порт), по  схеме  из  солидного
эл.журнала, рискуя тачкой впаиваешь все это дело на плату и даже
по-детски радуешься, что все все это заработало, а софта под это
нет и не ожидается. Можно конечно написать драйвер эл.диска  под
IS-DOS  и  тащиться  от  скорости  работы с PICASSO или набирать 
текст, но основная часть ПО пишется все-таки не под IS-DOS.

    Второе  узкое  место  системы, это возрастющие потребности в
более  емких  источниках  хранения  информации  (диски  на 1.2 и
1.44MB,  HDD,  и  даже  CD-ROM). Маленький SPECCY превращается в 
монстра,   который  при  смешной  по  нынешним  меркам  тактовой
частотой  изощренными алгоритмами научился обрабатывать огромные
потоки   информации,   замахнулись   даже  на  аналог  JPEG  для
DMA-SOUND.  Здесь  TR-DOS проигрывает по всем параметрам, SMUC и 
IS-DOS - всего лишь временное решение проблемы. 

    Третье - устройства ввода.  Стандартов тоже немало,  начиная
от  светового  пера,  множества MOUSE'ов и KEMPSTON'ов, CMOS'ов,
PC-KEYBOARD'ов, заканчивая всеми видами модемов, сканеров и т.д.

    Четвертое - устройства вывода.  Способов подключения принте-
ров,  плоттеров  тоже  не  мало,  а  в будущем будет наблюдаться
тенденция  подключения  подешевевших многоигольчатых матричных и
струйных  принтеров а также увеличение разрешения экрана с целью
создания полноценного текстового режима.

    Все перечисленное сильно рискует остаться кучей самопального
барахла  без  универсальной  операционной системы, целью которой
будет  объединение  всего этого в одно целое, и откроет реальные
перспективы  для  создания  более  упрощенного,  в схематическом
плане,   но   более   мощного   ПК  с  возможностью  дальнейшего
неограниченного расширения с незамедлительной поддержкой ПО.


                      ЧТО МЫ ПРЕДЛАГАЕМ

     Внимание!

    Все ниже сказанное не претендует на роль стандарта и требует
существенных проработок. Ждем критики и предложений.

    Система представляет собой набор свободно заменяемых блоков,
связанных   между  собой  через  специальную  область  памяти  -
керналь.  Основные  блоки,  такие  как: управления, отображения,
управления  ресурсами  памяти,  печати,  внешнего  вида системы,
работы  с  внешними накопителями и т.д., список которых, а также
полное  описание всех систем ПК хранится в специально отведенном
месте.  Положение  блоков и областей памяти не фиксированно и их
адреса,  вызов,  чтение,  должно  осуществляться  через  систему
рестартов (допустим RST 16). Так как блоки свободно заменяются и
дополняются, то  без  ущерба  для совместимости можно подключать
самые  специфические устройства. За основу внешнего вида системы
можно  выбрать WINDOWS как наиболее универсальную с возможностью
расширения,  но  и  это  не стандарт, так как при простой замене
блока внешнего вида можно получить систему на любой вкус.

    Важнейшей особенностью программ под данную ОС должна являтся
отказ  от  самостоятельного  обращения  как  к  памяти,  так и к
внешним   устройствам.   Именно  ОБЯЗАТЕЛЬНОЕ  соблюдение  этого
единственного   стандарта   системы  обеспечит  поддержку  всего
множества  устройств  как  "прошлых"  так  и "будущих". Работа с
внешними   устройствами   хранения   информации   ограничивается
простыми командами обращения к рестарту: читать файл, продолжить
чтение, записать файл, продолжить запись и т.д., а все параметры
обращения к ним должны полностью исключить введение стандарта на
размер  сектора диска, все операции по поиску файла (FAT таблицы
или TR-DOS формат) и работа с ним берет на себя рестарт. Что это
дает:  использование  различных  форматов хранения информации, а
также   поддержку  всех  уже  имеющихся.  Запускаемые  программы
освобождаются   от   определения  параметров  системы  и  выбора
управления,  так  как  эти  данные  берутся  из блока управления
который   отображает   текущие  координаты  манипулятора  (мышь,
клавиатура  и  т.д.  в  зависимости от блока и его настройки), а
если необходимо использование дополнительных клавиш, то это мож-
но решить обращением к специальному  блоку  расширения ввода при
отсутствии  которого  (случайно  или  намеренно)  прога  обязана
цивилизованно  вывести  сообшение используя те же рестарты. Если
прога  только  и  делает что выводит какие либо сообщения, то не
надо   самостоятельно   юзать   экран,  а  лучше  воспользоватся
специально созданным для этого блоком, который позволит не толь-
ко вывести ваш текст, но и соответсвенно его оформить.  Запущен-
ная программа может все через те  же  рестарты  передать таблицу
внешнего  оформления  программы (WINDOWS окно) и соответствующий
блок  возмет  на  себя  большинство  функций интерфейса. Все это
позволит запускать данные программы, например, с другим разреше-
нием экрана при соответствующей поддержке блоков оформления.

    Теперь  о  прерываниях. На них повешены некоторые резиденты:
опрос  и печать стрелки манипулятора, счетчик запуска резидентов
(нет  смысла  запускать некоторые резиденты каждые 1/50 секунды,
резидент   при   запуске,   в  меню  настроек,  может  позволять
устанавливать  частоту  запуска)  и т.д. которые можно отключать
без удаления и с удалением из памяти.

    Пример 1: запущенная прога требует все прерывание (DEMO...),
читает  список  установленных  резидентов  если  там что-то есть
выводит  сообщение типа - у вас висят такие-то резиденты так как
требуется максимальная скорость компа то "ВЫХОД", "ПРОДОЛЖЕНИЕ".
При  выходе  можете  удалить  часть  из  них  или  все  и  снова
запустить, либо продолжить с резидентами.

    Пример 2: прога  не  хочет  печатать  вашу  стрелку,  читает
список установленных резидентов и предлагает закрыть один из них
(печать стрелки).

                        ЗАГРУЗКА ПРОГРАММЫ

    Загрузка  должна представлять собой начальную загрузку блока
кода  определенной длины в котором будут отражатся параметры как
самой программы, так и небходимая конфигурация ОС после запуска,
после  чего  система  должна  принять  соответствующие решения о
способе  своего  сохранения  (спец.блок  -  либо на винт, либо в
определенный участок памяти, оставляя легкодоступными используе-
мые блоки) и вывести соответствующее сообщение, если система не-
удовлетворяет параметрам запускаемого файла + описатель дальней-
шей загрузки файла: длины, адреса, адреса запуска и  т.д.  Здесь
вопрос толком еще не решен и требует серьезной проработки.

    А как же с существующим ПО ?

    Вопрос может быть решен 2 способами:

01. Адаптация  программ  под новый стандарт как это уже было при 
    переходе  с  ленты  на  диск,  благо большинство программ не
    требуют серъезной переработки.

02. Для  таких  программ  есть  возможность  работы  системы  по 
    принципу  BOOT'а,  с  ее  сохранением  на диске (HDD) либо в
    удаленном участке памяти.

    Главное достоинство данной ОС является ее гибкость. Например
после   соответсвующей   настройки   системы,   можно   выкинуть
клавиатуру  (с  условием  автозапуска), а всю систему управления
привязать  к  мыши  или  еще чему-либо. Иметь несколько форматов
представления   информации   на   диске   одновременно  (выбирая
соответствующюю  пиктограмму).  Навешать дополнительную память и
любые  другие  устройства  на любые порты. Отказ от ПЗУ и многое
другое.

    Стараясь  осветить  популярным  языком этот проект многое из
него  осталось  за кадром: структура, количество и связь блоков,
формат  распределение памяти и т.д. Если кого либо заинтерисовал
проект ОС  для  SPECCY  наша  группа будет рада поделиться своей
информацией и выслушать ваше мнение.

         kristoph: связь с групой можно осуществлять че-
         рез triumph_hq@mail.ru:::::::::::::::::::::::::