Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Операционная система "с нуля" на Ассемблере и Cи


Информационный Канал Subscribe.Ru

Выпуск #1 от 2004-09-08
Здравствуйте, уважаемые подписчики.

Очень давно не делал выпусков... разучился, наверное. Будем вспоминать, как это делается. В качестве разминки поговорим немного об абстрактных взглядах на программирование. На программирование ядер в частности. В чем собственно разница между ядрами Linux, Windwos и других?

Не углубляясь в тонкости системной архитектуры можно сказать, что вся разница в уровне абстракции. В чем заключается задача системного программиста? Она заключается в необходимости освобождения прикладного программиста от необходимости разбираться с системными тонкостями (вот загнул). Причем все идут к этому своими путями. Unix, испокон веков многоплатформенный, абстрагировался от аппаратных тонкостей стандартом на функции. Именно этот стандарт со временем перерос в POSIX.

Кто-то мне заметит, что Windows якобы тоже POSIX совместим. Это было бы хорошо конечно, но у POSIX много сторон. Это и набор функций, это и стандарт размещения файлов... И к тому же, если бы Windows был бы POSIX совместим, то все приложения из Unix на нем бы собирались и работали. В жизни же все совсем не так. Я конечно, не считаю себя большим знатоком Windows, но мне хватает соображения понять, что CreateWindow - это не функция ядра. Вообще в Windows понятие ядра сильно размыто. То ли библиотека то ли драйвер... Зря я, наверное, заговорил про Windows, тем более что не могу точно сказать, где та грань, отделяющая ядро Windows от его приложений. Только не надо, пожалуйста, говорить, что Windows микроядерный!!! Ибо микроядро - оно совсем не такое! (эльфы совсем не такие, как их описал Толкиен! уж я то знаю!).

У микроядра другой уровень абстракции, если Unix абстрагировался от системы в целом (все устройства - суть файл), то микроядро абстрагирует не устройства, а ресурсы. То есть везде есть память, прерывания и порты ввода вывода. Не знаю, одинаково ли устройства работают на физическом уровне на PC и на Sparc... Драйвера устройств никто не отменял, и они все-таки являются частью системы, но ядро уже не несет за них ответственность. Драйвера устройств в данном случае являются обычными приложениями и в случае сбоя (вспомним-ка, что произойдет с Windows или с Linux) драйвер может быть запущен снова и система спокойно продолжит свою работу.

Устройства - пустое и суета сует... главное информация! А информация - суть данные, что бережно для нас содержит память... Если кто-то подумал, что дальше микроядра быть уже ничего не может... так нет, может. Безграничны пределы совершенства. Экзоядро. любой компьютер - суть память... а все остальное от лукавого! Мне правда сложно сходу привести примеры таких ядер, более того я не до конца представляю, как это работает... (память мне услужливо подсказывает, правда, и она не уверена до конца. exos... l4ka...)

Чем глубже в сумрак мы уходим, тем больше сил нам приходится прилагать для обеспечения жизнедеятельности. Если в монолитной системе все готово для работы приложений (сотни интерфейсных функций). То в микроядерных системах нам нужны драйвера, правда ядро прекрасно обходится десятком функций. В случае с экзоядром, помимо драйверов, для работы еще понадобятся менеджеры системных ресурсов, но количество интерфейсных функций сводится до минимума.

Кстати кто сказал, что память не может обслуживаться отдельным приложением? Да вообще кто сказал, что так все и должно быть? Возможно, объекты найдут свое место в нашей структурной реальности? Правда интуиция подсказывает, что это надо делать не на C++, какой он объектный? Что? кто сказал Java? Нет, что-то мне подсказывает, что объектная система должна быть совсем не такой. А вот какой - не знаю. Речь просто идет о том, что мы знаем только то, что придумано на сегодняшний момент. Кстати придумано это было еще на заре компьютерной эры... многие "современные" технологии насчитывают уже десятки лет. Мы просто привыкли, что так все и должно быть, хотя это может оказаться не так. "Откуда мы знаем, что матрица все не перепутала?" Может быть, системы должны быть совсем не такими?

PS: Вы наверное спросите, и это он для того молчал два года, чтобы всякую ерунду здесь писать? И будете отчасти правы. Мне совсем не хочется писать учебник по программированию системы. И Я не хочу, чтобы рассылка так выглядела. А как она будет выглядеть – зависит от Вас.

PPS: А по поводу моей системы… долго ли коротко ли… короче ядро уже приближается к нормальной работоспособности. И посмотреть на это можно на сайте проекта.

С уважением, Dron.
Выпуск #1 от 2004-09-08

Комментарии и предложения принимаются по адресу: dron@infosec.ru
Сайт проекта: http://dronix.sourceforge.net/
© А.Ю. Валяев, 2001-2004. Все права защищены.

http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.asmos
Отписаться

В избранное