Profi+ Concurrent BIOS 1993 г.

BIOS - преимущества нового BIOS.


BIOS
Преимущества нового BIOS.

1. Рлавное, для чего писался новый BIOS - усовершенствование процедур
вызова драйверов с тем, чтобы позволить вложенные их вызовы. Сама идея
хранить драйвера в скрытых, недоступных непосредственному доступу
сегментах прекрасна, но была плохо реализована: драйвер работал сам
в себе,
не имел выхода вовне, что может устроить лишь в самых примитивных
случаях. Сразу хочу пояснить, что слово "драйвер" мною используется не
совсем точно, не только для обозначения софта, обслуживающего конкретный
хард, но и для резидентов вообще (т.е. для обозначения процедур, постоянно
находящихся в ОЗУ, скорее всего скрытом, и вызываемых путем специального
обращения к BIOS; в этом смысле моя СоруК тоже является драйвером, но
достаточно многофункциональным). Покажу необходимость вложенных выловов
драйверов на очень простом, но типичном примере: PrintScreen. Обычно это
выглядит так: Вы в восторге от картинки на экране, Вы жаждете иметь
твердую копию для того, чтобы повесить ее на стенку над кроватью. На
машинах типа IBM достаточно нажать в подходящий момент кнопку
PrintScreen и выполнение вашей программы прервется на время печати
(подобные клавиши называются "горячими", HotKeys), и дело сделано. На
самом деле это довольно сложный процесс, состоящий из следующих этапов:

а)драйвер клавиатуры обнаружил нажатие "горячей" клавиши;

б)он прерывает выполняющуюся программу и запускает резидент
PrintScreen;

B)PrintScreen может запросить какие-либо параметры печати у
пользователя с помощью меню, при этом он обращается к
драйверам клавиатуры и дисплея;

г) и только теперь происходит собственно, печать, причем путем
обращения к драйверу принтера.

Таким образом, даже такая простая задача решается совместными

усилиями сразу четырех резидентов, а никак не одного. То, что в рамках новой
системы решается тривиально, неразрешимо в рамках старой.

2. Унифицирована система обработки прерываний. Оно по-прежнему только
одно (50 Гц от кадровой синхронизации, это зависит не от меня, а от
аппаратуры, сохранившейся еще с времен Sinclair), но поэтому прерыванию
может быть обработано множество функций. Нечто подобное было и раньше, но
тогда этот список был жестким: клавиатура да дисковод ( ?! ) и еще СоруК
после инициализации брал на себя подсчет времени. Теперь ассортимент
значительно расширен. Вы можете одновременно запустить до 25 процессов,
причем лишь одно из них задано изначально - подсчет времени, все остальные
процессы отданы драйверам (например, одно из них занимается клавиатурой) и
пользователю. Диск вообще развязан с прерываниями. Но и это не все.
Прерывания разделены по приоритету на быстрые (их 16), медленные <8) и
секундное (1). Секундное прерывание вызывается раз в секунду, быстрые и
медленные - 50 раз, но только медленные вызываются лишь в том случае, если
на их обработку хватает времени. Например, клавиатура обрабатывается по
прерываниям. В случае нажатия клавиши драйвер должен пискнуть. Этот писк
длится, скажем, 1/4 секунды, за это время пройдет еще 12-13 прерываний, в
том числе будет и опрос клавиатуры. Драйвер может просто не выйти из этого
штопора, поэтому клавиатурное прерывание имеет статус медленного: пока
писк не закончен, последующие его вызовы будут запрещены, мак и остальные
медленные прерывания. Быстрые же будут обслужены как и прежде, в том
числе и пересчет времени.

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

4. Память под драйвера используется более эффективно. Сами за себя
говорят такие цифры: в старой системе драйвера занимали 25 Кб, в новой
основные драйвера (флоппи диск, электронный диск, клавиатура, дисплей,
принтер; объем не основных драйверов зависит от их ассортимента, зависит от
пользователя и колеблется от 0 до 1 Мб) занимают лишь 9 Кб, что позволило
целиком освободить сегмент 4, что небесполезно.

5. Полностью изменена система распределения флоппи диска. Мы отказались
от системных дорожек вообще. Все части системы (загрузчик, BDOS, BIOS,
драйвера, фонты и т.д.) лежат на диске в виде обычных файлов, что дает
возможность копировать их как файлы с помощью СоруК.
К конкретному
месту на диске привязан лишь файл BOOTK.COM, содержащий
начальный загрузчик; он должен копироваться на диск первым.
Это
увеличивает емкость диска на 30 Кб - две системные дорожки и 79-я, которая
раньше почему-то не обслуживалась. Кстати, то, что начальный загрузчик
лежит на диске в виде файла, позволяет произвести перегрузку системы не
только нажатием кнопки сброса, но и просто подачей команды ВООТК.

6. Смена системы загрузки отразилась и в том, что загрузкой теперь
управляют два файла: CONFIG.SYS и AUTOEXEC.BAT, причем их смысл
полностью соответствует их смыслу на IBM PC: CONFIG содержит список
драйверов, которые нужно загрузить, и их параметры, a AUTOEXEC - список
команд, которые после этого нужно выполнить.

7. Благодаря троекратному сокращению объема драйверов и более
совершенной системе, загрузка происходит раза в три быстрее.

8. Поскольку один и тот же человек почти постоянно работает на одной и той
же машине, нет смысла при каждой инициализации электронного диска
проверять наличие памяти. Теперь эта информация зашита в драйвер, что
сокращает время загрузки и снимает с пользователя обязанность отвечать на
вопросы типа "on?", "off?". Но при переходе с машины на машину эту
информацию можно изменить с помощью специальной утилиты.

9. Процедура форматирования электронного диска написана на ассемблере, а
не на PL/M, что ускорило ее примерно раз в десять. Форматирование
производится при загрузке системы в случае, если в момент
инициализации драйвера электронного диска был нажат пробел. При

этом форматирование каждого сегмента сопровождается щелчком, так что сами
можете сравнить скорости. Если пробел нажат не был, электронный диск
только инициализируется, вся информация на нем сохраняется.

10. Усложнена функция подсчета контрольной суммы сектора на электронном
диске, что повышает достоверность информации на нем. При работе со старым
драйвером я достаточно часто сталкивался со следующей ошибкой: во время
отладки программ в случае сбоя какой-либо сегмент затирался нулями, а
драйвер такие случаи пропускал Новый драйвер не так безалаберен.

11. Качественно новые свойства приобрели некоторые драйвера, частично в
силу возможностей нового BIOS (например, обработка "горячих" клавиш,
таймер), частично в силу эволюции самих драйверов (например, дисплей).
Подробнее об этом смотрите в DRIVER DOC и описании отдельных драйверов.

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

СоруК

Copyright(c) Jan-1994 by Крестьяников А.А.
Версии СоруК

После начала продажи Concurrent BIOS произошло забавное явление: по
непонятным мне причинам, номер версии СоруК был перенесен на ДОС, версия
которого на самом деле была 1.1, но все стали его величать не иначе, как 4.1 (а
именно такова последняя версия СоруК, единственная для Concurrent, не
изменявшаяся уже больше года). Далее события развивались еще интереснее:
появившиеся впоследствии версии ДОС получали в народе имена не 1.2, 1.3 и
т.д., а 4.2, 4.3, даже 4.12, хотя СоруК не изменилась ни на байт !

Время от времени все еще спрашивают, когда появится новая версия
оболочки. Ответ неизменен уже более года: никогда (хотя версия 4.1 появилась
уже после того, как я начал так отвечать). Дело в том, что файловая оболочка -
вещь, конечно, необходимая, но не могу же я всю жизнь писать все новые
версии одного и того же (в этом плане Лозинский, конечно, нашел свою
экологическую нишу, но я уверен, что его, при упоминании о вирусах, начинает
подташнивать). У меня есть много достаточно интересных планов, реализация
которых требует времени. Кстати, один из них - реализовать более
современную файловую оболочку, графическую, что-то типа File Manager или
DOS Shell




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Послесловие - что именно меня раздражает в ZX.
PRORIL - Нереальные события в реальном мире.
I'M A BIT SILLY
Архив - описание программ из приложения к журналу: Inter Mode Player v1.2, Stainless steel, Space crusade, Extreme's Tracker v1.32, Chopper duel.
Hу извини братан! - полный бред.

В этот день...   20 апреля