Открытая операционная система с нуля.
Предлагаю написать операционную систему.
1. Задумка эта не коммерческая.
2. Пишется всё с нуля, без использования сторонних продуктов - на голом железе и собственных мозгах.
3. Все происходит прямо здесь, пока это не перестанет быть возможным.
Существует много проектов, но эта затея для тех кто хочет родить операционную систему и воспитывать ее с пеленок (а не содержать пенсионерку). Вот как раз сейчас мы ее зачали.
Надеюсь многому научиться, найти единомышленников, а также найти предел своих возможностей.
Стартовые условия таковы.
Железо: Процессор пень второй. Оператива 32М. Остальное может быть любым, а может и не быть вовсе.
Направление: Система должна в перспективе поддерживать все что угодно, работать с любым набором железа. Систему можно улучшать и это должна предусматривать ее архитектура.
Другими словами - система пишется с нуля и до бесконечности. При этом она все может но ничего не требует. По крайней мере к этому стремится.
Пишется все по порядку - шаг за шагом. Официальный язык - машинный код или то, что напишем на нем сами. Разумеется в мнемониках ассемблера или чего угодно другого, но без использования КОНКРЕТНОГО компилятора.
Главная идея - понимание каждого байта своей системы.
Я так понимаю, что сначала нужно создать ту часть, которая сидит в памяти и работает. Как она туда попадет - не важно. Не надо привязываться к дискетам, жестким дискам и сидюкам. Носители появятся новые и система не должна от них зависеть.
На этом этапе надо определить основные понятия: устройство, процесс, ... вобщем всё то, что будет ядром системы и в дальнейшем уже не изменится - идеология. Это ядро должно дать минимальную функциональность системе, но при этом не ограничивать возможности дальнейшего развития.
Идея подана.
Если она прижилась, то говорите что делать в первую очередь (разумеется не надо начинать с того, как будет выглядеть окно интернет-браузера и каким будет цвет рабочего стола :).
Что должна уметь система в самом фундаменте?
Наверное она должна запускать процессы и соединять их с ресурсами.
Какие могут быть процессы? Какие ресурсы?
Разумеется, система не имеет права зависнуть ни в каком случае по собственной вине или по вине программы.
Нужно придумать универсальные интерфейсы, чтобы система была модульной (универсальность за счет драйверов и т.п.).
Еще раз скажу, что этот велосипед изобретается в первую очередь для собственного развития участников. Поэтому не надо говорить что все уже кем-то создано.
Бог вот человека создал и ладно (раз работает, то ради бога ничего не трогай!), а тебе так - слабо? (я в том смысле, который тут уместен...)
Стартовые условия таковы.
Железо: Процессор пень второй. Оператива 32М. Остальное может быть любым, а может и не быть вовсе.
:D Просто фантастика!!...:)))))
Направление: Система должна в перспективе поддерживать все что угодно, работать с любым набором железа. Систему можно улучшать и это должна предусматривать ее архитектура.
Другими словами - система пишется с нуля и до бесконечности. При этом она все может но ничего не требует. По крайней мере к этому стремится.
:D Потрясающе!!...:)))))
Бог вот человека создал и ладно (раз работает, то ради бога ничего не трогай!), а тебе так - слабо? (я в том смысле, который тут уместен...)
:D Да... Сравнение с Богом, это уже что-то...:))
Ну так тут же и операционка соответствующая...:))))))
посмотри соко ось девелоперов, осбенно весно много прибавлений - прям обострение... У всех их такие же возможности как и у нас, т.е. конкурентов в жопу много.. как жить то? аж настроение проподает >:(
Новенькому
дааарааагой, а как тя знания архитектура и собственно асм..а? + если ты пишешь просто чтоб доказать что я крутой, то непарся.. по себе заню :D а ща вот пересмотрел все и понял, задныцу другым можно и на базаре надрать, а вот ось именно ">>>ЗАЧЕМ<<<" пересмотрев я понял, хочу легкую гибкую с нов интерфейсами ООП и т.м. с новым гуи (я зочу 3х мерный реализовать)
Серьзного ничего не получится...
Все так начинают .......
Цель проста: если вокруг будут одни бараны, то можно стать самым уважаемым среди них.
Чем глубже знания - тем меньше конкурентов.
Вывод: Если человек боится конкурентов, значит признаёт, что любой может нахвататься тех же верхушек, что и он.
Вот и вся крутизна.
Я не имею в виду кого-то конкретно. Для этих целей существуют, наверное, соответствующие форумы.
------
Как организовать защиту системы от потенциально зловредных посягательств "прикладных" программ?
Я так понимаю, что программе выделяется память, и все попытки вылезти за неё будут поводом для казни. Тут всё понятно.
Насколько я понял, команды делятся на привилегированные (выполняются только при CPL=0 .) и обычные. То есть уровни привилегий 3, 2, 1 - в этом смысле одно и тоже. Привилегированных команд мало. Мне кажется что произвольный доступ к портам (in/out) без контроля системой может быть опасен. Вопрос: как ограничить прямой доступ "приложения" к железу?
Все, что не принадлежит самому приложению (а ему принадлежит только его память да регистры) должно предоставляться через запрос к системе. Я еще не разбирался с этим детально. Думаю, что система должна иметь общедоступную часть, которая содержит базовый набор сервисных функций. Ети функции будут обеспечивать выполнение основной задачи системы - взаимодействие между всеми участниками вычислительного процесса.
Каждая программа имеет право экспортировать свои функции и пользоваться предоставленными чужими (например библиотекой).
Может попросить доступ к устройству и желаемые права на него.
И система должна иметь такие механизмы для этого, чтобы ни один участник этого действа не смог испортить работу другого - будь то процесс, устройство или, тем более, сама система.
Вообще, самая первая функция системы - загрузить в память программу с абстрактного носителя (конкретикой будет заниматься драйвер); дать этой программе желаемые ресурсы (если есть) - время работы, доступ к памяти, доступ к устройствам и др. И делать это для любого количества программ.
Насчет абстрактного.
Для системы, по возможности, ВСЁ должно быть виртуальным. Память, устройства, процессы и т.д. Должна быть возможность подключать драйвера для всего этого. Именно поэтому я сказал, что набор железа может быть любым. Для упрощения разработки есть ограничения на процессор (состав и кодировка команд) и на минимальный объем памяти. Хорошо бы чтобы ВСЁ могло быть любым - например форматы исполняемых файлов (система работает с абстрактным процессом через стандартный интерфейс). Тут конечно надо задуматься о сохранении быстродействия. Но это все таки возможно сделать.
Надо бы конечно делать промежуточные варианты системы, а то в проектировании завязнем и всё надоест. Но пока устойчивой концепции системы нет, нет смысла говорить о ней как о таковой.
Я предлагаю с начала попробовать реализовать разные механизмы в отдельности. А потом объединить все в одну операционнкю систему. Так проще, чем обнимать необъятное.
Я не настолько "крут", чтобы все сделать самому и пямо сейчас. Но хочу участвовать - чем смогу. В том и смысл, чтобы научиться у людей, которые разбираются в разных частях предложенной темы. И от себя тоже - "по возможностям".
Конструктивно настроенные - отзовитесь!
я так делаю =) это плохо? ;)
>Цель проста: если вокруг будут одни бараны, то можно стать самым уважаемым среди них.
гыг... т.е. ты намекаешь мол тут присутвующие люди пасуться среди баранов?
>Чем глубже знания - тем меньше конкурентов.
логычно ;) тока реализаия и кол-во знаний совершенно раличные понятия
>Вывод: Если человек боится конкурентов, значит признаёт, что любой может нахвататься тех же верхушек, что и он.
ну я боюсь =))))) и?? а ты хошь сказать мол ты уныкальный и фсе такое ;) что ты мозг? а? =) неочень хороший старт, хотя меня тож критикой встречали :D читать мораль бушь как раз баранам ;)
>Вот и вся крутизна.
ну когда нить может я стану таким же крутым как и ты ;)
>Я не имею в виду кого-то конкретно.
помойму как раз таки ты забыл напысать to Codeworld.. а? ;)
------
>Я так понимаю, что программе выделяется память, и все попытки вылезти за неё будут поводом для казни.
гениально! быстрей запотентуй! =) во первых если ты пишешь реально соввременную ось то нихуя она ни куда не залезет, модель флэт.. и какаая нах казнь! ставишь на страницы мол тока для чтения.
>Мне кажется что произвольный доступ к портам (in/out) без контроля системой может быть опасен. ггыг =) странный вопрос... есть два состояния еби порты во все дыры, или запрети сотвенно в TSS обрубишь... или всем обруби и организуй доступ к портам через почредника, например ядрышка
>Все, что не принадлежит самому приложению (а ему принадлежит только его память да регистры) должно предоставляться через запрос к системе.
%))))))) ну и быстрая ось будет! =)
>Думаю, что система должна иметь общедоступную часть, которая содержит базовый набор сервисных функций.
ты гений! =)
не стал я дальше читать =) у мя у самого есть сборник анекдотов ;)
именно это и толкает на прогресиию своих знаний, именно благодаря этой боязни у мя в шкафу лежит около 40 книг поп сис кодертву харду и органищациям осям. это плохо? ;) знаешь ты страннно сморозил - бояться конкурентов, это называется конкурировать, бороться за место под солнцем, или проще - драть задныцы =))))
Не стану отвечать на вопрос ЗАЧЕМ.
Предлагаю написать операционную систему.
<Skip>
Утопия
Далее - флейм.
Предлагаю писать ОС на Java - это самый безопасный язык со сборщиком мусора.
P.S. С пятым апреля!
это часом не относительно моим постам? ;)
>Далее - флейм.
это часом не относительно моим постам? ;)
Это относительно всех постов, от и до, включая и мои :D
В первую очередь надо написать ядро системы, а про остальное пока забыть.
Про API пока тоже надо забыть.
Система будет состоять из нескольких функциональных уровней. Каждый уровень добавляет ограничения на потенциально опасные действия программ. А взамен предоставляет удобные функции чтобы через них делать то же самое, но безопасно (под контролем ОС).
Самый первый уровень должен обеспечивать многозадачность и предоставлять программам функции для выделения памяти, создания процессов и т.п., т.е. то, для чего понадобится уровень привилегий 0, которого у программ не будет.
Таким образом надо спроектировать механизм многозадачности и создать набор функций для него. Пока нет доступа к устройствам, будем для проверки создавать процессы из программы, а не загружать исполняемый файл.
Таким образом первый вопрос - как обеспечить многозадачность (управляемую операционной системой)?
P.S.: Насчет IOPL и I/O permission bit map в TSS я разобрался.
А вот что дает модель FLAT? И чем плоха многосегментная?
Может ты привык общаться с баранами...
Просто все это перемалывается на 100 раз
Кое кто очень много говорит умного но ничего не делает...
Все ты здесь пишешь я читал уже так много раз
Но очень мало у кого видел!
ты это про флэт спросил, вощем представь так..
8 метров оперативки... у нас задача загрузить 4 аплликации... первая берет первых 2 метра, вторая берет след 2.. след берет еще 2 метра =) осталось свободно 2 метра =) нам надо загрузит еще 4 задачу... мы модем предположим тока 1 первую задачу выгрузить (остальные в деле)... унас есть 4 метра свободных.. но для сегментов это должно быть неперрыные 4 метра... Во флэте такого нет, там ты строишь виртуально непрерыную опертивку из кусков памяти равного размера... т.е. наёбка, прога думает мол 4 метра это неперыный кусок памяти на самом деле мы ей дали первых 2 метра и последних.. как это все реализовается и организовается мозги ебать не буду... чиай кныгы по протекту :P
Я так понял, что совмещать многосегментную модель со страничным преобразованием - неэффективно?
Нельзя ли еще немного про FLAT?..
Как страничное преобразование поддерживает многозадачность (в общих чертах)?
В общем-много чего УЖЕ есть, проблема теперь в основном-реализовать логику самой ОС (последнее, о чём я размышлял тут на досуге - как бы реализовать асинхронную модель взаимодействия на основе сигналов и сообщений - типа: "вот нежданно к нам через обработчик IRQ_1 оттранслированный код прижатой юзверем клавиши - и куда нам его тперь девать, в switch-диспетчер событий (в данном сл. - PressKey или ReleaseKey) какой задачи его передать? Мандаты, мандаты, мандаты...") - начал тут писать драйвер IDE диска и... моментально в проблему организации асинхронных прмитивов взаимодействия упёрся рогом. Но если кто желает не заниматься актуальными вышеозначенными вопросами, а вернуться "назад в будущее" и перемолоть (вплоть до "нуля") исходники системы, как она есть по состоянию на сегодняшнее время - так ведь пожалуйста, я ж не жадный - только давайте реально работать сообща, чтоб лишний раз не тратить силы впустую... OK?
У меня вот только одна проблема - денег на Интернет вечно катастрофически не хватает (я в институте (Машиностроительном-МИХМЕ, чтоб его...) учусь, и по крайней мере в этом семестре стипендию не получаю (раньше получал)). Так что предлагаю как-нибудь либо через FIDO вести переписку (между прочим, идеальный вариант), либо... общаться не в виртуале (физически т.е) - что по-моему создаёт непреодолимые трудности (эдакий "гордиев узел"), связанные с тем, что таким образом круг "потенциальных разработчиков" сужается до минимума тех, кто проживает со мной в одном городе - в Столице Нашей Родины Москве т.е. Конечно, Вы имеете полное право возразить мне что-то типа "на работу устраиваться надо" - но вот только насколько это актуально на 3-м - то курсе МИХМ'а? Хотя... если у кого есть предложения по обеспечению меня материальными благами в обмен на право эксплуатации my own "трудового ресурса" - готов рассмотреть и, скорее всего, принять оные [предложения в смысле]...
P.S. А то, может, кто-нибудь, у кого есть в распоряжении нуль-модемный кабель, подсобит - только нужно, чтоб кабель подлиннее был - а то у меня здесь в Москве что-то связь с Уфой плохо налажена... :-)
хых =) сам выть бушь, он же тока нафиг протект учить начал, какая тут органищация осей =) кстати что не светишься? ты когда нить откроешь сайт о своей оси?? =)))) или намыль мне погляжу..а на словах ща че? микроядро? что в 0 кольце?
>чтоб кабель подлиннее был - а то у меня здесь в Москве что-то связь с Уфой плохо налажена... :-)
а нафик те Уфа? =) в уфе обитает такие как я, кодерлдоподоьные :D
>Разработка ОС? Отлично! Так почему бы Вам, Sanya, не присоединиться к проекту ROSA.
хых =) сам выть бушь, он же тока нафиг протект учить начал, какая тут органищация осей =) кстати что не светишься? ты когда нить откроешь сайт о своей оси?? =)))) или намыль мне погляжу..а на словах ща че? микроядро? что в 0 кольце?
>чтоб кабель подлиннее был - а то у меня здесь в Москве что-то связь с Уфой плохо налажена... :-)
а нафик те Уфа? =) в уфе обитает такие как я, кодерлдоподоьные :D
Прикольно ты сообщения читаешь: ухватываешь только первое и последнее предложения. Когда в следующий раз будешь на форуме прочитай ещё 2 из середины. Вообще ты бы скачал утилиту какую, проговаривающую текст из файлов... - а что, по-моему, очень удобно. Между прочим, в OS/2 Warp 4 такая штука была включена как системный компонент... У тебя, кстати, какая ОС "основная"?
насторежовался =) 1 приложения о чем пойдет треп, последнее заключения... отвечая на первую строку говорю своё мнение.. на последнее критикую =) этот случай не относится к комплексу обработки постов моим методом =)
>Между прочим, в OS/2 Warp 4 такая штука была включена как системный компонент...
>У тебя, кстати, какая ОС "основная"?
с точуи зрения реализации? не думаю что многим отличатся будет от других.. по концепции ещеб!
ты это про свою ось расскажи
>У тебя, кстати, какая ОС "основная"?
с точуи зрения реализации? не думаю что многим отличатся будет от других.. по концепции ещеб!
ты это про свою ось расскажи
Нет, это я не про реализацию. Я про то, какую ОС сам юзаешь. Вот у меня, к примеру, "основной" является ASPLinux 9 (я её так "до ума ловёл", что, по-моему, мне уже собственный дистрибутив можно начать выпускать - под названием DRVCom Linux или каким-нибудь в этом роде... {шутка}), также использую время от времени ФорточкиXP (реальные) и Форточки98 (эмулируемые из-под Linux). При создании своей ос ориентируюсь на решения IBM и ...[блин, книжку "в прокат" сдал, там было написано, что за компания сейчас является правообладателем tm QNX], использованные при создании QNX и OS/2 (ИМХО, ос, наиболее близкие к "техническому совершенству") - хоть они и абослютно разные в своём конечном вополощении (одна - End-User Platform Dependent, другая - Real Time Platform Independent), но "в деталях" построения зачастую эксплуатируют схожие концепции. Мечтаю (вообще, уже очень давно) как-нибудь нахаляву заполучить в свои загребущие псевдоподии диски с OS/2 eComStation - а то что-то у меня по месту жительства плотность покрытия форм рельефа 100$-купюрами очень низкая - на лицензионные дистрибутивы от Serenity Systems Incorporated (наследник прав на OS/2) денег _катастрофически_ не хватает. Извиняюсь за то, что слегка не вписываюсь в рамки темы обсуждения на данной ветке форума...
заваливай на http://osix.narod.ru
Форум, где тусит много осьдевов: http://lowlevel.ru
и четь поменьше: http://board.sysbin.com
намыль мне: [email]supertg@mail.ru[/email]
Разработка ОС? Отлично! Так почему бы Вам, Sanya, не присоединиться к проекту ROSA. ...
Где можно посмотреть исходники?
Или сюда: [email]DLR-0000@yandex.ru[/email]
Originally posted by RedNeon
Я достаточно хороший системный кодер..
Кроме того знаю организацию сетей + я сетевой кодер.
:D ... Без комментариев...
+1
+1
+1
+1
+1
+1
Это действительно возможно.
+1
+1
+1
+1
На этом этапе надо определить основные понятия: устройство, процесс, ... в общем всё то, что будет ядром системы и в дальнейшем уже не изменится - идеология.
/Устройство , я так понял – логическое, может новый способ обмена данными между оными, отличная от irp пакетов принципиально. Понятие “железно” процесса и устройства полностью определяется железной архитектурой процессора и соответствующих контроллеров.
ядро должно дать минимальную функциональность системе, но при этом не ограничивать возможности дальнейшего развития
/ntoskernel – в принципе ядро со входом по 2eh , ничего не мешает слепить свой системный сервис с любым свободным шлюзом. А nix-ы вообще из “кирпичей”.
Нужно придумать универсальные интерфейсы, чтобы система была модульной (универсальность за счет драйверов и т.п.).
/обращаться к (см. выше) сему сервису можно любым , доступным архитектуре процессора , способом. Ну только если интерфейса irp пакетов не достаточно ….
Каждая программа имеет право экспортировать свои функции и пользоваться предоставленными чужими
/про dll даже говорить как-то неудобно.
Для системы, по возможности, ВСЁ должно быть виртуальным. Память, устройства, процессы и т.д. Должна быть возможность подключать драйвера для всего этого.
/ Долго объяснять, почитайте как работают диспетчера сих логических объектов.
Хорошо бы чтобы ВСЁ могло быть любым - например форматы исполняемых файлов (система работает с абстрактным процессом через стандартный интерфейс). Тут конечно надо задуматься о сохранении быстродействия. Но это все таки возможно сделать.
/ ознакомьтесь , ПЛИЗ , как работают процессы подсистем ОС.
Предлагаю писать ОС на Java - это самый безопасный язык со сборщиком мусора.
/для начала пишется “свой” компилятор ассемблера. Хотя можно лепить bin-ы если можно обойтись ими.
Система будет состоять из нескольких функциональных уровней.
/если по защите , мелкомягкие ограничились двумя (их ваще “железно” 4), но не ограничивают сие в “своих” сервисах. Если про уровни “железа” (hal) , логических устройств и уровня пользователя – читайте Русиновича.
Каждый уровень добавляет ограничения на потенциально опасные действия программ. А взамен предоставляет удобные функции чтобы через них делать то же самое, но безопасно
/в принципе этим занимается диспетчер памяти, наделяя каждую страницу своим уровнем защиты, переход на следующий уровень в nt выполнен через шлюзы, но через функции оного диспетчера можно любой странице дать любой уровень.
Самый первый уровень должен обеспечивать многозадачность и предоставлять программам функции для выделения памяти
/диспетчер задач и диспетчер памяти.
Ну теперь про идеологию. Вообще в каждом направлении развития ОС есть своя концепция. Вытесняющая многозадачность в линии Win95-Ме, абстрагирование от уровня аппаратуры в NT, модульность загрузки в nix-ах и каждое направление включает в себя элементы других до необходимых пределов, но не ограничивая их для сторонних производителей ПО (в некоторой степени). Все эти концепции лежат на железной архитектуре процессора. Именно для полного использования предоставляемых им ресурсов пишется свой компилятор асма. (про С в NT Руссинович врал самым конкретным образом, по выходу в свет нового проца первым делом пишется компилятор его асма, С – это когда уже выше hal) Уже одно упоминание Java для сих целей делает сие занятие не серьезным. Ребята , если хотите писать что либо свое, изложите свою концепцию построения ОС. Ее уровни , модули , связи строятся на основании сей концепции + архитектурные особенности проца. (bios можно и перешить). ОС – это гораздо глубже, чем шапки оконных приложений.
… а так … для образования студентов…
… а так … для образования студентов…
ОС-21.
Ubersethce. Это что ?
Ubersethce. Это что ?
Галлюцинаторный параноид в особо извращенной форме с садо-мазо-наклонностями.
Я когда-то занимался написанием миниатюрной системы. Хочу прокомментировать все, что здесь увидел... Беседы про микро- или макроядро, объектно-ориентированную систему - это все чистая теория, а я привык говорить про теорию, которая лежит в основе реальных проектов. При создании ОС теория - это собраться и подумать, что из себя будет представлять будущая система, прежде чем приступать к разработке, иначе придется достраивать все на ходу, а в конце окажется, что чтобы добавить финальный компонент, нужно кардинально переработать всю архитектуру. Далее... Ядро, загрузчик, основные драйвера следует писать одновременно, ибо известно, что периодически следует менять род занятий, чтобы работа не стопорилась... Про файловые системы: когда я писал свою первую самозагружаемую систему, я сделал большую глупость, разработав свою ФС. В итоге она у меня осталась на бумаге, а загрузчики я стал переписывать под FAT12, FAT16 и наконец под FAT32... Опять про файловые системы: ваша ОС должна быть универсальной, т.е. содержать механизм для доступа к различным файловым ситемам посредством драйверов файловых систем (это обычная практика для современных систем). Про доступ к устройствам: линуксовский, т.е. юниксовский механизм файлов устройств хорош только одним - это пример универсального доступа к устройствам; я "никакой" пользователь Unix-подобных систем (попрошу без комментариев), но знаю, что даже в них есть деление, например, на блочные и символьные устройства. Короче, ловите момент :) К устройствам должен быть универсальный доступ, но не как к реально существующим файлам файловой системы, а как к уже открытым файлам, т.е. через handle-механизм, причем описатели файлов и описатели устройств должны существовать параллельно. Опять-таки первые элементы в этой структуре - это стандартное загрузочное устройство, стандартное устройство сообщения об ошибках, стандартные ввод и вывод (вспомним Unix и эпоху становления DOS, которую правильнее было бы назвать эпохой плагиата :) Но мне кажется, я увлекся! Если вам интересны мои комментарии, сообщите об этом :)
Писал по другой теме, но потом увидел, что обсуждение по ней не ведется с 2003 года, улыбнулся и решил, что такой опус, тем более с возможным продолжением, не должен кануть в небытье...
Это все понятно. У меня только один вопрос: для чего?
Мне действительно интересно ознакомится с загрузчиками на fat32. Еще интереснее – каким образом вы желаете приземлять сии инновации (например - описатели) к реальной (хотя-бы блочной) карте памяти вашей системы. И как вы представляете протокол обмена между компонентами вашей операционной системы. И чем у вас отличается обмен с блочными устройствами от обмена с символьными.
Очень надеюсь услышать ваши комментарии.
Это все понятно. У меня только один вопрос: для чего?
Для чего? - Для Freemana! Что делать, тоже не знаю, но куда идти, подскажу...
Объясню: вводить для драйверов доступ к устройствам через дополнительные уровни привилегий, через карту доступа к портам неэффективно, т.к. в принципе при особом желании любое отдельно взятое устройство может подвесить систему. Это первое. Второе, раз уж тебе по нраву определения и модульность: "Драйвер - это неотъемлемая часть операционной системы с точки зрения ее назначения - управлять компьютером", так пусть в таком случае драйвер устройства и обладает всеми правами ядра :) Но в общем случае "территориально" он конечно должен быть отделен от ядра (почему, объяснять не буду :) Про прикладные программы, в том числе и большинство сервисов, выполняющих различного рода слежение, понятно все и так. Они должны обладать минимальными правами.
Народня мудрость. Что еще изобретать то? ж)
>т.к. в принципе при особом желании любое отдельно взятое устройство может подвесить систему. Это первое.
Сорри за невнимательность, а что ты предлагаешь?
>0PL - ядро и драйверы, 3PL - прикладные программы - все!
Народня мудрость. Что еще изобретать то? ж)
Вот тут и надо изобретать. Выносим драйвера на уровень 2PL и получаем защиту от сбоев. Вслучие, чего ядро останиться не поврежденным и сможет разрулить любую проблему. Получаем систему, которая не падает. Даже, если произошла ошибка в драйвере. И драйвер можно будет перезапустить.