Show all 229 posts from this thread on one page

(http://forum.codenet.ru/index.php)
- Низкоуровневое программирование (http://forum.codenet.ru/forumdisplay.php?forumid=48)
-- Создадим О/С (перемешено из форума "Операционные системы") (http://forum.codenet.ru/showthread.php?threadid=8289)


Posted by Mitja Gladkih on 19.12.2002 17:10:

Thumbs up Создадим О/С

Все-все-все!
Подключайтесь к созданию новой мультизадачной операционной системы!
gladkih@hot.ee


Posted by Michael on 20.12.2002 04:16:

Question Re: Создадим О/С


Originally posted by Mitja Gladkih
Все-все-все!
Подключайтесь к созданию новой мультизадачной операционной системы!
gladkih@hot.ee




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


Posted by Mitja Gladkih on 20.12.2002 14:34:

Lightbulb Re: Re: Создадим О/С


Originally posted by Michael



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


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

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


Posted by SEDEGOFF on 20.12.2002 16:24:

Re: Re: Re: Создадим О/С

У меня эта мечта появилась, как только у меня первый раз без основание ВИНЬ упал..
Так что я полностью ЗА.
Но для начала, по моему мнению необходимо написать что то вроде тех. задания, то есть определиться со всеми функциями и задаться уникальными возможностями.
Нужно начать, а потом попрет...
sedegoff@online.nsk.su

__________________
Намочите голову, намыльте, помоссируйте, смойте пену, повторите...


Posted by RelB on 20.12.2002 18:39:

Re: Re: Re: Создадим О/С


Originally posted by Mitja Gladkih

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

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



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

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


Posted by Mitja Gladkih on 20.12.2002 19:06:

Re: Re: Re: Re: Создадим О/С


Originally posted by RelB


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

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


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


Posted by RelB on 20.12.2002 21:17:

Re: Re: Re: Re: Re: Создадим О/С


Originally posted by Mitja Gladkih

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



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

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

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


Posted by Mitja Gladkih on 20.12.2002 21:52:

Re: Re: Re: Re: Re: Re: Создадим О/С


Originally posted by RelB


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

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

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


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


Posted by Mitja Gladkih on 20.12.2002 21:59:

Re: Re: Re: Re: Re: Re: Создадим О/С


Originally posted by RelB


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

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

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


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


Posted by RelB on 21.12.2002 09:59:

Re: Re: Re: Re: Re: Re: Re: Создадим О/С


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. В принципе, ты понял правильно. Комментирвать этот пункт пока не буду.

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

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


Posted by Mitja Gladkih on 21.12.2002 11:53:

Re: Re: Re: Re: Re: Re: Re: Re: Создадим О/С


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. В принципе, ты понял правильно. Комментирвать этот пункт пока не буду.
К сожалению, я так и не услышал комментарии по поводу обмена сообщениями и данными между процессами.


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


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


Posted by Michael on 21.12.2002 12:59:

Re: Re: Re: Re: Re: Re: Re: Re: Re: Создадим О/С

Какова идея этого замысла?
-тренировка навыков?
-свободное распространение?
-комерческая выгода?
-или что-то ещё?


Posted by RelB on 21.12.2002 14:22:

Re: Re: Re: Re: Re: Re: Re: Re: Re: Создадим О/С


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 запросы.

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

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

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

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


Posted by Mitja Gladkih on 21.12.2002 21:39:

Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Создадим О/С


Originally posted by Michael
Какова идея этого замысла?
-тренировка навыков?
-свободное распространение?
-комерческая выгода?
-или что-то ещё?


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


Posted by Mitja Gladkih on 21.12.2002 22:12:

Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Создадим О/С



>Как же я могу 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 также...



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

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



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


Posted by Mitja Gladkih on 21.12.2002 22:34:

Создадим О/С

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


Posted by Michael on 22.12.2002 04:08:

Re: Создадим О/С


Originally posted by Mitja Gladkih
И не "реализовано", а "будет реализовано" - ведь покамесь я сделал только загрузчик, разработал Ф/С и идеологию.


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

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


Posted by Mitja Gladkih on 22.12.2002 15:29:

Re: Re: Создадим О/С


Originally posted by Michael


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

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


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

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


Posted by Mitja Gladkih on 22.12.2002 15:30:

Re: Re: Создадим О/С


Originally posted by Michael


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

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


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

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

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


Posted by Mitja Gladkih on 22.12.2002 15:33:

Создадим О/С

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


Posted by Mitja Gladkih on 22.12.2002 15:37:

Создадим О/С

Требования к проекту формируются у меня в голове.
Сейчас они меняются... меняются... меняются... хорошо. Нет, подождите... меняются... меняются... готово.
Принцип Дилберта by Скотт Адамс.

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


Posted by matt on 22.12.2002 18:58:

Arrow Re: Создадим О/С


Originally posted by Mitja Gladkih
Требования к проекту формируются у меня в голове.
Сейчас они меняются... меняются... меняются... хорошо. Нет, подождите... меняются... меняются... готово.
Принцип Дилберта by Скотт Адамс.

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



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

__________________
Все, что не ведет к моей гибели, укрепляет мой дух.


Posted by Mitja Gladkih on 23.12.2002 09:41:

Re: Re: Создадим О/С


Originally posted by matt


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


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


Posted by Mitja Gladkih on 23.12.2002 09:56:

Создадим О/С

Ну, у кого еще желание спросить, помочь...?


Posted by Mitja Gladkih on 23.12.2002 10:25:

Re: Создадим О/С

Вот сделаю ядро в минимальном объёме, чтобы несколько задач и переключение в ткстовом режиме, тогда выложу исходники.

Всё же, кто знает как в З/Р ВЕСА запрограммировать, напишите, пожалуйста... буду благодарен неизмеримо.


Posted by matt on 23.12.2002 20:03:

Re: Re: Re: Создадим О/С


Originally posted by Mitja Gladkih

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



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

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

__________________
Все, что не ведет к моей гибели, укрепляет мой дух.


Posted by Mitja Gladkih on 23.12.2002 21:13:

Re: Re: Re: Re: Создадим О/С


Originally posted by matt


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

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


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


Posted by Mitja Gladkih on 23.12.2002 21:18:

Создадим О/С

Кстати, что это за значок интересненький возле форума появился?


Posted by Mitja Gladkih on 24.12.2002 00:33:

Создадим О/С

Ура! Сделал сайт системы!
http://www.mndos.narod.ru
Там вы сможете найти те подробности, при написании которых у меня руки ещё не отваливались...


Posted by gray_k on 27.12.2002 06:11:

Re: Создадим О/С


Originally posted by Mitja Gladkih
Ура! Сделал сайт системы!
http://www.mndos.narod.ru
Там вы сможете найти те подробности, при написании которых у меня руки ещё не отваливались...


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

__________________
С уважением.


Posted by (C)dragon on 27.12.2002 11:21:

Re: Re: Создадим О/С

И всё-таки, лучше, чтобы эта страница была написана шрифтов поменьше. И инфы по OS я не нашёл. А то как же можно присоединяться непонятно к чему?


Posted by Mitja Gladkih on 27.12.2002 19:18:

Re: Re: Re: Создадим О/С

Я сделал эту страницу за 15 минут. Цвета подбирал так, чтобы видно было ). Вроде нормально, а шрифты уменьшу. Есть там ссылочка на страницу, где я пока только инфу про файловую систему выложил, потом доделаю. У меня комп полетел, три дня восстанавливал.


Posted by Mitja Gladkih on 28.12.2002 17:21:

Создадим О/С

Кстати, при написании ядра перешел на fasm - на это много причин. Но кто его не знает - не пугайтесь, синтаксис очень похож и удобен!


Posted by Michael on 29.12.2002 07:04:

Thumbs up Re: Создадим О/С

1) Спасибо за старания!

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

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

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

С уважением.


Posted by Michael on 29.12.2002 07:29:

Re: Re: Создадим О/С

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

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


Posted by Mitja Gladkih on 29.12.2002 13:56:

Re: Re: Re: Создадим О/С


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

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


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


Posted by Mitja Gladkih on 29.12.2002 13:58:

Re: Re: Re: Re: Создадим О/С

Кстати, что такое Copyleft under GNU,FSF?
Млжет, кто с дизайном поможет. То ли я дальтоник, то ли у меня супер-пупер-мега освещение в комнате и монитор, но мне кажется все нормальным...


Posted by NAIL on 29.12.2002 14:35:

Re: Re: Re: Re: Re: Создадим О/С


Originally posted by Mitja Gladkih
Кстати, что такое Copyleft under GNU,FSF?
Млжет, кто с дизайном поможет. То ли я дальтоник, то ли у меня супер-пупер-мега освещение в комнате и монитор, но мне кажется все нормальным...



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


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


Posted by Mitja Gladkih on 29.12.2002 14:44:

Re: Re: Re: Re: Re: Re: Создадим О/С


Originally posted by NAIL


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


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


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


Posted by NAIL on 29.12.2002 14:51:

Re: Re: Re: Re: Re: Re: Re: Создадим О/С


Originally posted by Mitja Gladkih

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



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


Posted by NAIL on 29.12.2002 14:56:

Re: Re: Re: Re: Re: Re: Re: Создадим О/С

Да кстате в твоём профиле я мыла не вижу((


Posted by Mitja Gladkih on 29.12.2002 15:10:

Re: Re: Re: Re: Re: Re: Re: Re: Создадим О/С


Originally posted by NAIL
Да кстате в твоём профиле я мыла не вижу((

ICQ нет. А e-mail должен быть... gladkih@hot.ee


Posted by Mitja Gladkih on 29.12.2002 15:16:

Создадим О/С

Делал я ядро, делал, и вдруг вижу: ну не то это всё... Стёр я файл и начал заново. Вожусь с исключениями, взял кусочек примера из одной книги,
а он, гад, не работает?! Помогите, плиз!
Вот код:
main:
sta:
JMP REALSTART ;ЋЎе®¤Ё¬ ¤ ­­лҐ

label GDTR pword ;LABEL PWORD ;ᢥ¤Ґ­Ёп ® GDT
GDTLIM DW gdtsize-1
GDTADR DD 10000h

label IDTR pword
;LABEL PWORD ;ᢥ¤Ґ­Ёп ® IDT
IDTLIM DW idtsize
IDTADR DD 14040h

GDT:
NULLGDT:
times 8 DB 0
CODES:
DW codesize-1
ADR1 DW 0
ADR2 DB 7h
DB 98h
DB 01000000b
DB 0
DATAS:
DW codesize-1
DW 0
DB 7h
DB 92h
DW 0
STK:
DW 50 ;01Fh
DW STKDW
DB 7
DB 92h
DW 0
VIDEOB:
DW 3999
DW 8000h
DB 0Bh
DB 92h
DW 0
gdtsize=$-GDT
idt:
DW EXC0
DW 08h
DB 0
DB 8Fh
DW 0

DW EXCDUMMY
DW 08h
DB 0
DB 8Fh
DW 0

DW EXCDUMMY
DW 08h
DB 0
DB 8Fh
DW 0

DW EXC3
DW 08h
DB 0
DB 8Fh
DW 0

DW EXCDUMMY
DW 08h
DB 0
DB 8Fh
DW 0

DW EXCDUMMY
DW 08h
DB 0
DB 8Fh
DW 0

DW EXCDUMMY
DW 08h
DB 0
DB 8Fh
DW 0

DW EXCDUMMY
DW 08h
DB 0
DB 8Fh
DW 0

DW EXCDUMMY
DW 08h
DB 0
DB 8Fh
DW 0

DW EXCDUMMY
DW 08h
DB 0
DB 8Fh
DW 0

DW EXC10
DW 08h
DB 0
DB 8Fh
DW 0

DW EXC11
DW 08h
DB 0
DB 8Fh
DW 0

DW EXC12
DW 08h
DB 0
DB 8Fh
DW 0

DW EXC13
DW 08h
DB 0
DB 8Fh
DW 0

DW EXCDUMMY
DW 08h
DB 0
DB 8Fh
DW 0

DW EXCDUMMY
DW 08h
DB 0
DB 8Fh
DW 0

DW EXCDUMMY
DW 08h
DB 0
DB 8Fh
DW 0

DW EXCDUMMY
DW 08h
DB 0
DB 8Fh
DW 0
idtsize=$-idt


COUNTER:
db 0
X DB 1
Y DB 1
testm db 'The microprocessor has retruned into real-mode.',255
MSG1 DB 'We are in protected mode!',255
STRING DB '**** ****_**** ****_**** ****'
datasize=$-COUNTER
STKDW:
times 50 DB 0
stksize=$-STKDW
REALSTART:

mov ax,REALSTART-2 ; ®аЈ ­Ё§гҐ¬ б⥪
mov sp,ax
push cs ;­  ўбпЄЁ© б«гз © Ё­Ёж. ॣЁбвал
pop ds
push ds
pop es

CLI
mov ax,1000h ;ЏҐаҐи«Ґ¬ GDT Ї® 1000:0000h
mov es,ax

xor di,di
mov si, GDT
mov cx,gdtsize
rep movsb

MOV SI,idt
MOV CX,idtsize
MOV DI,4040
REP MOVSB

LGDT [CS:GDTR]
LIDT [CS:IDTR]

MOV AL,0D1h ;ЋвЄа®Ґ¬ a20
OUT 64h,AL
MOV AL,0DFh
OUT 60h,AL

MOV EAX,CR0
OR EAX,1
MOV CR0,EAX ; б®Ўб⢥­­® ЇҐаҐе®¤ ў § йЁйҐ­­л© ०Ё¬

DB 0EAh
DW CONTINUE ; FAR JMP ­  32 ЎЁв­л© ЁбЇ®«­пҐ¬л© Є®¤, ¤ Ўл
DW 8 ; ®Ў­®ўЁвм CS:EIP

CONTINUE:
USE32
MOV AX,16
MOV DS,AX

MOV AX,24
MOV SS,AX

MOV SP,48

MOV AX,32
MOV ES,AX

MOV AX,40
MOV GS,AX

MOV DX,3F2h
MOV AL,00001000b ;—в®Ўл д«®ЇзЁЄ ­Ґ и㬥«
OUT DX,AL

MOV DI,1920
MOV CX,80
MOV AX,1E01h
SCRN:
STOSW
INC AL
LOOP SCRN
MOV AX,0FFFFh
HOME:
MOV SI,STRING
CALL WRD_ASC
MOV SI,STRING
MOV CX,29
MOV AH,74h
MOV DI,1280
SCRN1:
LODSB
STOSW
LOOP SCRN1
CONT2:
JMP CONT2 ; § жЁЄ«Ёў ­ЁҐ

WRD_ASC:
PUSHA
MOV BX,0F000h
MOV DL,12
MOV CX,4
CCCC:
PUSH CX
PUSH AX
AND AX,BX
MOV CL,DL
SHR AX,CL
CALL BIN_ASC
MOV BYTE PTR DS:SI,AL
INC SI
POP AX
SHR BX,4
SUB DL,4
POP CX
LOOP CCCC
POPA
RET
BIN_ASC:
CMP AL,9
JA LETTR
ADD AL,30h
JMP OK
LETTR:
ADD AL,37h
OK:
RET
;OUTSYM:
;;‚лў®¤ бЁ¬ў®« ; CR LF ­Ґ гз. ax - attr,sym, bx - x,y
; PUSH AX
; MOV AX,48
; MOV ES,AX
; MOV AL,80
; XOR AH,AH
; MUL BL;‚ AX - y*80
; MOV BL,BH
; XOR BH,BH
; ADD AX,BX
; MOV BX,2
; MUL BX
; MOV BX,AX;‚ BX - Ї®§ЁжЁп ў ЎгдҐаҐ
; POP AX
; MOV WORD PTR ES:BX,AX
; RETN
EXC0:
MOV AX,0
JMP HOME
EXC3:
MOV AX,3
JMP HOME
EXC10:
MOV AX,10
JMP HOME
EXC11:
MOV AX,11
JMP HOME
EXC12:
MOV AX,12
JMP HOME
EXC13:
MOV AX,13
JMP HOME
EXCDUMMY:
MOV AX,5555h
JMP HOME
codesize=$-sta
Написан для fasm.
В чем же ошибка?


Posted by NAIL on 29.12.2002 15:25:

Re: Создадим О/С

Mitja Gladkih не забивай себе голову всякой чухнёй, посмотри сдесь http://www.codenet.ru/progr/os/intro.php ,там есть простенький пример ядра,и мне кажется что оно написано вполне сносно и просто,и тем более намного меньше чем ты выложил сдесь)


Posted by RelB on 29.12.2002 16:40:

Re: Re: Создадим О/С

Для начала поздравляю всех с наступающим Новым Годом! Хорошо вчера посидели, бошка болит, так что не сердитесь если я пишу коряво... (простите, что не в тему)

Посмотрел я на страничку и особо хорошего впечатления она у меня не оставила.... Мне кажется, ошибочно ОС разрабатывать с файловой системы. Достаточно для начала чтобы она работала на FAT. Это уж потом можно изобретать различные файловые системы под новую ось. Кстати, как MNDOS расшифровывается?

Ну, ща начну критиковать, люблю я енто дело . Только без обид. Насчет утверждения, что таблица в середине диска уменьшает среднее время доступа к диску мне кажется ошибочным, т.к. существует такое понятие как КЭШ где можно енту таблицу хранить. А если без кэширования, то бедному дисководу придется "пролетать" еще и FAT, который посередине чтобы добраться до нужного сектора. Конечно, мое утверждение может быть ошибочным.
Кстати, почему только одна таблица на все логические диски, по моему это только усложнит работу с диском? А почему ты не хочешь использовать кластеры? С помощью них скорость заметно возрастает.

Идем далее, что у нас по программе ?. Посмотрел я исходник загрузчика, сильно не вдавался, особенно после того как увидел название главной функции (извините, но это более чем несерьезно). Да и метки там какие-то не красивые, такое впечатление, что это выходной документ дизассемблера.

Жаль что доки только по ФС. Жду с нетерпением новых поступлений, чтобы хорошенько все раскритиковать .


Posted by Mitja Gladkih on 29.12.2002 19:41:

Re: Re: Re: Создадим О/С


Originally posted by RelB
Для начала поздравляю всех с наступающим Новым Годом! Хорошо вчера посидели, бошка болит, так что не сердитесь если я пишу коряво... (простите, что не в тему)

Посмотрел я на страничку и особо хорошего впечатления она у меня не оставила....


Вот все говорят, что плохая, а в чем дело, никто не говорит... Такое чувство, будто у меня лицо испачкано, все смеются, а зеркала рядом нет...


Мне кажется, ошибочно ОС разрабатывать с файловой системы. Достаточно для начала чтобы она работала на FAT. Это уж потом можно изобретать различные файловые системы под новую ось. Кстати, как MNDOS расшифровывается?


Я не с Ф/С разрабатывал, просто это то, что успел изложить.(И хорошо представить) А ФАТ я не буду использовать.
Сейчас я обновил сайт, загляните, там и расшифровка, и обои другие.
Monosoft Ltd. Disk Operating System. Monosoft Ltd. - имя виртуальной компании, которая систему разрабатывает. Почему такое? Это личное. Связано с именем одной старой фирмы, которая здесь, в Таллине была... Считайте, просто нравится такое.


Ну, ща начну критиковать, люблю я енто дело . Только без обид. Насчет утверждения, что таблица в середине диска уменьшает среднее время доступа к диску мне кажется ошибочным, т.к. существует такое понятие как КЭШ где можно енту таблицу хранить. А если без кэширования, то бедному дисководу придется "пролетать" еще и FAT, который посередине чтобы добраться до нужного сектора. Конечно, мое утверждение может быть ошибочным.


Я и так, и сяк прикидывал - быстрее выходит.


Кстати, почему только одна таблица на все логические диски, по моему это только усложнит работу с диском?


Нет, упрощает. Диск выглядит как однородная структура цепочек.


А почему ты не хочешь использовать кластеры? С помощью них скорость заметно возрастает.


Ну не нравятся они мне... Такой уж я есть...
Теи более, что это я обосновал на сайте.


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


Это о чем? а... MITJA PROC ... Это пока я один писал, так делал, щас поменяю, пардон...


Да и метки там какие-то не красивые, такое впечатление, что это выходной документ дизассемблера.


А я специально старался...


Жаль что доки только по ФС. Жду с нетерпением новых поступлений, чтобы хорошенько все раскритиковать .


НЕ ВЫЙДЕТ!!!!
С наступающим!!!


Posted by Mitja Gladkih on 29.12.2002 19:47:

Re: Re: Создадим О/С


Originally posted by NAIL
Mitja Gladkih не забивай себе голову всякой чухнёй, посмотри сдесь http://www.codenet.ru/progr/os/intro.php ,там есть простенький пример ядра,и мне кажется что оно написано вполне сносно и просто,и тем более намного меньше чем ты выложил сдесь)

Там real mode система! Может, ссылка неправильная?


Posted by NAIL on 30.12.2002 07:14:

Re: Re: Re: Создадим О/С

Да нет ссылка правильная ,просто я в низкоуровневом програмирование плохо щарю,вот и не разбираюсь что там и где... Могу подкинуть ещё пару другую исходников операционнок ,да и ддокументации у меня немерено ,если что спрашивай.


Posted by (C)dragon on 30.12.2002 08:52:

Re: Re: Re: Re: Создадим О/С

О, если много всяких доков, то не мог ли ты подкинуть, как работать с дискетами и винтами через порты в защищённом режиме, а то этого почти нигде не найти.


Posted by Mitja Gladkih on 30.12.2002 10:37:

Re: Re: Re: Re: Re: Создадим О/С


Originally posted by (C)dragon
О, если много всяких доков, то не мог ли ты подкинуть, как работать с дискетами и винтами через порты в защищённом режиме, а то этого почти нигде не найти.

А у меня книги про это! Хы хы хы...


Posted by xkip on 30.12.2002 11:55:

Thumbs up Re: Re: Re: Re: Re: Создадим О/С

Здарова, перцы!
Как я рад шо нашел единомышленников!
Ну начнем с конца - я хочу участвовать в етом проекте!!

а терь по порядку
сам я тоже давно собираюсь написать ОС, но пока, так в черновиках.. причем не сами проги, а чисто идеи, о всяких там тонкостях..

меня ща от етих форточек (win) колотит просто! (сквозняк наверно )

куча идей на высоком уровне (VirtualEngines, GraphicKerneel, даже CyberSpace)

я много с чем знаком, но в основном в теории..
желание льется через край! но времени мало..

RelB правильно заметил про важность организации обмена сообщений между прогами и ОС, я тоже ща над етим размышляю..

и про универсальность я с ним тоже согласен!
даже об фс - пусть у систмы будет новая фс, съевшая опыт предыдущих..
но есль прально организовать универсальость, шо стоит проинициализировать и замонтировать
тот же nfs, fat12-32, ntfs... да шо угодно
тоже касается любой железяки..

FS тоже свою думал, но ща еще полистаю Mitin's страничку..

Да, я слыхал шо таблица посреди диска ускоряет доступ..
(типа средние траектории головок.., типа самая длительная операция в винте - перемещений голов, а тут ето растояние в среднем уменьшется..)
RelB прав, действительно есть же кешь, однако желательно производить запись своевременно.. шобы небыло потерь в случии сбоя..
я вобще досих пор нерешился как же лучше?
ведь написать с фат в начале диска гораздо проще и надежней, а сдесь могут появиться фатальные глюки.. нуно серьезно работать над дебагом..

еще 3 очень важных вопроса:
1) когда ОС запущина - все просто, надо с винт почитать - шлем msg to fsdriver.. ну и так со всеми..
а вот шо касается процесса загрузки - ведь драйвер FS еще незапущен, а ос грузить надо..
т.е. выходит надо создать временные сервисы, организующие работу винта..
ну ето тонкости загрущика..
практики у меня мало, поетому я уперся в етот вопрос..
просто получается шо или потом после загрузки ядра надо переинициализировать винт дровами, а фс-сис-сервис, используемый при загрузке, потереть.
Либо приручить ос к етому сервису, но может у ОС будет другая политика работы с железом..
Mitja, теска мой, раскажи, как ты с етим справился?

2) Тут пиплы сразу - задачи, шлюзы.. com-фрмат..
а я вот подумал, может лучше создать executable формат на подобе *.bat
типа общается месегами с ОС и др прогс.. делает все шо ей нужно как и в exe-com, pe-ne (ну bin форматы, так скажем ), НО! она несможет делать то шо нельза!
здесь гораздо легче повысить стабильность системы..
типа нельза лазить по памяти выделенной лругим прогам, тырить, или шо еще хуже - менять в них данные, незя топтать аппаратные порты - ето дело привелигированных модулей..
нельзя скакать по памяти.. (call far) для етого есть служба сообщений (msg)

я конешно понимаю, шо если писать на подобе BAT (типа opensource, как сразу в транслятор)
то сильно упадет скорость выполнения прог. Но в 90% времени прога будет ждать юзерских действий.. т.е. в среднем ето небудет сильно брасаться в глаза..

однако!
я знаю шо в большенстве описанных выше "запрещенных" действие прого (например про память) сработает GPE (Global Protection Error)
если в аритектуре ЦП мона указать так шобы и при обращении к портам GPE срабатывало, то разумеется отбросим BAT форматы, и остановимся на binо-образных
(я просто неимею подробной инфо по архитектуре в таких тонкостях..)

3) Всеже как будет оргинизовано распределение ЦП времени на задачи??
неужели просто при int8 (18 с хвостом раз в секунду) менять задачи по списку?
(гдето слыхал такой алгоритм)
или же будут навороты?

Немного о себе
Сам я поидее опытный прогер на VB6
знаком с ASM, архитектурой, ну вобщем всего понемногу..
как я и говорил - практики мало, больше знаю в теории..
тут на щет "грубостей,дерзостей" сразу замечу - может и я че грубого ляпну,
ну незна, такой у меня стиль, я стараюсь без обид писать..
также о стиле - может ето кажеться грубым, иногда я пишу свои идеи как бы в утверждениях, типа ожидая критики, а то скажут - "че ты нам порешь - сам нихера не знаешь"
вобщем если че в уме дописывайте: "...так штоли? или я не прав?" шобы ето не выглядело утверждением..

тут у вас и сайт и два форума, мыло, еще че-то..
основной, я полагаю, форум здсь? "...так штоли? или я не прав?"

сори за оффтопики..

вобщем, надеюсь мы друг другу пригодимся..
Всех С Новым, типа, Годом

С уважением, xkip.


Posted by Mitja Gladkih on 30.12.2002 14:08:

Re: Re: Re: Re: Re: Re: Создадим О/С


Originally posted by xkip
Здарова, перцы!
Как я рад шо нашел единомышленников!
Ну начнем с конца - я хочу участвовать в етом проекте!!

а терь по порядку
сам я тоже давно собираюсь написать ОС, но пока, так в черновиках.. причем не сами проги, а чисто идеи, о всяких там тонкостях..

меня ща от етих форточек (win) колотит просто! (сквозняк наверно )

куча идей на высоком уровне (VirtualEngines, GraphicKerneel, даже CyberSpace)

я много с чем знаком, но в основном в теории..
желание льется через край! но времени мало..

RelB правильно заметил про важность организации обмена сообщений между прогами и ОС, я тоже ща над етим размышляю..

и про универсальность я с ним тоже согласен!
даже об фс - пусть у систмы будет новая фс, съевшая опыт предыдущих..
но есль прально организовать универсальость, шо стоит проинициализировать и замонтировать
тот же nfs, fat12-32, ntfs... да шо угодно
тоже касается любой железяки..

FS тоже свою думал, но ща еще полистаю Mitin's страничку..

Да, я слыхал шо таблица посреди диска ускоряет доступ..
(типа средние траектории головок.., типа самая длительная операция в винте - перемещений голов, а тут ето растояние в среднем уменьшется..)
RelB прав, действительно есть же кешь, однако желательно производить запись своевременно.. шобы небыло потерь в случии сбоя..
я вобще досих пор нерешился как же лучше?
ведь написать с фат в начале диска гораздо проще и надежней, а сдесь могут появиться фатальные глюки.. нуно серьезно работать над дебагом..

еще 3 очень важных вопроса:
1) когда ОС запущина - все просто, надо с винт почитать - шлем msg to fsdriver.. ну и так со всеми..
а вот шо касается процесса загрузки - ведь драйвер FS еще незапущен, а ос грузить надо..
т.е. выходит надо создать временные сервисы, организующие работу винта..
ну ето тонкости загрущика..
практики у меня мало, поетому я уперся в етот вопрос..
просто получается шо или потом после загрузки ядра надо переинициализировать винт дровами, а фс-сис-сервис, используемый при загрузке, потереть.
Либо приручить ос к етому сервису, но может у ОС будет другая политика работы с железом..
Mitja, теска мой, раскажи, как ты с етим справился?

2) Тут пиплы сразу - задачи, шлюзы.. com-фрмат..
а я вот подумал, может лучше создать executable формат на подобе *.bat
типа общается месегами с ОС и др прогс.. делает все шо ей нужно как и в exe-com, pe-ne (ну bin форматы, так скажем ), НО! она несможет делать то шо нельза!
здесь гораздо легче повысить стабильность системы..
типа нельза лазить по памяти выделенной лругим прогам, тырить, или шо еще хуже - менять в них данные, незя топтать аппаратные порты - ето дело привелигированных модулей..
нельзя скакать по памяти.. (call far) для етого есть служба сообщений (msg)

я конешно понимаю, шо если писать на подобе BAT (типа opensource, как сразу в транслятор)
то сильно упадет скорость выполнения прог. Но в 90% времени прога будет ждать юзерских действий.. т.е. в среднем ето небудет сильно брасаться в глаза..

однако!
я знаю шо в большенстве описанных выше "запрещенных" действие прого (например про память) сработает GPE (Global Protection Error)
если в аритектуре ЦП мона указать так шобы и при обращении к портам GPE срабатывало, то разумеется отбросим BAT форматы, и остановимся на binо-образных
(я просто неимею подробной инфо по архитектуре в таких тонкостях..)

3) Всеже как будет оргинизовано распределение ЦП времени на задачи??
неужели просто при int8 (18 с хвостом раз в секунду) менять задачи по списку?
(гдето слыхал такой алгоритм)
или же будут навороты?

Немного о себе
Сам я поидее опытный прогер на VB6
знаком с ASM, архитектурой, ну вобщем всего понемногу..
как я и говорил - практики мало, больше знаю в теории..
тут на щет "грубостей,дерзостей" сразу замечу - может и я че грубого ляпну,
ну незна, такой у меня стиль, я стараюсь без обид писать..
также о стиле - может ето кажеться грубым, иногда я пишу свои идеи как бы в утверждениях, типа ожидая критики, а то скажут - "че ты нам порешь - сам нихера не знаешь"
вобщем если че в уме дописывайте: "...так штоли? или я не прав?" шобы ето не выглядело утверждением..

тут у вас и сайт и два форума, мыло, еще че-то..
основной, я полагаю, форум здсь? "...так штоли? или я не прав?"

сори за оффтопики..

вобщем, надеюсь мы друг другу пригодимся..
Всех С Новым, типа, Годом

С уважением, xkip.



Так первое. Давайте все же писать по-русски - в смысле не шо, а что, иначе мне тебя трудно понять.
Главный форум здесь, но вопросы можно задавать и ТАМ. Про int 8. Это в Р/Р 8, в З/Р будет 32.
Буду просто менять, но таймер можно зпрограммировать и на более высокую частоту.
Программы будут в виде bin и exe, скрипты(batch) будут, но они не будут играть особой роли.
Работать с SLTFS очень просто - посмотри исходник загрузчика. А так пиши на e-mail - желательно знать твое имя.


Posted by Mitja Gladkih on 30.12.2002 16:36:

Создадим О/С

RelB и все остальные! Я понял, как объяснить, что SLTFS лучше!
Рассмотрим систему без кэширования, диск не сильно фрагментирован - так и мне, и всем легче представить.
Представь: SLTFS в середине, FAT в начале.
1)При маленькой заполненности диска головкам накопителя(это самая медленная операция - xkip совершенно прав)при моей системе придётся "бегать" от начала диска к середине, при FATе - от начала до... начала, т.е. здесь FAT быстрее.
2)При средней заполненности диска при SLTFS головки ходят от середины к середине, при FATе - от начала к середине, т.е. SLTFS быстрее, т.е. в первых двух случаях FAT и SLTFS компенсируют друг друга.
3)При заполненности диска выше средней отметки:
при SLTFS головки бегают от середины в конец диска, а при FATе - от НАЧАЛА диска в КОНЕЦ, т.е
скорость FATа падает значительно быстрее в сравнении с SLTFS.

Недаром в старых системах - RSX и ОС-РВ(М)
SYSGEN позволяла(утилита - она)размещать спарвочник файлов(не могу уточнить, что это - думаю, корневая директория, но более полезная, чем сейчас)в середине, начале или конце диска - в зависимости от заполненности последенего.
Вот так!... С наступающим!


Posted by RelB on 31.12.2002 05:01:

Re: Создадим О/С

Ну ладно, допустим, что твоя файловая система быстрее. А мне все равно, пока математически не докажешь, я не поверю . Щас скажите, почему ты такой упрямый? Да не упрямый я, просто я не раз сталкивался в жизни с такими случаями когда свиду очевидные вещи кажется навскидку одними, а при математическом подходе все оказывается по другому.

Вот пример. Допустим, Земля имеет длину экватора, скажем, 40000 км. Если мы увиличим длину экватора на один метр, на сколько увеличится радиус Земли? У кого я не спрашивал все говорили: "Ну, да ваще не увеличится ни фига, да на тысячные доли миллиметра". А на самом то деле, он увеличится на 1/2pi метра, т.е. примерно на 16 сантиметров. Т.е. даже если бы длина окружности была сотни тысяч миллионов км, радиус бы все равно увеличился на 16 см. Конечно может для вас это сразу было понятно без мат. решения, но для обычных людей нет.
Сорри за оффтопик.

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

P.S. Всех с Наступающим!!!


Posted by Mitja Gladkih on 31.12.2002 09:03:

Re: Re: Создадим О/С

Ладно, я распишу в условных единицах времени, но это займет время
По-моему, все очевидно, перечитай еще раз мой пост... Я ж сказал, при SLTFS - от 40 дорожки до 80, при FAT - от 0 до 80! А насчет надежности - мне кажется, что Ф/С достаточно надежна, хотя могло быть и получше. Просто когда я ее разрабатывал, не было описаний других систем...
С Наступающим!


Posted by xkip on 31.12.2002 16:07:

Создадим О/С

> Про int 8. Это в Р/Р 8, в З/Р будет 32.
ах, да забыл ето наверно гдето про искуственную многозадачность в Р/Р читал

> Буду просто менять,
А как же приотитеты?
Вобще я поначалу и сам также планировал, но в последующих релизах (которые свет увидит) придется учитывать приоритеты

Загрущик еще непочитал.
А про ФС:

На счет копий ФАТ:
При физическом повреждении диска (в первую очередь ето про флопов)
высока вероятность того, что повредяться сразу обе стороны.. я бы нестал делать копии напротив друг друга..

ПРО метки в ячейках ФАТ:
ну метка "00" ето понятно, на "00" у нас загрущик, а если там "01"? загрущик ты вроде хотел на 2 сектора..
и нащет "FFF", "FFE" - в FAT12 там торчит копия талбицы, а у нас выходит сюда ниче не запишешь!

вот из етих двух пунктов следует што копию выгодно держать в конце..

и ктомуже - ячейка может содержать метку на FAT!
а ето фигово: при случайном сбое и обращении к FAT как к файлу.., вдруг программа захочет стереть етот файл?
В любом случае будет неполноценное использование меток.. может тогда использовать смещение??

А ето приводит к сложности написания и лишним глюкам...
кстати, подумай, легко ли будет диск с такой ФС дефрагментировать??
нужно таскать файлы не в начало и попорядку, а в середину и равномерно распределять их по обе стороны..

кстати, подкинешь доков про HPFS?
че-то неслыхал.. полезно почитать..

Да, и справочники (папки) лучше наверно с середины записывать, рас уж там будет ФАТ.

Может всеже для начала поставим ФАТ в начало
Всетаки щас главное - ядро!

А потом обязательно доведем до ума, с ФАТ посреди диска! Сколько не выщитывай - так будет быстрее.
И я бы несказал што ето зависит от заполненности диска:
забили диск доконца, потом поудаляли почти все, остались файлы токо в конце. Т.е. диск заполнен мало, но при обращении к ним ФАТ будет проходить все дорожки (80), а SLTFS токо 40. Т.е. дело не в заполненности, а в расположении секторов файла. А ето можно при ращетах брать как среднюю величину, т.е. 40 - середина всего и 20, 60 - середина половин (а не середина-начало-конец) (даже если файл фрагментирован - среднее останется тоже, ведь куски могут быть разбросаны по всему диску)
дык вот:

TO| FAT; SLTFS
--------------
20| 20; 20
40| 40; 0
60| 60; 20

и того:
FAT: 120
SLTFS: 40

такие вот у меня вычисления

Ну конешно по теории вероятности, учитывая расположение файлов, ету разницу в движениях головками можно опровергнуть, уменьшить, но не до такой же степени
Ктомуже, читали Нортона "Праграммно аппаратная организация компьютера" 1982г?
про ФС я читал, што с таблицей посреди действительно более быстраю система, но ее сложно создать, много глюков, и используется токо на мощьных серверах, где етот ресурс критичен


Нужно также разобраться с основными принцыпами ядра, в данном случае - работа с железом
Помоему можно загрущик уместить в одном секторе, типа поиск и запуск ядра. в етом же секторе, например в конце, можно помещать инфу о диске - кликуха (label), разделы (если надо), сигнатура ФС..
Дык вот, а после запуска ядра, оно грузит drv для винта, и работает с винтом по всем своим принципам.. как и с любой железиной
т.е. остальное - дело ядра, и загрущик етим ножно не наворачивать

Загрущик еще не читал
на трезвую голову почитаю

С Новым Годом!


Posted by Mitja Gladkih on 31.12.2002 16:18:

Re: Создадим О/С


Originally posted by xkip
> Про int 8. Это в Р/Р 8, в З/Р будет 32.
ах, да забыл ето наверно гдето про искуственную многозадачность в Р/Р читал

> Буду просто менять,
А как же приотитеты?
Вобще я поначалу и сам также планировал, но в последующих релизах (которые свет увидит) придется учитывать приоритеты


Да, я и сам вчера решил с приоритетами делать - нашел на полке книгу, когда елку ставил, "Проектирование операционных систем доля малых ЭВМ"1986. Я заглянул - все базовые понятия АБСОЛЮТНО ТАКИЕ ЖЕ, все подходит! Живем!!!


Загрущик еще непочитал.
А про ФС:

На счет копий ФАТ:
При физическом повреждении диска (в первую очередь ето про флопов)
высока вероятность того, что повредяться сразу обе стороны.. я бы нестал делать их напротив друг друга..


Не, будут напротив - дискета вообще вещь ненадежная, а если повреждения такие, что насквозь , то данные не считать. А повредить диск можно в любом месте. Если они напротив, так проще при повреждении и т.д.


ПРО метки в ячейках ФАТ:
ну метка "00" ето понятно, на "00" у нас загрущик, а если там "01"? загрущик ты вроде хотел на 2 сектора..
и нащет "FFF", "FFE" - в FAT12 там торчит копия талбицы, а у нас выходит сюда ниче не запишешь!


С ума сойду - не понимаю ни слова. Где копия?
FFF - 4095, на дискете всего 2880?!


вот из етих двух пунктов следует што копию выгодно держать в конце..

и ктомуже - ячейка может содержать метку на FAT!
а ето фигово:


А ни фи*а: менеджер файловой системы не позволит туда ничего записать - все обращения к секторам
будет фильтроваться, проги доступ к Таблице не заимеют!!! Главный аспект безопасности - фильтрация системой вызовов записи!


1) при случайном сбое и обращении к FAT как к файлу.., вдруг программа захочет стереть етот файл?
В любом случае будет неполноценное использование меток.. может тогда использовать смещение??


Поясни про метки и смещение - не понимаю ни слова... То ли праздник так действует!?


кстати, подкинешь доков про HPFS?
че-то неслыхал.. полезно почитать..


Где-то английский был. Поищу.


Да, и справочники (папки) лучше наверно с середины записывать.


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


Нужно также разобраться с основными принцыпами ядра, в данном случае - работа с железом
Помоему можно загрущик уместить в одном секторе, типа поиск и запуск ядра. в етом же секторе, например в конце, можно помещать инфу о диске - кликуха (label), разделы (если надо), сигнатура ФС..


В два не поместится. Хотя можно попробовать. А про таблицу томов я на сайте написал - может и во второй сектор запихну.

Дык вот, а после запуска ядра, оно грузит drv для винта, и работает с винтом по всем своим принципам.. как и с любой железиной
т.е. остальное - дело ядра, и загрущик етим ножно не наворачивать А он и не наворачивается. Там драйвера нет, только две простеньких функции...



С Новым Годом!


Вас также!


Posted by xkip on 31.12.2002 16:42:

Re: Re: Создадим О/С

хехе)
Написал, потом сидел исправлял
а пока исправлял пришел ваш ответ
так што почитайте еще раз - там есть кое чего нового


Posted by xkip on 01.01.2003 03:01:

Re: Re: Re: Создадим О/С

ну че там???
я самый трезвый шоли?

ну лана, так уж и юыть :) щитаю своим долгом ответить, токо заранее говору шо типа я под градусои, типа сори, если по кла ве буду часто промазывать :))

> А повредить диск можно в любом месте.
> Если они напротив, так проще при повреждении
> и т.д.

а, ну ты хочешь сказать, што так меньше вероятность повреждения одной из таблиц :)
я же хочу сказать што в етом случае при повреждении одной из таблиц, более высока вероятность того, што будет повреждена сторона на против етой :)

а если талбица в разных местах, то будет равная вероятность повреждения каждой, причем при повреждении одной, вероятность повреждения другой значительно меньше :) (из математики)
так што в етом случае талбицу можно стащить из резерва (ну или синхронизировать с резервом, вдруг и он частично поврежден)

т.е. полюбому, в разных местах выгодней..
хотя я неспорю.. в ФАТ шобы обратиться к резерву надо из одного конца в другой перется..
а тут токо с другой стороны диска глянуть (шо на порядок бустрее), но согласись, к резерву довольно редко приходится обращаться :)
однако повредить его... хорошего мало!

> С ума сойду - не понимаю ни слова.
> Где копия? FFF - 4095, на дискете всего 2880?!

да, я наверно попутал :) надо есчо доков почитать (или перечитать - давно читал-то) :) но ето такое у меня сложилось впчатление..
после первого прочтения..

> А ни фи*а: менеджер файловой системы не
> позволит туда ничего записать

ну я неспорю, я бы и сам непозволил, но всеже надо учесть што возможны случайные информационные поврежденя (не физические) и просле етого могут твориться чудеса!

> Поясни про метки и смещение - не понимаю
> ни слова... То ли праздник так действует!?

да, на меня тоже наверно празник действовал.. :)
вобщем про метки я попутал - я хотел сказать ячейки :) в таблице фат

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

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

> Где-то английский был. Поищу.
угу, плиз поищи, непомешает познакомиться.. :)
eng - непроблема :)

> Там драйвера нет, только две простеньких
> функции...

а вот ето зря.. вот протрезвею, дык мысли свои напишу!

ну лано!
там еще почитай разок старый пост, я его едит!

типа тем, у кого еще небыло НГ, последний раз говорю, "С Новым Годом!!" (ето относится к лондону и америке :) хотя пока писал уж наверно и в лондане прошли празники :) а в америке токо девятый час..

вобщем удачччи всем в 2003!!
салют, сисрайтеры! :))


Posted by matt on 01.01.2003 21:25:

Re: Re: Создадим О/С

Посмотри книгу У.Девис. Операционные системы. Функциональный подход. Издательство "Мир" 1980. Книга старая, но много интересных концепций...

Удачи в темных делах!

__________________
Все, что не ведет к моей гибели, укрепляет мой дух.


Posted by Mitja Gladkih on 02.01.2003 23:01:

Создадим О/С


Originally posted by matt
Посмотри книгу У.Девис. Операционные системы. Функциональный подход. Издательство "Мир" 1980. Книга старая, но много интересных концепций...

Удачи в темных делах!


Спасибо!
Моя С.Кейслера, толщиной сантиметров 5.
Вот я и прос вою также думаю - хоть и старая, но все полезное.
Спасибо за посты, буду читать. Залезте на сайт - он обновился!!!


Posted by YuZeR on 03.01.2003 00:11:

Re: Создадим О/С

Hello All, с наступившим вас! Подскажите, плз, что необходимо знать, чтобы написать операционную систему. Буду признателен, если подскажите литературу по данной теме. Заранее спасибо.


Posted by Mitja Gladkih on 03.01.2003 12:31:

Re: Re: Создадим О/С


Originally posted by YuZeR
Hello All, с наступившим вас! Подскажите, плз, что необходимо знать, чтобы написать операционную систему. Буду признателен, если подскажите литературу по данной теме. Заранее спасибо.

Нужно на ШЕСТЬ знать аппаратную организацию компьютера, свойства, задачи О/С, устройство других и Ассемблер, конечно.
Теперь:
xkip!
Не понял сути твоих речей о смещении меток и тому подобном. Если речь о SLTFS12, там избыточность.
Если о SLTFS16, то вряд ли диск будет именно 65536 секторов+размер Таблицы. Тогда лучше уж поставить SLTFS32.


Posted by Mitja Gladkih on 03.01.2003 12:33:

Re: Re: Re: Создадим О/С

Кстати, xkip!
Дефрагментатор будет простым. А размещение файлов/спарвочников файлов как можно ближе к центру - задача файлового менеджера, это все будет.
На сайте системы я обновил документ о тех.подр.


Posted by Mitja Gladkih on 03.01.2003 12:47:

Re: Re: Re: Re: Создадим О/С

Вот я сел в калошу-то! !@#$%^&*
Планировал я размещать Таблицу по одну сторону диска, копию-по другую. И представлял дискету.

(Кстати, в этой идее надо, чтобы хоть одна сторона была цела, если диск насквозь - работать не будет ни за каие коврижки! В MS-DOS в этом случае пишется "Испорчена дорожка 0. Дальнейшее использование диска невозможно.")

Ну так вот. Про конфуз-то. В начале хотел, чтобы сектора нумеровались так - все сетора на дорожке, ротом след. дорожка. Когда последняя, дорожка 0, головка - следующая. НО: Пишу-то я на диск при помощи DiskEditor, а он, как и MS-DOS считает сектора так : Вначале все сектора дорожки на одной головке, на след., только затем переход на следующую дорожку. Значит, Таблица будет располагаться гармошкой и по ту сторону диска, и по эту. Но скорость будет той же - ведь вероятно, что сектора файла будут и по ту сторону диска, и по эту. По длине треков Таблица будет разделена пополам, и записана по середине с точночтью до дорожки. Это даже лучше, ведь в совр. Дисках на 0 и последнем треке различное число секторов на дорожку. А копия будет храниться рядом.
Думать надо было головой, пардон, друзья! Но изменений никаких.
Так! xkip!
Понимаешь, для защ. и реального режимов нужны соответственно 32 и 16 битный драйвера. Не имеет смысла писать полноценный 16-битный драйвер, если он исп. только в загрузчике! А в вирт. режиме используются тоже 32 битные драйвера, только через опр. фильтры. Ну что ж, идем далее!?


Posted by alex2048akaPAQ on 03.01.2003 20:11:

Re: Создадим О/С

Да! Хорошая идея! Чтобы не какой-нибудь линукс, или аналогичный тормоз, а так, чтобы шел на ХТ с 256 КБ памяти!
Но отойдем от громких слов. Конечно, если собраться вместе, человек так двести, то, конечно, можно создать что-нибудь, но ведь тот же "Micr0Soft" :-) состоит не из одного Гейтса. Да и IBM тоже...
Однако, Торвальдс создал свой юникс за четыре года. И что получилось спустя несколько лет - видите сами.
По-моему, если создавать - то какую-нибудь ДОС-систему с поддержкой FAT32, CD-ROM и прочими прибамбасами. Ведь сейчас все подстраиваются под тот же WinNT (Neadertalus Technology ). И мы - с ними.
Кстати, скажу по-секрету: такая же утопическая идея есть на www.dospage.by.ru , с которой я немного согласен (кстати, там есть ссылочка на мой ресурс )


Posted by Mitja Gladkih on 04.01.2003 22:41:

Re: Re: Создадим О/С


Originally posted by alex2048akaPAQ
Да! Хорошая идея! Чтобы не какой-нибудь линукс, или аналогичный тормоз, а так, чтобы шел на ХТ с 256 КБ памяти!
Но отойдем от громких слов. Конечно, если собраться вместе, человек так двести, то, конечно, можно создать что-нибудь, но ведь тот же "Micr0Soft" :-) состоит не из одного Гейтса. Да и IBM тоже...
Однако, Торвальдс создал свой юникс за четыре года. И что получилось спустя несколько лет - видите сами.
По-моему, если создавать - то какую-нибудь ДОС-систему с поддержкой FAT32, CD-ROM и прочими прибамбасами. Ведь сейчас все подстраиваются под тот же WinNT (Neadertalus Technology ). И мы - с ними.
Кстати, скажу по-секрету: такая же утопическая идея есть на www.dospage.by.ru , с которой я немного согласен (кстати, там есть ссылочка на мой ресурс )


Не смущай народ. Конечно, это трудно, но никто и не говорит, что легко.
А я и моя система ни под кого не подстраивается. Будет поддержка их особенностей, но не более. А IBM нам не страшен!!! Нас больше!!!
Кстати, все! Заходите на сайт, обновил описание ситемы, добавил кое-что!


Posted by Mitja Gladkih on 04.01.2003 22:46:

Re: Re: Re: Создадим О/С

Кстати! Не забывайте, что моя система - система ЗАЩИЩЕННОГО РЕЖИМА!
Она действительно мультизадачная. В релизах планируется и многопользовательность.
Господи, словечки, чЕРТ ногу сломит.
Да,да,да! Вы путаете! MN-DOS совсем другая О/С, она графическая, мультизадачная, а не монозадачная с резидентами. ДОС - потому что Дисковая О/С, а не потому что реального режима ! Не путайте сами и не смущайте народ!
Да, и она будет идти только как минимум, на 386 - она использует специфичные ресурсы М/П!


Posted by RelB on 05.01.2003 07:06:

Re: Re: Re: Re: Создадим О/С

Всем привет!

Мдааа, почитал я тут тех. документацию по MN-DOS и у меня родилось впечатление, что надо переработать ее еще более основательно . Только не обижайтесь на меня, такой уж у меня трудный характер .

Начнем с диспечеризацией задач. Там я много слышал о PID и других интересных вещицах, НО мне ужастно не понравилось, что PID - 1 байт, система ведь, как я понимаю, 32-х битная и процессору гораздо проще оперировать с 32-х битными операндами нежели с байтами. Потом насчет виндовса, я вот у себя посмотрел - 28 процессов и самое большое значение - 1736, так что не знаю почему у Вас там так много. Ну даже если там и такие большие значения, PID же в Виндовс 32-х битный, поэтому значений все равно надолго хватит.
Идем далее, я тут посмотрел повнимательнее и вообще ужаснулся, привык то я, что процесс порождает задачи, потоки, треды или как хотите называйте (вообщем treads), а не наоборот. Все треды по сути для процессора отдельная задача, так что 256 задач (или, как я понял у Вас, процессов) уж точно не хватит (у меня щас 320 тредов работает). Идем далее, как вычисляется квант времени, ну или поставлю по другому вопрос, в каком случае задача/процесс прерывается и процессор предоставляется другому? Теперь о очереди процессов на исполнение. Мне показалось, что алгоритм, может и крутой, но тормозной. Мне кажется, проще (для начала) выделить минимальный квант времени и в соответствии с приоритетом каждому процессу выделять количество квантов равное значению приоритета. Конечно этот алгоритм не притендует на крутизну, он даже наверное самый простой который только можно было придумать, но зато он быстрый и надежный, для начала предлагаю использовать его, чтобы упростить ПОКА(!) это довольно тонкое место, а уж потом его начать перерабатывать и отшлифовывать. Для начала ведь необходимо добиться хоть какой-то работоспособности ядра, ведь если мы будем сразу все по сложному делать, то разработка затянтся на долго.
Далее, необходимо задумываться о том, что в GUI системах большинство процессов только одно и делают, что ждут реакции пользователя, поэтому необходимо предусмотреть, чтобы этим процессам процессорное время не предоставлялось, пока не будет на это необходимости. Еще, чуть не забыл, как вы интересно будете передавать данные между процессами с помощью одних блокировок, семафоров и событий?
Теперь о памяти. Мы же программируем в защищенном режиме, а там задача дефрагментации памяти уже решена на аппартном уровне. Ведь есть такая очень даже хорошая вещь (спасибо Intel) как страничная организации памяти. Зря Вы там выдумываете всякие алгоритмы, которые только замедлят скорость, если есть такое простое решение.
Посмотрел я на последний абзац и понял, что все что я писал выше вообще ни кому не нужно, потому что автор, сам запутался, кто главный - процесс или задача. Все таки я предлагаю четко разделить такое понятие как задачи и процессы!!! Без этого разделения, все разговоры о ядре будут идти впустую.

Ну вот и все, жду дальнейших поступлений, Удачи!!!


Posted by Athlon4XP on 06.01.2003 11:48:

Talking Re: Re: Re: Re: Re: Создадим О/С


Originally posted by Mitja Gladkih
Кстати, что такое Copyleft under GNU,FSF?
Млжет, кто с дизайном поможет. То ли я дальтоник, то ли у меня супер-пупер-мега освещение в комнате и монитор, но мне кажется все нормальным...



S disainom pomoch mogy! Tolko ne garantipyu chto bydet lychshe, chem y "Microsoft" Vsy info ia vozmy s syshestvyushego web'a.

Esli nado pishi: grigorey@msn.com


Posted by Mitja Gladkih on 06.01.2003 19:18:

Создадим О/С

Так, про сайт - теперешний обновленый дизайн мне вполне нравится.
RelB! Много говорил, мало толкового сказал!
Такое большое число - 65536 там и т.д. я привел для примера, что номера разорваны.
256 должно хватить! Не хватит - расширю до двух байт. А про задачи и процессы я ничего не путаю!
В самом начале статьи я написал свои понятия этих терминов. Видимо, это ты сам запутался из-за моего нестандартного их использования. А алгоритм дефрагментации не новый, а отработанный на PDP и IBM, EC-1040 и т.д.(если Ты думаешь, что эти машины надо сдавать в металлолом, а особенно, СМ-1420, мы может по почте поспорить, но тогда держитесь, братцы
В начале страницы не будут использованы, будет использована линейное представление,(но ведь пределы памяти от этого не изменяются, все равно 4Гб?!) но это можно исправить, если потребуется. А с каталогом страниц пока возиться не буду, посмотрим, как моя, пардон, наша системка запашет!
Ведь вы все на меня набрасывались, мол, зачем свою Ф/С делать, давай для начала упростим и возбмем FAT, теперь моя очередь упрощать Вначале отладим простую модель, потом и страницы.
Кстати, дефрагментатор памяти будет запускаться либо через определенные промежутки времени, либо при нехватке памяти. Спасибо за внимание.


Posted by RelB on 07.01.2003 06:00:

Re: Создадим О/С


Originally posted by Mitja Gladkih
RelB! Много говорил, мало толкового сказал!
Такое большое число - 65536 там и т.д. я привел для примера, что номера разорваны.
256 должно хватить! Не хватит - расширю до двух байт. А про задачи и процессы я ничего не путаю!
В самом начале статьи я написал свои понятия этих терминов. Видимо, это ты сам запутался из-за моего нестандартного их использования.



Ну раз так, я приведу выдержки с твоего сайта

Задача - программа, загруженная в память ЭВМ, и исполняющаяся(м.б. ждущая)/готовая к исполнению. Каждая задача состоит из одного или нескольких процессов. Все процессы задачи имеют приоритет задачи.

Ну тут все ясно, далее, в последнем абзаце идет следующее

В системе будут предусмотрены функции дополнительного выделения памяти, т.е. задача может увеличить свой сегмент ДАННЫХ в процессе исполнения. Эти "добавки" будут зарегистрированны с использованием PID главного процесса задачи.

Хорошо, скажи что такое главный процесс задачи? До этого ничего о нем не говорилось.

Далее зачем PID использовать 1,2-х байтные??? Это только замедлит скорость!!! Современные процессоры ориентированы на 32-х битные операнды! Вот именно это было моей главной мыслью.

А алгоритм дефрагментации не новый, а отработанный на PDP и IBM, EC-1040 и т.д.(если Ты думаешь, что эти машины надо сдавать в металлолом, а особенно, СМ-1420, мы может по почте поспорить, но тогда держитесь, братцы
В начале страницы не будут использованы, будет использована линейное представление,(но ведь пределы памяти от этого не изменяются, все равно 4Гб?!) но это можно исправить, если потребуется. А с каталогом страниц пока возиться не буду, посмотрим, как моя, пардон, наша системка запашет!
Ведь вы все на меня набрасывались, мол, зачем свою Ф/С делать, давай для начала упростим и возбмем FAT, теперь моя очередь упрощать Вначале отладим простую модель, потом и страницы.
Кстати, дефрагментатор памяти будет запускаться либо через определенные промежутки времени, либо при нехватке памяти. Спасибо за внимание.

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


Posted by Mitja Gladkih on 08.01.2003 21:23:

Re: Re: Создадим О/С


Originally posted by RelB


Ну раз так, я приведу выдержки с твоего сайта

Ну тут все ясно, далее, в последнем абзаце идет следующее

Хорошо, скажи что такое главный процесс задачи? До этого ничего о нем не говорилось.



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


Далее зачем PID использовать 1,2-х байтные??? Это только замедлит скорость!!! Современные процессоры ориентированы на 32-х битные операнды! Вот именно это было моей главной мыслью.


Ясно. Просто мне байтовое представление кажется более логичным.


А мне все равно кажется проще использовать страницы. И быстрее и мороки не много, особенно если для всех задач используется один каталог страниц. Потом, когда начнешь менять все это дело, не придется ли менять вообще все? Далее, при такой организации памяти система будет как раз похожа на ДОС ,


ОПЯТЬ!!!!! Говорите MS-DOS!!!!! "DOS" - аббревиатура!!! Ух, ка я зол....


а не на серьезную систему. А спорить по поводу этих систем я не буду, потому что спорить с тобой это только пустая трата времени - не умеешь и не хочешь ты признавать свои ошибки, видать еще жизнь тебя мало потрепала....


Взаимно.


Posted by RelB on 09.01.2003 05:04:

Re: Re: Re: Создадим О/С


Originally posted by Mitja Gladkih

Взаимно.



Posted by RelB on 09.01.2003 07:41:

Re: Re: Re: Re: Создадим О/С

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


Posted by (C)dragon on 09.01.2003 08:11:

Re: Re: Re: Re: Re: Создадим О/С

Придёться тебе переделывать ФС, т.к. никто не захочет ставить себе на комп одну малоизвестную систему. Таблица секторов должна быть своя для каждого раздела - это правило существует для всех файловых систем.


Posted by Michael on 09.01.2003 10:03:

Re: Re: Re: Re: Re: Re: Создадим О/С

Митя по теме GNU; FSF и GPL ты можешь почитать www.gnu.org //Жалко, русской версии нет!

- RelB, ты молодец! Так держать, коллега! -

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

С уважением!


Posted by RelB on 09.01.2003 13:48:

Question Re: Re: Re: Re: Re: Re: Re: Создадим О/С

2Michael: Спасибо, только вот за что, если не секрет ?.

Еще вопрос к Мите. Решил ли ты проблему определения полного объема физической памяти? Вот например у меня 256Мб, как мне определить что у меня ее стока? Ни где не нашел, максимум, на что БИОС и ЦМОС способны это 64 МБ. Пробовал просматривать всю память чтением/записью чего то не выходит.


Posted by Mitja Gladkih on 09.01.2003 14:57:

Re: Re: Re: Re: Re: Re: Re: Re: Создадим О/С


Originally posted by RelB
2Michael: Спасибо, только вот за что, если не секрет ?.

Еще вопрос к Мите. Решил ли ты проблему определения полного объема физической памяти? Вот например у меня 256Мб, как мне определить что у меня ее стока? Ни где не нашел, максимум, на что БИОС и ЦМОС способны это 64 МБ. Пробовал просматривать всю память чтением/записью чего то не выходит.


Не, не знаю. Наверно буду, как в Mandrake, просить юзера ввести объём памяти.
А насчет Ф/С - кто сказал, что для каждого раздела своя таблица, что -это неисанное правило, а? Мне кажется это оптимальным вариантом.

А поддержка других Ф/С будет, это естественно. Но наверно, в версии 1.5, 2.0 - не раньше. А Ф/С такова, что для ее нормального функционирования нельзя "приспособиться" к FAT или другим Ф/С. Надо чем-то и жертвовать. Зато после моей системы fdisk как по маслу пойдет. А то удалить Линукс - проблема... То имена разделом не той кодировкой, разными буквами, вроде AbcD_EfghiJK, то sys.com загрузчик никак выкинуть не может, хотя и пишет, что все ОК...


Posted by Mitja Gladkih on 09.01.2003 15:01:

Re: Re: Re: Re: Re: Re: Re: Создадим О/С


Originally posted by Michael
Митя по теме GNU; FSF и GPL ты можешь почитать www.gnu.org //Жалко, русской версии нет!

- RelB, ты молодец! Так держать, коллега! -

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

С уважением!


Ребята! Я в английских аббревиатурах не силен, в-основном использую их русские аналоги. Что такое GNU,FSF,GPL?


Posted by Mitja Gladkih on 09.01.2003 15:04:

Re: Re: Re: Re: Re: Re: Создадим О/С


Originally posted by (C)dragon
Придёться тебе переделывать ФС, т.к. никто не захочет ставить себе на комп одну малоизвестную систему. Таблица секторов должна быть своя для каждого раздела - это правило существует для всех файловых систем.

Ну да... Но ведь Линукс тоже был малоизвестной системой, которая сначала вряд ли могла сосуществовать с другими О/С, Mac/OS вроде тоже...


Posted by Mitja Gladkih on 09.01.2003 15:10:

Re: Re: Re: Re: Re: Re: Re: Создадим О/С

Пожалуйста, не надо искать "фатальные" ошибки. Вы все сравниваете мою систему с такими гигантами, как Линукс-Юникс-Виндовс... Все впереди.


Posted by (C)dragon on 09.01.2003 15:28:

Re: Re: Re: Re: Re: Re: Re: Re: Создадим О/С


Еще вопрос к Мите. Решил ли ты проблему определения полного объема физической памяти? Вот например у меня 256Мб, как мне определить что у меня ее стока? Ни где не нашел, максимум, на что БИОС и ЦМОС способны это 64 МБ. Пробовал просматривать всю память чтением/записью чего то не выходит.



Определение памяти до 4Гб.

int 15h fn e801h
Входные параметры:

ax = e801h.
Выходные параметры:
ax - размер расширенной памяти в килобайтах до 16Mb;
bx - размер расширенной памяти в блоках по 64к свыше 16Мб;
cx - размер сконфигурированный расширенной памяти в килобайтах до 16Mb;
dx - размер сконфигурированной расширенной памяти в блоках по 64к свыше 16Мб.


В биосе есть также функция определения памяти свыше 4Гб, а говорите 64Мб...

Как же не искать ошибки - ввод памяти пользователем - это точно ошибка, ведь если он введёт большее значение, то при попытках записать по этим адресам комп будет перезагружаться. Код определения памяти лучше всего расположить в Boot-секторе.


Posted by SkLite on 09.01.2003 16:01:

Re: Re: Re: Re: Re: Re: Re: Re: Re: Создадим О/С

Hi
Я не знаю как оно там через биос(не люблю я его), да и при чем тут бут тоже не пойму.
Количество памяти определяется элементарно или в протектед или в анриле примерно так:
Start:
xor esi, esi
xor edx, edx
push Offset DAllMem Offset DAllMem
pop ds es

@@test_himem:
xchg [esi], eax
xchg eax, [esi]
inc edx
add esi, 1024*1024
cmp eax, 0FFFFFFFFh
jne @@test_himem
По крайней мере у меня на нескольких машинах, с разным количеством памяти, определялось точно.


Posted by RelB on 09.01.2003 16:10:

Re: Re: Re: Re: Re: Re: Re: Re: Re: Создадим О/С


Originally posted by (C)dragon



Определение памяти до 4Гб.

int 15h fn e801h
Входные параметры:

ax = e801h.
Выходные параметры:
ax - размер расширенной памяти в килобайтах до 16Mb;
bx - размер расширенной памяти в блоках по 64к свыше 16Мб;
cx - размер сконфигурированный расширенной памяти в килобайтах до 16Mb;
dx - размер сконфигурированной расширенной памяти в блоках по 64к свыше 16Мб.


В биосе есть также функция определения памяти свыше 4Гб, а говорите 64Мб...

Как же не искать ошибки - ввод памяти пользователем - это точно ошибка, ведь если он введёт большее значение, то при попытках записать по этим адресам комп будет перезагружаться. Код определения памяти лучше всего расположить в Boot-секторе.


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

Кстати, если не трудно, кинь доку по всем функциям биоса поновее, чтоб в дальнейшем таких ошибок не возникало. Мыло relb@inbox.ru. Заранее спасибо.


Posted by Michael on 10.01.2003 06:46:

Exclamation Re: Re: Re: Re: Re: Re: Re: Re: Создадим О/С


Originally posted by RelB
2Michael: Спасибо, только вот за что, если не секрет ?.





2RelB Не секрет. За хорошие замечания по системе!


Митя ты говорил, что система будет или OpenSource, или FreeWare, вот я привёл пример www.gnu.org , это как раз об этом. Но Copyright это менее важный вопрос.

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

С почтением.


Posted by RelB on 10.01.2003 11:06:

Re: Re: Re: Re: Re: Re: Re: Re: Re: Создадим О/С


Originally posted by (C)dragon

Определение памяти до 4Гб.
int 15h fn e801h
Входные параметры:



Попробовал я запустить эту функцию, чего то не работает, мне кажется она не является стандартной. Или просто потому что я запускал под TD да еще и в DOS окне WinXP???


Posted by (C)dragon on 10.01.2003 14:08:

Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Создадим О/С

У меня тоже не сработала, хотя стоит Windows Millennium. По-моему TD пора на покой, потому что он неправильно показывает регистры. Было такое дело, что я отлаживал boot-сектор Win, и там были такие инструкции:

mov bp, 0078h
lds si, [bp]

Так вот, после этого на экране в TD было новое значение ds, а вот si так и остался ноль. Выходит TD неправильно регистры показывает...


Posted by RelB on 10.01.2003 14:28:

Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Создадим О/С


Originally posted by (C)dragon
У меня тоже не сработала, хотя стоит Windows Millennium. По-моему TD пора на покой, потому что он неправильно показывает регистры. Было такое дело, что я отлаживал boot-сектор Win, и там были такие инструкции:

mov bp, 0078h
lds si, [bp]

Так вот, после этого на экране в TD было новое значение ds, а вот si так и остался ноль. Выходит TD неправильно регистры показывает...



Ну не знаю, не знаю... По идее отладчик не вмешивается в работу самой программы, а просто приостанавливает ее после каждой инструкции. Может просто по этому адресу у тебя смещение было равным нулю? Тем более что отлаживать бут сложно, если особенно его отлаживать как com программу. Просто при com все смещения от начала сегмента 100h, а у бута 7c00h.


Posted by (C)dragon on 10.01.2003 18:00:

Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Создадим О/С

После команд mov bp, 0078h
lds si, [bp]

Вроде как регистре ds должен быть 0, а в si - 0078h. Вообще этот адрес - таблица параметров дискеты, причем по смещение 007A находится код размера сектора. Так какой смысл загружать адрес по смещению 0078?

И ещё - при вызове несуществующей функции BIOS флаг переноса устанавливается в 1, а TD этого не показывает.


Posted by hedg on 11.01.2003 23:38:

Создадим О/С

По-моему, делать ОС для общего пользования сейчас бесполезно. Их и без того много и надо очень постараться чтобы заставить народ пересесть на свою ОС. Надо делать ось направленную на какую-нибудь конкретную задачу, например для работы с 3D графикой или Multimedia и т.д и оптимизировать её для этой задачи.
Потом, не обязательно делать всю ОС на Asm-е.
Ядро естественно должно быть написано на нём.
А вот остальное надо писать на языке высокого уровня. Я где-то слышал что самой удобной средой для программирования была признана ОС NextStep,
написанная на Objective-C. Тем самым можно добиться появления большого числа прикладных программ.


Posted by Michael on 12.01.2003 09:23:

Lightbulb Re: Создадим О/С

По-моему, делать ОС для общего пользования сейчас бесполезно.

>> Полезно.

Их и без того много

>> Сколько? Мне приходят на ум всего две, а тебе сколько?

и надо очень постараться чтобы заставить народ пересесть на свою ОС.

>> Ты очень прав, почти невозможно!

Надо делать ось направленную на какую-нибудь конкретную задачу, например для работы с 3D графикой или Multimedia и т.д и оптимизировать её для этой задачи.

>> Ты прав!

Потом, не обязательно делать всю ОС на Asm-е.
Ядро естественно должно быть написано на нём.
А вот остальное надо писать на языке высокого уровня.

>> Да, конечно. Да и ядро не нужно "обязывать"
быть полностью ассемблеровским.

Я где-то слышал что самой удобной средой для программирования была признана ОС NextStep,
написанная на Objective-C. Тем самым можно добиться появления большого числа прикладных программ.

>> Интересны детали...

>|> С уважением.

__________________
"To boldly go where no one has gone before..."


Posted by Mitja Gladkih on 12.01.2003 11:50:

Re: Создадим О/С


Originally posted by hedg
По-моему, делать ОС для общего пользования сейчас бесполезно.


Очень даже полезно.


Их и без того много и надо очень постараться чтобы заставить народ пересесть на свою ОС.


Никто и не заставляет переходить куда-либо, как в песне каждый выбирает по себе...


Надо делать ось направленную на какую-нибудь конкретную задачу, например для работы с 3D графикой или Multimedia и т.д и оптимизировать её для этой задачи.


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