Intro
Рад приветствовать вас в первом выпуске рассылки, уважаемые подписчики!
Вы спросите - зачем еще одна рассылка про разработку ОС? (лично я нашел в каталоге субскрайба две таких). Ответ прост - первая из существующих рассылок не выходит уже полгода, вторая - год. Хотя в них еще не рассказали и десятой части важных и интересных вещей, касающихся нашей темы.
Как я и обещал в описании рассылки, практика и теория будут совмещаться и тесно переплетаться. Рассказывать я буду с нуля - но тем не менее буду предполагать, что вы знакомы с такой штукой как ассемблер (в противном случае практическая часть рассылки будет для вас потеряна)
Вы всегда можете связаться со мною по email:-. Разработка ОС - не самая легкая тема, поэтому не стесняйсесь задавать любые связанные с ней вопросы.
Выпуск 1 - среда разработки
Речь в первом выпуске рассылки пойдет о том, как обустроить свой компьютер, и какие программы для этого понадобятся, чтобы сделать процесс разработки ОС не только возможным, но и максимально эффективным и приятным. Поскольку на практических занятиях мы будем рассматривать операционные системы для платформы IA-32 (других процессоров у меня нет ), то я предполагаю, что установленная на вашем компьютере ОС - либо Windows, либо один из современных клонов UNIX (Linux, *BSD и им подобные).
Первое, что нам понадобится - это ассемблер. Я выбрал NASM, который имеет версии как под Windows, так и под UNIX. Он обладает привычным Intel-синтаксисом и перейти на него пользователям TASM или MASM не составит труда.
Вторая вещь, отсутствие которой очень сильно осложнит нашу жизнь, - это виртуальная машина (эмулятор процессора). Так как обычно при разработке очень часто приходится тестировать написанный код, то, согласитесь, необходимость записывать каждый раз свежескомпилированную систему на дискету и перезагружать компьютер - это чрезвычайно раздражающий фактор. Эмулятор же не только позволит загружать нашу систему в отдельном окне, не прерывая процесс разработки, но и может использовать виртуальный образ дискеты вместо настоящей. Луший эмулятор по моему мнению - VMWare WorkstationVMWare Workstation. Программа платная, но пользоваться ею можно сколько угодно - достаточно лишь обращаться каждые 30 дней на сайт разработчика за продлением лицензии. Не слишком большая цена за удобство, как вы считаете? VMWare Workstation имеет версии как под Windows, так и под Linux и пожалуй ее единственный недостаток (помимо платности разумеется) - это то, что весит она около 12 мбайт.
Третье - программа 'make'. Если вы программируете под UNIX, то наверняка знакомы с этой программой, а вот программисты в Windows частенько про нее забывают. Эта утилита призвана спасти нас от набивания многокилометровых приказаний компилятору и компоновщику (например на моей системе для того чтобы протестировать разрабатываемую ОС, достаточно лишь запустить 'make', а потом нажать кнопку 'Power On' в VMWare Workstation - сборка ОС и запись ее в образ дискеты будут произведены автоматически в соответствии с Makefile). Впрочем пока эта программа нам не нужна, а когда мы в лоб столкнемся с необходимостью ее использования, я расскажу о ней поподробнее.
Четвертое - шестнадцатеричный редактор/дизассемблер. Основное, что от него требуется - скорость работы, поэтому я выбрал BIEW. У него, как и у всех вышеперечисленных программ, существуют версии и под Windows и под UNIX. Эта программа пригодится нам для быстрой проверки - "чего же этот ассемблер скомпилировал-то?!".
Вот какие инструменты использую я:
1. NASM версии 0.98.36
2. VMWare Workstation for Linux версии 3.2.0 build-2230
3. GNU Make версии 3.79.1
4. BIEW версии 5.3.2
Вот пожалуй и все программы, которые пригодятся нам на начальном этапе (напоминаю, что каждая их них кроме первой лишь облегчает работу, но никак не является необходимой. Поэтому не отчаивайтесь, если какую-то из них вы не сможете достать). Позже нам понадобятся такие вещи, как компилятор с языка Си (реализовывать сложные компоненты ОС на чистом ассемблере затруднительно, хотя пример MenuetOS показывает, что это все-таки возможно, но чревато потерей быстродействия системы (!) и многочисленными трудноуловимыми багами), компоновщик и некоторые другие.
Outro
Теперь, когда у вас под рукой есть все нужные программы, мы сможем непосредственно приступить к написанию чего-нибудь, что сможет запуститься без наличия операционной системы (это очень важный шаг!). Ну а кроме того в следующем выпуске вы наконец-то узнаете, что это за зверь такой - операционная система и об эволюции систем от тех, которые использовали наши деды лет эдак пятьдесят назад, до современных монстров, таких как Windows NT и Linux