> man operating_systems
Почему вам больше не стоит писать собственное ядро
на Понедельник, 27 Декабрь 2004, 20:40
добавил: Эммануэль Марти (Emmanuel Marty) список авторов печатать элемент контента создать pdf-файл  элемент контента
категория Статьи
комментарии: 0
просмотров: 2031


Как вы можете сделать этот мир лучше

Прозрение насчет нашего продукта и отсутствие цели для еще одной ОС убили мое желание поработать над Syllable. В конце концов я и не стал этого делать. В проекте Syllable собралась небольшая группа талантливых людей и я верю в то, что они абсолютно правы в своих попытках исправить недостаток интеграции настольных приложений, от которого страдают большинство дистрибутивов Linux. Сегодняшние исследования пользователями настольного Linux лучше всего описываются как глупые. Хорошо интегрированноеядро и настольный API, с подходом управляемого кода в RAD, вроде того, что предлагает Mono, даст пользователю более однородную среду. Однако, в свете прозрения, я считаю, что команда Syllable серьезно ошибается в методах решения этой проблемы. Они хотят быть лучшими в такой интегрированнойнастольной среде, но также имея хорошее ядро, драйвера и то, что еще есть у вас.

Давайте забудем о типичных ядрах, которые до сих пор сидят в "стадии ". Большинство проектов ядер начинаются с идей вроде "давайте создадим ОС вокруг вот этой новой штуки в файловой системе". Потом, ночь за ночью, небольшая, но растущая команда программистов дублирует диспетчеризацию, виртуальную память, API в стиле POSIX, реестр Windows, драйвера устройств для сетевых карт ISA и стек USB. Через два года штуковина файловой системы реализована. Вам стоит похвалить разработчиков проекта за то, что они продвинулись так далеко, но затем выясняется, что эта штучка не так полезна, как она казалась, и проект переквалифицирутся в ОС общего назначения, коих множество. Хуже, если она действительно полезна, но никто никогда не сможет ощутить ее прелести поскольку любимое приложение пользователя не работает в этой странной ОС. Еще хуже для проекта, если кто-либо украдет идею и выпустит ее для Linux с бОльшим успехом. В любом случае, множество усилий были потрачены на дубляж, в то время как не было сделано ничего нового для мира ОС, или пользователей, ну знаете, тех самых, которые иногда бросают нам косточки, чтобы мы могли позволить себе продолжать наслаждаться программированим.

Размышляя о настольных или серверных операционных системах я не могу придумать ни одной новой идеи, которую нельзя было бы реализовать как часть существующей ОС. Имея исходники проверенных временем свободных ядер и учитывая предыдущее заявление о том, что поверх этого можно построить базовый интерфейс ядра, не существует оправданий отбрасыванию экспериментов по реализации новой идеи как части существующего ядра или в пользовательско пространстве. Например, я думаю, что работа драйверов устройств и других модулей как отдельных задач, даже на уровне ядра, и асинхронная работа с обращениями к ядру только через сообщения достойна уважения. Это нехилый и вызывающий проект, а для конечных пользователей он означает то, что они смогут выгружать или перезагружать модули ядра без каких-либо шансов на неудачу, так как вы не можете оставить потоки работающими, если код выгружается. Такая система также будет хорошо масштабироватьс на SMP, гораздо лучше чем блокировки тут и там. Возможно вы уже захотели написать ядро вокруг хотя бы этой идеи, но нет оправданий для отказа создания патча к Linux, который сделает это. Это будет огромная работа по модификации и тестированию драйверов устройств, но это гораздо меньшая работа, чем если бы вы начали с нуля. Ее можно делать постепенно, всегда поставляя ОС, которая работает, хотя не все драйвера устройств и модули ядра еще пользуются преимуществами новой идеи.

И представьте себе, проект DragonFlyBSD занимается как раз этим, хотя они начали с кода FreeBSD. Я немножко лучше знаю развитие встраиваемых операционных системам, нежели серверных или настольных. Их пользователи, разработчики ПО, которые работают на гигантов потребительскойэлектроники действительно умны. Когда продаешь им продукты этот народ упрям, но благодарен. Они хорошо поняли, что их покупатели, вы и я, покупаем практически тот же самый записывающий привод DVD каждый год и не думаем о неясных возможностях, которые может дать им особая ОС, так что они стандартизироваи платформы ОС. Раньше это были коммерческие RTOS продукты или свободные спецификации вроде TRON, а теперь индустрия довольно серьезно мигрирует на Linux как на наименьший общий знаменатель для своих продуктов. Даже если ваш проект открытый и свободный, если это просто "тоже-" ядро, которое гонится за кормовыми огнями Linux, никого это не заинтересует. Возьмите Linux и реализуйте одну свою хорошую идею в нем, и ей заинтересуется гораздо большее число людей.

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

Хорошая новость в том, что теперь операционная система не ограничивается ядром и интерфейсом open-read-write-close. Поразительно малое количество университетскихисследований идет над концепциями расширений существующих ОС для быстрейших разработок приложений более высокого качества. Почти все подходы делаются частными компаниями или нефинансируемым открытыми проектами, и как уже скромно показала моя компания, это область для множества новых, действительно интересных проектов, над которыми стоит работать.

Как у разработчиков ядер, ваши навыки на порядок выше, чем у других в деле написания и поставки кода для закрытия дыр, которые вы обнаруживаете где-либо в операционной системе. Если вы перенесете свои цели на его добавление а не дублирование существующего проверенного временем ПО, я даже не представляю насколько лучше станет программная среда для всех нас.

Об авторе:
Эммануэль Марти (Emmanuel Marty), основатель и главный технический директор (CTO) NexWave Solutions, которая первой представила коммерчески доступную компонентную архитектуру для потребительскойэлектроники, используемую ведущими производителями. Работает с компьютерами с возраста в 10 лет. Сейчас ему 28 и он живет во Франции, в Монпелье со своей женой и двумя дочерьми-близняшками.

индекс статьи
страница 1 : страница без заголовка
страница 2 : страница без заголовка
страница 3 - текущая : страница без заголовка


Комментарии доступны только авторизованным пользователям, авторизуйтесь или зарегистрируйтесь на сайте здесь

© OSRC.info, 2004-2010.
Авторские права на любые материалы, авторы которых явно указаны, принадлежат их авторам. По вопросам публикации таких материалов обращайтесь к авторам.
Авторские права на любые другие материалы принадлежат OSRC.info.
Сайт является помещением библиотеки. Копирование, сохранение на жестком диске или иной способ сохранения произведений осуществляются пользователями на свой риск.
При использовании материалов сайта ссылка на OSRC.info обязательна.