Здравствуйте, дорогие читатели! Вы когда-нибудь писали операционную систему? Наверное, каждый десятый программист, оглядываясь на 10-20 лет назад и вспоминая начало своей карьеры, ответит да.
Господа, эта статья не для вас.
Эта статья для тех, кто верит в себя и полон надежд покорить мир.
Постараюсь предостеречь вас от некоторых распространенных ошибок.
Так уж получилось, что среди молодежи пользоваться ассемблером считается круто.
Большинство молодых программистов, которые начинают изучать язык ассемблера, хотят попробовать свои силы в написании вируса или операционной системы.
По статистике более 90% проектов по написанию ОС на ассемблере заканчиваются написанием загрузчика.
Человек набирается опыта, понимает, с чем ему предстоит столкнуться в будущем, и постепенно его интерес угасает. Ну и отсутствие результата – это тоже результат. В любом случае знание ассемблера может пригодиться в будущем, например, в сфере встраиваемых решений.
Мой совет будет прост: если вы решили написать свою ОС, возьмите чужой загрузчик.
Даже в худшем случае вы опередите 90%, выбравших загрузчик.
Пойдем дальше.
Загрузчик у нас есть, напишем ядро.
Опять же, не думая о дизайне, молодые программисты вооружаются книгами о защищенном режиме процессора 80386 (замена Pentium Quad Core, смысл не изменится) и начинают играться с селекторами, дескрипторами, страницами виртуальной памяти и т.д. на.
В результате их программа фактически работает в защищенном режиме и, возможно, переключает задачи прерывания по таймеру.
Хорошее время, чтобы набраться опыта и потерять интерес к проекту или запутаться в ассемблерном коде.
Что я должен делать? Самое время остановиться и использовать полученный опыт, чтобы приступить к проектированию системы.
Таким образом вы перейдете на третий уровень.
Итак, вы приобрели бесценный опыт и поняли, как работает «железо».
Что делать дальше? Недостаточно знать, как работает оборудование.
Чтобы не изобретать велосипед, имеет смысл изучить, как работают современные операционные системы.
Вам помогут книги Эндрю Таненбаума.
Крайне не советую реализовывать графический оконный интерфейс — кнопка «Пуск» и окна произведут впечатление только на неопытного пользователя.
Любой специалист знает, что основная задача операционной системы — управление памятью и процессами.
Спроектируйте, как процессы будут создаваться, поддерживаться и (что немаловажно) выпускаться.
Не забывайте про память — подумайте, как будет выделяться и освобождаться память.
И только когда у вас будет четкое представление о том, как будет реализовано управление процессами и памятью, можно приступать к кодированию.
Следующий этап, пожалуй, самый важный.
Даже если вам удалось спроектировать систему, управляющую процессором и памятью, это не значит, что система представляет практический интерес.
Есть небольшая вероятность, что вашей работой заинтересуются разработчики встраиваемых систем.
Но сколько вы знаете встраиваемых систем на базе архитектуры x86? Вот я Том.
На этом этапе проекта вы снова будете отчаянно пытаться написать красивый графический интерфейс.
Рано.
Это слишком рано.
Пришло время реализовать файловую систему.
Для любой операционной системы, какой бы новой и прогрессивной она ни была, файловая система важнее графического интерфейса.
Даже самая современная Windows выросла из надстройки, работавшей поверх текстовой MS-DOS. Написав файловую систему, вы столкнетесь с новой проблемой — какой бы хорошей и инновационной ни была ваша система, без программного обеспечения она не представляет интереса ни для кого, кроме автора.
Где взять программы для своей хорошей системы? Написать самому? Вы можете попробовать это, если вы супермен.
Спросить друзей и знакомых? Наивные мысли – каждый занят своими проблемами.
Выход один – использовать уже написанное программное обеспечение.
И очень хорошо, если еще на этапе проектирования вы подумали об этой возможности и предусмотрели совместимость с каким-либо из существующих стандартов.
Необходимо принять во внимание приведенные выше советы, но это не значит, что следование им приведет к успеху.
Это лишь минимум, без которого не стоит браться за дело.
Теги: #Программное обеспечение #микроядро #L4 #Xameleon
-
Deus Ex 3 Выйдет В Начале 2011 Года.
19 Oct, 24 -
Telegram-Бот + Google Analytics
19 Oct, 24 -
Государственные Тесты Глазами Программиста
19 Oct, 24