Кодерам - Многозадачность и ОС. Дискуссия.

ZX Time #03

МНОГОЗАДАЧНОСТЬ И ОС. ДИСКУССИЯ

(С) Денис Токарчук

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


Итак, слово DJ Blast'у:

DJ Blast:

...Статья о многозадачности и ОС. Там есть довольно грубый наезд на ПЦ (не сочтите меня злобным писишником, но нужно восстановить справедливость!). Было сказано следующее (может, я ошибаюсь в формулировке, но смысл такой):

"...на ПЦ многозадачность реализована чисто программно... и из-за этого появляются уродцы типа Windows..."

Не буду защищать Вынь — вещь действительно корявая до безобразия. Но вот остальное... Чтобы делать такие заявления, необходимо по крайней мере достаточно четко представлять предмет разговора, а я сомневаюсь, что кто-либо из вас хотя бы краем глаза видел фирменное описание процессоров семейства x86.

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

DWT:

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

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

А теперь представьте, что ресторан — это PC, повары — производители операционных систем, вкусный суп — допустим, Linux, невкусный суп — Windows. Из-за этого Windows'а и испортилась (в глазах спектрумистов и (!) профессионалов) репутация писюка, а все из-за того, что говоря "писюк", подразумевают "Windows", говоря "Windows" — подразумевают писюк. Так рассуждал и я.

DJ Blast:

По поводу ОС на ZX скажу только: количество уже существующих ОС заметно превосходит количество программ, которые написаны для работы под ними (по памяти — iX-DOS, IS-DOS, PEOS, MythOS... еще?). Так почему вы думаете, что новую ось постигнет иная участь?

DWT:

Спектрум — железка достаточно непредсказуемая, и к нему приживаются иногда совсем неожиданные вещи. Возьмем упомянутый IS-DOS. Если присмотреться, то эта ОС довольно корявая — конечно, не примитивнее, чем TR-DOS, но... И тем не менее IS-DOS имела и имеет определенный успех...

И еще — мощности Спектрума уже не сопоставимы с мощностью ОС, поэтому и необходима удобная и сравнительно простая в обращении система, которая с легкостью общалась как с устройствами, так и с программами.

DJ Blast:

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

DWT:

Неужели? А если писать (или адаптировать) программы под определенные требования, выдвинутые ОС (касаемо памяти и устройств), или же вообще все заботы по распределению памяти и обращению к устройствам возложить на плечи операционки?.. Да, если бы мы реализовывали параллельную (вытесняющую — меня поправили) многозадачность (ZXT #2), то тут конфликтов не избежать. Но мы же говорим о кооперативной многозадачности...

DJ Blast:

Язык высокого уровня. Не вижу смысла. Зачем изобретать велосипед? Придумывать компилятор... Было довольно много попыток реализовать компилируемый язык высокого уровня на ZX — Паскаль, Си, Бейсики разных видов, Форт и т.д. Ни один из них не выдерживает никакой критики по скорости работы полученного кода. Давно для всех очевидно, что более-менее приличную программу на ZX можно написать только на асме.

DWT:

Велосипед никто не изобретает. Повторюсь, Спектрум — довольно своеобразный компьютер, и для него нужен своеобразный язык. Наверное, я в ZXT #2 неправильно выразился. Скорее всего, это был бы некий сборник разных необходимых для программирования процедур, к которым можно было бы обращаться в ПЗУ, где, как известно, скорость выполнения несколько выше, чем в ОЗУ.

Обращаться к этому "сборнику" из ассемблера несколько неудобно. Для этого и делается некое подобие языка высокого уровня (скорее, "подвышенного"), где ассемблер смешивается с командным интерпретатором этого самого языка... После написания в нем программы и после ее компиляции получается тот самый код, которому наплевать, где ему находиться (в каком адресном пространстве) — программа, сидящая в ПЗУ, обрабатывает (компилирует) код относительно адреса, в котором он находится.

DJ Blast:

В качестве довода в пользу языка высокого уровня приводится мысль, что он облегчит написание релоцируемых программ (так это правильно называется). Вряд ли. На асме это реализуется достаточно просто. Как? Создаем таблицу перемещаемых элементов, и при загрузке настраиваем все переходы по этой таблице. Всего-то и нужно, что универсальный загрузчик таких программ, встроенный в ОС...

DWT:

Представьте: программа занимает 100 килобайт. Интересно, сколько памяти займет таблица перемещаемых элементов? Да и вообще, кто мешает в ОС встраивать модули для релоцируемых программ, написанных на ассемблере?.. В принципе, я об этом и говорил — ОС должна быть универсальна во всех отношениях. Мы не должны повторять ошибок TR-DOS'а, одна из которых (самая гадкая) — ограниченность возможностей, порожденная неуниверсальностью.

DJ Blast:

Кстати. Вы видели Real Commander 2.0? Рекомендую посмотреть. Довольно неплохая операционка, если вдуматься, причем многозадачная!

DWT:

Ха-ха... А хотя... почему бы и нет? Элементы многозадачности есть. Но минус: Real Commander — вещь узкоспециализированная...

DJ Blast:

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

DWT:

Хм... А где наезды? Огромное спасибо за... это даже не критика, а конструктивная и интересная дискуссия. Я думаю, что подобные дебаты необходимы нам, вам, и прежде всего Спектруму. Как воздух, если хотите...


Ведь основная (на мой взгляд) ошибка производителей ОС под Спектрум — это то, что их идеи не были известны до самого появления продукта. Их не обсуждали, не критиковали, не дополняли... Ведь прежде чем продавать что-нибудь, обычно исследуют рынок. Изучаются его способности, потребности, пожелания. На это тратятся немалые деньги; этому посвящаются многие годы...

А что производители ОС'ов под Спектрум? Они обычно плюют на это и, будучи убежденными в уникальности и неоспоримой нужности плодов своих фантазий, выпускают — уже мертвые — проекты. Ведь они (проекты ОС'ов) сваливаются как снег на голову, и делай с ними что хочешь.

Ладно, если это не надо "зашивать" в ПЗУ (однако нормальной ОС под Спектрум "подгружаемым путем" не сделаешь — надо обязательно иметь ее в ПЗУ). А если надо?.. Ведь это определенные затраты времени-денег на зашивку-перезашивку ПЗУ. А если ОС не будет поддержана производителем ПО? (Как это обычно и случается на Спектруме). Опять тратить кровные на зашивание ПЗУ'шки?..

Вот и получается "замкнутый круг" — пользователь (потребитель) не пользуется ОС из-за ее бедного программного окружения; производитель ПО не поддерживает ОС из-за ее низкого рейтинга у пользователя...

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

(Продолжение, возможно, последует...)

Продолжим разговор, читатели?

Поделитесь вашим мнением о статье