ZX Time
#04
17 ноября 2001 |
|
Дискуссия - "реализация многозадачности и ОС на спектруме".
Дискуссия. О многозадачности. ──────────────────────────────────────── DJ Blast Баталии развернулись с небывалой силой -------------------------------------- DJ Blast^TNL InSys представляет Вашему вниманию очередную партию своих мыслей на тему "Ось на ZX". Как говорится, хо- тели дискуссию - получите, кто не спря- тался, я не виноват! К сожалению, диск с ZXT#3 посетили инопланетяне, поэтому буду цитировать по памяти, сорры, если где ошибусь... Во-первых, очень печально, что для многих людей слова Windows и PC стали практически синонимами. Мне искренне жаль тех людей, которые неспособны про- вести различие между ПЛАТФОРМОЙ и ОПЕРАЦИОННОЙ СИСТЕМОЙ (просьба не воспринимать данную фразу как оскорбле- ние)... Предлагаю на этом закончить об- суждение этого вопроса как не относяще- гося к тематике ZXTime (ключевое слово все-таки ZX!). Что касается IS-DOS, то из своего опы- та работы с ней (небольшого, к сожале- нию... или может к счастью?) я могу сде- лать вывод, что единственной заслуживав- шей внимания вещью в ней был только тек- стовый редактор. К тому же, чтобы рабо- тать в IS-Dos, требовались стальные нер- вы и чугунный дисковод, и даже в этом случае работа напоминала сеанс садомазо- хизма... Хотя, это было так давно, мо- жет, с того времени что-то изменилось? Возвращаемся к Relocation Tables. Фра- за "А если программа имеет длину 100К?" выглядит весьма забавно. Интересно,где же это вы нашли такую программу? :) Даже в Черном Вороне обьем ИСПОЛНЯЕМОГО КОДА значительно меньше. Но в любом случае, даже если и 100К, то одним блоком такую программу загрузить не получится чисто физически. Нужно ведь страницы листать. Отсюда вывод: держи пиво в холоде... Ой!!! что это я??? Вот блин! Вывод та- кой: любая программа все равно будет грузиться блоками. И настраивать можно каждый блок в отдельности. И вообще, те блоки, которые будут находиться в стра- ницах верхней памяти, настраивать не нужно, все равно все страницы начинаются с одного адреса. О структуре оси можно спорить очень долго. Например, есть мнение, что ось на спеке должна представлять собой только драйвер дисковых операций (в том числе и с винтом!) и новую файловую систему. А вот компилятор языка, тем более динами- ческий, как вы предлагаете, имхо идея вообще весьма и весьма непродуманная. Это же такой тормоз будет! Даже на ПЦ, где мощность проца намного выше, такие языки не применяются. Любой подобный язык потребует универсализации его опе- раторов, а чем выше универсальность, тем меньше скорость. В доказательство: посмотрите на игрушку "The Double". Она откомпилирована с какого-то языка высо- кого уровня (уж не знаю с какого). Ну как? Голова не кружится от скорости? ;) А при динамической компиляции будет еще хуже. Насчет "Подвышенного уровня". Я понимаю, ZXASM_3.10 rulez 4eva (сам им пользуюсь :), но там речь шла только о системе макросов, да и то в качестве шутки. Вот с одним я могу согласиться: нужен набор стандартных процедур и стан- дартный интерфейс с ними, то есть стан- дартные точки входа, но и только! Вызы- вать их из асма будет гораздо удобнее и нагляднее, чем из любого языка более вы- сокого уровня. В завершение данного раунда ;))) хочу выдвинуть идею. Возможно, нечто подобное уже было, но я не знаю. Выкинуть ПЗУ Basic128 (что само по себе и не ново) и заменить его комбинацией ПЗУ и ОЗУ. Поясню: допустим, в адресах #0000..#03FF будет ПЗУшка с зашитым загрузчиком оси, а остальные адреса (#0400..#3FFF) - ОЗУ, в которое будем грузить ядро оси с дис- ка. Этого было бы достаточно, но к сожа- лению иногда встречается очистка экрана примерно таким способом: ld hl,23297 xor a l1 dec hl ld (hl),a or (hl) jr z,l1 ... Для нашей оси это закончится весьма и весьма печально. Поэтому нужно добавить порт для защиты нижней памяти от подоб- ных посягательств. Имеется в виду, что в зависимости от состояния данного порта будет разрешаться/запрещаться запись в адреса #0000..#3FFF. Пример: ;Some example of OS loader: ld bc,port ;адрес порта уп- ;равления защитой ;памяти ld a,1 ;разрешить запись out (c),a ;без комментариев ld hl,#0400 ;\ ld de,adr_on_disk ; \ ld b,sec_len ; } загрузка ld c,load ; / call disk_driver ;/ ... ld bc,port xor a ;запрет записи out (c),a ... Все это безобразие потребует доработки железа, но "если ничего не дорабатывать, то что вообще можно получить?" (c)Steel Drugon. Я не железячник, но знающие люди говорят, что такая доработка реализуется достаточно просто. А если учесть, что большАя часть спектрумистов сидит на эмуляторах, то можно просто обратиться к авторам эмуляторов с просьбой поддержать данный вариант. К достоинствам такой оси можно отнести то, что каждая новая версия не потребует перешивки ПЗУ, и вообще, каждый конкрет- ный пользователь сможет без особых проб- лем пропатчить ось для своих черных це- лей. Опять же, все системные переменные можно будет хранить в теле самой оси, оставив всю основную память программам пользователя. Да и вообще, можно приду- мать еще массу применений этой памяти, даже если ось не нужна... На этом пока закончу. Интересно узнать мнение читателей о моём предложении. До встречи в эфире :) - - - Комментарии от DWT: Я рад как ребёнок:). Всё-таки много- задчность, ОС и даже язык под_вышенного уровня вызвали реакцию в массах. Значит людЯм небезразлична судьба Спектрума, как живого компьютера, где помимо высо- ких технологий программированния, кото- рые уже, кажется, достигают своего максимума, развиваются и технологии "стыковки 'человек-компьютер'". Спорить о структуре ОС можно, действительно, очень долго. Для чего мы, собственно, и заварили эту кашу... Замечание о невозможности различить ОС и платформу проигнорирую. Преступлю сра- зу к рассуждениям о языке высокого уров- ня. В какой раз я это говорю: СПЕКТРУМ - ЖЕЛЕЗЯКА СВОЕОБРАЗНАЯ, ПОЭТОМУ ЕМУ НУЖЕН И СВОЕОБРАЗНЫЙ, ОСОБЫЙ ЯЗЫК. Пусть этот язык будет структурно похож на ассемблер и даже чем-то его напоминать, дублиро- вать. Пусть это будет даже ассемблер, в котором будут расширены макросы... Очень рад, что программы в сто кило- байт позабавили нашего читателя. А чтобы он вообще разорвал себе живот со смеху, признаю, что я был в чём-то не прав. Я просто не вдумался в суть и не прикинул объёмы relocation tables. Извиняюсь, по- горячился. Идея о замене части ОЗУ ПЗУ'шкой уже не нова. Однако, при её реализации дей- ствительно развязываются руки и появ- ляется возможность клепать разные ОС'ы на любой вкус. Идея весьма интересна, ведь тогда, при её реализации, каждая игра (допустим) сможет иметь собственную ОС, подогнанную под её собственные тре- бования. Сразу скажу DJ Blast'у - один единомышленник в плане идеи о ПЗУ+ОЗУ у тебя есть:). * * *
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября