|
||
|
||
Легко ли написать Операционную Систему?Сергей РОЖКОВ Предлагаемый вниманию читателей полемический материал, надеюсь, будет интересен тем, кто хоть раз в жизни задумывался о создании собственной операционки. Идея о написании статьи родилась у меня после прочтения ряда статей в МК, в частности, материала Дмитрия МАНДРЫКИ и Вячеслава БЕЛОВА «UAOS — Первая Отечественная Операционная Система» (МК № 19 (190)), и просмотра сайта http://www.uaos.narod.ru/. Со времени появления первых вычислительных систем прошло не так много времени, однако эти годы для информационных технологий не прошли даром. Электронщики, математики и программисты не зря ели свой хлеб: изменения произошли не только в количестве и качестве программного обеспечения (ПО), не только в росте числа транзисторов на единицу площади кремния и в увеличении рабочих частот процессора, но и в кардинальном изменении парадигмы проектирования вычислительных систем (ВС). Одним из самых известных подходов к разработке программного обеспечения стал объектно-ориентированный подход. Причем это касается не только разработки прикладного ПО. Быстрое обновление драйверов устройств свидетельствует о применении объектно-ориентированного подхода к разработке ПО этого класса. Да что там драйвера — завидно частое появление новых версий Windows говорит о том же. Кстати, общеизвестный факт: по крайней мере последние версии Windows (начиная с 95-й) написаны на объектно-ориентированном алгоритмическом языке C++… Системные программисты стали активно использовать объектно-ориентированную методику. Действительно, что может быть более удобным при проектировании, допустим, операционной системы (ОС), чем представление ее работы в естественном для человека (разработчик — тоже человек :-)) виде? Если очень захотеть, то во Всемирной Паутине можно отыскать пару-тройку заветных сайтов, где вам предложат поучаствовать в разработке новой (непременно «крутой» :-)) ОС, а то и скачать ее для тестирования или ознакомления. Плохо это или хорошо? Разумеется, подобные начинания нужно только приветствовать. По крайней мере треть начинающих программистов в мечтах и розовых снах видела себя если не митниками или нортонами, то уж волковыми или, на худой конец, турвальдсами :-). При этом зачастую проектом, которыми они норовят покорить мир, оказывается (ни много ни мало) операционная система. Причем объектом подражания и атаки становится… угадайте с трех раз! Ну что ж, предположим, Вася Пупкин задался целью написать ОС Wmd (Windows must die :-)). Поскольку продукт изначально позиционируется как заменитель Windows, то сразу возникает ряд проблем по замене привычного ПО Microsoft на программы собственного сочинения. Вася в два счета пишет браузер, клепает Word, а на пасьянсе «Косынка» энтузиазм иссякает :-). Но дело тут не только в монополизации рынка ПО компанией Microsoft. Ведь для разработки «убийцы Windows» мало сделать ОС, которая не будет «падать» и иметь суперпродвинутый интерфейс, но еще и заручиться поддержкой производителей устройств, игростроительных компаний, создателей антивирусов и так далее и тому подобное. Тут Windows имеет огромную фору и почивать на лаврах явно не собирается. Конкуренция с Microsoft, да еще и на ее поле, будет иметь плачевный результат. В этом месте текста романтически настроенные читатели должны были пустить скупую слезу. Впрочем, наиболее воинственные из них уже начали замышлять «страшную месть» :-). Программерский максимализм — страшная сила! Поспешу их успокоить. Писать «операционку» — занятие для истинных романтиков и преданных своему делу «мастеров клавиатуры». Тот, кто ЧУВСТВУЕТ, как работает компьютер и для кого красота программного кода не абстрактна, могут начинать подумывать о такой работе. Голого энтузиазма, как показывает практика, маловато будет. Необходимы твердые знания и … незацикленность на коммерческом успехе проекта. Те, кто знаком с историей создания ОС UNIX, поймут, о чем идет речь. Есть и более свежие примеры. Ниже дана попытка краткого описания этапов создания ОС с некоторыми пояснениями. При постановке технического задания, когда будет выпита первая бутылка пива :-), будущий автор (авторы) разрабатываемой ОС, первоначально должен (должны) определиться с терминологией, чтобы впоследствии не возникало разночтений. Желательно заранее определиться со сферой применения системы, хотя может быть и так, что изначальный замысел будет несколько «размыт» и уже по ходу дела, после того, как будет готова первая работающая версия ядра, «нарисуется» область применения продукта. Если разработчиков несколько, то крайне важно, чтобы в проекте ведущую роль занимал человек, который имеет непререкаемый авторитет в группе, обладающий приличной работоспособностью, аналитическим складом ума, умеющий организовать. У автора этих строк имеется негативный опыт коллективной разработки ПО, когда человек, фактически сам себя выдвинувший в лидеры проекта, сам его и «завалил». В качестве положительного примера можно привести короткую историю создания ОС LINUX. Молниеносный взлет ее популярности подтверждает влияние на ход проекта наличия грамотного руководства: одну из веток ядра ведет сам Линус. Разработчики ОС Free BSD руководствуются похожим принципом, с тем отличием, что решение о содержании конкретного релиза принимается довольно узкой группой лиц. Следующим шагом может стать проектирование файловой системы. Файловая система (ФС) — основа любой ОС, отвечающая за работу с файлами. Грубо говоря, ФС — это программное обеспечение для работы с файлами, совместно с архитектурой компьютера составляющее платформу. Обычно файловая система совместно с драйверами устройств составляет ядро операционки. Ядро управляет памятью, подсистемой ввода/вывода и выполняет пользовательские задачи, предотвращая возможные сбои. Задача по проектированию ФС — задача математиков и логиков. Будучи грамотно спроектированной, ФС определяет устойчивость платформы в целом. Разный подход к проектированию файловых систем FAT и NTFS дал разные конечные результаты. Это то, что касается Windows, а ведь есть еще и OS/2, Mac, различные клоны UNIX. Требование к системным ресурсам тоже во многом зависит от файловой системы компьютера. На сегодняшний момент существует несколько десятков файловых систем, каждая со своими особенностями. Многие из них распространяются свободно. В этом смысле разработчикам новых операционных систем сказочно повезло: они вольны либо использовать уже существующую ФС, либо разработать свою на основе изучения работы имеющихся исходников. Итак, после решения на бумаге, как будет выглядеть система, определения интерфейсов взаимодействия ОС и пользователя, ОС и аппаратуры и некоторых других не менее сложных вопросов, можно приступать к написанию кода. Но это будет лишь первая, хоть и самая сложная, часть всей работы. Дальше предстоит написать пакет прикладных программ, без которых система будет мертва, «сваять» (другое слово подобрать довольно сложно) инструментарий разработчика, определиться с самой загадочной и вызывающей множество споров частью любой современной ОС — пользовательским интерфейсом. И уже после этого думать о маркетинге и «двигать» продукт в массы. Хотя этого, возможно, не понадобится — слава о хороших продуктах распространяется мгновенно! Источник: http://www.mycomp.com.ua/
|
||
|
||
Copyright © "Internet Zone", info@izcity.com |