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)
Создадим О/С
Все-все-все!
Подключайтесь к созданию новой мультизадачной операционной системы!
gladkih@hot.ee
Re: Создадим О/С
Originally posted by Mitja Gladkih
Все-все-все!
Подключайтесь к созданию новой мультизадачной операционной системы!
gladkih@hot.ee
Re: Re: Создадим О/С
Originally posted by Michael
Расскажи подробнее?
Re: Re: Re: Создадим О/С
У меня эта мечта появилась, как только у меня первый раз без основание ВИНЬ упал..
Так что я полностью ЗА.
Но для начала, по моему мнению необходимо написать что то вроде тех. задания, то есть определиться со всеми функциями и задаться уникальными возможностями.
Нужно начать, а потом попрет...
sedegoff@online.nsk.su
__________________
Намочите голову, намыльте, помоссируйте, смойте пену, повторите...
Re: Re: Re: Создадим О/С
Originally posted by Mitja Gladkih
Подробнее? Пожалуйста!
Создание полноценной операционной системы - моя
заветная мечта. Эта система пишется не просто, чтобы "была", а с надеждой на популярность хотя бы
половины Линукса.
Эта система - не клон Юникса, не настройка над Дос
(как Винодоус), она имеет boot-загрузчик в MBR.
Планируется создание графической оболочки, поддержка жёстких дисков, CD-ROM, SCSI, стриммеров, различных типов мышек и видеокарт,
звуковых карт.
Естественно, платформа Интел.
Мои концепции - система должна быть как можно меньше, написана, желательно, на Ассемблере, как
можно более надёжна и быстродействующа. Система будет иметь сетевые возможности. Каждой задаче отводится в памяти(линейная модель) столько места,
сколько описано в хидере. Будут функции динамического выделения памяти.
Я начал её писать один, но понял, что
при написании в n-ром скорость написания возрастает в n раз, а количество ошибок уменьшается в \/----- !!!!
n
Надеюсь на Вашу поддержку, коллеги!
(Некоторым может не понравится моя молодость,
но мой СТАЖ и ОПЫТ - 11 лет!!!!)Чесслово!
Дмитрий.
Re: Re: Re: Re: Создадим О/С
Originally posted by RelB
А у Вас есть, какие-нить идеи в плане самой архитектуры системы (я не имею ввиду платформу), не только памяти, или Вы как все, главное начать, а потом разберемся... Если нет, то это плохо. Именно поэтому большинство (да практически все) таких проектов находятся лишь в зачаточном состоянии. Ведь написание таких систем как Линукс или Виндовс требует тщательного проектирования, без него максимум чего можно добиться так это что-то типа MenuetOS, да и то уж в очень лучшем случае. Кстати, без проффесионального подхода написание системы усложняется еще и отсутствием софта для разработки ОС. Если делать все правильно, необходимо для начала, написать минимум свой ассемблер и дебаггер. Без них скорость написания упадет ну просто очень сильно. Без отладки писать уж очень сложно. По крайней мере надежной такая система не будет.
Так что одного хотения надежной и быстрой системы не достаточно.
Re: Re: Re: Re: Re: Создадим О/С
Originally posted by Mitja Gladkih
Кто ж сказал, что только хочется. Усё уже придумано.
А что, Ассемблер разве уже не самый компактный и быстрый язык?
И не надо дерзить, я прошу! Просто, кто хочет подключиться - пишите.
Re: Re: Re: Re: Re: Re: Создадим О/С
Originally posted by RelB
Все придумано?? Хорошо, расскажи-ка для начала, пожалста, как у тебя будут распределятся ресурсы между процессами? Какие механизмы ты уже придумал взаимодействия процессов между собой и ядром ОС (допустим, как будет сделана синхронизация, обмен сообщениями; или, например, какими способами будет осуществлятся вызов сервисов ОС) Ааа, вот еще, как будут реализованы драйверы в системе? Какого типа ядро - монолитное или микроядро? Лично я склоняюсь к микро, потому что считаю, что ядро должно быть аппаратно независимым. Вот, мне кажется, эти вопросы являются основными, можно даже сказать главными, от них нужно отталкиваться в дальнейшем. Хотя, если серьезно, то перечислять то, что должно быть не хватит места.
Ассемблер - это не язык, а программа, которая переводит мнемоническое представление машшинных кодов (язык ассемблера) в машшинные коды. А на каком ассемблере пишешь ты (tasm, masm, fasm, nasm, spasm, gasm, pass32 и т.д.)?
А я разве дерзю ? Что-то за собой не замечал.
Re: Re: Re: Re: Re: Re: Создадим О/С
Originally posted by RelB
Все придумано?? Хорошо, расскажи-ка для начала, пожалста, как у тебя будут распределятся ресурсы между процессами? Какие механизмы ты уже придумал взаимодействия процессов между собой и ядром ОС (допустим, как будет сделана синхронизация, обмен сообщениями; или, например, какими способами будет осуществлятся вызов сервисов ОС) Ааа, вот еще, как будут реализованы драйверы в системе? Какого типа ядро - монолитное или микроядро? Лично я склоняюсь к микро, потому что считаю, что ядро должно быть аппаратно независимым. Вот, мне кажется, эти вопросы являются основными, можно даже сказать главными, от них нужно отталкиваться в дальнейшем. Хотя, если серьезно, то перечислять то, что должно быть не хватит места.
Ассемблер - это не язык, а программа, которая переводит мнемоническое представление машшинных кодов (язык ассемблера) в машшинные коды. А на каком ассемблере пишешь ты (tasm, masm, fasm, nasm, spasm, gasm, pass32 и т.д.)?
А я разве дерзю ? Что-то за собой не замечал.
Re: Re: Re: Re: Re: Re: Re: Создадим О/С
Originally posted by Mitja Gladkih
Блин! Душа горит, отвечу!!!!!!
1)Ассемблер - не язык...? Ну, дело терминологии.
2)Использую tasm
3)Ресурсы при помощи блоков симофоров для каждой задачи
4)Вызов через шлюзы прерываний и задач
5)Драйверы - в виде отдельных файлов, в заголовке которых таблица смещений процедур.
6)К сожалению, не понимаю, что ты имеешь ввиду под терминами "монолитное" и "микро".
Если монолитное для тебя - то, в котором и процедуры управления задачами, и драйвера, а микро - где только управление памятью и задачами,
то у меня проектируется смешанное. Там управление и блоки обработки аппаратных прерываний.
Re: Re: Re: Re: Re: Re: Re: Re: Создадим О/С
Originally posted by RelB
Ну вот, теперь у меня времени побольше, ща я как дам . Вот насчет дерзости, помойму это ты больше дерзишь, понимаю - молодость, амбиции.... На счет четкого ответа (да/нет), я пока подожду, хотелось все-таки сначала узнать, над чем мы будем работать. Плюс это ведь могут прочитать и другие люди. Следовательно, заинтересованность может возрасти если они будут иметь какие-либо представления о проекте.
Ну давай по пунктам:
1. Ну это мы пропустим, см. 2
2. Tasm - это конечно хорошо, особенно режим Ideal, НО, как ты собираешься писать проги под свою ОС? У тебя какой формат запускаемого файла будет: dos-exe, PE, COM? Если другой, то как минимум придется писать линковщик (если вообще возможно) под свою ОС. Во вторых, если работаешь в tasm, то весь софт для ОС придется писать под ДОСом или Виндами, а это не очень хороший вариант. Отладки тоже нет. Поэтому я и говорил, что если правильно подходить к вопросу, необходимо написать свой ассемблер, который будет генерить файл, понятный твоей ОС и вообще под ней работающий.
3. Семафоры - это тоже хорошо . Только вот что значит блоки семафоров? Одними семафорами мне кажется не обойтись, хотя при умном подходе может и можно. Еще не понятен один момент, как так для каждой задачи? Семафоры, по идее, должны быть доступны всем задачам. Ведь они как раз и оказывают влияние на синхронизацию всех процессов в системе: доступ разных задач к одному устройству или участку памяти, например. Кстати, этот вопрос, очень тонкий, от него ОЧЕНЬ сильно зависит надежность работы всей системы.
4. Ну это и так было понятно , хотя и не совсем. Вопрос в другом, где все эти процедуры будут хранится? Я намекаю на то, что необходимо будет использовать что-то типа DLL. Вот здесь и находится краеугольное место при написании программ под проектируюмую ОС. Если использовать шлюзы задач или прерываний, как программе сказать ОС какой из сервисов ей нужен? По имени? По коду? Я не буду дальше углублятся в данный вопрос, т.к. мне кажется, дал толчек для поянений.
5. Вот тут я ничегошеньки не понял. Каких процедур? А как эти драйвера вообще будут регистрироваться в системе? Как система определит, в каком обработчике аппаратного прерывания необходимо делать вызов соответствующего драйвера? В каком кольце привелегий будут они выполнятся?
6. В принципе, ты понял правильно. Комментирвать этот пункт пока не буду.
К сожалению, я так и не услышал комментарии по поводу обмена сообщениями и данными между процессами.
Ну вот и все, не так уж много получилось...
Жду ответов, интересно все-таки.
Re: Re: Re: Re: Re: Re: Re: Re: Re: Создадим О/С
Какова идея этого замысла?
-тренировка навыков?
-свободное распространение?
-комерческая выгода?
-или что-то ещё?
Re: Re: Re: Re: Re: Re: Re: Re: Re: Создадим О/С
Originally posted by Mitja Gladkih
Как же я могу dos-exe использовать????
Тут ты прав.
Пока com. Пока небольшие будут.Может подскажешь,
чегой-бы тут применить?
Хотел достаь 32 разрядный Ассемблер - нигде нету!
Не знаешь, где качнуть?
Блоки семафоров - принудительные блоки таких флажков в одном из сегментов данных задачи.
Они и опрокидываются при переключении задач.
К тому же, доступ к функциям/прерываниям будет контроллироваться системой, если задача не фоновая и не активная, экран ей не доступен...
Библиотеки будут в виде исполняемого кода, ссылки на отдельные процедуры - в начале файла. Когда вызываешь, делаешь far call на заголовок. Там 256 ссылок - обращатся к драйверу по имени файла, а внутри - 256 функций, кторые можно разбить на подфункции...
Я тоже тебя не понял. Обработчики прерываний - в уровне 0, процедуры работы с ними -1. Обработчики IRQ только записывают данные в буфер, например, скан код клавиатуры.
Ну, если речь идет о вызовах системных функций, планирую передавать численные аргументы по значению, строковые - по смещению. Но это можно оспорить.
Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Создадим О/С
Originally posted by Michael
Какова идея этого замысла?
-тренировка навыков?
-свободное распространение?
-комерческая выгода?
-или что-то ещё?
Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Создадим О/С
>Как же я могу 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 запросы.
Конечно же речь идет не только о драйверах устройств, но и о многом другом.
Главное, чтобы одни программы не могли иметь представление о том, о чем у них
не требуется. Система должна быть как можно более абстрактна.
Вот так я вижу основу модели ОС.
-----------------------------------------------------------------------------
>--------------------------------------------------------------------------------
>Ну, если речь идет о вызовах системных функций, планирую передавать численные
>аргументы по значению, строковые - по смещению. Но это можно оспорить.
>--------------------------------------------------------------------------------
>Ну не то я у тебя спрашиваю.
>Как одному процессу передать данные другого процесса при независимых
>адресных пространствах? Как это у тебя реализовано?
Создадим О/С
Камнем приткновения для меня является программирование видеокарт в защищенном режиме.
Если кто поможет хотя бы ссылкой, будет очень хорошо. Заранее благодарен!
Re: Создадим О/С
Originally posted by Mitja Gladkih
И не "реализовано", а "будет реализовано" - ведь покамесь я сделал только загрузчик, разработал Ф/С и идеологию.
Re: Re: Создадим О/С
Originally posted by Michael
Можешь ли ты представить в Интернете твои разработки. Мне будет интересно посмотреть их и высказать моё мнение.
Ты имеешь ввиду загрузку с дискеты? И твоя FS не FAT12?
Re: Re: Создадим О/С
Originally posted by Michael
Можешь ли ты представить в Интернете твои разработки. Мне будет интересно посмотреть их и высказать моё мнение.
Ты имеешь ввиду загрузку с дискеты? И твоя FS не FAT12?
Создадим О/С
Да, чуть не забыл! Таблица одна на все логические диски - это ускоряет и упрощает работу с файлами.
Ни о каком снижении надежности речи быть не может!
Создадим О/С
Требования к проекту формируются у меня в голове.
Сейчас они меняются... меняются... меняются... хорошо. Нет, подождите... меняются... меняются... готово.
Принцип Дилберта by Скотт Адамс.
Всё же придётся и симафоры, и ограничение использования функций использовать. Над этим пораскину мозгами и напишу.
Re: Создадим О/С
Originally posted by Mitja Gladkih
Требования к проекту формируются у меня в голове.
Сейчас они меняются... меняются... меняются... хорошо. Нет, подождите... меняются... меняются... готово.
Принцип Дилберта by Скотт Адамс.
Всё же придётся и симафоры, и ограничение использования функций использовать. Над этим пораскину мозгами и напишу.
__________________
Все, что не ведет к моей гибели, укрепляет мой дух.
Re: Re: Создадим О/С
Originally posted by matt
Разговоры, разговоры. Ничего конкретного сказано не было... Ты не мог бы выслать исходники заинтерисованным людям (например, мне или Michael’ю). А так: очень интересная затея…
Создадим О/С
Ну, у кого еще желание спросить, помочь...?
Re: Создадим О/С
Вот сделаю ядро в минимальном объёме, чтобы несколько задач и переключение в ткстовом режиме, тогда выложу исходники.
Всё же, кто знает как в З/Р ВЕСА запрограммировать, напишите, пожалуйста... буду благодарен неизмеримо.
Re: Re: Re: Создадим О/С
Originally posted by Mitja Gladkih
Почему же? Все,кто что-то спрашивали, получили ответ. А исходники получат , кто будут помогать прокту. Конечно, кода вы получите мои робкие попытки что-то сотворить в виде кодов, будете смеятся, но я все делал сам, делал долго, ни команды ни у кого не украл. Так что будет жаль, ежели что-то "утечёт". Посмотри предыдущие посты -во всех ответы и вопросы о тонкостях ядра и т.д.
Не обижайтесь, не думайте, что не доверяю.
Просто я ценю свой труд высоко. Помогайте - сколотим хорошую команду, и дело пойдет...
__________________
Все, что не ведет к моей гибели, укрепляет мой дух.
Re: Re: Re: Re: Создадим О/С
Originally posted by matt
Этот проект будет Open Sources, или ты в дальнейшем собираешься делать на нём много-много бабок? Если первое – то почему ты боишься выложить исходники? Если второе – то единомышленников ты вряд ли найдешь…
Кстати в любом варианте будет нужен опытный руководитель проекта. Иначе мы станем иллюстрацией к известной байке про раков и лебедей. Команда будет состоять отнюдь не из 2-3 человек. Кроме того, многие люди занятые (учатся - работают), по этому постоянно состоять в команде не смогут: только выполнение задач по силам. Также нужен «святой покровитель проекта» - опытный програмер, который сможет помочь с некоторыми вопросами. Я бы выбрал Юрия Зотова, он известен на сайте «Мастера дельфи». Мне кажется, он бы нам помог. Но человек он серьёзный – с пустой идеей к нему не придешь.… Но на конкретные вопросы он ответит. Если у кого-то есть еще предложение – излагайте.
Создадим О/С
Кстати, что это за значок интересненький возле форума появился?
Создадим О/С
Ура! Сделал сайт системы!
http://www.mndos.narod.ru
Там вы сможете найти те подробности, при написании которых у меня руки ещё не отваливались...
Re: Создадим О/С
Originally posted by Mitja Gladkih
Ура! Сделал сайт системы!
http://www.mndos.narod.ru
Там вы сможете найти те подробности, при написании которых у меня руки ещё не отваливались...
__________________
С уважением.
Re: Re: Создадим О/С
И всё-таки, лучше, чтобы эта страница была написана шрифтов поменьше. И инфы по OS я не нашёл. А то как же можно присоединяться непонятно к чему?
Re: Re: Re: Создадим О/С
Я сделал эту страницу за 15 минут. Цвета подбирал так, чтобы видно было ). Вроде нормально, а шрифты уменьшу. Есть там ссылочка на страницу, где я пока только инфу про файловую систему выложил, потом доделаю. У меня комп полетел, три дня восстанавливал.
Создадим О/С
Кстати, при написании ядра перешел на fasm - на это много причин. Но кто его не знает - не пугайтесь, синтаксис очень похож и удобен!
Re: Создадим О/С
1) Спасибо за старания!
2) За Copyright не бойся! Воровать твою систему не будут по многим причинам. Можешь смело описывать Copyleft under GNU, FSF!
3) Твой сайт действительно читать тяжело, хороший пример цветов - это данный форум!
4) Надеюсь, ты на этом не остановишься!
С уважением.
Re: Re: Создадим О/С
5) Вот вы Господин, придираешься к грамотности других людей в примере с "very first". Зачем же вы назвали файловую систему "Sector Links Table File System" - это же пять существительных в одной строке...
Например, назовите вашу FS - The Table File System of Sector's Links - TFSSL.
Спасибо за внимание.
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.
Спасибо за внимание.
Re: Re: Re: Re: Создадим О/С
Кстати, что такое Copyleft under GNU,FSF?
Млжет, кто с дизайном поможет. То ли я дальтоник, то ли у меня супер-пупер-мега освещение в комнате и монитор, но мне кажется все нормальным...
Re: Re: Re: Re: Re: Создадим О/С
Originally posted by Mitja Gladkih
Кстати, что такое Copyleft under GNU,FSF?
Млжет, кто с дизайном поможет. То ли я дальтоник, то ли у меня супер-пупер-мега освещение в комнате и монитор, но мне кажется все нормальным...
Re: Re: Re: Re: Re: Re: Создадим О/С
Originally posted by NAIL
Mitja Gladkih я бы тоже не прочь поучастововать в проекте ,но асму на уровне детского сада знаю, но могу помочь с home page у меня опыта достаточно.Вообще затея мне нравиться сам хочу оську написать правдо на С ,а так рад помочь чем смогу.
P.S. на просторах своего винча видел где-то док про програмирование ВЕСА если найду то кину на мыло.
Re: Re: Re: Re: Re: Re: Re: Создадим О/С
Originally posted by Mitja Gladkih
Заранее бооооольшое спасибо за VESA!
А про страницу - я кое-что поменял, сейчас закачаю на ftp.
ВСЕМ:Кстати, не сочтите за труд - оцените загрузчик, пожалуйста!
И давайте, пожалуйста, в этом форуме О/С обсуждать. О сайте ситемы давайте говорить в форуме, на сайте Mndos есть свой форум! А то тема об О/С, говорим о сайте, вижу как модератор(не в обиду будет сказано)на стуле ерзает...
Re: Re: Re: Re: Re: Re: Re: Создадим О/С
Да кстате в твоём профиле я мыла не вижу((
Re: Re: Re: Re: Re: Re: Re: Re: Создадим О/С
Originally posted by NAIL
Да кстате в твоём профиле я мыла не вижу((
Создадим О/С
Делал я ядро, делал, и вдруг вижу: ну не то это всё... Стёр я файл и начал заново. Вожусь с исключениями, взял кусочек примера из одной книги,
а он, гад, не работает?! Помогите, плиз!
Вот код:
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.
В чем же ошибка?
Re: Создадим О/С
Mitja Gladkih не забивай себе голову всякой чухнёй, посмотри сдесь http://www.codenet.ru/progr/os/intro.php ,там есть простенький пример ядра,и мне кажется что оно написано вполне сносно и просто,и тем более намного меньше чем ты выложил сдесь)
Re: Re: Создадим О/С
Для начала поздравляю всех с наступающим Новым Годом! Хорошо вчера посидели, бошка болит, так что не сердитесь если я пишу коряво... (простите, что не в тему)
Посмотрел я на страничку и особо хорошего впечатления она у меня не оставила.... Мне кажется, ошибочно ОС разрабатывать с файловой системы. Достаточно для начала чтобы она работала на FAT. Это уж потом можно изобретать различные файловые системы под новую ось. Кстати, как MNDOS расшифровывается?
Ну, ща начну критиковать, люблю я енто дело . Только без обид. Насчет утверждения, что таблица в середине диска уменьшает среднее время доступа к диску мне кажется ошибочным, т.к. существует такое понятие как КЭШ где можно енту таблицу хранить. А если без кэширования, то бедному дисководу придется "пролетать" еще и FAT, который посередине чтобы добраться до нужного сектора. Конечно, мое утверждение может быть ошибочным.
Кстати, почему только одна таблица на все логические диски, по моему это только усложнит работу с диском? А почему ты не хочешь использовать кластеры? С помощью них скорость заметно возрастает.
Идем далее, что у нас по программе ?. Посмотрел я исходник загрузчика, сильно не вдавался, особенно после того как увидел название главной функции (извините, но это более чем несерьезно). Да и метки там какие-то не красивые, такое впечатление, что это выходной документ дизассемблера.
Жаль что доки только по ФС. Жду с нетерпением новых поступлений, чтобы хорошенько все раскритиковать .
Re: Re: Re: Создадим О/С
Originally posted by RelB
Для начала поздравляю всех с наступающим Новым Годом! Хорошо вчера посидели, бошка болит, так что не сердитесь если я пишу коряво... (простите, что не в тему)
Посмотрел я на страничку и особо хорошего впечатления она у меня не оставила....
Мне кажется, ошибочно ОС разрабатывать с файловой системы. Достаточно для начала чтобы она работала на FAT. Это уж потом можно изобретать различные файловые системы под новую ось. Кстати, как MNDOS расшифровывается?
Ну, ща начну критиковать, люблю я енто дело . Только без обид. Насчет утверждения, что таблица в середине диска уменьшает среднее время доступа к диску мне кажется ошибочным, т.к. существует такое понятие как КЭШ где можно енту таблицу хранить. А если без кэширования, то бедному дисководу придется "пролетать" еще и FAT, который посередине чтобы добраться до нужного сектора. Конечно, мое утверждение может быть ошибочным.
Кстати, почему только одна таблица на все логические диски, по моему это только усложнит работу с диском?
А почему ты не хочешь использовать кластеры? С помощью них скорость заметно возрастает.
Идем далее, что у нас по программе ?. Посмотрел я исходник загрузчика, сильно не вдавался, особенно после того как увидел название главной функции (извините, но это более чем несерьезно).
Да и метки там какие-то не красивые, такое впечатление, что это выходной документ дизассемблера.
Жаль что доки только по ФС. Жду с нетерпением новых поступлений, чтобы хорошенько все раскритиковать .
Re: Re: Создадим О/С
Originally posted by NAIL
Mitja Gladkih не забивай себе голову всякой чухнёй, посмотри сдесь http://www.codenet.ru/progr/os/intro.php ,там есть простенький пример ядра,и мне кажется что оно написано вполне сносно и просто,и тем более намного меньше чем ты выложил сдесь)
Re: Re: Re: Создадим О/С
Да нет ссылка правильная ,просто я в низкоуровневом програмирование плохо щарю,вот и не разбираюсь что там и где... Могу подкинуть ещё пару другую исходников операционнок ,да и ддокументации у меня немерено ,если что спрашивай.
Re: Re: Re: Re: Создадим О/С
О, если много всяких доков, то не мог ли ты подкинуть, как работать с дискетами и винтами через порты в защищённом режиме, а то этого почти нигде не найти.
Re: Re: Re: Re: Re: Создадим О/С
Originally posted by (C)dragon
О, если много всяких доков, то не мог ли ты подкинуть, как работать с дискетами и винтами через порты в защищённом режиме, а то этого почти нигде не найти.
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.
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.
Создадим О/С
RelB и все остальные! Я понял, как объяснить, что SLTFS лучше!
Рассмотрим систему без кэширования, диск не сильно фрагментирован - так и мне, и всем легче представить.
Представь: SLTFS в середине, FAT в начале.
1)При маленькой заполненности диска головкам накопителя(это самая медленная операция - xkip совершенно прав)при моей системе придётся "бегать" от начала диска к середине, при FATе - от начала до... начала, т.е. здесь FAT быстрее.
2)При средней заполненности диска при SLTFS головки ходят от середины к середине, при FATе - от начала к середине, т.е. SLTFS быстрее, т.е. в первых двух случаях FAT и SLTFS компенсируют друг друга.
3)При заполненности диска выше средней отметки:
при SLTFS головки бегают от середины в конец диска, а при FATе - от НАЧАЛА диска в КОНЕЦ, т.е
скорость FATа падает значительно быстрее в сравнении с SLTFS.
Недаром в старых системах - RSX и ОС-РВ(М)
SYSGEN позволяла(утилита - она)размещать спарвочник файлов(не могу уточнить, что это - думаю, корневая директория, но более полезная, чем сейчас)в середине, начале или конце диска - в зависимости от заполненности последенего.
Вот так!... С наступающим!
Re: Создадим О/С
Ну ладно, допустим, что твоя файловая система быстрее. А мне все равно, пока математически не докажешь, я не поверю . Щас скажите, почему ты такой упрямый? Да не упрямый я, просто я не раз сталкивался в жизни с такими случаями когда свиду очевидные вещи кажется навскидку одними, а при математическом подходе все оказывается по другому.
Вот пример. Допустим, Земля имеет длину экватора, скажем, 40000 км. Если мы увиличим длину экватора на один метр, на сколько увеличится радиус Земли? У кого я не спрашивал все говорили: "Ну, да ваще не увеличится ни фига, да на тысячные доли миллиметра". А на самом то деле, он увеличится на 1/2pi метра, т.е. примерно на 16 сантиметров. Т.е. даже если бы длина окружности была сотни тысяч миллионов км, радиус бы все равно увеличился на 16 см. Конечно может для вас это сразу было понятно без мат. решения, но для обычных людей нет.
Сорри за оффтопик.
Далее, если уж ты хочешь супер-пупер надежную систему, то у тебя система также не надежна как и FAT. Какие у тебя предприняты дейстия для увеличения надежности, кроме сохранения копий?
P.S. Всех с Наступающим!!!
Re: Re: Создадим О/С
Ладно, я распишу в условных единицах времени, но это займет время
По-моему, все очевидно, перечитай еще раз мой пост... Я ж сказал, при SLTFS - от 40 дорожки до 80, при FAT - от 0 до 80! А насчет надежности - мне кажется, что Ф/С достаточно надежна, хотя могло быть и получше. Просто когда я ее разрабатывал, не было описаний других систем...
С Наступающим!
Создадим О/С
> Про 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 для винта, и работает с винтом по всем своим принципам.. как и с любой железиной
т.е. остальное - дело ядра, и загрущик етим ножно не наворачивать
Загрущик еще не читал
на трезвую голову почитаю
С Новым Годом!
Re: Создадим О/С
Originally posted by xkip
> Про int 8. Это в Р/Р 8, в З/Р будет 32.
ах, да забыл ето наверно гдето про искуственную многозадачность в Р/Р читал
> Буду просто менять,
А как же приотитеты?
Вобще я поначалу и сам также планировал, но в последующих релизах (которые свет увидит) придется учитывать приоритеты
Загрущик еще непочитал.
А про ФС:
На счет копий ФАТ:
При физическом повреждении диска (в первую очередь ето про флопов)
высока вероятность того, что повредяться сразу обе стороны.. я бы нестал делать их напротив друг друга..
ПРО метки в ячейках ФАТ:
ну метка "00" ето понятно, на "00" у нас загрущик, а если там "01"? загрущик ты вроде хотел на 2 сектора..
и нащет "FFF", "FFE" - в FAT12 там торчит копия талбицы, а у нас выходит сюда ниче не запишешь!
вот из етих двух пунктов следует што копию выгодно держать в конце..
и ктомуже - ячейка может содержать метку на FAT!
а ето фигово:
1) при случайном сбое и обращении к FAT как к файлу.., вдруг программа захочет стереть етот файл?
В любом случае будет неполноценное использование меток.. может тогда использовать смещение??
кстати, подкинешь доков про HPFS?
че-то неслыхал.. полезно почитать..
Да, и справочники (папки) лучше наверно с середины записывать.
Нужно также разобраться с основными принцыпами ядра, в данном случае - работа с железом
Помоему можно загрущик уместить в одном секторе, типа поиск и запуск ядра. в етом же секторе, например в конце, можно помещать инфу о диске - кликуха (label), разделы (если надо), сигнатура ФС..
С Новым Годом!
Re: Re: Создадим О/С
хехе)
Написал, потом сидел исправлял
а пока исправлял пришел ваш ответ
так што почитайте еще раз - там есть кое чего нового
Re: Re: Re: Создадим О/С
ну че там???
я самый трезвый шоли?
ну лана, так уж и юыть :) щитаю своим долгом ответить, токо заранее говору шо типа я под градусои, типа сори, если по кла ве буду часто промазывать :))
> А повредить диск можно в любом месте.
> Если они напротив, так проще при повреждении
> и т.д.
а, ну ты хочешь сказать, што так меньше вероятность повреждения одной из таблиц :)
я же хочу сказать што в етом случае при повреждении одной из таблиц, более высока вероятность того, што будет повреждена сторона на против етой :)
а если талбица в разных местах, то будет равная вероятность повреждения каждой, причем при повреждении одной, вероятность повреждения другой значительно меньше :) (из математики)
так што в етом случае талбицу можно стащить из резерва (ну или синхронизировать с резервом, вдруг и он частично поврежден)
т.е. полюбому, в разных местах выгодней..
хотя я неспорю.. в ФАТ шобы обратиться к резерву надо из одного конца в другой перется..
а тут токо с другой стороны диска глянуть (шо на порядок бустрее), но согласись, к резерву довольно редко приходится обращаться :)
однако повредить его... хорошего мало!
> С ума сойду - не понимаю ни слова.
> Где копия? FFF - 4095, на дискете всего 2880?!
да, я наверно попутал :) надо есчо доков почитать (или перечитать - давно читал-то) :) но ето такое у меня сложилось впчатление..
после первого прочтения..
> А ни фи*а: менеджер файловой системы не
> позволит туда ничего записать
ну я неспорю, я бы и сам непозволил, но всеже надо учесть што возможны случайные информационные поврежденя (не физические) и просле етого могут твориться чудеса!
> Поясни про метки и смещение - не понимаю
> ни слова... То ли праздник так действует!?
да, на меня тоже наверно празник действовал.. :)
вобщем про метки я попутал - я хотел сказать ячейки :) в таблице фат
а про смещение - ето я предлагал ввести число, которое будет прибавляться к значению ячейки..
вобщем если значение меньше смещения начала таблици, то все норм, а если больше, то прибавляется размер таблицы, т.е. значения, указывающие на таблицу теперь будут использованы!
значения больше смещения таблици будут просто смещены вперед..
(ужасная тавтология, но надеюсь вы меня поняли :)
не я же руский придумал, к Пушкину мыльте :)
> Где-то английский был. Поищу.
угу, плиз поищи, непомешает познакомиться.. :)
eng - непроблема :)
> Там драйвера нет, только две простеньких
> функции...
а вот ето зря.. вот протрезвею, дык мысли свои напишу!
ну лано!
там еще почитай разок старый пост, я его едит!
типа тем, у кого еще небыло НГ, последний раз говорю, "С Новым Годом!!" (ето относится к лондону и америке :) хотя пока писал уж наверно и в лондане прошли празники :) а в америке токо девятый час..
вобщем удачччи всем в 2003!!
салют, сисрайтеры! :))
Re: Re: Создадим О/С
Посмотри книгу У.Девис. Операционные системы. Функциональный подход. Издательство "Мир" 1980. Книга старая, но много интересных концепций...
Удачи в темных делах!
__________________
Все, что не ведет к моей гибели, укрепляет мой дух.
Создадим О/С
Originally posted by matt
Посмотри книгу У.Девис. Операционные системы. Функциональный подход. Издательство "Мир" 1980. Книга старая, но много интересных концепций...
Удачи в темных делах!
Re: Создадим О/С
Hello All, с наступившим вас! Подскажите, плз, что необходимо знать, чтобы написать операционную систему. Буду признателен, если подскажите литературу по данной теме. Заранее спасибо.
Re: Re: Создадим О/С
Originally posted by YuZeR
Hello All, с наступившим вас! Подскажите, плз, что необходимо знать, чтобы написать операционную систему. Буду признателен, если подскажите литературу по данной теме. Заранее спасибо.
Re: Re: Re: Создадим О/С
Кстати, xkip!
Дефрагментатор будет простым. А размещение файлов/спарвочников файлов как можно ближе к центру - задача файлового менеджера, это все будет.
На сайте системы я обновил документ о тех.подр.
Re: Re: Re: Re: Создадим О/С
Вот я сел в калошу-то! !@#$%^&*
Планировал я размещать Таблицу по одну сторону диска, копию-по другую. И представлял дискету.
(Кстати, в этой идее надо, чтобы хоть одна сторона была цела, если диск насквозь - работать не будет ни за каие коврижки! В MS-DOS в этом случае пишется "Испорчена дорожка 0. Дальнейшее использование диска невозможно.")
Ну так вот. Про конфуз-то. В начале хотел, чтобы сектора нумеровались так - все сетора на дорожке, ротом след. дорожка. Когда последняя, дорожка 0, головка - следующая. НО: Пишу-то я на диск при помощи DiskEditor, а он, как и MS-DOS считает сектора так : Вначале все сектора дорожки на одной головке, на след., только затем переход на следующую дорожку. Значит, Таблица будет располагаться гармошкой и по ту сторону диска, и по эту. Но скорость будет той же - ведь вероятно, что сектора файла будут и по ту сторону диска, и по эту. По длине треков Таблица будет разделена пополам, и записана по середине с точночтью до дорожки. Это даже лучше, ведь в совр. Дисках на 0 и последнем треке различное число секторов на дорожку. А копия будет храниться рядом.
Думать надо было головой, пардон, друзья! Но изменений никаких.
Так! xkip!
Понимаешь, для защ. и реального режимов нужны соответственно 32 и 16 битный драйвера. Не имеет смысла писать полноценный 16-битный драйвер, если он исп. только в загрузчике! А в вирт. режиме используются тоже 32 битные драйвера, только через опр. фильтры. Ну что ж, идем далее!?
Re: Создадим О/С
Да! Хорошая идея! Чтобы не какой-нибудь линукс, или аналогичный тормоз, а так, чтобы шел на ХТ с 256 КБ памяти!
Но отойдем от громких слов. Конечно, если собраться вместе, человек так двести, то, конечно, можно создать что-нибудь, но ведь тот же "Micr0Soft" :-) состоит не из одного Гейтса. Да и IBM тоже...
Однако, Торвальдс создал свой юникс за четыре года. И что получилось спустя несколько лет - видите сами.
По-моему, если создавать - то какую-нибудь ДОС-систему с поддержкой FAT32, CD-ROM и прочими прибамбасами. Ведь сейчас все подстраиваются под тот же WinNT (Neadertalus Technology ). И мы - с ними.
Кстати, скажу по-секрету: такая же утопическая идея есть на www.dospage.by.ru , с которой я немного согласен (кстати, там есть ссылочка на мой ресурс )
Re: Re: Создадим О/С
Originally posted by alex2048akaPAQ
Да! Хорошая идея! Чтобы не какой-нибудь линукс, или аналогичный тормоз, а так, чтобы шел на ХТ с 256 КБ памяти!
Но отойдем от громких слов. Конечно, если собраться вместе, человек так двести, то, конечно, можно создать что-нибудь, но ведь тот же "Micr0Soft" :-) состоит не из одного Гейтса. Да и IBM тоже...
Однако, Торвальдс создал свой юникс за четыре года. И что получилось спустя несколько лет - видите сами.
По-моему, если создавать - то какую-нибудь ДОС-систему с поддержкой FAT32, CD-ROM и прочими прибамбасами. Ведь сейчас все подстраиваются под тот же WinNT (Neadertalus Technology ). И мы - с ними.
Кстати, скажу по-секрету: такая же утопическая идея есть на www.dospage.by.ru , с которой я немного согласен (кстати, там есть ссылочка на мой ресурс )
Re: Re: Re: Создадим О/С
Кстати! Не забывайте, что моя система - система ЗАЩИЩЕННОГО РЕЖИМА!
Она действительно мультизадачная. В релизах планируется и многопользовательность.
Господи, словечки, чЕРТ ногу сломит.
Да,да,да! Вы путаете! MN-DOS совсем другая О/С, она графическая, мультизадачная, а не монозадачная с резидентами. ДОС - потому что Дисковая О/С, а не потому что реального режима ! Не путайте сами и не смущайте народ!
Да, и она будет идти только как минимум, на 386 - она использует специфичные ресурсы М/П!
Re: Re: Re: Re: Создадим О/С
Всем привет!
Мдааа, почитал я тут тех. документацию по MN-DOS и у меня родилось впечатление, что надо переработать ее еще более основательно . Только не обижайтесь на меня, такой уж у меня трудный характер .
Начнем с диспечеризацией задач. Там я много слышал о PID и других интересных вещицах, НО мне ужастно не понравилось, что PID - 1 байт, система ведь, как я понимаю, 32-х битная и процессору гораздо проще оперировать с 32-х битными операндами нежели с байтами. Потом насчет виндовса, я вот у себя посмотрел - 28 процессов и самое большое значение - 1736, так что не знаю почему у Вас там так много. Ну даже если там и такие большие значения, PID же в Виндовс 32-х битный, поэтому значений все равно надолго хватит.
Идем далее, я тут посмотрел повнимательнее и вообще ужаснулся, привык то я, что процесс порождает задачи, потоки, треды или как хотите называйте (вообщем treads), а не наоборот. Все треды по сути для процессора отдельная задача, так что 256 задач (или, как я понял у Вас, процессов) уж точно не хватит (у меня щас 320 тредов работает). Идем далее, как вычисляется квант времени, ну или поставлю по другому вопрос, в каком случае задача/процесс прерывается и процессор предоставляется другому? Теперь о очереди процессов на исполнение. Мне показалось, что алгоритм, может и крутой, но тормозной. Мне кажется, проще (для начала) выделить минимальный квант времени и в соответствии с приоритетом каждому процессу выделять количество квантов равное значению приоритета. Конечно этот алгоритм не притендует на крутизну, он даже наверное самый простой который только можно было придумать, но зато он быстрый и надежный, для начала предлагаю использовать его, чтобы упростить ПОКА(!) это довольно тонкое место, а уж потом его начать перерабатывать и отшлифовывать. Для начала ведь необходимо добиться хоть какой-то работоспособности ядра, ведь если мы будем сразу все по сложному делать, то разработка затянтся на долго.
Далее, необходимо задумываться о том, что в GUI системах большинство процессов только одно и делают, что ждут реакции пользователя, поэтому необходимо предусмотреть, чтобы этим процессам процессорное время не предоставлялось, пока не будет на это необходимости. Еще, чуть не забыл, как вы интересно будете передавать данные между процессами с помощью одних блокировок, семафоров и событий?
Теперь о памяти. Мы же программируем в защищенном режиме, а там задача дефрагментации памяти уже решена на аппартном уровне. Ведь есть такая очень даже хорошая вещь (спасибо Intel) как страничная организации памяти. Зря Вы там выдумываете всякие алгоритмы, которые только замедлят скорость, если есть такое простое решение.
Посмотрел я на последний абзац и понял, что все что я писал выше вообще ни кому не нужно, потому что автор, сам запутался, кто главный - процесс или задача. Все таки я предлагаю четко разделить такое понятие как задачи и процессы!!! Без этого разделения, все разговоры о ядре будут идти впустую.
Ну вот и все, жду дальнейших поступлений, Удачи!!!
Re: Re: Re: Re: Re: Создадим О/С
Originally posted by Mitja Gladkih
Кстати, что такое Copyleft under GNU,FSF?
Млжет, кто с дизайном поможет. То ли я дальтоник, то ли у меня супер-пупер-мега освещение в комнате и монитор, но мне кажется все нормальным...
Создадим О/С
Так, про сайт - теперешний обновленый дизайн мне вполне нравится.
RelB! Много говорил, мало толкового сказал!
Такое большое число - 65536 там и т.д. я привел для примера, что номера разорваны.
256 должно хватить! Не хватит - расширю до двух байт. А про задачи и процессы я ничего не путаю!
В самом начале статьи я написал свои понятия этих терминов. Видимо, это ты сам запутался из-за моего нестандартного их использования. А алгоритм дефрагментации не новый, а отработанный на PDP и IBM, EC-1040 и т.д.(если Ты думаешь, что эти машины надо сдавать в металлолом, а особенно, СМ-1420, мы может по почте поспорить, но тогда держитесь, братцы
В начале страницы не будут использованы, будет использована линейное представление,(но ведь пределы памяти от этого не изменяются, все равно 4Гб?!) но это можно исправить, если потребуется. А с каталогом страниц пока возиться не буду, посмотрим, как моя, пардон, наша системка запашет!
Ведь вы все на меня набрасывались, мол, зачем свою Ф/С делать, давай для начала упростим и возбмем FAT, теперь моя очередь упрощать Вначале отладим простую модель, потом и страницы.
Кстати, дефрагментатор памяти будет запускаться либо через определенные промежутки времени, либо при нехватке памяти. Спасибо за внимание.
Re: Создадим О/С
Originally posted by Mitja Gladkih
RelB! Много говорил, мало толкового сказал!
Такое большое число - 65536 там и т.д. я привел для примера, что номера разорваны.
256 должно хватить! Не хватит - расширю до двух байт. А про задачи и процессы я ничего не путаю!
В самом начале статьи я написал свои понятия этих терминов. Видимо, это ты сам запутался из-за моего нестандартного их использования.
Задача - программа, загруженная в память ЭВМ, и исполняющаяся(м.б. ждущая)/готовая к исполнению. Каждая задача состоит из одного или нескольких процессов. Все процессы задачи имеют приоритет задачи.
В системе будут предусмотрены функции дополнительного выделения памяти, т.е. задача может увеличить свой сегмент ДАННЫХ в процессе исполнения. Эти "добавки" будут зарегистрированны с использованием PID главного процесса задачи.
А мне все равно кажется проще использовать страницы. И быстрее и мороки не много, особенно если для всех задач используется один каталог страниц. Потом, когда начнешь менять все это дело, не придется ли менять вообще все? Далее, при такой организации памяти система будет как раз похожа на ДОС , а не на серьезную систему. А спорить по поводу этих систем я не буду, потому что спорить с тобой это только пустая трата времени - не умеешь и не хочешь ты признавать свои ошибки, видать еще жизнь тебя мало потрепала....
А алгоритм дефрагментации не новый, а отработанный на PDP и IBM, EC-1040 и т.д.(если Ты думаешь, что эти машины надо сдавать в металлолом, а особенно, СМ-1420, мы может по почте поспорить, но тогда держитесь, братцы
В начале страницы не будут использованы, будет использована линейное представление,(но ведь пределы памяти от этого не изменяются, все равно 4Гб?!) но это можно исправить, если потребуется. А с каталогом страниц пока возиться не буду, посмотрим, как моя, пардон, наша системка запашет!
Ведь вы все на меня набрасывались, мол, зачем свою Ф/С делать, давай для начала упростим и возбмем FAT, теперь моя очередь упрощать Вначале отладим простую модель, потом и страницы.
Кстати, дефрагментатор памяти будет запускаться либо через определенные промежутки времени, либо при нехватке памяти. Спасибо за внимание.
Re: Re: Создадим О/С
Originally posted by RelB
Ну раз так, я приведу выдержки с твоего сайта
Ну тут все ясно, далее, в последнем абзаце идет следующее
Хорошо, скажи что такое главный процесс задачи? До этого ничего о нем не говорилось.
Далее зачем PID использовать 1,2-х байтные??? Это только замедлит скорость!!! Современные процессоры ориентированы на 32-х битные операнды! Вот именно это было моей главной мыслью.
А мне все равно кажется проще использовать страницы. И быстрее и мороки не много, особенно если для всех задач используется один каталог страниц. Потом, когда начнешь менять все это дело, не придется ли менять вообще все? Далее, при такой организации памяти система будет как раз похожа на ДОС ,
а не на серьезную систему. А спорить по поводу этих систем я не буду, потому что спорить с тобой это только пустая трата времени - не умеешь и не хочешь ты признавать свои ошибки, видать еще жизнь тебя мало потрепала....
Re: Re: Re: Создадим О/С
Originally posted by Mitja Gladkih
Взаимно.
Re: Re: Re: Re: Создадим О/С
Я тут решился написать по поводу SLTFS. Вот я подумал так случайно и понял, что если ее использовать, то это большой шаг в сторону от всех имеющихся стандартов, потому что все разделы диска могут быть только SLTFS, а это очень плохо, т.к. нельзя будет иметь на одном диске разделы с разными файловыми системами, а значит иметь и разные операционки на одном диске. Ну вот и все что я хотел сказать , есть какие-нить комментарии?
Re: Re: Re: Re: Re: Создадим О/С
Придёться тебе переделывать ФС, т.к. никто не захочет ставить себе на комп одну малоизвестную систему. Таблица секторов должна быть своя для каждого раздела - это правило существует для всех файловых систем.
Re: Re: Re: Re: Re: Re: Создадим О/С
Митя по теме GNU; FSF и GPL ты можешь почитать www.gnu.org //Жалко, русской версии нет!
- RelB, ты молодец! Так держать, коллега! -
Про ФС, действительно, желательно чтобы другие ФС тоже могли сосуществовать на одном диске. Иначе на первых порах мы потеряем тех любопытных людей, кто-бы и хотел попробовать но не хочет отказываться от своей существующей ОС.
С уважением!
Re: Re: Re: Re: Re: Re: Re: Создадим О/С
2Michael: Спасибо, только вот за что, если не секрет ?.
Еще вопрос к Мите. Решил ли ты проблему определения полного объема физической памяти? Вот например у меня 256Мб, как мне определить что у меня ее стока? Ни где не нашел, максимум, на что БИОС и ЦМОС способны это 64 МБ. Пробовал просматривать всю память чтением/записью чего то не выходит.
Re: Re: Re: Re: Re: Re: Re: Re: Создадим О/С
Originally posted by RelB
2Michael: Спасибо, только вот за что, если не секрет ?.
Еще вопрос к Мите. Решил ли ты проблему определения полного объема физической памяти? Вот например у меня 256Мб, как мне определить что у меня ее стока? Ни где не нашел, максимум, на что БИОС и ЦМОС способны это 64 МБ. Пробовал просматривать всю память чтением/записью чего то не выходит.
Re: Re: Re: Re: Re: Re: Re: Создадим О/С
Originally posted by Michael
Митя по теме GNU; FSF и GPL ты можешь почитать www.gnu.org //Жалко, русской версии нет!
- RelB, ты молодец! Так держать, коллега! -
Про ФС, действительно, желательно чтобы другие ФС тоже могли сосуществовать на одном диске. Иначе на первых порах мы потеряем тех любопытных людей, кто-бы и хотел попробовать но не хочет отказываться от своей существующей ОС.
С уважением!
Re: Re: Re: Re: Re: Re: Создадим О/С
Originally posted by (C)dragon
Придёться тебе переделывать ФС, т.к. никто не захочет ставить себе на комп одну малоизвестную систему. Таблица секторов должна быть своя для каждого раздела - это правило существует для всех файловых систем.
Re: Re: Re: Re: Re: Re: Re: Создадим О/С
Пожалуйста, не надо искать "фатальные" ошибки. Вы все сравниваете мою систему с такими гигантами, как Линукс-Юникс-Виндовс... Все впереди.
Re: Re: Re: Re: Re: Re: Re: Re: Создадим О/С
Еще вопрос к Мите. Решил ли ты проблему определения полного объема физической памяти? Вот например у меня 256Мб, как мне определить что у меня ее стока? Ни где не нашел, максимум, на что БИОС и ЦМОС способны это 64 МБ. Пробовал просматривать всю память чтением/записью чего то не выходит.
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
По крайней мере у меня на нескольких машинах, с разным количеством памяти, определялось точно.
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-секторе.
Re: Re: Re: Re: Re: Re: Re: Re: Создадим О/С
Originally posted by RelB
2Michael: Спасибо, только вот за что, если не секрет ?.
Re: Re: Re: Re: Re: Re: Re: Re: Re: Создадим О/С
Originally posted by (C)dragon
Определение памяти до 4Гб.
int 15h fn e801h
Входные параметры:
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 неправильно регистры показывает...
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 неправильно регистры показывает...
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 этого не показывает.
Создадим О/С
По-моему, делать ОС для общего пользования сейчас бесполезно. Их и без того много и надо очень постараться чтобы заставить народ пересесть на свою ОС. Надо делать ось направленную на какую-нибудь конкретную задачу, например для работы с 3D графикой или Multimedia и т.д и оптимизировать её для этой задачи.
Потом, не обязательно делать всю ОС на Asm-е.
Ядро естественно должно быть написано на нём.
А вот остальное надо писать на языке высокого уровня. Я где-то слышал что самой удобной средой для программирования была признана ОС NextStep,
написанная на Objective-C. Тем самым можно добиться появления большого числа прикладных программ.
Re: Создадим О/С
По-моему, делать ОС для общего пользования сейчас бесполезно.
>> Полезно.
Их и без того много
>> Сколько? Мне приходят на ум всего две, а тебе сколько?
и надо очень постараться чтобы заставить народ пересесть на свою ОС.
>> Ты очень прав, почти невозможно!
Надо делать ось направленную на какую-нибудь конкретную задачу, например для работы с 3D графикой или Multimedia и т.д и оптимизировать её для этой задачи.
>> Ты прав!
Потом, не обязательно делать всю ОС на Asm-е.
Ядро естественно должно быть написано на нём.
А вот остальное надо писать на языке высокого уровня.
>> Да, конечно. Да и ядро не нужно "обязывать"
быть полностью ассемблеровским.
Я где-то слышал что самой удобной средой для программирования была признана ОС NextStep,
написанная на Objective-C. Тем самым можно добиться появления большого числа прикладных программ.
>> Интересны детали...
>|> С уважением.
__________________
"To boldly go where no one has gone before..."
Re: Создадим О/С
Originally posted by hedg
По-моему, делать ОС для общего пользования сейчас бесполезно.
Их и без того много и надо очень постараться чтобы заставить народ пересесть на свою ОС.
Надо делать ось направленную на какую-нибудь конкретную задачу, например для работы с 3D графикой или Multimedia и т.д и оптимизировать её для этой задачи.