О "Довнгрейде"…



Miraculix OS

Категория: Всё о DOS Автор: admin Опубликовано: 23 Март 2008 года

Введение
Сегодня я расскажу вам о новейшей разработке российского программиста Бориса Попова – операционной системе MIRACULIX http://filesx.fdd5-25.net.
Пользовательский интерфейс: на данный момент это консоль, которая подчиняется стандартным ДОС командам и принципам.
Целью проекта является написание многозадачной, многопользовательской системы реального времени, которую можно будет устанавливать на любой носитель (жесткий диск, дискету, CD-R, CD-RW, FLASH).
Основная часть ОС: первичный загрузчик, ядро, SCHEDULER, базовые драйвера и приложения без проблем влезающие на дискету. Основой основ является микроядро. Система предназначена для компьютеров IBM PC и совместимых с ними. На данный момент основной инструмент разработки – FASM, в будущем для MIRACULIX будут созданы компиляторы C/C++, BASIC, PASCAL.
Архитектура
- Ядро:
По производительности микроядро операционной системы MIRACULIX не уступает монолитным ядрам. В кольце 0 выполняется только код микроядра. Исключение составляет модуль TRAP.SYS он перехватывает все исключения, при возникновении ошибки в коде ядра, если код выполняется в кольце 0 (SYSTEM FAILURE). Базовым элементом API является обработчик прерывания 0×90.
- Функции ядра:
Управление виртуальной памятью (в системе используется страничная модель памяти), функции взаимодействия процессов, управление процессами и функции синхронизации.
- Многозадачность:
В системе используется программная многозадачность. Для всех процессов и потоков выделен всего один “физический” TSS. Его значение меняется каждый раз при переключении на другую задачу. Значение карт I/O и INT (только для V86-задач) не меняется. Это позволяет держать в системе сколько угодно процессов и потоков, это было бы невозможно, если каждому процессу и потоку выделялось по TSS, т.к. количество системных дескрипторов ограничено: 8192.
- Функции синхронизации:
Усыпить процесс (число квантов), получить или продлить выполнение (PID, число квантов), получить состояние (PID).
- Организация виртуальной памяти:
Все адресное пространство можно разделить на две области: область аппликаций и системную (ядра, драйверов/модулей). При запуске 32-битного приложения все сегментные регистры (DS, ES, GS, FS, CS), описывают все 4Гб памяти. Модель памяти – страничная, у каждого процесса своя таблица страниц, её размер зависит от потребностей приложения. Память выделяется динамически (в процессе выполнения) в страницах. Поток наследует все адресное пространство процесса, которым он был создан. При создании V86-задачи, в память новой задачи копируется таблица прерываний и BIOS также, в опциях можно указать присутствие/отсутствие A20.
- Функции менеджера памяти:
Выделить память (число страниц), освободить память (число страниц), отобразить память (физический адрес, число страниц) в параметре физический адрес можно указывать только адреса 0xA0000…0xFFFFF и адреса определенные с помощью PCI.
- Загрузка:
На данный момент реализована загрузка системы с 3.5″ дискеты.
- Этапы загрузки:
1) Boot-сектор загружает первичный загрузчик с дискеты;
2) Первичный загрузчик (AXE.COM) проверяет наличие ядра на дискете, если он его не находит, то открывает окно-меню со всеми файлами и папками на дискете, в этом режиме можно запускать DOS-программы, 32-битные бинарники. Если файл “KERNEL.SYS” присутствует на дискете, первичный загрузчик грузит весь корневой каталог дискеты в память, создавая RAM-DISK. В ядре отсутствуют функции для работы с дисками, файловыми системами. Но, ядро должно запустить вторичный загрузчик, для этого первичный загрузчик создает RAM-DISK по адресу 0×300000 (первичный загрузчик после завершения своей работы не удаляется из памяти, он остается резидентным) и получает управление в случае возникновения фатальных ошибок;
3) Получив управление, ядро загружает вторичный загрузчик (он же первый процесс в системе, в микроядре L4 он называется sigma0), с RAM-DISK’A, и загружает регистр процессора TR;
4) Вторичный загрузчик загружает все драйвера и модули, прописанные в файле “AUTOEXEC.INI”. Строгая последовательность не обязательна, загрузку драйверов и модулей можно выполнять в любом порядке (т.к. система многозадачная) но нужно, что бы драйвер FDC попал в первый мегабайт физической памяти. Потому что при работе с дискетами в драйвере FDC используется 16-битный контроллер DMA.
На втором месте по важности является модуль TRAP.SYS. (его можно поставить на последнее место, но при возникновении ошибки в каком-нибудь из модулей или драйверов загружаемых перед ним возникнет неопределенная ситуация). Ещё можно прописывать загрузку GUI, альтернативной консоли, или оболочки типа NORTON COMMANDER’а.
- Поддержка DOS и 16-битных приложений:
На данный момент реализован запуск 16-битных приложений. Но, не налажена система прерываний в V86. Но при этом некоторые вещи стандартны, например: GFX, SMBUS, DDC, APM.
AXE.COM
На дворе 21-й век! Но по-прежнему ДОС никак не умрёт. С чего бы это?! А всё дело в том, что, как и 10 лет назад все программы по восстановлению работоспособности системы написаны под ДОС. Только эта среда может противостоять натиску вирусов, кривых рук пользователей, посыпавшимся данным диска. Яркий пример тому программы для работы с HDD, RAM, локальными сетями и прочими прелестями.
А что же AXE.COM? У этой программы/утилиты так же много возможностей: таких как диагностика системы, отладка программ в среде MS-DOS или в окне V86 в WINDOWS, предотвращение зависания в MS-DOS. За счет перехвата всех возможных исключений, AXE.COM можно вызвать во время работы другой программы или завершить работу программы. Утилита может загружать операционные системы с дискеты или жесткого диска, проигрывать AUDIO CD в среде чистого MS-DOS или же его просто эмулировать.
Теоретически AXE можно запускать на любом железе, даже на 8086 с монохромным монитором. А вот практически на компьютере OLIVETTI M28 программа вешается. Так как у него вместо BIOS встроенная система диагностики ::-)). Да, и CGA монитор – это не EGA. Утилита AXE работает почти под любой ОС: WINDOWS в окне V86, любые версии и виды DOS, FLOPOS, DS-16, TRIADA OS. Это даёт истину безграничные возможности!
Но будем реалистами.
Работа AXE в среде MS-DOS
После выхода из этой программы АХЕ остается резидентной, перехватывая все исключения. И если произойдет ошибка в выполняемом приложении, то AXE сообщит об этом, покажет состояние всех регистров процессора и часть кода, из-за которого произошла ошибка. Например: недоступная инструкция процессора, общая ошибка защиты. Утилита предложит 4 варианта действия:
1) Исправить ошибку;
2) Пропустить;
3) Повторить;
4) RESET.
AXE можно вызвать во время выполнения другой программы CTRL-ALT+HOME. Завершить CTRL-ALT+END, ENTER. При этом может возникнуть ошибка – надо будет ещё раз нажать на CTRL-ALT.
Параметры командной строки
/TSR – остаться резидентным.
/UNREAL – переключение процессора UNREAL MODE при этом будет доступна вся физическая память, поскольку, лимиты сегментов станут 4 Гигабайта.
/RK – загрузка русских фонтов.
/INSTALL – установить AXE на дискету.
/BOOT – установить BOOT SECTOR на дискету из файла в параметре, например: AXE /BOOT BOOTSECT.BIN, это замена программы BOOTCOPY.
Эмуляция DOS
Установите AXE на дискету через меню TOOLS->INSTALL, или через командную строку AXE /INSTALL. Перезагрузитесь с дискеты, появится меню с файлами. Не поддерживается только работа с драйверами.
Загрузка ОС
С помощью AXE можно загрузить ядро ОС 16 или 32 битное. В файле AUTOLOAD.DAT в корневом каталоге на дискете надо указать путь ядра, если ядро 32-битное поставить префикс “load32=”. Для 32-битных ядер селектор DS=8, CS=16. Можно загружать ОС с HDD при наличии FAT32.
Примеры
Загрузка 16-битного ядра с дискеты:
A:\system\kernel16.com
Загрузка 16-битного ядра с HDD:
load32=c:\kernel.sys
Одна из самых ярких возможностей АХЕ – диагностика системы. А именно, определение её точной конфигурации. Это непременно может пригодиться всем тем людям, которые покупают или собирают компьютеры. Ведь не всегда на том или ином DEVICE можно прочесть его название, а главное узнать характеристики. А вот благодаря АХЕ эта, как и многие другие проблемы оказывается решаемой.

Роман Карпач www.fdd5-25.net при поддержке Бориса Попова http://filesx.fdd5-25.net

Комментарии выключены

Из истории компьютерных игр или почему же IBM, а не ЕС?

Категория: История Автор: admin Опубликовано: 23 Март 2008 года

Однажды по каналу DISCOVERY показали замечательный документальный фильм о зарождении и появлении популярных компьютерных игр. Выполнено всё было превосходно, если бы не одно “НО”, авторы ни разу не упомянули платформу, которая в начале 90-х была не менее популярной, чем ZX, NES, COMMONDORE – имя ей IBM PC. А ведь многие хитовые игры, были написаны именно для неё, а уж потом продолжали своё шествие в других тогдашних системах.
Для чего всё это нужно? Зачем вспоминать старые, никчёмные по графике игры? Да, потому что их клоны, новые версии – называйте как хотите, выходят и по сей день. В разных вариациях, от разных производителей, но это всё тот же Тетрис, тот же Warcraft, тот же Wolf, тот же Doom и так далее, и тому подобное.
К сожалению, место в журнале ограничено, это же не канал DISCOVERY! Поэтому речь сегодня пойдёт о двух революционных игровых программах, без которых в начале 90-х не возможно было представить жёсткий диск IBM совместимого компьютера. Каких? Читайте далее…
Тетрис (USSR)
Игра “Тетрис” была впервые написана Алексеем Пажитновым в июне 1985 года на компьютере Электроника-60 в ВЦ Московской Академии Наук. Шестнадцатилетний школьник Вадим Герасимов переписал игру для IBM PC.
Программа быстро распространилась по всей Москве. Когда игра дошла до Будапешта, венгерские программисты реализовали её на разных платформах, и “Тетрис” был «обнаружен» британской софтверной компанией ANDROMEDA. Они попытались купить у Пажитнова права на версию для PC, но к тому моменту права уже были проданы компании SPECTRUM HOLOBYTE. После чего ANDROMEDA попыталась купить права у венгерских программистов.
В 1986 году SPECTRUM HOLOBYTE выпустила версию для IBM PC в США. Популярность игры была огромной, она немедленно стала бестселлером.
Позднее ситуация с “Тетрисом” стала напоминать детектив, но в 1987 году ANDROMEDA заявила о своих правах на игру для PC и любых других домашних компьютеров. В 1988 году советское правительство заявило о своих правах на Тетрис через организацию ЭЛЕКТРОНОРГТЕХНИКА (ЭЛОРГ). К этому моменту ни Пажитнов, ни ЭЛОРГ не получили никаких денег от АНДРОМЕДЫ, но компания заявляла о своих правах на “Тетрис” и продавала лицензии другим компаниям. К 1989 году полдюжины разных компаний заявили о своих правах на разные версии игры для разных компьютеров, игровых консолей и карманных электронных игрушек.
ЭЛОРГ заявила, что эти компании не имеют никаких прав на версии для игровых автоматов, и предоставила эти права компании ATARI GAMES, а права на версии для игровых консолей и карманных электронных игрушек — компании NINTENDO.
TENGEN (подразделение компании ATARI GAMES, занимающееся программным обеспечением для игровых консолей), однако, выпустила свой вариант игры для консоли NINTENDO ENTERTAINMENT SYSTEM, игнорируя соглашение. Многие игроки сочли версию ТЕНГЕНА лучше версии NINTENDO. Игру назвали TETЯIS. Но NINTENDO подала на TENGEN в суд и выиграла. Всего через несколько месяцев после выпуска “TETЯIS” игру пришлось отозвать, продав всего 50,000 экземпляров.
“Тетрис” NINTENDO выпустила для консолей FAMICOM и GAME BOY (версию для GAME BOY написала по их заказу компания BULLET-PROOF SOFTWARE и эта версия стала, вероятно, самой известной версией Тетриса) и продала более 3,000,000 копий. Судебные тяжбы между NINTENDO и ATARI GAMES по поводу версий для FAMICOM и NES продолжались до 1993 года.
NINTENDO получила неплохую прибыль, но сам Алексей Пажитнов получил очень мало денег от сделки.

В 1996 году он с Хэнком Роджерсом (Henk Rogers) создал компании THE TETRIS COMPANY LLC и BLUE PLANET SOFTWARE, пытаясь получить прибыль от бренда “Тетрис”. THE TETRIS COMPANY LLC (TTC) зарегистрировала слово “Tetris” как торговую марку. (Tetris – является зарегистрированной торговой маркой компании TTC.) С тех пор несколько компаний купили у TTC лицензию на торговую марку, но законность игр тетрамино, которые не используют название “Tetris”, не оспаривалась в суде.
По американским законам, игру нельзя защитить копирайтом (только запатентовать), поэтому основным имуществом компании является торговая марка “Tetris”.
Примечателен тот факт, что проблемы у создателя “Тетриса” были вызваны вовсе не из-за наглости отдельных болгарских компаний, а из-за ситуации и страны в которой жил Алексей. В СССР не было такого понятия как авторское право, всё принадлежало народу. Вспомнить хотя бы историю со знаменитым олимпийским медвежонком 1981 года. Поэтому не удивителен тот факт, что нашедшие игры болгарские “друзья” просто “прихватизировали” её, в надежде на то, что автор “Тетриса” никогда не объявится. Но популярность игры оказалась неимоверной, поэтому не удивительно, что правами на неё заинтересовались акулы игрового бизнеса. А по некоторым сведениям во время приезда в Москву покупателей “Тетриса” всем вплотную интересовалось КГБ. Вот так одна игра и один человек смогли переполошить пол мира.
Wing Commander (USA)
Крис Робертс (Chris Roberts) не похож на обычного американца, он родился в Манчестере (Великобритания). В этом городе он прожил до 19 лет, отец Криса преподавал социологию в Университете. Когда парню было около 12 лет, дома появился
компьютер – Commodore PET и естественно первым языком программирования стал
BASIC. Сразу после освоения азов которого, Крис увлекся программированием движущихся объектов и в 13 лет написал свою первую игру посадка вертолёта на площадку. Позже в семье появился компьютер BBC с 32К памяти и графическим
разрешением 320х200 4 цвета или 160х200 16 цветов, именно эти возможности увлекли парня ещё больше.
Один из старых учителей Криса Робертса стал в это время редактором журнала для
пользователей компьютеров BBC “BBC MICROUSER”.В те времена все уважающие себя журналы публиковали листинги программ своих читателей, и однажды он позвонил Крису с предложением написать какую-нибудь игру. В ответ Крис написал игру “Kong” – гигантская обезьяна должна была залезать на здания и сбивать камнями вертолеты.”BBC MICROUSER” заплатил за нее 100 фунтов. Крису понравилось зарабатывать деньги на своем хобби, и он создал еще ряд игр написанных на языке BASIC.
Вскоре BASIC перестал его удовлетворять, так как для программ на нем в компьютере выделялось всего 12К памяти. Так Крис пришел к ассемблеру. Один из друзей отдал ему недоделанный вариант игры, которую он никак не мог заставить работать. Крис потратил уйму времени на изучение принципов ее работы, а затем практически заново её переделал.
Это был “WIZARDOR” – обычная аркада с горизонтальным скроллингом, где
главный герой должен был добраться до замка с драконом и убить его, собрав по пути различные вещи. На этот раз Крис решил продать игру серьезной фирме по производству игр. После долгих выборов “WIZARDOR” был продан компании OCEAN. В 1984 году игра вошла в списки игр-бестселлеров для компьютеров BBC. Достаточно большая денежная сумма приободрила юного программиста, и он решил продолжать заниматься созданием коммерческих игр.
После “WIZARDOR” последовала игра “MATCH DAY” – футбольный симулятор. Вскоре BBC MICROCOMPUTER выпустила свою новую серию компьютеров “MASTER SERIES”, имевших RAM объемом 128К. Игра “STRIKER’S RUN” – ещё одна аркада использовала на полную мощь возможности нового ПК. Ко времени создания этой игры Крис окончил школу и занимался в колледже. Но перед поступлением в Университет Манчестера на специальность “Физика” парень подумал, что неплохо бы отдохнуть год и
посвятить его написанию игр, хорошо при этом заработав.
Количество пользователей компьютеров BBC составляло, что-то около 500.000 человек и Крис переключился на более распространенную модель Commodore 64, начав писать “ULTRA REALM” – предшественника “TIMES OF LORE”. Крису хотелось создать что-нибудь похожее на популярный тогда “Gauntlet” добавив возможность герою общаться с другими персонажами, собирать и использовать различные объекты и т.п.
В 1985 году отцу Криса предложили место профессора социологии в Университете штата Техас. Так вся семья Робертсов оказалась США, в городе Остин (Austin), Техас.
Крис продолжил работу над “Ultra Realm”. Сидя однажды в клубе любителей role-playing games, он заметил на стене большую картину, изображавшую сражающегося гладиатора и спросил у знакомых, кто ее автор. Так Крис познакомился с Дэннисом Лубетом (Dennis Lubet), свободным художником и большим любителем фэнтези. Он попросил его заняться разработкой графики для игры.
Вскоре Дэннис был приглашен Ричардом Гэрриотом (Richard Garriot) для разработки упаковок игр серии “ULTIMA”. Вскоре и Крис познакомился с ним и созданной Ричардом и его братом компанией ORIGIN. К этому времени “ULTRA REALM” была закончена и предложена трем компаниям: ELECTRONIC ARTS, BRODERBUND и ORIGIN Все три изъявили желание приобрести эту игру, и после долгих сомнений Крис продал её Origin, а вскоре стал работать в и самой компании. Переработанная версия “ULTRA REALM” для IBM PC стала называться “TIMES OF LORE”.
Через некоторое время MICROPROSE выпустила свой суперхит “F-19 STEALTH FIGHTER”. Для идеальной реализации всех возможностей рекомендовалась машина с 386-м процессором, стоившая тогда около 15.000 долларов. Тем не менее, почти не нашлось людей, не приобретших теми или иными путями эту игру, в которую играли даже на старых ХТ с CGA монитором. Тогда же Крис понял одну важную вещь – люди не спрашивают, какая игра лучше всего, скажем для CGA, их интересует просто ЛУЧШАЯ игра и неважно, что для этого требуется. Так родилась идея создания игры, использовавшей максимально все существующие возможности компьютера. “WING COMMANDER” создавался именно в расчете на лучшие образцы техники того времени.
К сведению, самой первой игрой использующей 3D BITMAP был симулятор компании LUCASFILM “BATTLEHAWKS 1942″. Крис использовал аналогичный подход к графике. Сначала с помощью программы “Sculpt 3D” на Commodore Amiga были проиграны предполагаемые картинки. “O! Это было класс!” – единогласно заявили все сотрудники Origin, видевшие эти наброски, после чего группа начала разработку.
Масштабирование BITMAP образов было достигнуто путем двухмесячного программирования в кодах по 16 часов каждый день. Команда разработала свой собственный алгоритм, не требовавший полных математических расчетов. Скажем, что результатом этой гигантской работы явилось около 600К исходного текста на ассемблере.
При создании “Wing Commander” применялись ассемблер и С. Для “Strike Comander” ORIGIN перешла на С++ при этом игра не использует 32-разрядную адресацию, но применяет 32-разрядные вычисления. Когда ORIGIN стала разрабатывать “Wing Commander II”, Крис сильно сомневался в том, что игра будет иметь такой же успех, как и “Wing Commander 1″ (ведь, согласитесь, ничего особенно нового в нем не было). Но количество проданных за первую неделю копий показало обратное.
Вместо итога
На сколько сложна и противоречива сама жизнь, на столько же судьба человека зависит от страны, в которой он живёт. Алексей Пажитов сейчас является гражданином США, в конце 90-х годов он таки получил отчисления в свой адрес от компании NINTENDO. И теперь, я полагаю, живет, по крайней мере, не бедно. Крис Робертс продолжил разработку компьютерных игр.
Когда – то СССР не смог удержать талантливых программистов у себя на территории, видимо, не было ни условий не желания сделать это. Теперь глядя на достижения индустрии IT на Западе и Востоке, власти многих стран СНГ загорелись желанием создать “Технопарки”, “Силиконовые долины”. Видимо, в надежде на то, что именно они поднимут скатившиеся в пропасть экономики бывших советских республик. Но, по моему глубокому убеждению, то что создавалось десятилетиями, одним желанием и административно-правовыми актами не решишь. Как и не могут громоздкие заводы конкурировать с конкретно – ориентированными малыми предприятиями, моментально реагирующими на изменение конъюнктуры IT рынка. А ведь удачным примером выгодной узкой специализации и являются фирмы создающие компьютерные игры!

При создании публикации были использованы материалы сайта www.romov.net

Роман Карпач

Комментарии выключены
« Предыдущая страницаСледующая страница »