*---------------------------------------*
| NeOS - новая операционная система |
| для Спектрума |
*---------------------------------------*
(С) 25 мая 1999 Megus/BrainWave/X-Project
-----------------------------------------
Идея создания абсолютно новой систе-
мы для Спектрума витала в воздухе уже
очень давно. Возможно, многие брались за
создание, но не многим хватило сил, тер-
пения, а может и знаний довести такую
серьезную работу до конца. В 1997 году
работу над новой OS начал Павел Федин, но
позже он, к сожалению, разочаровался в
этой идее. Однако у него осталось большое
количество конкретных теоретических нара-
боток, которые позже легли в основу NeOS.
Поэтому автором концепции NeOS по праву
является Павел Федин, а развитием идеи и
реализацией всех задумок занимался и за-
нимаюсь я, Роман Петров (Megus/BrainWave/
X-Project).
Решение создать новую OS для Спект-
рума появилось не на пустом месте, к это-
му как меня, так и Павла Федина (в даль-
нейшем просто разработчиков) подтолкнули
следующие причины:
1. Существующая альтернатива TR-DOS
(iS-DOS) устарела, т.к. изначально была
спроектирована для машин с памятью 48Кб.
Также в iS-DOS существуют некоторые огра-
ничения, не дающие настоящей свободы про-
граммисту.
2. В настоящее время существует мно-
жество моделей Спектрума с памятью свыше
128Кб, но управление этой памятью в каж-
дой машине сделано по собственному стан-
дарту, что вызывает определенные труднос-
ти у программиста.
3. Также имеется множество дополни-
тельной периферии, однако и в этой облас-
ти не наблюдается каких-либо утвердивших-
ся стандартов, т.к. каждый разработчик
стремится сделать все по-своему.
4. TR-DOS, по сути, не является пол-
ноценной операционной системой. Фактичес-
ки это всего лишь эмулятор магнитофонных
операций на дискете.
5. Отсутствие полноценной файловой
системы (как в TR-DOS, так и в iS-DOS)
затрудняет использование внешних носите-
лей данных большой емкости (HDD, CD-ROM и
т.д.).
Существуют и другие причины, однако
те, которые только что были перечислены,
являются наиболее важными. Все описанные
проблемы решены в NeOS.
Вот краткий список тех возможностей,
которые предоставляет NeOS программисту и
пользователю:
* поддержка RAM объемом до ЧМб
(теоретически - до 1Гб);
* реализована система блочного выде-
ления памяти, что облегчит в дальнейшем
реализацию (псевдо)многозадачности;
* реализована система драйверов, что
снимает проблему несовместимости различ-
ной периферии;
* реализована система библиотек фун-
кций;
* возможна работа с любым внешним
накопителем данных;
* полноценная поддержка системы ди-
ректорий;
* возможна работа с файлами произ-
вольной длины (до ЧГб);
* реализована поддержка имен файлов
длиной до 16 символов с трехсимвольным
расширением;
* реализована "прозрачная" поддержка
различных файловых систем.
Теперь обо всем этом более подробно.
NeOS поддерживает RAM объемом до ЧМб, при
этом у программиста не возникает никаких
проблем при работе с этой памятью, т.к.
работа осуществляется посредством систем-
ных функций NeOS, и программист уже не
должен заботиться о поддержке всех воз-
можных способов реализации расширенной
памяти. Для последующей реализации много-
задачности в NeOS была реализована систе-
ма менеджмента памяти: поблочное выделе-
ние страничной памяти. Размер выделяемо-
го/освобождаемого блока кратен 1Кб.
Для работы с внешними устройствами
(и не только с ними) была реализована
система драйверов. Драйвера в памяти ор-
ганизованы в виде "цепочки": в начале
каждого драйвера находится указатель на
следующий. Таким образом, общее коли-
чество драйверов, установленных в систе-
му, ограничивается только доступной па-
мятью. Каждый драйвер имеет собственное
название, по которому и осуществляется
поиск. Драйвера делятся на 2 типа: рези-
дентные и нерезидентные. К резидентным
относятся драйвера, вызываемые каждое
прерывание, к нерезидентным - драйвера,
специально вызываемые программой. Каждый
из типов имеет собственную цепочку. Из
программы драйвер может быть вызван сле-
дующим образом: сначала необходимо найти
(открыть) драйвер по его имени, после че-
го по полученным адресу и странице обра-
титься с номером функции в регистре A.
Так как в дальнейшем планируется
реализация многозадачности, была реализо-
вана система библиотек функций. На данный
момент эта система не является особо важ-
ной. Организация библиотек в памяти ана-
логична организации драйверов ("цепоч-
ка"), принципы работы с библиотеками так-
же аналогичны.
Работа с внешними накопителями дан-
ных осуществляется посредством двух уров-
ней драйверов: драйверов дисковых уст-
ройств и драйверов файловых систем (FS).
При работе с файлами программист должен
использовать драйвер FS, а тот уже, в
свою очередь, использует драйвер дисково-
го устройства. Таким образом осуществля-
ется поддержка любой FS на любом типе
дискового устройства. В NeOS реализована
"прозрачная" поддержка различных FS. Это
означает, что в систему может быть уста-
новлено несколько драйверов FS, и NeOS
будет работать с любым из них. При выборе
дискового устройства происходит обращение
к каждому драйверу FS для определения
принадлежности диска FS. Как только ка-
кой-либо драйвер опознал диск как "свой",
этот драйвер становится активным для дан-
ного устройства, и дальнейшие операции с
файлами на этом диске будут производиться
посредством него. Поэтому в NeOS отпадает
необходимость в копировщиках типа MS-
DOS<->TR-DOS, т.к. система сама может вы-
полнять подобные операции.
Как и в любой полноценной DOS, в
NeOS возможна работа с системой подката-
логов, которой так не хватает в TR-DOS.
Также в NeOS отсутствуют ограничения на
длину файла, характерные для TR-DOS и iS-
DOS, максимальная длина файла в NeOS мо-
жет быть равна ЧГб, что можно не считать
ограничением.
Для осуществления элементарного кон-
такта с пользователем в NeOS встроен ко-
мандный интерпретатор, позволяющий выпол-
нять базовые команды управления системой
и простейшие дисковые операции. Есть воз-
можность объединять последовательность
команд интерпретатора в так называемые
пакетные файлы (batcH files), которые
представляют собой обыкновенные текстовые
файлы. Так как возможности встроенного
интерпретатора очень скромны, была введе-
на возможность установки внешнего интер-
претатора.
Разработчиками было изначально реше-
но, что система будет размещена в ПЗУ в
области, занимаемой 128 BASIC. Это позво-
лило сохранить совместимость практически
со всем существующим ПО для Спектрума
(данную страницу ПЗУ используют единичные
программы, разработчики до сих пор не
нашли ни одной, которая бы не работала в
присутствии ПЗУ NeOS). В ПЗУ располагает-
ся ядро системы (BrainWave BIOS), ко-
мандный интерпретатор, а также самые не-
обходимые драйвера, без которых работа
системы невозможна. Т.к. угодить всем
пользователям в отношении подбора стан-
дартного набора драйверов невозможно, бы-
ло решено написать инсталлятор NeOS. С
помощью инсталлятора каждый пользователь
NeOS сможет настроить систему так, как
ему надо. Он может выбрать стандартные
драйвера, тип компьютера (для работы с
расширенной памятью), цвета, язык систем-
ных сообщений, раскладку клавиатуры и
т.д. Результатом работы инсталлятора яв-
ляется готовый образ ПЗУ, который уже
можно "зашивать" в ПЗУ. Следует отметить,
что NeOS не работает с ПЗУ TR-DOS 5.03,
для нормальной работы NeOS с диском необ-
ходимо ПЗУ TR-DOS, в котором имеется воз-
можность напрямую считать регистр сос-
тояния контроллера дисковода (порт #1F
ВГ93). Рекомендуется использовать NeOS с
TR-DOS 5.13, которая будет прилагаться к
системе.
На сегодняшний день ядро системы
полностью готово и проходит стадию актив-
ного бета-тестирования; параллельно ве-
дется написание ПО, без которого система
существовать не может, а также наращи-
вается библиотека драйверов. Т.к. одна
группа не сможет в краткие сроки обеспе-
чить систему самым необходимым ПО, разра-
ботчики приглашают всех заинтересовавших-
ся системой к сотрудничеству. NeOS - это
свободно распространяемый (freeWare) про-
дукт, однако за некоторую денежную сумму
(она пока не определена) любой может
стать зарегистрированым пользователем
NeOS. Каждый зарегистрированный пользова-
тель получит от нас полный комплект NeOS
(инсталлятор, библиотека драйверов, базо-
вый софт), полную документацию програм-
миста в виде небольшой книжки, а также мы
обязуемся информировать таких пользовате-
лей о выходе наиболее интересного ПО для
NeOS и помогать в его приобретении.
В разработке NeOS принимали участие:
------------------------------------
* Роман Петров (Megus/BW/XPJ) - раз-
работка системы, написание ядра и большей
части драйверов;
* Павел Федин - разработка системы;
* Андрей Михеев (MAV/BW^XPJ) - напи-
сание драйверов, конструктивная критика;
* Андрей Исаев - написание драйвера
FDD, конструктивная критика;
Непосредствнного участия в разработ-
ке не принимали, но помогали советами,
критикой и морально поддерживали:
* Роман Милюков - автор идеи инстал-
лятора;
* Денис Дмитриев (Dismaster/XPJ) -
конструктивная критика;
* Денис Сотченко - конструктивная
критика, советы по организации памяти и
реализации многозадачности;
* Jarek Adamski - конструктивная
критика, полезные советы;
* Евгений Малков (Tim Kelly/KGS),
Александр Кормишин, Юрий Войналович, весь
BrainWave, весь X-Project, MiHal BukoWski
(YERZMYEY/Н-Prog), а также эхоконференция
REAL.SPECCY - моральная поддержка.
Как со мной связаться:
======================
424019
Россия
республика Марий Эл
г. Йошкар=Ола
ул. Фестивальная
д. 77 кв. 13
Петрову Роману Сергеевичу.
* Телефон: (8362) 22-66-09
с 14:00 до 22:00 (моск. время).
* FidoNet: 2:5052/7.37
* ZXNet: 500:8362/1
* Е-mail: megus_bW@mail.ru
-----
Official NeOS FAQ v1.0
Часто задаваемые вопросы по NeOS
на июль 1999 года.
(С) 1999 Megus/BrainWave/X-Project Ass.
-----------------------------------------
Q: А для чего нужна еще одна операционка,
ведь у нас есть iS-DOS и СР/М?
A: У каждой из этих операционок имеются
свои недостатки, причем избавиться от
них, оставаясь в рамках системы, невоз-
можно. Именно поэтому и была создана но-
вая операционная система NeOS, в которой
отсутствуют подобные недостатки. Подроб-
нее читайте "NeOS Info #1" и Документацию
Программиста.
Q: Откуда такое странное название - NeOS?
A: История названия такова: сначала сис-
тема вообще не имела рабочего названия.
Однажды, я назвал свою операционку NeW
OS, но такое название не звучало, поэтому
я выкинул лишнюю букву и получил NeOS. А
все домыслы что NeOS - это не OS, есть
результат больного воображения :)
Q: Каковы условия распространения NeOS?
A: NeOS - freeWare продукт. Я разрешаю
свободно распространять прошивки по се-
тям, почте с обязательной ссылкой на ав-
тора. Я не против коммерческого распрост-
ранения системы, но до выхода полного
комплекта делать этого не рекомендую.
Q: Я слышал, что можно стать зарегистри-
рованным пользователем. Как это сделать?
A: Регистрация заключается в пересылке
автору некоторой денежной суммы. Такой
пользователь получает от нас полный комп-
лект NeOS со всем существующим на текущий
момент ПО, книжку с документацией и обя-
зательство авторов информировать пользо-
вателя о новинках ПО для NeOS. Сумма на
данный момент не определена, т.к. комп-
лект еще не сформирован.
Q: Можно ли под NeOS запускать программы
для TR-DOS/iS-DOS?
A: Нет, т.к. NeOS - самостоятельная сис-
тема, а не расширение какой-либо су-
ществующей. Без соответствующей адаптации
программы для других OS работать не бу-
дут.
Q: Поддерживает ли NeOS видео-режим 512х
192?
A: Да.
Q: Где в сетях можно найти информацию и
программы для NeOS?
A: Лично у автора.
A: Фидошная эхоконференция REAL.SPECCY
объявлена официальным центром поддержки,
там проходят новые прошивки и софт.
A: Планируется создание WWW-сайта, посвя-
щенного NeOS. Срок реализации неопреде-
ленный.
Q: Можно ли установить NeOS на фирменном
Спектруме, на котором нет TR-DOS?
A: Можно, надо только написать драйвер
FDD для FDC, использующегося в этой маши-
не.
Q: Может ли NeOS работать на других маши-
нах, базирующихся на Z80?
A: Да, может. Только программы, написан-
ные с использованием прямого обращения к
видео-памяти окажутся несовместимы. Упор
на обеспечение совместимости разных Z80-
based машин будет сделан в NeOS v2.0.
Q: Я слышал, что в NeOS будет многозадач-
ность. Это правда? А не будет ли это
страшно тормозить?
A: В NeOS v2.0 планируется реализовать
кооперативную многозадачность. Тормозить
это не должно, т.к. стиль программирова-
ния для многозадачных систем совершенно
другой. Совместимость с NeOS v1.0 будет
полная.
Q: Я запустил NeOS, но при запуске он
сразу пишет Fatal еггог. Что это - злоб-
ный глюк или еще что-то?
A: Это неправильная версия TR-DOS. NeOS
нормально работает только с ПЗУ TR-DOS
5.12, 5.13, а также с ПЗУ TR-DOS Скорпио-
нов с прошивкой v2.95 и старше.
ПРИЛОЖЕНИЕ
==========
В "приложении" к журналу есть три вер-
сии прошивки ПЗУ под NeOS. Вернее, версия
одна и та же, но под разные компьютеры -
Spectrum-128, Pentagon-512 и Scorpion. Я
весьма сожалею, но авторы не сделали вер-
сии под кэш, что затрудняет предваритель-
ную оценку достоинств и недостатков сис-
темы. Получается, что убедиться в нецеле-
сообразности NeOS можно только после про-
шивки её в ПЗУ, а это лишние напряги для
компьютера и пользователя. Особенно для
консервативной части пользователей, к ко-
торым и я отношусь отчасти. В комплекте с
прошивками идут сопроводительные тексты,
информирующие о внутренней структуре NeOS
и вообще - как с ней работать, но в при-
ложении их нет по причине отсутствия мес-
та на диске. Кому интересно - обращайтесь
непосредственно к авторам NeOS по указан-
ным адресам или телефону.
-----------------------------------------
Other articles: