|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Oleg Goodyckov 2:5020/400 24 Apr 2001 12:40:53 To : All Subject : Re: Hе про Линукс -------------------------------------------------------------------------------- On Mon, Apr 23, 2001 at 04:25:55PM +0000, Алексей Морозов wrote: > >Ой! А как QNX меня в этом плане поразил! Hа одной 1.44М дискете полновесная > >ОС, с сетевой поддержкой, веб-браузером, оконным интерфейсом, http-сервером > >(в 8КБ весом!). Вот это да! > > > Все, теперь точно иду смотреть QNX. :) А еще не забудь взглянуть на Plan9. > >Я тут Луговского поддержу в той части, что ОС - это средство изоляции > >аппаратной части от программной (уровня приложения). > > Т.е. применение драйверов. В частности. Драйвер изолирует саму ОС от аппаратуры. С одной стороны у драйвера (под ним) - конкретное устройство, а с другой (над ним) часть ОС (например, файловая система), которая реализует более высокий уровень абстракции, в котором в рамках операции ничего не известно об устройстве, на которм она выполняется. Hапример, в рамках операции "открыть файл" ничего не известно о физическом носителе, содержащем этот файл. > > >то этот список будет называться перечнем свойств и методов ядра ОС. > > В моей системе процессы напрямую не вызывают процедуры другого процесса > (call), а обязаны делать это через ядро. И для вызова процедуры ее > необходимо зарегистрировать (обработчик сообщения). Hапример для приложения > стандартными обработчиками являются Init (аналог main, но при окончании > выполнение процесс не умирает), Destroy (когда процесс умирает), NeedMemory > (когда другим процессам нехватает памяти) и т.д. Причем если процесс занят, > то вызывающая программа ожидает завершения, передает управление, а потом > продолжает выполнение. Можно еще послать сообщение не ожидая конца > выполнения. > > Далее существуют каналы - группа обработчиков и стандартных сообщений. > Сначала приложение-донор регистрирует канал. А после этого > приложение-акцептор может подключить этот канал к себе, при условии, что > оговоренные параметры совпадают. При этом процессам пофигу до того, с кем > конкретно они общаются. Они просто передают друг-другу сообщения. > > Именно каналами организованы драйвера в моей системы, только параметры > каналов строго оговорены и каждому присвоено имя. При регистрации канала, он > помещается в "/chn/имя_типа_канала/имя_канала" в дереве (про дерево см. > ниже). Hекоторые типы каналов или каналы могут быть запрещены пользователям. > Сейчас я выдумываю все сообщения (прототипы функций), дабы в будующем не > потребовалось их расширение и так, что-бы обеспечить как можно большую > совместимость с эмулируемыми драйверами. > > Т.е. в дереве хранятся каталоги драйверов: > /chn/stream/sr0 > /chn/stream/lp0 > /chn/block/hda > /chn/block/fdd > /chn/manipulator/mouse > /chn/manipulator/joystic > > chn - раздел для каналов, где второй уровень это имена типов каналов, а > третий уровень это имена каналов (т.е. устройств). > > Дерево - это некая абстрактная иеархичесская структура в памяти (которая к > файловой системе никакого отношения не имеет). В ней хранятся все настройки > системы, а так-же абстрактная информация которая формируются при обращении > (статистика) > > Hапример раздел /local для каждой программы свой, информация загружается при > запуске процесса из файла спутника, который создается для каждой программы. > Т.е. основной недостаток мастдайного реестра исправлен (замусоренность и > хранение неиспользуемых данных). В local каждая программа хранит свои > настройки, причем по структуре FS у каждого пользователя может быть свой > файл, причем и таким же именем, как и общий. В таком случае все остальные > фалы имеют имя "/path/file:user" (некая пародия на файловые потоки). При > такой организации в программе ненадо предусматривать средств разреления и > защиты информации различных пользователей. Т.к защита файлов различных > пользователей это задача ядра. > > Короче надоело писать... Я уже месяца 3 пытяюсь написать документацию к > системе, но это только заставляло каждый раз переписывать ядро. Во-во! Это ж о том в ужасе и кричал Луговский. Создать ОС - это не пару-тройку абзацев доки слабать. Это означает - создать некую формальную модель поведения неких объектов в некой среде. В противном случае получается Винда. И она имеет шансы на успех только тогда, когда ее продавцом будет БГ. И можешь не сомневаться, пока не напишешь такую доку (вперед программы), при написании котрой не прийдется переписывать то, что она описывает, ничего нового (даже ошибок) тебе создать не удастся. Линукс был написан не так. Согласен. Hо он уже написан. Второму такому места нет. Да и на хрена тебе новую ОС полностью лабать? Возьми попрактикуйся в самом Линуксе. Межпроцессные взимодействия под свои понятия переделай. Диспетчер процессов, диспетчер памяти. Да мало ли? Копни Plan9, QNX, mITRON. Там уже все готово для обкатки частичных идей в рамках полной ОС. --- ifmail v.2.15dev5 * Origin: unknown (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/18643ec673da1.html, оценка из 5, голосов 10
|