Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Создадим О/С (перемешено из форума "Операционные системы")

419
19 декабря 2002 года
Mitja Gladkih
284 / / 19.12.2002
Все-все-все!
Подключайтесь к созданию новой мультизадачной операционной системы!
[email]gladkih@hot.ee[/email]
Страницы:
363
20 декабря 2002 года
Michael
132 / / 20.07.2000
Цитата:
Originally posted by Mitja Gladkih
Все-все-все!
Подключайтесь к созданию новой мультизадачной операционной системы!
[email]gladkih@hot.ee[/email]




Расскажи подробнее?

419
20 декабря 2002 года
Mitja Gladkih
284 / / 19.12.2002
Цитата:
Originally posted by Michael



Расскажи подробнее?


Подробнее? Пожалуйста!
Создание полноценной операционной системы - моя
заветная мечта. Эта система пишется не просто, чтобы "была", а с надеждой на популярность хотя бы
половины Линукса.
Эта система - не клон Юникса, не настройка над Дос
(как Винодоус), она имеет boot-загрузчик в MBR.
Планируется создание графической оболочки, поддержка жёстких дисков, CD-ROM, SCSI, стриммеров, различных типов мышек и видеокарт,
звуковых карт.
Естественно, платформа Интел.
Мои концепции - система должна быть как можно меньше, написана, желательно, на Ассемблере, как
можно более надёжна и быстродействующа. Система будет иметь сетевые возможности. Каждой задаче отводится в памяти(линейная модель) столько места,
сколько описано в хидере. Будут функции динамического выделения памяти.

Я начал её писать один, но понял, что
при написании в n-ром скорость написания возрастает в n раз, а количество ошибок уменьшается в \/----- !!!!
n
Надеюсь на Вашу поддержку, коллеги!
(Некоторым может не понравится моя молодость,
но мой СТАЖ и ОПЫТ - 11 лет!!!!)Чесслово!
Дмитрий.

293
20 декабря 2002 года
SEDEGOFF
586 / / 06.10.2002
У меня эта мечта появилась, как только у меня первый раз без основание ВИНЬ упал..
Так что я полностью ЗА.
Но для начала, по моему мнению необходимо написать что то вроде тех. задания, то есть определиться со всеми функциями и задаться уникальными возможностями.
Нужно начать, а потом попрет...
[email]sedegoff@online.nsk.su[/email]
395
20 декабря 2002 года
RelB
367 / / 09.11.2002
Цитата:
Originally posted by Mitja Gladkih

Подробнее? Пожалуйста!
Создание полноценной операционной системы - моя
заветная мечта. Эта система пишется не просто, чтобы "была", а с надеждой на популярность хотя бы
половины Линукса.
Эта система - не клон Юникса, не настройка над Дос
(как Винодоус), она имеет boot-загрузчик в MBR.
Планируется создание графической оболочки, поддержка жёстких дисков, CD-ROM, SCSI, стриммеров, различных типов мышек и видеокарт,
звуковых карт.
Естественно, платформа Интел.
Мои концепции - система должна быть как можно меньше, написана, желательно, на Ассемблере, как
можно более надёжна и быстродействующа. Система будет иметь сетевые возможности. Каждой задаче отводится в памяти(линейная модель) столько места,
сколько описано в хидере. Будут функции динамического выделения памяти.

Я начал её писать один, но понял, что
при написании в n-ром скорость написания возрастает в n раз, а количество ошибок уменьшается в \/----- !!!!
n
Надеюсь на Вашу поддержку, коллеги!
(Некоторым может не понравится моя молодость,
но мой СТАЖ и ОПЫТ - 11 лет!!!!)Чесслово!
Дмитрий.



А у Вас есть, какие-нить идеи в плане самой архитектуры системы (я не имею ввиду платформу), не только памяти, или Вы как все, главное начать, а потом разберемся... Если нет, то это плохо. Именно поэтому большинство (да практически все) таких проектов находятся лишь в зачаточном состоянии. Ведь написание таких систем как Линукс или Виндовс требует тщательного проектирования, без него максимум чего можно добиться так это что-то типа MenuetOS, да и то уж в очень лучшем случае. Кстати, без проффесионального подхода написание системы усложняется еще и отсутствием софта для разработки ОС. Если делать все правильно, необходимо для начала, написать минимум свой ассемблер и дебаггер. Без них скорость написания упадет ну просто очень сильно. Без отладки писать уж очень сложно. По крайней мере надежной такая система не будет.

Так что одного хотения надежной и быстрой системы не достаточно.

419
20 декабря 2002 года
Mitja Gladkih
284 / / 19.12.2002
Цитата:
Originally posted by RelB


А у Вас есть, какие-нить идеи в плане самой архитектуры системы (я не имею ввиду платформу), не только памяти, или Вы как все, главное начать, а потом разберемся... Если нет, то это плохо. Именно поэтому большинство (да практически все) таких проектов находятся лишь в зачаточном состоянии. Ведь написание таких систем как Линукс или Виндовс требует тщательного проектирования, без него максимум чего можно добиться так это что-то типа MenuetOS, да и то уж в очень лучшем случае. Кстати, без проффесионального подхода написание системы усложняется еще и отсутствием софта для разработки ОС. Если делать все правильно, необходимо для начала, написать минимум свой ассемблер и дебаггер. Без них скорость написания упадет ну просто очень сильно. Без отладки писать уж очень сложно. По крайней мере надежной такая система не будет.

Так что одного хотения надежной и быстрой системы не достаточно.


Кто ж сказал, что только хочется. Усё уже придумано.
А что, Ассемблер разве уже не самый компактный и быстрый язык?
И не надо дерзить, я прошу! Просто, кто хочет подключиться - пишите.

395
21 декабря 2002 года
RelB
367 / / 09.11.2002
Цитата:
Originally posted by Mitja Gladkih

Кто ж сказал, что только хочется. Усё уже придумано.
А что, Ассемблер разве уже не самый компактный и быстрый язык?
И не надо дерзить, я прошу! Просто, кто хочет подключиться - пишите.



Все придумано?? Хорошо, расскажи-ка для начала, пожалста, как у тебя будут распределятся ресурсы между процессами? Какие механизмы ты уже придумал взаимодействия процессов между собой и ядром ОС (допустим, как будет сделана синхронизация, обмен сообщениями; или, например, какими способами будет осуществлятся вызов сервисов ОС) Ааа, вот еще, как будут реализованы драйверы в системе? Какого типа ядро - монолитное или микроядро? Лично я склоняюсь к микро, потому что считаю, что ядро должно быть аппаратно независимым. Вот, мне кажется, эти вопросы являются основными, можно даже сказать главными, от них нужно отталкиваться в дальнейшем. Хотя, если серьезно, то перечислять то, что должно быть не хватит места.

Ассемблер - это не язык, а программа, которая переводит мнемоническое представление машшинных кодов (язык ассемблера) в машшинные коды. А на каком ассемблере пишешь ты (tasm, masm, fasm, nasm, spasm, gasm, pass32 и т.д.)?

А я разве дерзю :)? Что-то за собой не замечал.

419
21 декабря 2002 года
Mitja Gladkih
284 / / 19.12.2002
Цитата:
Originally posted by RelB


Все придумано?? Хорошо, расскажи-ка для начала, пожалста, как у тебя будут распределятся ресурсы между процессами? Какие механизмы ты уже придумал взаимодействия процессов между собой и ядром ОС (допустим, как будет сделана синхронизация, обмен сообщениями; или, например, какими способами будет осуществлятся вызов сервисов ОС) Ааа, вот еще, как будут реализованы драйверы в системе? Какого типа ядро - монолитное или микроядро? Лично я склоняюсь к микро, потому что считаю, что ядро должно быть аппаратно независимым. Вот, мне кажется, эти вопросы являются основными, можно даже сказать главными, от них нужно отталкиваться в дальнейшем. Хотя, если серьезно, то перечислять то, что должно быть не хватит места.

Ассемблер - это не язык, а программа, которая переводит мнемоническое представление машшинных кодов (язык ассемблера) в машшинные коды. А на каком ассемблере пишешь ты (tasm, masm, fasm, nasm, spasm, gasm, pass32 и т.д.)?

А я разве дерзю :)? Что-то за собой не замечал.


Я не лыком шит. Не думай, что ты один такой умный, но ни
перед кем отчитываться не собираюсь. Если желаешь влиться в мой проект, с удовольствием отвечу на все вопросы, только дай четкий ответ - да или нет?

419
21 декабря 2002 года
Mitja Gladkih
284 / / 19.12.2002
Цитата:
Originally posted by RelB


Все придумано?? Хорошо, расскажи-ка для начала, пожалста, как у тебя будут распределятся ресурсы между процессами? Какие механизмы ты уже придумал взаимодействия процессов между собой и ядром ОС (допустим, как будет сделана синхронизация, обмен сообщениями; или, например, какими способами будет осуществлятся вызов сервисов ОС) Ааа, вот еще, как будут реализованы драйверы в системе? Какого типа ядро - монолитное или микроядро? Лично я склоняюсь к микро, потому что считаю, что ядро должно быть аппаратно независимым. Вот, мне кажется, эти вопросы являются основными, можно даже сказать главными, от них нужно отталкиваться в дальнейшем. Хотя, если серьезно, то перечислять то, что должно быть не хватит места.

Ассемблер - это не язык, а программа, которая переводит мнемоническое представление машшинных кодов (язык ассемблера) в машшинные коды. А на каком ассемблере пишешь ты (tasm, masm, fasm, nasm, spasm, gasm, pass32 и т.д.)?

А я разве дерзю :)? Что-то за собой не замечал.


Блин! Душа горит, отвечу!!!!!!
1)Ассемблер - не язык...? Ну, дело терминологии.
2)Использую tasm
3)Ресурсы при помощи блоков симофоров для каждой задачи
4)Вызов через шлюзы прерываний и задач
5)Драйверы - в виде отдельных файлов, в заголовке которых таблица смещений процедур.
6)К сожалению, не понимаю, что ты имеешь ввиду под терминами "монолитное" и "микро".
Если монолитное для тебя - то, в котором и процедуры управления задачами, и драйвера, а микро - где только управление памятью и задачами,
то у меня проектируется смешанное. Там управление и блоки обработки аппаратных прерываний.

395
21 декабря 2002 года
RelB
367 / / 09.11.2002
Цитата:
Originally posted by Mitja Gladkih

Блин! Душа горит, отвечу!!!!!!
1)Ассемблер - не язык...? Ну, дело терминологии.
2)Использую tasm
3)Ресурсы при помощи блоков симофоров для каждой задачи
4)Вызов через шлюзы прерываний и задач
5)Драйверы - в виде отдельных файлов, в заголовке которых таблица смещений процедур.
6)К сожалению, не понимаю, что ты имеешь ввиду под терминами "монолитное" и "микро".
Если монолитное для тебя - то, в котором и процедуры управления задачами, и драйвера, а микро - где только управление памятью и задачами,
то у меня проектируется смешанное. Там управление и блоки обработки аппаратных прерываний.



Ну вот, теперь у меня времени побольше, ща я как дам :). Вот насчет дерзости, помойму это ты больше дерзишь, понимаю - молодость, амбиции....:) На счет четкого ответа (да/нет), я пока подожду, хотелось все-таки сначала узнать, над чем мы будем работать. Плюс это ведь могут прочитать и другие люди. Следовательно, заинтересованность может возрасти если они будут иметь какие-либо представления о проекте.

Ну давай по пунктам:
1. Ну это мы пропустим, см. 2
2. Tasm - это конечно хорошо, особенно режим Ideal, НО, как ты собираешься писать проги под свою ОС? У тебя какой формат запускаемого файла будет: dos-exe, PE, COM? Если другой, то как минимум придется писать линковщик (если вообще возможно) под свою ОС. Во вторых, если работаешь в tasm, то весь софт для ОС придется писать под ДОСом или Виндами, а это не очень хороший вариант. Отладки тоже нет. Поэтому я и говорил, что если правильно подходить к вопросу, необходимо написать свой ассемблер, который будет генерить файл, понятный твоей ОС и вообще под ней работающий.
3. Семафоры - это тоже хорошо :). Только вот что значит блоки семафоров? Одними семафорами мне кажется не обойтись, хотя при умном подходе может и можно. Еще не понятен один момент, как так для каждой задачи? Семафоры, по идее, должны быть доступны всем задачам. Ведь они как раз и оказывают влияние на синхронизацию всех процессов в системе: доступ разных задач к одному устройству или участку памяти, например. Кстати, этот вопрос, очень тонкий, от него ОЧЕНЬ сильно зависит надежность работы всей системы.
4. Ну это и так было понятно :), хотя и не совсем. Вопрос в другом, где все эти процедуры будут хранится? Я намекаю на то, что необходимо будет использовать что-то типа DLL. Вот здесь и находится краеугольное место при написании программ под проектируюмую ОС. Если использовать шлюзы задач или прерываний, как программе сказать ОС какой из сервисов ей нужен? По имени? По коду? Я не буду дальше углублятся в данный вопрос, т.к. мне кажется, дал толчек для поянений.
5. Вот тут я ничегошеньки не понял. Каких процедур? А как эти драйвера вообще будут регистрироваться в системе? Как система определит, в каком обработчике аппаратного прерывания необходимо делать вызов соответствующего драйвера? В каком кольце привелегий будут они выполнятся?
6. В принципе, ты понял правильно. Комментирвать этот пункт пока не буду.

К сожалению, я так и не услышал комментарии по поводу обмена сообщениями и данными между процессами.

Ну вот и все, не так уж много получилось...
Жду ответов, интересно все-таки.

419
21 декабря 2002 года
Mitja Gladkih
284 / / 19.12.2002
Цитата:
Originally posted by RelB


Ну вот, теперь у меня времени побольше, ща я как дам :). Вот насчет дерзости, помойму это ты больше дерзишь, понимаю - молодость, амбиции....:) На счет четкого ответа (да/нет), я пока подожду, хотелось все-таки сначала узнать, над чем мы будем работать. Плюс это ведь могут прочитать и другие люди. Следовательно, заинтересованность может возрасти если они будут иметь какие-либо представления о проекте.

Ну давай по пунктам:
1. Ну это мы пропустим, см. 2
2. Tasm - это конечно хорошо, особенно режим Ideal, НО, как ты собираешься писать проги под свою ОС? У тебя какой формат запускаемого файла будет: dos-exe, PE, COM? Если другой, то как минимум придется писать линковщик (если вообще возможно) под свою ОС. Во вторых, если работаешь в tasm, то весь софт для ОС придется писать под ДОСом или Виндами, а это не очень хороший вариант. Отладки тоже нет. Поэтому я и говорил, что если правильно подходить к вопросу, необходимо написать свой ассемблер, который будет генерить файл, понятный твоей ОС и вообще под ней работающий.


Как же я могу dos-exe использовать????
Тут ты прав.
Пока com. Пока небольшие будут.Может подскажешь,
чегой-бы тут применить?
Хотел достаь 32 разрядный Ассемблер - нигде нету!
Не знаешь, где качнуть?

Цитата:

3. Семафоры - это тоже хорошо :). Только вот что значит блоки семафоров? Одними семафорами мне кажется не обойтись, хотя при умном подходе может и можно. Еще не понятен один момент, как так для каждой задачи? Семафоры, по идее, должны быть доступны всем задачам. Ведь они как раз и оказывают влияние на синхронизацию всех процессов в системе: доступ разных задач к одному устройству или участку памяти, например. Кстати, этот вопрос, очень тонкий, от него ОЧЕНЬ сильно зависит надежность работы всей системы.


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

Цитата:

4. Ну это и так было понятно :), хотя и не совсем. Вопрос в другом, где все эти процедуры будут хранится? Я намекаю на то, что необходимо будет использовать что-то типа DLL. Вот здесь и находится краеугольное место при написании программ под проектируюмую ОС. Если использовать шлюзы задач или прерываний, как программе сказать ОС какой из сервисов ей нужен? По имени? По коду? Я не буду дальше углублятся в данный вопрос, т.к. мне кажется, дал толчек для поянений.


Библиотеки будут в виде исполняемого кода, ссылки на отдельные процедуры - в начале файла. Когда вызываешь, делаешь far call на заголовок. Там 256 ссылок - обращатся к драйверу по имени файла, а внутри - 256 функций, кторые можно разбить на подфункции...

Цитата:

5. Вот тут я ничегошеньки не понял. Каких процедур? А как эти драйвера вообще будут регистрироваться в системе? Как система определит, в каком обработчике аппаратного прерывания необходимо делать вызов соответствующего драйвера? В каком кольце привелегий будут они выполнятся?


Я тоже тебя не понял. Обработчики прерываний - в уровне 0, процедуры работы с ними - 1
Обработчики IRQ только записывают данные в буфер, например, скан код клавиатуры.

Цитата:

6. В принципе, ты понял правильно. Комментирвать этот пункт пока не буду.
К сожалению, я так и не услышал комментарии по поводу обмена сообщениями и данными между процессами.


Ну, если речь идет о вызовах системных функций, планирую передавать численные аргументы по значению, строковые - по смещению. Но это можно оспорить.

Цитата:

Ну вот и все, не так уж много получилось...
Жду ответов, интересно все-таки.

363
21 декабря 2002 года
Michael
132 / / 20.07.2000
Какова идея этого замысла?
-тренировка навыков?
-свободное распространение?
-комерческая выгода?
-или что-то ещё?
395
21 декабря 2002 года
RelB
367 / / 09.11.2002
Цитата:
Originally posted by Mitja Gladkih

Как же я могу dos-exe использовать????
Тут ты прав.
Пока com. Пока небольшие будут.Может подскажешь,
чегой-бы тут применить?
Хотел достаь 32 разрядный Ассемблер - нигде нету!
Не знаешь, где качнуть?


Что значит 32-х разрядный? Поясни.

Цитата:
Блоки семафоров - принудительные блоки таких флажков в одном из сегментов данных задачи.
Они и опрокидываются при переключении задач.


Что-то я вообще здесь ничего не понял насчет семафоров, как ими пользоваться, поясни на примере.

Цитата:
К тому же, доступ к функциям/прерываниям будет контроллироваться системой, если задача не фоновая и не активная, экран ей не доступен...


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

Цитата:
Библиотеки будут в виде исполняемого кода, ссылки на отдельные процедуры - в начале файла. Когда вызываешь, делаешь far call на заголовок. Там 256 ссылок - обращатся к драйверу по имени файла, а внутри - 256 функций, кторые можно разбить на подфункции...


У меня просьба, пиши более понятно, а то как-то прыгаешь с одной темы на другую. Ну сделал я far call на заголовок, а откуда мне знать в какой из 256 ссылок моя процедура. Уже ограничение - 256, а это не очень хорошо.

Цитата:
Я тоже тебя не понял. Обработчики прерываний - в уровне 0, процедуры работы с ними -1. Обработчики IRQ только записывают данные в буфер, например, скан код клавиатуры.


Еще шаг в сторону. Как раз считать скан-код должен, по идее, драйвер устройства. Вот мой взгляд на то каким должен быть доступ к устройству через драйвер:
[Клиентское приложение]---[интерфейсный модуль]---[драйвер устройства].
Интерфейсный модуль служит для преобразования "языка", который понятен программе, в "язык", понятный драйверу.

Например, при считывании файла с диска у меня в голове такой обобщенный алгоритм:
1. Приложение посылает драйверу файловой системы (например, FS) запрос на открытие файла с именем "ххх", путь указан естественно (или его помнит FS по умолчанию).
2. FS посылает сообщение менеджеру дисков (DM), о считывание n-го кластера с m-го диска.
3. DM определяется на каком винте и на каком логическом диске запрашиваемый диск находится и посылает соответствующему драйверу диска сообщение о считывании соот. секторов.

Затем вся эта цепочка побежит в обратную сторону, ну и так туда сюда, пока не откроется весь файл. Вот вобщем такая схема должна быть, конечно она не совсем точна, но идея ясна. Вот здесь приложению, а также драйверу файловой системы вообще накакать где диск этот расположен (сетевой или это вообще дискета, ну т.д.) Вот здесь все универсально, мы спокойно можем оптимизировать алгоритм одного, никаким образом не вмешиваясь в алгоритмы работы другого.
Могу привести пример из Баз Данных. С любой базой можно обращаться с помощью стандартного языка SQL. Драйвер конкретной СУБД преабразует строки SQL запроса в необходимый язык, на котором работает СУБД. Получается, что клиетскому приложению неважно с какой СУБД он работает, можно спокойно оперировать данными через SQL запросы.

Конечно же речь идет не только о драйверах устройств, но и о многом другом. Главное, чтобы одни программы не могли иметь представление о том, о чем у них не требуется. Система должна быть как можно более абстрактна.

Вот так я вижу основу модели ОС.

Цитата:
Ну, если речь идет о вызовах системных функций, планирую передавать численные аргументы по значению, строковые - по смещению. Но это можно оспорить.


Ну не то я у тебя спрашиваю. Как одному процессу передать данные другого процесса при независимых адресных пространствах? Как это у тебя реализовано?

419
22 декабря 2002 года
Mitja Gladkih
284 / / 19.12.2002
Цитата:
Originally posted by Michael
Какова идея этого замысла?
-тренировка навыков?
-свободное распространение?
-комерческая выгода?
-или что-то ещё?


И тренировка навыков, и свободное распространение на ранней стадии.(может и потом, зависит от партнёров)

419
22 декабря 2002 года
Mitja Gladkih
284 / / 19.12.2002
Цитата:

>Как же я могу dos-exe использовать????
>Тут ты прав.
>Пока com. Пока небольшие будут.Может подскажешь,
>чегой-бы тут применить?
>Хотел достаь 32 разрядный Ассемблер - нигде нету!
>Не знаешь, где качнуть?
>--------------------------------------------------------------------------------


>Что значит 32-х разрядный? Поясни.



Опа... подловил. Если честно, не знаю. Видел рекламу "Интел 32 Ассемблер предоставляет все
возможности работы с защищенным режимом..."Но что это такое, не знаю - никогда в руках не держал.

Цитата:

>--------------------------------------------------------------------------------
>Блоки семафоров - принудительные блоки таких флажков в одном из сегментов данных задачи.
>Они и опрокидываются при переключении задач.
>--------------------------------------------------------------------------------


>Что-то я вообще здесь ничего не понял насчет семафоров, как ими пользоваться, поясни на примере.



Забей, я уже передумал.

Цитата:

>--------------------------------------------------------------------------------
>К тому же, доступ к функциям/прерываниям будет контроллироваться системой, если задача не фоновая и не активная, экран ей не доступен...
>--------------------------------------------------------------------------------


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



Никакой не шаг! Ты неправильно понял! Под "экран ей не доступен" я имел ввиду, что если задача неактивна, системные функции не будут выводить на экран ничего "от ее имени".

Цитата:

>--------------------------------------------------------------------------------
>Библиотеки будут в виде исполняемого кода, ссылки на отдельные процедуры - в начале файла. Когда вызываешь, делаешь far call на заголовок. Там 256 ссылок - обращатся к драйверу по имени файла, а внутри - 256 функций, кторые можно разбить на подфункции...
>--------------------------------------------------------------------------------


>У меня просьба, пиши более понятно, а то как-то прыгаешь с одной темы на другую.
>Ну сделал я far call на заголовок, а откуда мне знать в какой из 256 ссылок моя
>процедура. Уже ограничение - 256, а это не очень хорошо.




Номера функций будут унифицированны. А 256, я думаю, вполне достаточно, хотя расширить - не проблема!

Цитата:

>--------------------------------------------------------------------------------
>Я тоже тебя не понял. Обработчики прерываний - в уровне 0, процедуры работы с ними -1. Обработчики IRQ только записывают данные в буфер, например, скан код клавиатуры.
>--------------------------------------------------------------------------------


>Еще шаг в сторону. Как раз считать скан-код должен, по идее, драйвер устройства
>Вот мой взгляд на то каким должен быть доступ к устройству через драйвер:
>[Клиентское приложение]---[интерфейсный модуль]---[драйвер устройства].
>Интерфейсный модуль служит для преобразования "языка", который понятен
>программе, в "язык", понятный драйверу.



Скан код читать будет часть ядра, которая в него входит, но по структуре относится к драйверу.
Ядро-то смешанное будет! Ну а интерфейсный модуль будет встроен в драйвер.

Цитата:

------------------------------------------------------------------------------
>Например, при считывании файла с диска у меня в голове такой обобщенный алгоритм:
>1. Приложение посылает драйверу файловой системы (например, FS) запрос на
>открытие файла с именем "ххх", путь указан естественно (или его помнит FS по
>умолчанию).
>2. FS посылает сообщение менеджеру дисков (DM), о считывание n-го кластера с
>m-го диска.
-------------------------------------------------------------------------------



!!!!!В моей системе нет кластеров, и не будет. Если надо, скажи, я опишу свою FS.

Цитата:

3. DM определяется на каком винте и на каком логическом диске запрашиваемый
диск находится и посылает соответствующему драйверу диска сообщение о
считывании соот. секторов.
Затем вся эта цепочка побежит в обратную сторону, ну и так туда сюда, пока не
откроется весь файл. Вот вобщем такая схема должна быть, конечно она не совсем
точна, но идея ясна. Вот здесь приложению, а также драйверу файловой системы
вообще накакать где диск этот расположен (сетевой или это вообще дискета, ну
т.д.) Вот здесь все универсально, мы спокойно можем оптимизировать алгоритм
одного, никаким образом не вмешиваясь в алгоритмы работы другого.
Могу привести пример из Баз Данных. С любой базой можно обращаться с помощью
стандартного языка SQL. Драйвер конкретной СУБД преабразует строки SQL запроса
в необходимый язык, на котором работает СУБД. Получается, что клиетскому
приложению неважно с какой СУБД он работает, можно спокойно оперировать
данными через SQL запросы.

Конечно же речь идет не только о драйверах устройств, но и о многом другом.
Главное, чтобы одни программы не могли иметь представление о том, о чем у них
не требуется. Система должна быть как можно более абстрактна.

Вот так я вижу основу модели ОС.
-----------------------------------------------------------------------------



Не понял основы твоего возражения. Я вижу работу с FS также...

Цитата:

>--------------------------------------------------------------------------------
>Ну, если речь идет о вызовах системных функций, планирую передавать численные
>аргументы по значению, строковые - по смещению. Но это можно оспорить.
>--------------------------------------------------------------------------------

>Ну не то я у тебя спрашиваю.
>Как одному процессу передать данные другого процесса при независимых
>адресных пространствах? Как это у тебя реализовано?



Не понял. Приведи конкретный пример!
И не "реализовано", а "будет реализовано" - ведь покамесь я сделал только загрузчик, разработал Ф/С и идеологию.

419
22 декабря 2002 года
Mitja Gladkih
284 / / 19.12.2002
Камнем приткновения для меня является программирование видеокарт в защищенном режиме.
Если кто поможет хотя бы ссылкой, будет очень хорошо. Заранее благодарен!
363
22 декабря 2002 года
Michael
132 / / 20.07.2000
Цитата:
Originally posted by Mitja Gladkih
И не "реализовано", а "будет реализовано" - ведь покамесь я сделал только загрузчик, разработал Ф/С и идеологию.



Можешь ли ты представить в Интернете твои разработки. Мне будет интересно посмотреть их и высказать моё мнение.

Ты имеешь ввиду загрузку с дискеты? И твоя FS не FAT12?

419
22 декабря 2002 года
Mitja Gladkih
284 / / 19.12.2002
Цитата:
Originally posted by Michael


Можешь ли ты представить в Интернете твои разработки. Мне будет интересно посмотреть их и высказать моё мнение.

Ты имеешь ввиду загрузку с дискеты? И твоя FS не FAT12?


Собираюсь сделать сайт. Пока спрашивайте, пожалуйста, конкретно, расскажу.

Да, с дискеты и Ж/Д.
Нет, не FAT12, а SLTFS. :)
Sector Links Table File System :)
Посреди диска боольшая таблица цепочек секторов
(как и в ФАТе, но не кластеров!)это могут быть и файлы, и директории. Но! Таблица посреди диска,
значит среднестатистическая скорость работы с
файлами постоянна и больше, чем в ФАТ. Ну и разные другие мелочи.

419
22 декабря 2002 года
Mitja Gladkih
284 / / 19.12.2002
Цитата:
Originally posted by Michael


Можешь ли ты представить в Интернете твои разработки. Мне будет интересно посмотреть их и высказать моё мнение.

Ты имеешь ввиду загрузку с дискеты? И твоя FS не FAT12?


Собираюсь сделать сайт. Пока спрашивайте, пожалуйста, конкретно, расскажу.

Да, с дискеты и Ж/Д.
Нет, не FAT12, а SLTFS. :)
Sector Links Table File System :)
Посреди диска боольшая таблица цепочек секторов
(как и в ФАТе, но не кластеров!)это могут быть и файлы, и директории. Но! Таблица посреди диска,
значит среднестатистическая скорость работы с
файлами постоянна и больше, чем в ФАТ. Ну и разные другие мелочи.

HPFS из OS/2 внешне совместима с FAT, но там, как и у меня, не используются кластеры(так в док. сказано), я думаю, это не случайно...

419
22 декабря 2002 года
Mitja Gladkih
284 / / 19.12.2002
Да, чуть не забыл! Таблица одна на все логические диски - это ускоряет и упрощает работу с файлами.
Ни о каком снижении надежности речи быть не может!
419
22 декабря 2002 года
Mitja Gladkih
284 / / 19.12.2002
Требования к проекту формируются у меня в голове.
Сейчас они меняются... меняются... меняются... хорошо. Нет, подождите... меняются... меняются... готово.
Принцип Дилберта by Скотт Адамс.

Всё же придётся и симафоры, и ограничение использования функций использовать. Над этим пораскину мозгами и напишу.
2.7K
22 декабря 2002 года
matt
5 / / 22.12.2002
Цитата:
Originally posted by Mitja Gladkih
Требования к проекту формируются у меня в голове.
Сейчас они меняются... меняются... меняются... хорошо. Нет, подождите... меняются... меняются... готово.
Принцип Дилберта by Скотт Адамс.

Всё же придётся и симафоры, и ограничение использования функций использовать. Над этим пораскину мозгами и напишу.



Разговоры, разговоры. Ничего конкретного сказано не было... Ты не мог бы выслать исходники заинтерисованным людям (например, мне или Michael’ю). А так: очень интересная затея…

419
23 декабря 2002 года
Mitja Gladkih
284 / / 19.12.2002
Цитата:
Originally posted by matt


Разговоры, разговоры. Ничего конкретного сказано не было... Ты не мог бы выслать исходники заинтерисованным людям (например, мне или Michael’ю). А так: очень интересная затея…


Почему же? Все,кто что-то спрашивали, получили ответ. А исходники получат , кто будут помогать прокту. Конечно, кода вы получите мои робкие попытки что-то сотворить в виде кодов, будете смеятся, но я все делал сам, делал долго, ни команды ни у кого не украл. Так что будет жаль, ежели что-то "утечёт". Посмотри предыдущие посты -во всех ответы и вопросы о тонкостях ядра и т.д.
Не обижайтесь, не думайте, что не доверяю.
Просто я ценю свой труд высоко. Помогайте - сколотим хорошую команду, и дело пойдет...

419
23 декабря 2002 года
Mitja Gladkih
284 / / 19.12.2002
Ну, у кого еще желание спросить, помочь...?
419
23 декабря 2002 года
Mitja Gladkih
284 / / 19.12.2002
Вот сделаю ядро в минимальном объёме, чтобы несколько задач и переключение в ткстовом режиме, тогда выложу исходники.

Всё же, кто знает как в З/Р ВЕСА запрограммировать, напишите, пожалуйста... буду благодарен неизмеримо.
2.7K
23 декабря 2002 года
matt
5 / / 22.12.2002
Цитата:
Originally posted by Mitja Gladkih

Почему же? Все,кто что-то спрашивали, получили ответ. А исходники получат , кто будут помогать прокту. Конечно, кода вы получите мои робкие попытки что-то сотворить в виде кодов, будете смеятся, но я все делал сам, делал долго, ни команды ни у кого не украл. Так что будет жаль, ежели что-то "утечёт". Посмотри предыдущие посты -во всех ответы и вопросы о тонкостях ядра и т.д.
Не обижайтесь, не думайте, что не доверяю.
Просто я ценю свой труд высоко. Помогайте - сколотим хорошую команду, и дело пойдет...



Этот проект будет Open Sources, или ты в дальнейшем собираешься делать на нём много-много бабок? Если первое – то почему ты боишься выложить исходники? Если второе – то единомышленников ты вряд ли найдешь…

Кстати в любом варианте будет нужен опытный руководитель проекта. Иначе мы станем иллюстрацией к известной байке про раков и лебедей. Команда будет состоять отнюдь не из 2-3 человек. Кроме того, многие люди занятые (учатся - работают), по этому постоянно состоять в команде не смогут: только выполнение задач по силам. Также нужен «святой покровитель проекта» - опытный програмер, который сможет помочь с некоторыми вопросами. Я бы выбрал Юрия Зотова, он известен на сайте «Мастера дельфи». Мне кажется, он бы нам помог. Но человек он серьёзный – с пустой идеей к нему не придешь.… Но на конкретные вопросы он ответит. Если у кого-то есть еще предложение – излагайте.

419
24 декабря 2002 года
Mitja Gladkih
284 / / 19.12.2002
Цитата:
Originally posted by matt


Этот проект будет Open Sources, или ты в дальнейшем собираешься делать на нём много-много бабок? Если первое – то почему ты боишься выложить исходники? Если второе – то единомышленников ты вряд ли найдешь…

Кстати в любом варианте будет нужен опытный руководитель проекта. Иначе мы станем иллюстрацией к известной байке про раков и лебедей. Команда будет состоять отнюдь не из 2-3 человек. Кроме того, многие люди занятые (учатся - работают), по этому постоянно состоять в команде не смогут: только выполнение задач по силам. Также нужен «святой покровитель проекта» - опытный програмер, который сможет помочь с некоторыми вопросами. Я бы выбрал Юрия Зотова, он известен на сайте «Мастера дельфи». Мне кажется, он бы нам помог. Но человек он серьёзный – с пустой идеей к нему не придешь.… Но на конкретные вопросы он ответит. Если у кого-то есть еще предложение – излагайте.


Этот проект будет или OpenSource, или FreeWare.
Ну про команду - это и так было ясно, ведь не на работу нанимаемся. А исходник... не хочу, чтобы своровали целиком, один к одному.
Надеюсь на вашу помощь.
Все пишите, сюда, либо на [email]gladkih@hot.ee[/email] и говорите чётко, будете ли участвовать.
Спасибо!

419
24 декабря 2002 года
Mitja Gladkih
284 / / 19.12.2002
Кстати, что это за значок интересненький возле форума появился?
419
24 декабря 2002 года
Mitja Gladkih
284 / / 19.12.2002
Ура! Сделал сайт системы!
http://www.mndos.narod.ru
Там вы сможете найти те подробности, при написании которых у меня руки ещё не отваливались...
295
27 декабря 2002 года
gray_k
356 / / 20.12.1999
Цитата:
Originally posted by Mitja Gladkih
Ура! Сделал сайт системы!
http://www.mndos.narod.ru
Там вы сможете найти те подробности, при написании которых у меня руки ещё не отваливались...


Я ничего не понимаю в web-программировавнии и html, но когда я смотрел на эту страничку, то думал, что глаза один за другим упадут на стол. Сочетание цветов ужасное, хотя это мнение конечно субъективное. А про сочетание цветов можно почитать у Лебедева. Извини, если что не так. А вообще написать свою операционку - это круто. Я бы присоеденился, но к сожелению нет нужной квалификации.

424
27 декабря 2002 года
(C)dragon
307 / / 04.12.2002
И всё-таки, лучше, чтобы эта страница была написана шрифтов поменьше. И инфы по OS я не нашёл. А то как же можно присоединяться непонятно к чему?
419
27 декабря 2002 года
Mitja Gladkih
284 / / 19.12.2002
Я сделал эту страницу за 15 минут. Цвета подбирал так, чтобы видно было :)). Вроде нормально, а шрифты уменьшу. Есть там ссылочка на страницу, где я пока только инфу про файловую систему выложил, потом доделаю. У меня комп полетел, три дня восстанавливал.
419
28 декабря 2002 года
Mitja Gladkih
284 / / 19.12.2002
Кстати, при написании ядра перешел на fasm - на это много причин. Но кто его не знает - не пугайтесь, синтаксис очень похож и удобен!
363
29 декабря 2002 года
Michael
132 / / 20.07.2000
1) Спасибо за старания!

2) За Copyright не бойся! Воровать твою систему не будут по многим причинам. Можешь смело описывать Copyleft under GNU, FSF!

3) Твой сайт действительно читать тяжело, хороший пример цветов - это данный форум!

4) Надеюсь, ты на этом не остановишься!

С уважением.
363
29 декабря 2002 года
Michael
132 / / 20.07.2000
5) Вот вы Господин, придираешься к грамотности других людей в примере с "very first". Зачем же вы назвали файловую систему "Sector Links Table File System" - это же пять существительных в одной строке...
Например, назовите вашу FS - The Table File System of Sector's Links - TFSSL.

Спасибо за внимание.
419
29 декабря 2002 года
Mitja Gladkih
284 / / 19.12.2002
Цитата:
Originally posted by Michael
5) Вот вы Господин, придираешься к грамотности других людей в примере с "very first". Зачем же вы назвали файловую систему "Sector Links Table File System" - это же пять существительных в одной строке...
Например, назовите вашу FS - The Table File System of Sector's Links - TFSSL.

Спасибо за внимание.


А что так? Код не понравился?
Знаю много людей, кто и загрузчик сделать не может...
Теперь про Ф/С:
Если назову по-другому, изменится смысл - ведь это именно Файловая Система, основанная на Таблице, описыв. Связи(Цепочки)Секторов...
Да и SLTFS благозвучнее, чем TFSSL...
Спасибо за внимание.

419
29 декабря 2002 года
Mitja Gladkih
284 / / 19.12.2002
Кстати, что такое Copyleft under GNU,FSF?
Млжет, кто с дизайном поможет. То ли я дальтоник, то ли у меня супер-пупер-мега освещение в комнате и монитор, но мне кажется все нормальным...
2.9K
29 декабря 2002 года
NAIL
10 / / 29.12.2002
Цитата:
Originally posted by Mitja Gladkih
Кстати, что такое Copyleft under GNU,FSF?
Млжет, кто с дизайном поможет. То ли я дальтоник, то ли у меня супер-пупер-мега освещение в комнате и монитор, но мне кажется все нормальным...



Mitja Gladkih я бы тоже не прочь поучастововать в проекте ,но асму на уровне детского сада знаю, но могу помочь с home page у меня опыта достаточно.Вообще затея мне нравиться сам хочу оську написать правдо на С ,а так рад помочь чем смогу.


P.S. на просторах своего винча видел где-то док про програмирование ВЕСА если найду то кину на мыло.

419
29 декабря 2002 года
Mitja Gladkih
284 / / 19.12.2002
Цитата:
Originally posted by NAIL


Mitja Gladkih я бы тоже не прочь поучастововать в проекте ,но асму на уровне детского сада знаю, но могу помочь с home page у меня опыта достаточно.Вообще затея мне нравиться сам хочу оську написать правдо на С ,а так рад помочь чем смогу.


P.S. на просторах своего винча видел где-то док про програмирование ВЕСА если найду то кину на мыло.


Заранее бооооольшое спасибо за VESA!
А про страницу - я кое-что поменял, сейчас закачаю на ftp.
ВСЕМ:Кстати, не сочтите за труд - оцените загрузчик, пожалуйста!
И давайте, пожалуйста, в этом форуме О/С обсуждать. О сайте ситемы давайте говорить в форуме, на сайте Mndos есть свой форум! А то тема об О/С, говорим о сайте, вижу как модератор(не в обиду будет сказано)на стуле ерзает...

2.9K
29 декабря 2002 года
NAIL
10 / / 29.12.2002
Цитата:
Originally posted by Mitja Gladkih

Заранее бооооольшое спасибо за VESA!
А про страницу - я кое-что поменял, сейчас закачаю на ftp.
ВСЕМ:Кстати, не сочтите за труд - оцените загрузчик, пожалуйста!
И давайте, пожалуйста, в этом форуме О/С обсуждать. О сайте ситемы давайте говорить в форуме, на сайте Mndos есть свой форум! А то тема об О/С, говорим о сайте, вижу как модератор(не в обиду будет сказано)на стуле ерзает...



У тебя Аська есть? если да то дай свой юин...Доки я нашёл сейчас кину на мыло,так кое что на асме и на си ,особо не разбирался...

2.9K
29 декабря 2002 года
NAIL
10 / / 29.12.2002
Да кстате в твоём профиле я мыла не вижу:(((
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог