Создадим О/С (перемешено из форума "Операционные системы")
Подключайтесь к созданию новой мультизадачной операционной системы!
[email]gladkih@hot.ee[/email]
Определение памяти до 4Гб.
int 15h fn e801h
Входные параметры:
ax = e801h.
Выходные параметры:
ax - размер расширенной памяти в килобайтах до 16Mb;
bx - размер расширенной памяти в блоках по 64к свыше 16Мб;
cx - размер сконфигурированный расширенной памяти в килобайтах до 16Mb;
dx - размер сконфигурированной расширенной памяти в блоках по 64к свыше 16Мб.
В биосе есть также функция определения памяти свыше 4Гб, а говорите 64Мб...
Как же не искать ошибки - ввод памяти пользователем - это точно ошибка, ведь если он введёт большее значение, то при попытках записать по этим адресам комп будет перезагружаться. Код определения памяти лучше всего расположить в Boot-секторе.
Я не знаю как оно там через биос(не люблю я его), да и при чем тут бут тоже не пойму.
Количество памяти определяется элементарно или в протектед или в анриле примерно так:
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
По крайней мере у меня на нескольких машинах, с разным количеством памяти, определялось точно.
Определение памяти до 4Гб.
int 15h fn e801h
Входные параметры:
ax = e801h.
Выходные параметры:
ax - размер расширенной памяти в килобайтах до 16Mb;
bx - размер расширенной памяти в блоках по 64к свыше 16Мб;
cx - размер сконфигурированный расширенной памяти в килобайтах до 16Mb;
dx - размер сконфигурированной расширенной памяти в блоках по 64к свыше 16Мб.
В биосе есть также функция определения памяти свыше 4Гб, а говорите 64Мб...
Как же не искать ошибки - ввод памяти пользователем - это точно ошибка, ведь если он введёт большее значение, то при попытках записать по этим адресам комп будет перезагружаться. Код определения памяти лучше всего расположить в Boot-секторе.
Спасибо, просто похоже эта функция относительно новая, в моих доках ее нет, но я все равно написал процедурку, которая сканирует все адреса запись/чтение и находит нужный размер. Теперь она у меня работает как часы, прям до килобайтика память выводит - один в один что пишет биос при загрузке компа.
Кстати, если не трудно, кинь доку по всем функциям биоса поновее, чтоб в дальнейшем таких ошибок не возникало. Мыло [email]relb@inbox.ru[/email]. Заранее спасибо.
2Michael: Спасибо, только вот за что, если не секрет :)?.
2RelB Не секрет. За хорошие замечания по системе!
Митя ты говорил, что система будет или OpenSource, или FreeWare, вот я привёл пример gnu.org , это как раз об этом. Но Copyright это менее важный вопрос.
Куда важнее создать технически интересную и стабильную ОС, способную сопердничить с гигантами. И на этом фоне, хорошо, что ребята сравнивают MNDOS с гигантами, таким образом, легче найти слабые стороны и исправить их.
С почтением.
Определение памяти до 4Гб.
int 15h fn e801h
Входные параметры:
Попробовал я запустить эту функцию, чего то не работает, мне кажется она не является стандартной. Или просто потому что я запускал под TD да еще и в DOS окне WinXP???
mov bp, 0078h
lds si, [bp]
Так вот, после этого на экране в TD было новое значение ds, а вот si так и остался ноль. Выходит TD неправильно регистры показывает...
У меня тоже не сработала, хотя стоит Windows Millennium. По-моему TD пора на покой, потому что он неправильно показывает регистры. Было такое дело, что я отлаживал boot-сектор Win, и там были такие инструкции:
mov bp, 0078h
lds si, [bp]
Так вот, после этого на экране в TD было новое значение ds, а вот si так и остался ноль. Выходит TD неправильно регистры показывает...
Ну не знаю, не знаю... По идее отладчик не вмешивается в работу самой программы, а просто приостанавливает ее после каждой инструкции. Может просто по этому адресу у тебя смещение было равным нулю? Тем более что отлаживать бут сложно, если особенно его отлаживать как com программу. Просто при com все смещения от начала сегмента 100h, а у бута 7c00h.
lds si, [bp]
Вроде как регистре ds должен быть 0, а в si - 0078h. Вообще этот адрес - таблица параметров дискеты, причем по смещение 007A находится код размера сектора. Так какой смысл загружать адрес по смещению 0078?
И ещё - при вызове несуществующей функции BIOS флаг переноса устанавливается в 1, а TD этого не показывает.
Потом, не обязательно делать всю ОС на Asm-е.
Ядро естественно должно быть написано на нём.
А вот остальное надо писать на языке высокого уровня. Я где-то слышал что самой удобной средой для программирования была признана ОС NextStep,
написанная на Objective-C. Тем самым можно добиться появления большого числа прикладных программ.
>> Полезно.
Их и без того много
>> Сколько? Мне приходят на ум всего две, а тебе сколько?
и надо очень постараться чтобы заставить народ пересесть на свою ОС.
>> Ты очень прав, почти невозможно!
Надо делать ось направленную на какую-нибудь конкретную задачу, например для работы с 3D графикой или Multimedia и т.д и оптимизировать её для этой задачи.
>> Ты прав!
Потом, не обязательно делать всю ОС на Asm-е.
Ядро естественно должно быть написано на нём.
А вот остальное надо писать на языке высокого уровня.
>> Да, конечно. Да и ядро не нужно "обязывать"
быть полностью ассемблеровским.
Я где-то слышал что самой удобной средой для программирования была признана ОС NextStep,
написанная на Objective-C. Тем самым можно добиться появления большого числа прикладных программ.
>> Интересны детали...
>|> С уважением.
По-моему, делать ОС для общего пользования сейчас бесполезно.
Очень даже полезно.
Их и без того много и надо очень постараться чтобы заставить народ пересесть на свою ОС.
Никто и не заставляет переходить куда-либо, как в песне каждый выбирает по себе...
Надо делать ось направленную на какую-нибудь конкретную задачу, например для работы с 3D графикой или Multimedia и т.д и оптимизировать её для этой задачи.
Абсолютно неверное мнение. О/С - это платформа для работы прикладных программ, ориентированных на конкретные задачи. Например, Виндовс - операционная система, а к ней в придачу - калькулятор - прикладнушка, хотя ее могло и не быть, но от этого Виндовс не перестал бы быть О/С.
Ладно, ладно, не будем вспоминать о том, что она не так хороша, просто я привел пример...
Потом, не обязательно делать всю ОС на Asm-е.
Ядро естественно должно быть написано на нём.
А вот остальное надо писать на языке высокого уровня. Я где-то слышал что самой удобной средой для программирования была признана ОС NextStep,
написанная на Objective-C. Тем самым можно добиться появления большого числа прикладных программ.
Я писать и ядро, и прикладнушки, и компиляторы буду на Ассемблере. Никого использовать только Ассемблер не заставляю... Но: Система MN-DOS, и прикладные программы к ней от имени Monosoft будут написаны на чистом Ассемблере!
Что могу сказать? Дилетантов и пессимистов всегда было много...(Эта фраза не адресована НИ В ЧЕЙ АДРЕС, ПРОСТО КРИК ДУШИ!)
Много: Windows-ы, Unix-ы, BEOS, NextStep, Lindows и ещё несколько, я к сожалению не помню их названий но они действительно есть. Както раз
мне в руки попал обзор где они перечислялись и кратко описывались.
>> Интересны детали...
Во-первых NextStep полностью написана на обьектах, а во-вторых Objective-C на утровне синтаксиса поддерживает событийное программирование.
>> Сколько? Мне приходят на ум всего две, а тебе сколько?
Много: Windows-ы, Unix-ы, BEOS, NextStep, Lindows и ещё несколько, я к сожалению не помню их названий но они действительно есть. Както раз
мне в руки попал обзор где они перечислялись и кратко описывались.
>> Интересны детали...
Во-первых NextStep полностью написана на обьектах, а во-вторых Objective-C на утровне синтаксиса поддерживает событийное программирование.
Все ля-ля и ничего особого. Что до моего компьютера - на нем лучше всего работают(слева направо - от лучшего к худшему) Windows 3.1, Windows 95, 98, Linux Mandrake, Linux RH 6.2,Linux RH 7.3 < работает преотстойно, Lindows вообще не захотел инсталлироваться. При инст. такие глюки... , что Виндовс нервно курит...
Но это, может быть, частный случай. Но именно из-за огромных недочетов и плюются на Виндовс, а я - на РедХат 7.3...Из-за этого и появляется резон переходить на другую О/С.
Другие негде скачать, может подкинете адресок?
И: RelB! Ты говорил об использовании страниц для дефрагментации памяти. Я с тобой согласился, а теперь ломаю голову, что же Ты имел ввиду?
Я всегда уважал людей желающих писать на чистом Asm-е, но ты похоже не предусмотрел такой ситуации, что для твоей ОС может появиться ПО от сторонних производителей. Ты собираешься всех их заставить писать на ASM-е или всё ПО будет изходить только из MonoSoft.
И ещё. Ты правильно заметил: я - дилетант. Но я же не виноват в том что не родился с одиннадцатилетним стажем.
Если у тебя такие проблемы со всеми ОСями, может не в них дело. Может стоит в железе покапаться.
Адреса не скажу. Сам не знаю, но как только узнаю обязательно скажу.
Так что придёться писать на обычном асме, потому что применение C++ резко снизит размер и быстродействие системы, а об остальных языках я и вообще не говорю...
Кто сказал, что максимум памяти 4gb? Начиная с Pentium III поддерживается 64gb.
Вообще я думаю, что идеальное средство для написания ОС - это ассемблер со встроенной поддержкой объектов, но к сожалению такого нет.
Так что придёться писать на обычном асме, потому что применение C++ резко снизит размер и быстродействие системы, а об остальных языках я и вообще не говорю...
Кто сказал, что максимум памяти 4gb? Начиная с Pentium III поддерживается 64gb.
Хочу присоединится к вам, хотя почти на 1000% уверен, что операционки не написать, по крайней мере приобрету опыт многопроцессорного программирования (если конечно, вы поделитесь документацией по многопроцессорному программированию).
По поводу ассемблера со встроенной поддержкой объектов вы заблуждаетесь. ТАСМ еще 5 лет назад умел такое (не думаю, что за 5 лет они выкинули поддержку обхектов). И кто сказал что на Си++ код будет медленнее, а что размер снизит, так это наоборот хорошо...
Вы про ОС Оберон слышали? Так вот она от начала и до конца написана на Обероне (потомок Паскаля), причём писали её 2 человека 3 года (один из них Никлаус Вирт). В ней нет ни одной строчки кода на ассемблере, си или ещё чём нибудь всё написано на обероне.
Думаете большая система получилась? - фигушки 200кб ядро со встроенным компилятором и текстовым редактором. Ни одному линуксу такое и не снилось.
Операционка + куча софта под неё для интела (есть ещё для кучи процессоров) требует всего 26Мб, причём может ставится на любую другую ОС, создавая на разделе ФАТ файлик с образом своего диска, а начальный загрузчик записан на дискету.
Все основные компоненты можно тоже поместить на дискету и грузится/работать ТОЛЬКО С ДИСКЕТЫ, при этом будет доступен ГУИ, текстовый и графический редактор, компилятор, документация, фтп-клиент, почтовый клиент и веб-броузер.
Подобное я только в QNX видел... Но QNX достаточно новая система, а Оберон аж 88 года выпуска (правда это сам язык, а операционка появилась этак в 96).
Но самое примечательное, что Вирт написал книжку про то, как он придумал этот язык (Оберон), написал его компилятор и операционку. В книжке подробно рассмотрены все тонкости данного процесса. (Только вот книжка на английском, русского перевода я не видел)
Всё это чудо лежит у них на сайте (Цюрихский технологический институт) и всё это асболютно бесплатно (с 1992 г.) и распространяется вместе с исходниками (и книжка лежит там же).
http://www.oberon.ethz.ch/download.html
Кстати! Куда это БИОС собрался память свыше 4 Гб определять? Вроде, 4 - это максимум, по-крайней мере, без страниц...
И: RelB! Ты говорил об использовании страниц для дефрагментации памяти. Я с тобой согласился, а теперь ломаю голову, что же Ты имел ввиду?
Ксати да, 4 гб для Pentium-a III не предел. Слыхал ли ты о 36 битной адресации? Да, но это только (помойму, точно не знаю, не вдавался я в это программирование) при использовании 2 и 4-х мегабайтных страниц.
Далее по поводу страниц. Я думаю, что ты знаешь о страничной адресации памяти. Блин, даже не знаю что сказать.... Что тут не понятного? При этой организации память состоит из кусочков по 4кб (если использовать конечно 4кб страницы) и при этом каждой задаче можно выделять эти кусочки не заботясь о том, что они располагаются не друг за другом (например, как файл на диске, часть файла может быть в начале, часть в конце, при этом для программы, которая работает с файлом, кажется что она работает с единым целым). Понимаешь, я не знаю о чем тут можно говорить.... Просто если ты знаком со страничной организации (именно на аппаратном уровне процессора 386 и выше), то ты должен понимать что я имел в виду. Т.е. получается что память не потребуется ужимать, а просто выделять каждой задаче свободные кусочки. Получается, что потребуется только механизм учета свободных кусочков. Конечно, может получится, что память будет использована не полностью (как на диске, один байтик может занимать целый кластер), но зато работать это должно быстрее нежели использовать всякие там алгоритмы дефрагментации, "ужимание" памяти и т.д.
Ксати да, 4 гб для Pentium-a III не предел. Слыхал ли ты о 36 битной адресации? Да, но это только (помойму, точно не знаю, не вдавался я в это программирование) при использовании 2 и 4-х мегабайтных страниц.
Далее по поводу страниц. Я думаю, что ты знаешь о страничной адресации памяти. Блин, даже не знаю что сказать.... Что тут не понятного? При этой организации память состоит из кусочков по 4кб (если использовать конечно 4кб страницы) и при этом каждой задаче можно выделять эти кусочки не заботясь о том, что они располагаются не друг за другом (например, как файл на диске, часть файла может быть в начале, часть в конце, при этом для программы, которая работает с файлом, кажется что она работает с единым целым). Понимаешь, я не знаю о чем тут можно говорить.... Просто если ты знаком со страничной организации (именно на аппаратном уровне процессора 386 и выше), то ты должен понимать что я имел в виду. Т.е. получается что память не потребуется ужимать, а просто выделять каждой задаче свободные кусочки. Получается, что потребуется только механизм учета свободных кусочков. Конечно, может получится, что память будет использована не полностью (как на диске, один байтик может занимать целый кластер), но зато работать это должно быстрее нежели использовать всякие там алгоритмы дефрагментации, "ужимание" памяти и т.д.
Достаточно красочный пример! А действитеьно, зачем "ужимать"?
Очень даже полезно.
Никто и не заставляет переходить куда-либо, как в песне каждый выбирает по себе...
Абсолютно неверное мнение. О/С - это платформа для работы прикладных программ, ориентированных на конкретные задачи. Например, Виндовс - операционная система, а к ней в придачу - калькулятор - прикладнушка, хотя ее могло и не быть, но от этого Виндовс не перестал бы быть О/С.
Ладно, ладно, не будем вспоминать о том, что она не так хороша, просто я привел пример...
>>>> Да, слово "платформа" подходит для описания ОС. Windows - ориентированна на РС, на Интернет, развлечение, и т.д. И как раз Multimedia and 3D features являются огромным достоинством Windows! Митя, если бы Windows была не ориентированной на конкретные задачи, она бы была очень маленькой, типа I/O functions., а все остальное бы достраивалось конечными производителями. И тогда бы Windows была установлена на моей кофеварки!
Я писать и ядро, и прикладнушки, и компиляторы буду на Ассемблере. Никого использовать только Ассемблер не заставляю... Но: Система MN-DOS, и прикладные программы к ней от имени Monosoft будут написаны на чистом Ассемблере!
>>>> Спасибо и на том, что не заставляешь! (Шутка)
Что могу сказать? Дилетантов и пессимистов всегда было много...(Эта фраза не адресована НИ В ЧЕЙ АДРЕС, ПРОСТО КРИК ДУШИ!)
>>>> Опять, спасибо что без прямой адресации!
>>>> Желаю Успеха!
36-битная адресация действительна доступна только для 2 или 4Mb страниц, но их использовать очень неудобно. Непонимаю, почему intel не сделал 36-битной адресации для 4kb страниц - ступили наверное.
Да, слово "платформа" подходит для описания ОС. Windows - ориентированна на РС, на Интернет, развлечение, и т.д. И как раз Multimedia and 3D features являются огромным достоинством Windows!
Митя, если бы Windows была не ориентированной на конкретные задачи, она бы была очень маленькой, типа I/O functions., а все остальное бы достраивалось конечными производителями. И тогда бы Windows была установлена на моей кофеварки!
Нет, я не говорю, что в системе не должно быть поддержки мультимедиа, это входит в понятие "набор функций О/С" Просто я не собираюсь писать систему, которая направлена !!!именно!!! на управление ядерным реактором :).
Я писать и ядро, и прикладнушки, и компиляторы буду на Ассемблере. Никого использовать только Ассемблер не заставляю... Но: Система MN-DOS, и прикладные программы к ней от имени Monosoft будут написаны на чистом Ассемблере!
>>>> Спасибо и на том, что не заставляешь! (Шутка)
Что могу сказать? Дилетантов и пессимистов всегда было много...(Эта фраза не адресована НИ В ЧЕЙ АДРЕС, ПРОСТО КРИК ДУШИ!)
>>>> Опять, спасибо что без прямой адресации!
Да, о 36-битной адресации не слышал :(.
А про страничную организацию, вы, возможно, и правы, поразмыслю на днях... И все-таки я люблю работать с физическими адресами, без преобразования. И спасибо за ссылку на Оберон - НИКОГДА НЕ СЛЫШАЛ :(.
Ты напомнил о неучтенных байтах в кластере - именно поэтому мне старницы и не хочется использовать. А о дефрагментаторе памяти - может, просто неясно на сайте изложил...? Посмотрю.
Дефрагментатор начинает работу только тогда, когда система видит, что памяти не хватает. А до этого ведется учет свободных кусков - вроде самодельных страниц переменной длины - перечитай на сайте MN-DOS, мне кажется, ты не понял.
И кто там говорил, что БИОС не любит - как же его нелюбить, когда он святой покровитель наш и сетор с дискеты грузит, все железо на себе тащит. Посмотрел бы я на программера, который все функции для разных плат сам писал ::))
И кто там говорил, что БИОС не любит - как же его нелюбить, когда он святой покровитель наш и сетор с дискеты грузит, все железо на себе тащит. Посмотрел бы я на программера, который все функции для разных плат сам писал ::))
Ну все, щас разнесу! Читал, читал и не выдержал.
Это я сказал, что биос не люблю. Как его можно любить, когда у меня по умолчанию в биосе Bus Master был отключен? я долго не мог понять почему расширенное 13 прерывание не работает, пока весь биос(сетап) по строчкам не перечитал. Да и где ты видел чтобы хоть одна ось в защищенном режиме через биос работала? Все дрова для видео, сетевых и т.д. пишутся отдельно для каждой карточки. А для дискет и винтов стандарты есть. Я вижу ты в биосе никогда не копался и не видел как он написан. Это полный отстой!
Если честно, можещь даже обижаться, но я не представляю как ты собираешься с такими знаниями асма и железа писать ось!
Мое мнение о твоих знаниях все хуже и хуже :(
Ну все, щас разнесу! Читал, читал и не выдержал.
Это я сказал, что биос не люблю. Как его можно любить, когда у меня по умолчанию в биосе Bus Master был отключен? я долго не мог понять почему расширенное 13 прерывание не работает, пока весь биос(сетап) по строчкам не перечитал.
Ну да... я трамвай не заметил, он меня перехал, какой плохой...
Да и где ты видел чтобы хоть одна ось в защищенном режиме через биос работала? Все дрова для видео, сетевых и т.д. пишутся отдельно для каждой карточки. А для дискет и винтов стандарты есть.
А я такого и не говорил, не говорил, что буду его использовать, с чего ты взял? Я имел ввиду в реальном режиме, надо тебе быть повнимательнее.
Я вижу ты в биосе никогда не копался и не видел как он написан.
Это полный отстой!
Копался, и не раз. А нписан он был не для того, чтоб тебе все понятненько было, а чтоб быстрее и меньше.
Если честно, можещь даже обижаться, но я не представляю как ты собираешься с такими знаниями асма и железа писать ось!
Мое мнение о твоих знаниях все хуже и хуже :(
Мое мнение о твоих знаниях и внимании тоже понижается. А уж о железе и Ассемблере молчал бы. Не взялся б я, если б не был в своих знаниях уверен!
>>Ну да... я трамвай не заметил, он меня перехал, какой плохой...
Я говорю не про то, что кто-то там или я сам его неправильно настроил, а что по умолчанию у новой мамы был выключен Bus Master и вместе с ним расширенный инт13. По моему это большая лажа. И если я и нашел, то это не значит, что все найдут.
А винт на 15Г. И через биос твоя ось у меня (и не только) не загрузилась бы!!!
>Копался, и не раз. А нписан он был не для того, чтоб тебе все понятненько было, а чтоб быстрее и меньше.
Не знаю где ты копался, но для стандартных устройств он работает ооочень медленно и занимает намного больше места, чем аналогичная прога!
Ты только сильно не обижайся, просто, по-моему, ты начал не с того конца. Все сначала проектируют, потом пишут хоть что-то(загрузчик, ядро и, обязательно, компилятор и дебагер), а уж потом набирают команду. А ты хочешь все наоборот.
>>Ну да... я трамвай не заметил, он меня перехал, какой плохой...
Я говорю не про то, что кто-то там или я сам его неправильно настроил, а что по умолчанию у новой мамы был выключен Bus Master и вместе с ним расширенный инт13. По моему это большая лажа. И
если я и нашел, то это не значит, что все найдут.
Ладно, хватит об этом. Просто речь твоя не к месту была.
винт на 15Г. И через биос твоя ось у меня (и не только) не загрузилась бы!!!
А и не должна. Тот бутер расчитан на дискету.
>Копался, и не раз. А нписан он был не для того, чтоб тебе все понятненько было, а чтоб быстрее и меньше.
Не знаю где ты копался, но для стандартных устройств он работает ооочень медленно и занимает намного больше места, чем аналогичная прога!
Медленно - потому что универсальный. Хотя и не медленный, а относительно меделнный. Просто там учет всего-всего, границ и т.д., работает почти без сбоев, и достаточно быстро. Не был бы нужен - не было б.
Ты только сильно не обижайся, просто, по-моему, ты начал не с того конца. Все сначала проектируют, потом пишут хоть что-то(загрузчик, ядро и, обязательно, компилятор и дебагер), а уж потом набирают команду. А ты хочешь все наоборот.
А почему бы не воспользоваться готовым fasm ом?
К тому же, я загрузчик сначал дооолго проектировал, а написал когда мышцы порвал и было время. Написал быстро, потому что все очень четко представлял, как должно работать. Теперь ядро проектирую(точнее, наношу проект на бумагу, одновременно выполняю то, что уже спроектировал)
И к тому же - из твоих слов выходит, что я должен сначала написать загрузчик, ядро, компилятор - то есть ВСЕ, а потом на готовое звать помощников отлаживать? Извини, глупо. Для того команду и собирают, чтобы написать лучше и быстрее, а не чтоб по шаблону версии клепать.
А сам компилятор писать по Ms-dos, потом переносить, ну а формат исполняемого ведь известен...
Кстате ,может это совсем не в тему,но подскажите болбесу как вывести с помощью биос строку не зная её длины,заранее спасибо
Митя я вообще не понимаю, почему идут такие споры по поводу разных вещей в системе,ведь сначала надо написать ядро и boot а потом вести горячии дискусии как устроить то или это...
И я том же, спасибо за моральную поддержку
Кстате ,может это совсем не в тему,но подскажите болбесу как вывести с помощью биос строку не зная её длины,заранее спасибо
Точно, не в тему. Посмотри в моем бутере SUB_1
RelB! Вот, дошло, что же мне хотелось о страницах спросить - просто твое сообщение перечитал.
Ты напомнил о неучтенных байтах в кластере - именно поэтому мне старницы и не хочется использовать. А о дефрагментаторе памяти - может, просто неясно на сайте изложил...? Посмотрю.
Дефрагментатор начинает работу только тогда, когда система видит, что памяти не хватает. А до этого ведется учет свободных кусков - вроде самодельных страниц переменной длины - перечитай на сайте MN-DOS, мне кажется, ты не понял.
Хоть и будут неучтенные байты, но зато можно будет использовать механизм виртуальной памяти! Не думаю, что виртуальную памать ты будешь использовать на уровне сегментов. Плюс без страниц не получится плоской модели памяти - весомый минус.
Посмотрел я доки по процам интел и вынес то, что 36 битная адресация была уже и в Pentium Pro, просто в третьем пне добавили альтернативный метод 36 битной адресации. Но все равно такая организация памяти не позволит процессу в определенный момент времени иметь размер адресного пространства более 4гб. Да, такая адресация поддерживается и для 4кб страниц.
Хоть и будут неучтенные байты, но зато можно будет использовать механизм виртуальной памяти! Не думаю, что виртуальную памать ты будешь использовать на уровне сегментов. Плюс без страниц не получится плоской модели памяти - весомый минус.
Посмотрел я доки по процам интел и вынес то, что 36 битная адресация была уже и в Pentium Pro, просто в третьем пне добавили альтернативный метод 36 битной адресации. Но все равно такая организация памяти не позволит процессу в определенный момент времени иметь размер адресного пространства более 4гб. Да, такая адресация поддерживается и для 4кб страниц.
Да, спасибо, я учту. Но остаюсь при своем.
Опять ошибочки при прерываниях, бьюсь.
Разбить на небольшие подзадачи. А затем выложить их на странице. Дабы програмер зашедший на сайт не думал что это за муть, а мог выбрать себе задачу и попытаться её реализовать. А затем выслать тебе исходник. Который после рассмотрения «комиссией» будет либо включен, либо нет в систему.
А сейчас ты пытаешься что-то сделать самостоятельно…
Все выше сказанное ИМХО
Как програмировать VESA видел на сайте developer.nvidia.com, но мне достаточно того, что взял на vesa.org.
А так, готов к сотрудничеству. Мои исходники - твои исходники, если будет взаимность.
Да, кстати, где здесь сайт MN-DOS?
Я тоже пишу ОС, но специализируюсь скорее а оптимизации скорости (простой вывод на текстовый экран, да и текстовые строки - MMX) Кто хочет посмотреть, есть исходнички на C++ (сравнивал со стандартными функциями, мои 230% быстрее всреднем... есть быстрее медленнее, но никак не медленнее базовых, MMX все-таки). Этот же формат встроен в ОС.
Как програмировать VESA видел на сайте developer.nvidia.com, но мне достаточно того, что взял на vesa.org.
А так, готов к сотрудничеству. Мои исходники - твои исходники, если будет взаимность.
Да, кстати, где здесь сайт MN-DOS?
Ну и зря, все MMX нежелательно. Как я понимаю у AMD (конечно, я могу ошибаться) нет MMX, значит даже базовые функции пахать не будут, а значит по сути на аналогах Intel твоя ОСь не пойдет. А это хреново, т.к. у многих AMD. Далее, зачем оптимизировать некритичные по времени исполнения функции. Пользователь все равно не заметит как ему на экран текст выводится - через MMX или по обычному. А сайт mndos.narod.ru помойму :)