Voyager
#03
19 октября 1998 |
|
Лаборатория - ZX-SPECTRUM и операционные системы.
(C) 1998 Чертков В.Ю. Music: THE BEST ITALIAN-'VENICE' by KENOTRON ─────────────────────────────────────────────────── ╔════════════════════════════════════════════╗ ║ ║ ║ ZX-Spectrum и операционные системы (ОС) ║ ║ ║ ╚════════════════════════════════════════════╝ Еще совсем недавно, задав любому спектрум- юзеру вопрос: "Что такое операционная система и для чего же она нужна?", можно было получить ответ: "Не знаю!" И это неудивительно, т.к. за всю историю существования, на Спектруме никогда не было ОС в полном понимании, потому как изначально компьютер задумывался, как игровой. Как и на все подобные ПЭВМ, на Спектрум вместо ОС был установлен Бей- сик в ПЗУ, т.к. этот язык обладает основными фун- кциями, свойственными операционным системам. Но Бейсик Спектрума крайне примитивен, не поддержива- ет диск, клавиши токенизированы (очень бедный син- таксис), и развивать его дальше крайне сложно. ПЗУ Спектрума построено по типу "монитора" - нет ника- ких функций, доступных пользователю для обслужива- ния устройств компьютера с единым интерфейсом (в нормальных компьютерах это называется BIOS или Kernal). Есть только одна стандартная точка входа монитора (рестарт) - все остальное, описываемое в различной литературе по Спектруму - это ПОДПРОГ- РАММЫ монитора, и не более того. Т.е., ПЗУ предста- вляет собой "черный ящик" в который лезть нельзя. Не в пример тому компьютер Yamaha. Модель MSX-1 также, как и ZX-Spectrum имеет только Бей- сик в ПЗУ, но этот Бейсик гораздо круче, чем на Спектруме, и предполагал в будущем использование дисковода. Кроме того, он подобен Microsoft BASIC, но значительно расширенный - поддерживает графику (спрайты) и звук (AY). Кроме Бейсика, в ПЗУ содер- жится система BIOS, а это дает возможность разви- вать все базовое ПО без потери совместимости, т.к. никто внутрь этих программ не лезет - существуют стандартные точки входа. Вообще, свое собственное ПЗУ имеет каждое устройство (RS-232, RTC & CMOS). Программы, привязанные к каким-либо внешним собы- тиям (ввод-вывод на ленту, ввод-вывод RS-232), син- хронизируются не программными задержками CPU, а опираются на таймер реального времени, т.е. от ско- рости CPU корректность работы драйверов не зави- сит (сравните со Спектрумом). Кроме того, функции BIOS доступны программам пользователя - это прос- то замечательно: во-первых, появляется независимость от аппаратуры, а во-вторых, писать программы гораз- до легче, т.к. весь низкоуровневый ввод-вывод уже создан! В модели MSX-2 была без особых проблем ус- тановлена операционная система MSX-DOS, т.е. ком- пьютер работал уже без Бейсика, хотя, при желании, его можно запустить по команде ОС. После рестарта компьютера, при отсутствии системного диска в дис- ководе, также осуществлялся выход в Бейсик. Т.е. без ОС компьютер выглядел, как обычный MSX-1. Но Бей- сик уже был дисковый - все команды переадресовыва- лись с кассеты на диск (безо всяких RANDOMIZE USR 15619:REM:....), хотя возможность работы с кассетой осталась. Старые кассетные программы прекрасно ра- ботали и с диска, их не надо было адаптировать с огромным трудом, как на Спектруме в TR-DOS, их нужно было просто скопировать с кассеты на диск - и все! А сказал я это все к тому, что если бы Спек- трум был разработан по-человечески, то многих бы проблем сейчас просто не существовало. Не надо се- бя обманывать, ведь даже не в аппаратных возмож- ностях дело, сама идеология компьютера устарела! В том виде, в каком сейчас существует Спектрум, его развивать бессмысленно - очередная доработка ниче- го не изменит, наоборот - машина станет еще хуже. Нужны качественные изменения. Ведь Спектрум разра- батывался, как дешевый игровой комп, а мы сейчас с него справляем, как с профессиональной машины. Даже сам Клайв Синклер к 1984 году потерял к не- му интерес, потому что он уже тогда морально ус- тарел, а мы же все еще сидим и что-то пытаемся из него сделать.... Почти такими же примитивными, как ZX-Spectrum 48, были и его конкуренты - C64 и Atari. Но эти фирмы вовремя одумались и выпустили совершенно но- вые 32-х разрядные модели, не имеющие ничего об- щего со старыми 8-и битными. 32-х битный Spectrum QL провалился, конечно, очень жаль... За разработку нового ZX взялась фирма Amstrad, выпустив опять крайне неудачные модели Sp128+, +2 и +3. Они очень недалеко ушли от Спектрум 48, а цена выросла зна- чительно - объемы продаж говорят сами за себя. А ведь была же возможность сделать хороший, хоть и 8-битный, новый Спектрум. Взяли бы CPU Z-180 или Z-280, которые почти полностью совместимы с Z80, при этом более производительные и памяти адресуют 1Мб и 16Мб соответственно. Некоторые программы на этих процессорах не пошли бы, но не велика потеря. На новый комп можно было установить нормальную ОС, для поддержки старых программ можно было сделать что-то типа эмулятора, хотя, если посмотреть, то до 85 года хороших игр, можно сказать, и не было. Да, много чего можно было сделать. Вместо этого состряпали нечто под названием Spectrum 128K - яв- но разрабатывалось это "после вчерашнего". То, что было сделано в этой модели - сделано наспех и не самым лучшим образом. В той же Ямахе и память ад- ресуется удобней, и нет таких ограничений, как на Спектруме... В последнее время во многих электронных из- даниях поднимались вопросы дальнейшего развития Спектрума, сравнения разных моделей на предмет "крутизны", и кое-где начали понимать, что ОС, в об- щем-то, нужна. И, спросив кого-либо, слышал ли он об операционных системах, можно получить ответ: "Слы- шали, слышали" - имея в виду TR-DOS, iS-DOS, CP/M или MS-DOS. Но, обо всем по порядку. То, что TR-DOS вообще не является операци- онной системой, написано даже в фирменном руковод- стве (читать инструкции иногда оказывается полезно) это просто дисковый интерфейс. Когда задумывался этот интерфейс, то главной задачей было максималь- но приблизить его к кассетному, т.е. чтобы все опе- рации были как можно похожи на аналогичные "кас- сетные". Смысл интерфейса - просто транслировать кассетный ввод-вывод на диск. Но даже это получи- лось довольно убого - абсолютно все программы нуж- но переделывать, а относительно легко перегонялись лишь самые простые программы с загрузчиками на Бейсике. Забавно, но когда народные умельцы воссоз- давали BETA-DISK на "наших" комплектующих, видимо из соображений совместимости с ПЗУ 90 года, окно входа в TR-DOS было передвинуто на 256 байт впе- ред - на начало знакогенератора (с адреса 3C00H на 3D00H). Это легко заметить, просматривая програм- мы, "скинутые" Multiface-128. В "старом" Бейсике таких программ, бывает, остается загрузчик, где вид- но, что TR-DOS вызывается командами типа: RANDOMIZE USR 15363:REM:LOAD "file" CODE Исходя из этого, становится понятно, почему нет ни одной (!!!) программы в TR-DOS, пришедшей к нам с Запада - они просто не стали работать. Ин- тересно и то, что beta-disk - это самый плохой из дисковых интерфейсов, когда-либо созданных для ZX- Spectrum, и он у нас прижился! Да еще и в ошибоч- ной реализации. То ли у нас страна такая, что при- живается в ней только самое плохое???.... И, в общем, TR-DOS напоминает монитор Спек- трума, т.е. имеет те же самые недостатки. При этом занимает целых 16К - хотя для такой "системы" и 2-х килобайт много. Вызовы по 3D13h - это не BIOS (т.е. примитивно даже для BIOS) и уж, тем более не DOS. Если вы не ламер, то со мной согласитесь. Как и Бейсик, ПЗУ TR-DOS развивать практически невоз- можно - опять начнутся проблемы (не)совместимости. Другое дело iS-DOS - идет на любом Спектру- ме, работает довольно быстро, вот и кричат некото- рые: "iS-DOS - бест оф зе бест!!!!" - не вполне пони- мая смысл этих слов. Хотя она довольно быстро пе- репечатывает файловые панели, работает с подката- логами, имеет внешние команды и др. В общем, соз- дает полную иллюзию, что на вашем компьютере ра- ботает ОС, но стоит заглянуть в руководство прог- раммиста - как все станет ясно - это просто фан- тик, пустышка, вас нагло обманули! Никакой ОС и в помине нет. А если вы, взяв это руководство, подой- дете к более-менее подготовленному программисту на Амиге или PC и начнете ему доказывать, что iS-DOS это операционная система (я уж не говорю крутая), то, в лучшем случае, он покрутит пальцем у виска (или позвонит 03). Все что там есть - набор функ- ций для рисования окошек, вывода текста и ввода символов с клавиатуры. Файловая подсистема (часть ОС, управляющая файлами) отсутствует напрочь. Так- же, нет и системы управления памятью, то что сде- лано - находится в зачаточном состоянии. И если это сравнить, например, с MS-DOS, то это уровень BIOS, т.е. просто драйверы устройств. Да и как драйверы они неполноценные: нет четкой структуры, единообра- зия входных и выходных параметров, возможности под- ключения пользовательских драйверов (как на PC). В нормальных системах все низкоуровневые процедуры составляют систему BIOS, а для подключения расши- рений (подключаемых драйверов) существует опреде- ленный механизм, в iS-DOS же полный бардак. Нет не то чтобы четкой, вообще нет никакой структуры, а ведь именно со структуры и начинают писать сис- темы.... Прежде чем писать ОС, нужно сначала потру- диться узнать, что это такое и как работает. Помню, как они меня с этой системой обломи- ли. Прочитав в рекламе: "...Новейшая ОС! ...подкатало- ги, ...просто не верится, это невероятно!" - я конеч- но обрадовался и сразу же побежал на почту заказы- вать базовый комплект (через Инфорком, разумеется). Каково же было мое разочарование, когда я на все это посмотрел - это просто неописуемо. Так обло- мать! Еще и форматтера не было, но, кстати ска- зать, этот базовый комплект я скопировал в первый же день ихней же утилитой ARZT (или Doctor, не помню уже, как она называлась), такие вот дела. Я, конечно же, ничего не имею против авторов этой программы - они проделали огромную работу, но, к сожалению, все впустую.... Теперь остановимся на системе CP/M. Многие, (не все, конечно), кто видел CP/M на Профи, почему то уверены, что CP/M - это собственно панели фай- ловой оболочки CopyK, хотя это, конечно же, не так. Интересно, но аналогично судят и о MS-DOS по обо- лочке Norton Commander. Видя, как тормозит CopyK, многие скажут: "CP/M - это говно!". Но дело все в том, что CopyK - это просто программа, работающая под CP/M - и то, что она коряво написанз, не озна- чает, что CP/M плохая система. Это только означа- ет, что CopyK - тормозная программа! Да и CopyK надо отдать должное, в то время, когда он был на- писан (92-93г), на Спектруме ничего (!!!) подобного не наблюдалось, хотя, в общем то и сейчас ситуа- ция не сильно изменилась. ОС CP/M - это надстройка над аппаратурой компьютера, посредник между программой и устройс- твами. В распоряжении программиста оказывается на- бор функций, значительно упрощающий написание про- грамм. Те, кто дискетировал игры в TR-DOS, не по- верят, насколько легко работать с файлами даже в стандартной CP/M (о расширенных версиях я и не го- ворю). Система предоставляет простоту и удобство работы с файловыми структурами. Программа, работа- ющая через CP/M, будет работать на дискете, вин- те или электронном диске - для работы на другом устройстве ее надо просто туда скопировать и ни- чего не нужно переделывать. Сложные манипуляции с секторами, дорожками, командами контроллеру - все это берет на себя ОС. Вы же занимаетесь непосред- ственно решением поставленной задачи, а не воссоз- даете некоторые фрагменты ОС в каждой своей про- грамме (а как известно, квалификация у всех прог- раммеров разная...). * ПРОДОЛЖЕНИЕ СЛЕДУЕТ * ─────────────────────────────────────────────────└─ фрагменты ОС в каждой своей про- грамме (а как известно, квалификация у всех прог- раммеров разная...). * ПРОДОЛЖЕНИЕ СЛЕДУЕТ * ─────────────────────────────────────────────────└─ вободной от интры области ;- Зачем ? ;- Не знаю ! (C) 1998 Чертков В.Ю. Music: SPECIAL COMPOS' by KENOTRON'96 ─────────────────────────────────────────────────── ╔═════════════════════════════════════════════╗ ║ ║ ║ ZX-Spectrum и операционные системы (ОС) ║ ║ (окончание) ║ ║ ║ ╚═════════════════════════════════════════════╝ Теперь о визуальном сравнении систем. Дело в том, что "увидеть" операционную систему нельзя, т. к. это просто набор функций - это не программа ти- па музыкальной демонстрации - которая рисует что- то на экране под музыку - это совсем не то... Сис- темы можно оценивать только по их возможностям (как уже существующим, так и возможным в будущем). Хотя, вроде было такое! В журнале ZX-Format N4 Ne- mo, размышляя о Спектруме, привел сравнение сущес- твующих систем для ZX. Сравнивались CP/M, iS-DOS, TR-DOS и MagOS (!). Nemo, не глупый вроде бы чело- век, статьи хорошие пишет, но как он додумался сра- внивать CP/M с MagOS? Это все равно что сравни- вать самокат с "девяткой". Ведь человек, не очень в этом разбирающийся, после прочтения той статьи мог подумать, что программа MagOS на Скорпионе - это система, сравнимая по уровню с CP/M. Это же просто дико! Да и вообще, в этом ряду CP/M - это единственная операционная система, поэтому мне во- обще непонятно, как их можно сравнивать. Несмотря на все это, в сравнении этих систем победила, как вы думаете, какая? Да, все правильно, iS-DOS! У CP/M, оказывается, и интерфейса нет (ин- тересно, как же она тогда вообще работает?), и сег- ментированных и "длинных" файлов. Ошибаетесь, все это есть, потому-как не может не быть. Единствен- ное, в чем прав Nemo - подкаталогов в обычной CP/M действительно нет, но зато есть области пользова- теля - USER'ы. Согласен, что работать в командной строке не очень удобно, но никто же не заставляет работать исключительно в ней (вы в MS-DOS тоже так работаете?) - пишется файловая оболочка, и все становится очень круто! Главное, что не учел Nemo: CP/M - это настоящая ОС, а как следствие, способ- на к развитию и совершенствованию (пример тому - система DOS 4.0 (на Профи) совместима с CP/M и подкаталоги поддерживает). Я конечно понимаю, что iS-DOS создана в родном для Nemo городе, но все же, нельзя же быть из-за этого таким предвзятым. Читая разные электронные журналы и газеты, я заметил интересную тенденцию: многие соглашают- ся, что ОС Спектруму нужна, но при этом каждый хо- чет создать свою собственную систему (естественно, VERY BEST), не имеющую ничего общего с ранее су- ществующими. Так как, по их мнению, все старые системы - фуфло. Как правило, это люди, уже добив- шиеся определенных успехов: создали несколько дем (возможно, и очень крутых), интрух, дискетировали множество программ и пр. Но, смею заметить, что если вы написали хоть 50 суперкрутых демо, это не означает, что вы создадите хоть одну операционную систему (обратное, кстати, тоже верно). Все же про- цесс написания демки и ОС немного отличаются. Мно- гие просто не понимают, насколько сложно разрабо- тать ОС с нуля. Ведь необходимо полностью проду- мать структуру системы, например: 1 Как она будет взаимодействовать с программами, внешними устройствами и своими собственными компонентами; 2 Как будет организована внешняя память (в виде файлов или как-то иначе); 3 Как система будет распределять ОЗУ, в том чис- ле расширенное; т.е., как она будет управлять па- мятью; 4 Если система будет управлять файлами, то будет ли использоваться какая-либо из существующих файловых систем (экстентная CP/M, FAT, NTFS, HPFS или другая) или будет разработана совер- шенно новая файловая система. 5 Какой статус будут иметь запускаемые програм- мы: последовательные или параллельные процессы, замещаемые модули или что-то другое. 6 В какой форме будет вестись диалог с пользова- телем: в виде командной строки, меню или пикто- грамм. В этом списке я привел первое, что пришло на ум, в нем многое не учтено! Кроме того, программы управления внешними устройствами (драйверы) должен писать человек, хотя бы немного разбирающийся в hardware (желательно - хорошо). Возьмем к примеру драйвер клавиатуры. Некоторые могут сказать: "Нет ничего проще", и будут, естественно, неправы. Сколь- ко я насмотрелся в тех же самых демах и эл. жур- налах, как криво опрашиваются клавиши! Тут и неус- траненный дребезг, завивисимость скорости повтора (repeat) и задержки перед первым повтором от так- товой частоты CPU и другие недоработки. Когда у автора программы клавиатура герконовая, он и знать не знает, что существует такое понятие, как "дре- безг" клавиш (надо понимать физику явления). Пишет преспокойно программы, они у него нормально работа- ют, но только у него. На других же компах - это сплошной глюк. Или другой пример - процедура загруз- ки блока с магнитофона (та самая 1366 или #0556), многие ли понимают ee досконально? A ведь это бы- ли самые простейшие примеры, а есть еще расширен- ная память (тоже там не все так просто, как может показаться), мышь, диски (это вообще очень сложно), другие устройства... Драйвер устройства должен вы- полнять функции абсолютно корректно независимо ни от чего, т.к. это его прямая обязанность - для это- го он и написан. Написать подпрограммки, абы-кабы работающие, не составляет труда. Модули, работаю- щие хорошо не только на машине автора, а вообще в любых условиях, создать гораздо сложнее, да еще, при этом они должны занимать как можно меньше па- мяти и работать как можно быстрее. На разработку и реализацию новой ОС может уйти года 2-3, не считая времени, потраченного на тестирование, исправление ошибок и пр. Кроме того, в абсолютно новой системе не будет ни ассемблеров, ни отладчиков, ни языков программирования высокого уровня - вообще ничего. Спрашивается, кому и зачем такая система нужна, будь она в 10 раз круче MS- DOS, Windows NT или AmigaOS? К примеру, при создании MS-DOS, авторы не стали ломать голову, а просто взяли за основу CP/M и улучшили ее. Почти все ПО от CP/M было легко пе- ренесено в новую ОС (даже была специальная утили- та, которая позволяла переводить исходные тексты на ассемблере i8080 в тексты для процессора i8086). Новые системы для 8-ми разрядных компьютеров, по- явившиеся после создания CP/M, как правило, были с ней совместимы. То есть, система представляет со- бой CP/M + "кое-что еще" на усмотрение разработчи- ка. Потому как, создавая совместимую систему, не нужно заботиться о базовом ПО, так как оно уже создано: есть и крутые ассемблеры, и отладчики, и языки выского уровня. Таким образом, создавать аб- солютно новую систему для 8-ми разрядного компью- тера, не совместимую с CP/M, совершенно бессмыс- ленно. Есть и еще один очень важный момент. Дело в том, что абсолютно все программы для ZX-Spectrum были созданы с учетом того, что ОС на компьютере нет. Из этого, в частности, следует, что, появись любая ОС, в ней программы для Спектрума работать не будут (вспоминаете iS-DOS). Все проги для ZX пи- шутся на "голом" компьютере, используя всю доступ- ную память. Программы же, работающие под управле- нием любой ОС, определенным образом ограничены: они испольуют только доступную память; для выполнения определенных действий вызывают ОС; после заверше- ния работы передают управление ОС, а не обнуляют память и пр. Таким образом, сам собой напрашивает- ся вывод: Спектрум и любая ОС несовместимы! Поло- жение, казалось бы, безвыходное, но все же я вижу решение проблемы. Начнем, с того, что интерфейс TR-DOS - это нестандартное устройство, его не поддерживает ни один западный эмулятор Спектрума на PC, хотя под- держивается практически вся периферия, когда-либо существовавшая на ZX. Стандартом же является, как это не странно - магнитофон, вернее, в эмуляторах это образы ленты - tap-файлы. Эти файлы "понимает" любой эмулятор, кроме того, его в любой момент мо- жно записать на настоящую ленту и загрузить на настоящем Спектруме... Это, так сказать, первый мо- мент не в пользу TR-DOS. Ни для кого не секрет, что программ, нормаль- но переведенных с ленты в TR-DOS, практически нет, в каждой можно найти хоть маленький, но глюк (то блоки подпорчены, то картинка, то с другого диска не хочет грузиться, то не "понимает" односторонне- го дисковода, то выгрузка на диск не работает). А программы на ленте вполне нормально работали, безо всяких проблем... Мало того, что с Запада программы приходят все поломанные, при переносе в TR-DOS они еще раз калечатся. Редко бывает, что программа "чи- сто" перенесена - то в одном проблемы, то в другом. А это, уже второй момент. Таким образом, в перс- пективе, можно вообще отказаться от интерфейса TR-DOS, вернувшись "обратно на ленту" - но на но- вом уровне!
Другие статьи номера:
Похожие статьи:
В этот день... 7 октября