* * *
Что такое ОС? Нет, это не "балшой полосатый мух", и не то, вокруг чего вертится "Зэмл". Операционная система, посредник между счастливым пользователем и суровым процом. Который переваривает исключительно шестнадцатеричные символы. О том, что он их еще потом на двоичные разбирает — лучше даже не задумываться. И так страшно — привычные числа, совпадающие с цифрами продолжаются только с нуля до девяти. Дальше йок — 0A. И абвгдейка до 0F, пятнадцать. Ужас. Число 255 выглядит как FF.
Программировать в таком режиме можно и нужно — так делаются лучшие игры, полностью используя возможности процессора. Но для 99 % обычных людей компьютер не должен быть пугалом.
Для того и нужна система, служащая прокладкой между кремниевыми и белковыми мозгами — переводящая требования человека в строгий ряд машинных команд, и ответ в удобную для восприятия форму.
В древних компах это было реализовано совсем простейшим образом, точней почти никак. Загрузка-выгрузка кода программы, тип носителя не важен — от перфокарт/перфолент (бумажки с дырочками, несущими информацию) до первых винчестеров. Программа загружается в ОЗУ и работает. Но рано ли поздно, этот процесс решили упорядочить.
Самым ярким образцом стала система CP/M — расшифровывается как "Контрольная программа/монитор для микрокомпьютеров", живет аж с 1973-го года. И процветает, до сих пор — несмотря на то, что молодой и хитрый Билли Гейтс, обработав её напильником, выпустил в 1981 м году свой MS-DOS. На первых порах успех слабоват, используется только в машинках IBM.
Ну а в мировом зоопарке компов каждый производитель делает свой букет. С точки зрения процессора и пользователя например наш, прошитый в ПЗУ "Спектрум+" Бейсик тоже операционная система. Причем не самая худшая — поддерживает работу с кучей устройств хранения данных, запуск программ в машинном коде, интерактивный диалог с пользователем. Например команда SAVE m1 "Program" при отсутствии микродрайва — вежливо пошлет нафиг…
Ну а теперь, с появлением все более навороченных машин во весь рост встала проблема, ея величество Многозадачность. Задумчивое такое название, а к результатам её работы все давно привыкли — работаем на компе, слушаем музыку и одновременно качаем из инета фсякую фигню. Простейший пример, но задуматься над тем, как это возможно — голову поломать легко.
В старых машинках было все просто, как у нацистов — один процессор, одна память, одна программа, и ниипет. Если что — восемь бед, один ресет. Поздней, уже на Спектруме с расширением, или на "плюсе" была фактически введена простейшая пофигическая многозадачность. Т. е. какая-то программа радостно работает, до определенного события. Например если ей приспичило данные записать на микродрайв. Тут она резко стопорится, из теневого ПЗУ радостно выползает программа-контроллер, кушает данные, делает работу. И снова тихо уползает, передав назад управление программе в основной памяти.
Но сейчас задачка стоит посерьезней — тут уже нужно думать. И нам, и процессору, и программам. Будем использовать приоритетную многозадачность.
То есть куча программ бодается за процессорное время и доступ к памяти, внешним устройствам. Естественно это надо контролировать, и висит постоянно в памяти ядро ОС.
Способное при необходимости раздавать пендели остальным процессам, и вырубать их если нужно. На текущем уровне, при мизерных объемах ОЗУ казалось можно было бы и обойтись — живут же "ПиСи-шки" под однозадачным ДОС-ом. Но зачем плодить себе же в дальнейшем проблемы? Анахронизмы MS-DOS торжественно прошагают аж в следующее тысячелетие. Как в том анекдоте: "Папа, а правда Виндовс многозадчная ОС? Правда, сынок. Паапааа, а покажи! Сейчас, только подожди пока дискету отформатирую…"
К тому же при создании "Квантового Скачка" мы твердо взяли курс на многопроцессорную архитектуру. И полноценно использовать ее без многозадачности будет невозможно. Так что прошитый в ПЗУ "Диспетчер процессов" работает с максимальным приоритетом, управляя всеми остальными программами, раздавая им ресурсы согласно приоритетам. Он же аппаратно работает с девайсами реального времени, например с мышкой. Хотя немножко неточно сказал — там записана целая QLOS, занимая почти половину из 64кб ПЗУ. Мы долго решали, как быть с возможными ошибками и апгрейдами. Использовать перезаписываемое ПЗУ? Слишком дорого, годится только для тестовых машин. И на них старались отловить все баги, отладить все варианты. Но все равно, на серийных машинках, если перевернуть — снизу была маленькая крышка. При необходимости можно открутить два болтика и заменить ПЗУ, без потери гарантии. На исправленное, хотя к счастью не потребовалось — или проапгрейженное. Например ёмкостью в несколько раз больше, и с драйвером жесткого диска. Ну, это я немного вперед забежал. Кроме собственно контроллера процессов в ПЗУ был прошит привычный язык программирования, бейсик. Привычный, да не совсем — по своим возможностям он был велик и могуч.
А история его создания была весьма веселая. Мы его тихонько начали делать еще с начала 83-го, стараясь сделать как можно лучше. Но в один прекрасный сентябрьский день папик, до того спокойно читавший свежий номер журнала "Синклер Юзер" вдруг подпрыгнул. И спешной походкой пошел к ближайшему телефону, бурча при этом "восемьдесят пятый, восемьдесят пятый. Ламеры википедовские!". Естественно я увязался следом. Ну а пока ехали — послушал дивную историю. Оказывается, была контора, сделавшая для старичка "Спектрума" супернавороченный диалект Бэта-Бейсик. На нем с нуля практически можно было хорошие игрушки делать, но отец считал, точней читал — что выпущен он будет только в 1985. А тут в журнале рекламка, фирма "BetaSoft", адрес. Вот мы и на месте. Хм. Обычный дом. На звонок открыл представительный такой дядька. Сразу удивил, заявив "А, мистер Пупкин энд Джуниор! Вэлкам!". Оказалось вся контора состояла из одного человека, весьма веселого и даже гениального — доктора Энди Райта. И, когда мы предложили участвовать в разработке языка для новой машинки — джентльмен с радостью согласился. Однако упорно отстоял независимость своей фирмы, заявив что это дело чести. Ну, это его право, а работу он сделал "на отлично", заимев некислый профит сразу, и дискеты с компилятором продавать будет потом. Кстати может так и лучше — собирать все яйца в одну корзину не стоит, закостенеть можно и вымереть как динозавры.
"Фирменный" ввод команд не по буквам, а комбинацией кнопок убрали — когда то он был выгоден и удобен, особенно при дешевой клавиатуре. А сейчас количество команд выросло, и вводить их таким способом стало непросто. Зато ввели в мировую практику программирования, да и не только — систему интеллектуальной подсказки при наборе. Нажал пользователь кнопку "R" — машинка ждет, что дальше. А вот если он нажмет следом "A" — варианты резко сужаются, и она пытаясь предугадать желания человека, продолжает команду "RANDOMIZE" например. И ждет подтверждения. Запатентовали конечно, а как же! Вообщем над языком постарались как следует, приятную среду программирования сваяли.
Синклер долго хотел обозвать её Super-Basic-ом. Действительно супер — структурированный, фактически объектно-ориентированный, язык был хорош. Но давать такие радикальные названия не стоит, заявил Батя, иначе потом ничего лучше не сделаем. Так что 32кб в постоянной памяти занял QBasic. Не понял только, почему папик так это название отстаивал? На прямой вопрос ответил туманно — "пусть Билли другое придумает…"
Остаток ПЗУ занял файловый менеджер, что то вроде несуществующего еще Нортон-коммандера. Два окна, куча функций для работы с файлами, поддержка всех мыслимых устройств — даже с магнитофонной кассеты каталог может снять… Минут за 90. Он с диспетчером процессов был тесно связан — ведь память тоже можно как RAM-диск рассматривать.
А где же привычные "окошки"? А нету их, рано. Слишком большое баловство тратить на них память, пока. Хотя графические оболочки уже есть, например на первых Эплловских "Макинтошах" — Стив Джобс как всегда жжот. Ну и у ближайших конкурентов скоро будут, "Workbench" на Коммодоровской "Амиге" и TOS на новенькой 16-битной "Атари". И Билли, который Гейтс, тоже подтянется, с "Виндой" образца 1.0!
Но на текущий момент все эти красоты с окошками — баловство. И для Спектрума подобие винды много раз делали, тогда… Смысла нет — это лишь красиво разукрашенные файловые менеджеры. Один фиг, когда приоритетная программа запускается — хапает себе всю доступную память и целиком экран. Свопить тоже некуда, харды пока в перспективе и ценник далек еще от вожделенных 999? за 20 мегабайт. Мы тоже сделаем графическую операционку, и даже начали над ней работать — название во всяком случае уже есть. Но пока 256 килобайт памяти считаются хорошим результатом — рано. Как говорится, вам шашечки или ехать?
С выбором дисковода тоже долгая баталия была — пусть Синклер и не пытался впихнуть микродрайвы, как в "прошлый" раз. Но выбор был труден, между ценой, качеством и эффективностью. Нашей конторе очень настойчиво советовали выбрать либо "блины", дисководы 5.25дм — либо 3дм привод, фирмы "Hitachi". Причина проста — оба этих стандарта тихо умирают, у производителей перепроизводство. И естественно им нужно расширить рынок, оттянуть конец… Ну, так сказать. Дискета стандарта "Sony" тоже не супер — конструкцию можно было бы и получше сделать. Но потихоньку становится общепринятой на рынке. Совсем скоро ёмкость до 1.44мб поднимут, мы к этому готовы. А самое главное — хитропакость большую планируем.
QLOS спокойно читает и записывает диски стандарта ПиСи, точней файловой системы FAT. Не от слова "толстый", а сокращение от "таблица расположения файлов". Фиговая на самом деле таблица — возможность создания папок добавлена совсем недавно и криво, имена файлов могут быть только формата "8_букв_имя.ТИП". То есть задать название вроде "моя_любимая_киска.jpg" пока нельзя. Ну, это у "больших", IBM-совместимых. Наша файловая система, QFAT12 позволяет обзывать файлы аж в сто двадцать восемь букв, не считая расширения. А вот игры с этим самым расширением жестко запрещены — точка в имени файла лишь одна может быть. Пока еще вирусов почти нет, но обезопасить наш рынок от потенциальных "варягов" нужно обязательно. Потому что, пережив период действительно пакостных вирусов, написанных во времена раздолья для программиста-одиночки, миф этот стал богатой почвой для издевательства над пользователями и выкачивания с них денег. Это отдельная история — вкратце, при появлении нового антивирусного продукта, пакет той же фирмы внезапно позволяет заразить ваш комп целым зоопарком, это при том, что и ключ живой, и базы свежие. Батя еще в середине десятых на всяких кашпировских забил — правильно ошкуренная система и так глушит производимое "антивирусными" производителями зверье. Тот же наш старенький ноутбук три года спокойно без всякого антивируса жил, активно жужжа в Интернете. Под ХРеновиндой, однако. Мы ему честно памятник поставим — рукотворный. Работы над портативным "Квантовым Скачком" идут, результат будет через пару лет. А внешний дизайн давно утвержден, только буквы на эмблеме другие будут…
Но это все лирика. Самое главное, что наш офисный пакет, который сваяла контора Psion будет продаваться и для конкурентов — PC c MAC-ом.