Создадим О/С (перемешено из форума "Операционные системы")
Подключайтесь к созданию новой мультизадачной операционной системы!
[email]gladkih@hot.ee[/email]
Вот. И он-то работает. GDT ни при чем.
Пробовал IDT размещать в ядре, а смещения не из вспомогательной таблицы в сааамом низу текста запихивать, а оставлять равными IRQ0 и EXCDUMMY.
Теперь не перезагружается, а зависает. Прогресс не стоит на месте! :D
В коде всё правильно, но почему-то не работает... Смотри остальные биты CR0, и всё же отключи APIC.
В коде всё правильно, но почему-то не работает... Смотри остальные биты CR0, и всё же отключи APIC.
Не в CR0 и APIC дело...
Ты его не убедишь, он ярый фанатик асма :)
Я не ярый фанатик Ассемблера, я ярый ненавистник Си.
Очень хотелось мне написать com-задачу ,которая могла бы загружаться сама без какои либо OS ,но сильно не хватает информации по этои теме, нигде не могу наити,- как происходит процес загрузки OS ,и чем принципиально отличаються между собои прога OS(или самозагружающаяся прога) и обычная прога , и еше хотел поинтересоваться ,достаточно ли самои программы чтобы она загрузилась либо кроме её нужно как то менять те програмульки которые вроде как сидят в mbr.Один очень мудрыи человек рассказал мне что :
1 -после всех проверок ,которые производит машина при загрузке ,какая то программа (загрузчик чтоли -я толком не запомнил )в случае соответствуюших настроек в BIOS начинает искатьчто то на 0 дороге у флоповода , и если это там находит , то загружает в определённую область памяти и передаёт туда управление, мне из этого что то вроде и понятно , но так как раньше я этим вообше не занимался, то все это как то медленно ,для убыстрения , я хотел бы попросить вас ,тех кто знает ,высказать свою версию происходяшего , либо указать на источник где эта версия есть ,и еше хочу попросить не пользоваться жаргонными словами и большим количеством терминов
, так как я не настолько силен , чтобы понять "с лёту" .Если кто то откликнеться - большое ему спасибо.
~~~~~~~~~~~~~~~
Если наидете какие нибуть нелепости в моем рассказе -пожалуюста не смеитесь.
Надо написать прогу размером 512 байт и записать в начало дискеты. Последними байтами должны быть 55AA, т. е. на асме будет dw 0AA55h. Если дискеты - FAT12, то надо учитывать таблицу параметров. Если прога больше 512 байт, то надо записать её за бут-сектором, если это RAW дискета или в файл, если FAT12. Только код для загрузки файла из FAT12 будет сложнее. Да, и конечно нельзя использвать прерывания DOS - только БИОС! И не надо в MBR лазить, а то будешь потом комп три дня восстанавливать.
--> to митя
Если дело не в CR0 и APIC, то в чём тогда? Посмотри на все флаги в EFLAGS(!!!), на CR1 - CR4(хотя вряд ли в них дело). И помести код отключения APIC. Допустим он включён - там всё управление IRQ выполняется из защищённого режима, его регистры управления маппируются в конец адресного пространства, а ты в порт 20h чего-то пишешь - разве это будет работать?
Если дело не в CR0 и APIC, то в чём тогда? Посмотри на все флаги в EFLAGS(!!!), на CR1 - CR4(хотя вряд ли в них дело). И помести код отключения APIC. Допустим он включён - там всё управление IRQ выполняется из защищённого режима, его регистры управления маппируются в конец адресного пространства, а ты в порт 20h чего-то пишешь - разве это будет работать?
Привет всем!
Ну, может CR0 и стоит посмотреть, а APIC - в Менуэте ну вроде как не отключается. Тем более, вот рез-ты последнего опыта.
Усекал я, обрезал и сделал так, что и прерывания, и исключения работают, но только если напрямую выводить на экран. Если использовать HEXTOASC, тогда и заедает. Почти мистика:
MOV SI,STRI
MOV AX,1234h
CALL HEXTOASC
...
...
HEXTOASC:
...
...
RET
Работает.
А:
MOV SI,STRI
MOV AX,1234h
CALL prnexc
...
...
prnexc:
RET
- нет.
Правда я это вчера, то есть сегодня, часа в 1-2 утра делал %) может, что сглючил.
Братцы! ЕЕЕЕЕЕЕЕЕ!!!!!!!
Как говорится, догадайтесь с трех раз...
Причина довольно банальная. CR0, APIC и (C)Dragon отдыхают......
"а ты в порт 20h чего-то пишешь - разве это будет работать?"
Конечно, стандартный-то контроллер никуда не уезжал...
Ну вот. Сижу я значит, код отлаживаю. Ну, как привык, комментирую блоки, смотрю.
И вот закомментировал наконец переход на prnexec - заработало. А ведь и исключения через него проводят печать на экран, потому и "не срабатывали".
Отлаживаю его. То, что написал в прошлом мессадже - точно в глазах помутнилось, утром все нормально было. Добрался до строчек movsb stosb. Ага, пошел.
Вот тут и подбираемся... Почти прав был кто-то из нас, не помню кто, он сказал "помотри ss - может, там страшное что-то". Да. но только стек здесь ни при чем.
Две вышеуказанные команды работают с DS, ES, SI,DI. Вроде я все верно написал, да? Но не совсем. ESI и EDI, вот что! Действительно, AWARDовский "классический" BIOS пользовался расширенными частями этих регистров. И там было "что-то страшное". Конечно, я и в загрузчике использую 32-разрядные регистры, но не эти. Вставил
xor esi,esi
xor edi,edi
И ОН ЗАРАБОТАЛ!!!
"помотри ss - может, там страшное что-то".
Гыыы мои слова :)
Поздравляю, и кстати самое время обновить сайт :D
И если чесно , не могу же я все время всех спрашивать, а приходиться , потому что инфы в печатнои версии никак не наиду, точнее у меня есть кое что, но ни в одном из доков нет полного списка прерываний BIOS складываеться впечатление , что они засекреченны ; причем их нет даже в том случае ,если они присутствуют в оглавлении.хотелось бы узнать где можно достать ПОЛНЫИ список этих прерываний.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Всем спасибо!!
ЗЮЫЮ: МНЕ ПРИДЕТЬСЯ ПИСАТЬ ПРОГУ ,КОТОРАЯ ЗАПИШЕТ
МОИ ПРОЕКТ НА 0 ДОРОГУ ФЛОПА?
--- Да, придёться отдохнуть, не заметил я эти регистры, т.к. искал ошибки в коде для перехода в PM и установки IRQ, а вот на вывод на экран не обращал внимание. Вот так вот - поздравляю!
Я вроде как слышал , что у такои (самозагружаемои) проги , какую я хочу написать ,PSP имеет не такои размер как у обычнои , я е знаю правда с чем это связанно если это так ,но хотел знать какои он у неё, и кикие у неё есть другие принципиальные различия (если есть),.
PSP у ее нет вообще. А стартует она по адресу 0x7C00, так что ориджин прописывай этот. Вообще вот минимальный пример такой проги:
http://www.lowlevel.ru/articles/goto.cgi?id=1047129321
И если чесно , не могу же я все время всех спрашивать, а приходиться , потому что инфы в печатнои версии никак не наиду, точнее у меня есть кое что, но ни в одном из доков нет полного списка прерываний BIOS складываеться впечатление , что они засекреченны ; причем их нет даже в том случае ,если они присутствуют в оглавлении.хотелось бы узнать где можно достать ПОЛНЫИ список этих прерываний.
Ralf Brown's Interrupts List - *самый* полный список:
http://www-2.cs.cmu.edu/afs/cs/user/ralf/pub/WWW/files.html
--- Да, придёться отдохнуть, не заметил я эти регистры, т.к. искал ошибки в коде для перехода в PM и установки IRQ, а вот на вывод на экран не обращал внимание. Вот так вот - поздравляю!
Да это так, к слову - я тоже чуть не пропустил, ошибка была там, где ее никто не ждал.
А если надо с дискетой работать - лучше DiskEditor из Norton Utilities for MS-DOS не найти - очень удобная вещь. Могу послать.
Ребята! Вот думаю, как лучше организовать разделение потоков(процессов)...
Приведите, плиз, примеры использования автономных процессов - я проанализирую и попытаюсь найти оптимальный вариант исполнения. А то сейчас сделаю, потом кому-то может не понравиться.
Сделал следующте:
Написал мастер бут винта, он грузит бут. Далее бут грузит лоадер по адесу 1000:0000. Лоадер переходит в защищенный. А так же настоенна IDT. Правда, в IDT только заглушки.
Скомпилированый кернел надо загрузить по адрессу 100000h (1мб).
Если мои разработки не идут в разрез с вашими, то может объединим наши усилия?
Я загибаюсь писать сам.
Ты его не убедишь, он ярый фанатик асма :)
Фанатизм к асму проходит. Я согласен язык отличный(лучший), но все написать на нем невозможно, да и оптимизация компиллятора лучше. Бут должен быть ессесно на асме. Но далее - все на С с асм вставками. Поэтому встречное предложение.
"Создадим свою ОСь на С!".
Я не ярый фанатик Ассемблера, я ярый ненавистник Си.
1)Зря! С - хороший, красивый язык. Это скоро поймешь. Очень близкий к низкоуровневому языку.
2) а почему бы не создать свой язык для своей оси. Надо упростить и ускорить разработку. Ты же хочешь чтобы твоя ОСь распространилась и была популярной ;)
Фанатизм к асму проходит. Я согласен язык отличный(лучший), но все написать на нем невозможно, да и оптимизация компиллятора лучше. Бут должен быть ессесно на асме. Но далее - все на С с асм вставками. Поэтому встречное предложение.
"Создадим свою ОСь на С!".
Давайте о других осях в других разделах форума, здесь - про MN-DOS.
1)Зря! С - хороший, красивый язык. Это скоро поймешь. Очень близкий к низкоуровневому языку.
Это ты так думаешь, но не я. И никому меня не переубедить. Я его не выношу.
И понять привязанность многих к нему могу объяснить только тем, что они не знают
ДОСТАТОЧНО о других языках. Давай не будем об этом.
Извените, что вас отвлекаю. Хотел бы с вами поработать по созданию оси. Я тоже создаю ось.
Сделал следующте:
Написал мастер бут винта, он грузит бут. Далее бут грузит лоадер по адесу 1000:0000. Лоадер переходит в защищенный. А так же настоенна IDT. Правда, в IDT только заглушки.
Скомпилированый кернел надо загрузить по адрессу 100000h (1мб).
Если мои разработки не идут в разрез с вашими, то может объединим наши усилия?
Я загибаюсь писать сам.
OK. Договоримся по e-mail. Пиши либо на [email]gladkih@hot.ee[/email], либо на [email]mndos@narod.ru[/email]
2) а почему бы не создать свой язык для своей оси. Надо упростить и ускорить разработку. Ты же хочешь чтобы твоя ОСь распространилась и была популярной ;)
Не стоит отвлекаться на написание копилятора. Это конечно хороший подход, но это займет уйму времени.
Фанатизм к асму проходит. Я согласен язык отличный(лучший), но все написать на нем невозможно, да и оптимизация компиллятора лучше. Бут должен быть ессесно на асме. Но далее - все на С с асм вставками. Поэтому встречное предложение.
"Создадим свою ОСь на С!".
Может ещё на бейсике создавать? На C уже есть оси, наверняка знаешь какие. Поэтому эта и делается на асме, чтобы была быстрее и стабильнее.
Вообще неудобство разработки на асме исходит от отсутствия нормальной IDE. Почему хотя бы под Windows на C++ получается быстрее делать программы? Всё из-за того же IDE. Попробуй писать чистым API - и что? Прога получится через такой же промежутой времени, как и на асме, но будет больше тормозить и глючить. Так что надо собраться и написать мощную IDE для асма, на уровне Borland C++Builder.
Это ты так думаешь, но не я. И никому меня не переубедить. Я его не выношу.
И понять привязанность многих к нему могу объяснить только тем, что они не знают
ДОСТАТОЧНО о других языках. Давай не будем об этом.
Хорошо, а о каких языках ДОСТАТОЧНО знаешь ты?
Может ещё на бейсике создавать?
Бейсик - интерпретатор, поэтому не получится :) А вот на паскале можно, тем более примеры уже есть рабочие.
На C уже есть оси, наверняка знаешь какие. Поэтому эта и делается на асме, чтобы была быстрее и стабильнее.
Угу, и те что есть - медленные и нестабильные? А разработка на асме - означает скорость и стабильность? "Не очевидно" :) Вот докажите мне аргументированно, что разрабатывая на асме вы получите скорость и стабильность, тогда поверю вам :)
Вообще неудобство разработки на асме исходит от отсутствия нормальной IDE. Почему хотя бы под Windows на C++ получается быстрее делать программы? Всё из-за того же IDE. Попробуй писать чистым API - и что? Прога получится через такой же промежутой времени, как и на асме, но будет больше тормозить и глючить. Так что надо собраться и написать мощную IDE для асма, на уровне Borland C++Builder.
Все IDE фигня :) Emacs рулит :)
Хорошо, а о каких языках ДОСТАТОЧНО знаешь ты?
Я знаю достаточно о недостатках Си. И не хочу больше об этом спорить - в свое время потратил достаточно много нервов, меня и обзывали, и пинали - хватит уж. Но все же один раз я доказал превосходство современного Фортрана над современным Си.
Бейсик - интерпретатор, поэтому не получится :) А вот на паскале можно, тем более примеры уже есть рабочие.
Даа.... Куда мир катится? Только вчера компилировал утилитку на Бейсике.
Quick Basic 4.5 Compiler....
Угу, и те что есть - медленные и нестабильные?
Конечно, хотя бы Виндовс.
А разработка на асме - означает скорость и стабильность?
Не скорость разработки, но скорость и стабильность работы.
"Не очевидно" :)
Вполне очевидно.
Вот докажите мне аргументированно, что разрабатывая на асме вы получите скорость и стабильность, тогда поверю вам
Делать больше нечего...
Да и зачем? Все равно писать буду на Ассемблере.
Конечно, хотя бы Виндовс.
Ну Windows NT и дальше вполне ничего себе. И то что он тормозит не факт - у меня не тормозит например.
Не скорость разработки, но скорость и стабильность работы.
Вполне очевидно.
Это зависит от языка? ИМХО больше от программиста.
Делать больше нечего...
Да и зачем? Все равно писать буду на Ассемблере.
Да Вы пишИте, пишИте :)
Ни о каких недостатках Си, кроме того, что он "сложный" и Вы его не знаете, я от Вас не слышал. К тому же не понимаю, как можно рассуждать о недостатках, не зная языка.
(кстати, интересно, что Вы еще знаете кроме асма, бейсика и фортрана)
За сим прощаюсь. Пишите свою Ось один. :devil:
Я знаю достаточно о недостатках Си. И не хочу больше об этом спорить - в свое время потратил достаточно много нервов, меня и обзывали, и пинали - хватит уж. Но все же один раз я доказал превосходство современного Фортрана над современным Си.
Я страюсь не вмешиваться во всякие такие споры, но все же, Митя, расскажи мне хоть об одном недостатке С, который прям ваще бесил кого-нить. Не знаю, не зря же большое количество современных языков программирования Сиподобны. Я имею ввиду прежде всего С++. Упраляющих конструкций таких как в Си, я не встречал в других языках. Си - очень мощный. Митя, я знаю что ты любишь бейсик. Не обижайся, я его тоже любил, когда был маленький, но сейчас за язык я его не считаю - так, скрипт :). И при этом очень при очень даже не очевидно, что писанина на асме сразу означает стабильность и быстродействие. Ладно Вы бы сказали быстродействие, но вот стабильность тут причем? Типа компиляторы мутят глюки в программе? Так что неочевидно. Про оптимизацию я писал выше. Компьютер легко может выполнять рутинную работу, а человек нет. Не будете же вы подбирать команды процессора таким образом, что-бы они все спаривались? Или быть может, чтоб цикл умещался в одну строку кеша процессора? Можно приводить еще кучу примеров. Допустим и разворачивание циклов вы будете ручками делать? Не знаю... Microsoft и gcc рулят. Кто сказал, что компилятор от Майка под винду будет все оптимизировать? Конечно, если под нее программы писать то да :). Советую все-таки выбирать gcc, хоть он и на 2-4% похуже при оптимизации (может даже и меньше). Щас Митя скажет, опять про языки, но больше просто обсуждать нечего. Покопался бы я в твоем ядре, когда вы искали ошибку, но написано оно некрасиво и трудночитаемо - лень. Так что я просто читаю о
том как вы спорите с легкой ухмылкой на лице.
Когда я писал загрузчик для моей ОС (и у меня было затмение :)), который, кстати, гораздо умнее вашего, то, то что у вас в ядре, было написано максимум за день. И ничего не глючило, работало везде. Загрузчик у меня это не то что в буте, а отдельная программа, которую бут запускает. Для него не важно с дискеты ли, с винта грузится система, неважно в какой директории нах-ся система, все прописано в конфиг файле. И вся загрузка уже шла в PM. Но я бросил это нафиг. Потому что все равно никаму это ненужно. Писал я кстати тоже на асме :). Зачем создавать такую ОС которая абсолютно никому не нужна? А твоя, Митя, не нужна будет точно. Пишешь ты ее уже почти полгода, а результата 0. Если ты ее сделаешь как задумал, то получишь обычный MS-DOS. При этом будет не 640, а больше кб памяти; кучу резидентников (процессов), которые будут работать независимо. При этом память будет как в MS-DOS фрагментироваться, делиться на кусочки... Страницы по причине неполноценного использование памяти мы использовать не хотим. Ядро аппаратно зависимо - понимаете ли есть устройства, которые обязательно присутствуют в компе, а есть которые необязательно. А если у нас будет много-много устройств и несколько из них повешается на одно прерывание, где у ядра уже висит стандартное устрйство? Мы все равно считаем символ с клавы, как же без него, а? Ладно, я уже много чего писал, раньше пытался хоть как-то воздействовать на нашего нового Билла Гейтса, который даже не знал, кто такой Кнут, но результата ноль. Он сильно любит себя, фортран и бейсик, что переубедить и доказать правоту любой другой точки зрения (кроме его) невозможно.
Быть может после вышесказанного меня начнут поливать грязью и т.д. и т.п. Но, Митя, ты не прав. Никого ты к себе не привлечешь, а если и привлечешь, то все мнения, которые будут противоречить с твоими ты будешь нагло отвергать и доказывать что фортран все-равно лучше... Ты о языках не знаешь ничего. Ты знаешь что, вообще существуют и разные типы (я бы сказал классы) языков? Например, есть еще (к примеру) и декларатиные языки, типа Prolog и т.д. Ты хоть знаешь, как называется класс языков на котором ты программируешь? Я имею в виду бейсик, фортран... Если знаешь, молодец (тогда я молчу), а если нет, то как ты можешь утверждать о том что люди не знают ДОСТАТОЧНО о других языках? Сам нифига не знаешь.
...на нашего нового Билла Гейтса, который даже не знал, кто такой Кнут, но результата ноль.
Так, к слову, Билл Гейтс знает о Кнуте и даже прочитал трехтомник за 3 месяца :) Кто быстрее?
Сорри за оффтопик :)
Было такое, что и я начинал ОС писать, написал загрузчик, дополнительный загрузчик, в котором был переход в PM. Только там не время показывалось, а можно было текст набирать и при ENTER на новую строку переходить. Писал естесственно на асме и хватило три дня. Потом забросил, а вторичный загрузчик потом вообще потерял.
Теперь про архитектуру. То что не будет страниц - это большой минус, будет хорошо тормозить и не будет достаточной защиты. И причём тут неполноценное использование памяти? Что, нельзя полностью со страницами использовать? 256 процессов, или как оказывается потоков - слишком мало. Лучше сделать 65536. А то будет трудно многопоточные приложения поддерживать. Так же используется контроллер, который был в 80486, т.е. его эмуляция. Лучше быстрее переходи на использования APIC, тем более у него есть встроенный таймер, поэтому обычный можно будет использовать для чего-нибудь другого. Ещё по коду заметно, что ты пишешь для 386, хотя если полноценно использовать MMX, условные пересылки (cmovcc), то работать раза в два будет точно быстрее. Так что сделай лучше системным требованием Pentium pro.
Переход в PM лучше перенести во вторичный загрузчик вместе со всей инициализацией, а в ядре должны быть только функции, только не вздумай вызывать из по прерываниям, типа int 21h. Это очень медленно. Переключение задач сделай програмно, без TSS, но с его аналогом.
И вообще надо сначало всё продумать, а то будет как в Menuet, где весь интерфейс тормозит намного больше, чем в Windows и Linux, хотя там всё написано на асме.
Ладно, пардон. Едем дальше.
Я страюсь не вмешиваться во всякие такие споры, но все же, Митя, расскажи мне хоть об одном недостатке С, который прям ваще бесил кого-нить.
Бесящих меня множество. Извини, я не хочу об этом говорить - я однажды поднатужился и написал примерно десять страниц недостатков, но тот файл рухнул. Даю слово, я б рад, но уже и здоровье не то, и нервы не те... :) Шучу, но честно - просто лень спорить - об этом достаточно много уже сказано.
Митя, я знаю что ты любишь бейсик. Не обижайся, я его тоже любил, когда был маленький, но сейчас за язык я его не считаю - так, скрипт :).
Не то что люблю, любил года два-три назад. Сейчас пользуюсь им как средством быстрого создания программок.
Покопался бы я в твоем ядре, когда вы искали ошибку, но написано оно некрасиво и трудночитаемо - лень. Так что я просто читаю о
том как вы спорите с легкой ухмылкой на лице.
Я согласен, что некоторые компиляторы могут генерить код лучше чем я. И я б писал на таком языке. Но вы предлагаете Си, а я с ним не в ладах.
Когда я писал загрузчик для моей ОС (и у меня было затмение :)), который, кстати, гораздо умнее вашего, то, то что у вас в ядре, было написано максимум за день.
То, что у меня в ядре, я тоже написал за два пол-выходных. Загрузчик - за два дня. Остальное время думал. Ну не тормоз я, обдумывал тщательно.
И ничего не глючило, работало везде.
И у меня ничего не глючит - ошибку-то я нашел.
Кстати, серьезно я ее искал тоже два пол-выходных.
Я бы писал быстро, но времени нет. Не то что бы нет, просто устаю так, что сидеть перед монитором не хочется.
Загрузчик у меня это не то что в буте, а отдельная программа, которую бут запускает.
[QUOTE]
А твоя, Митя, не нужна будет точно.
Вот это удар ниже пояса, я был о тебе лучшего мнения. Сплюнь, пока не поздно - разве сложно пожелать добра, а не проклинать...
Пишешь ты ее уже почти полгода, а результата 0.
Читай выше.
понимаете ли есть устройства, которые обязательно присутствуют в компе, а есть которые необязательно.
А ты скажешь, я не прав?
такой Кнут, но результата ноль. Он сильно любит себя, фортран и бейсик, что переубедить и доказать правоту любой другой точки зрения (кроме его) невозможно.
А что, я должен всех в мире знать. Ну не пересеклись мой путь и эта книга. И я б рад почитать, но некгде достать.
Быть может после вышесказанного меня начнут поливать грязью и т.д. и т.п. Но, Митя, ты не прав. Никого ты к себе не привлечешь, а если и привлечешь, то все мнения, которые будут противоречить с твоими ты будешь нагло отвергать и доказывать что фортран все-равно лучше...
Конечно лучше.
Ты о языках не знаешь ничего.
Я бы так не наглел.
Ты знаешь что, вообще существуют и разные типы (я бы сказал классы) языков? Например, есть еще (к примеру) и декларатиные языки, типа Prolog и т.д. Ты хоть знаешь, как называется класс языков на котором ты программируешь? Я имею в виду бейсик, фортран... Если знаешь, молодец (тогда я молчу), а если нет, то как ты можешь утверждать о том что люди не знают ДОСТАТОЧНО о других языках? Сам нифига не знаешь.
А ты знаешь хоть что-то о Фортране? Нет. Ты на нем программировал? Нет. А если да, то на каких?
Только на МСовском?
Глупо так меня опускать, все равно знаешь сам, что
это противостояние идет и будет идти вечно, эх ладно, о чем это я... Буду умнее - промолчу.
И давайте уж к МН-ДОС поближе.
А если тебе, RelB, не нравится мой проект - не загрязняй форум, хочешь поругаться - для этого есть электронная почта. И раз я что-то спланировал не так, мне люди об этом говорили. Я же не говорил - сам дурак, я говорил, что запомню.
Сам только вчера вечером и сегодня передумал в пользу страниц, а ты собачишься. Я знаю, что ты знаешь много. Жаль терять знающих людей.
Так, к слову, Билл Гейтс знает о Кнуте и даже прочитал трехтомник за 3 месяца :) Кто быстрее?
Сорри за оффтопик :)
А какой толщины тома? Книги такой толщины, как среднее между "Три мушкетера" и "Аппаратные средства IBM PC" М. Гука я читал за три дня - и это еще не очень напрягаясь...
Но это ведь были художественные книги, я только сейчас скачал третий том уважаемого автора. Самая главная проблема - моих математических знаний не хватит, придется пополнять. Но за месяц-два, я думаю ее одолею.
Я теперь тоже знаю о Кнуте. А если б я учился в институте на кафедре информатики, и не такие б погонялы :) :D знал.
Спасибочки за наставление на путь истинный :) Может, кто подскажет, где скачать первые два тома?
хоть бы командную строку сделал что ли.
Обязательно будет.
Теперь про архитектуру. То что не будет страниц - это большой минус,
Читай выше.
Что, нельзя полностью со страницами использовать?
Ну не нравится мне точночть +- 4 Кб.
256 процессов, или как оказывается потоков - слишком мало. Лучше сделать 65536.
Мы вроде давно уж условились о двух байтах.
Ещё по коду заметно, что ты пишешь для 386, хотя если полноценно использовать MMX, условные пересылки (cmovcc), то работать раза в два будет точно быстрее. Так что сделай лучше системным требованием Pentium pro.
Нет, не хотел бы ПОКА. Линукс объявил, что его минреки - 386, я тоже хочу как можно менее треб. к мощности вычислительных ресурсов систему сделать.
Переход в PM лучше перенести во вторичный загрузчик вместе со всей инициализацией,
Так и будет.
вздумай вызывать из по прерываниям, типа int 21h.
А я именно так и хотел, ну да ладно.
И еще - где вы вычитали, что ТСС медленнее, чем программная эмуляция? То-есть, мне самому интереснне найти, ткните меня, плиз, носом, если не трудно.
Пахал сегодня как лошадь.
Сразу извенюсь перед Митей, что не совсем по теме, но мне кажется здесь ответят быстрее.
Почему у Window-ов и Linux-а есть ограничение на максимальный размер памяти пользовательского процесса в два или три гигабайта? Немного зная архитектуру x86 процов, я не вижу причину, за исключением может быть производительности, но это тоже надо еще доказать.
Все эти вопросы возникают, естественно потому что пытаюсь тоже сделать свою ось :) как ни странно это может показаться :).
В связи с этим, есть очень большой и больной вопрос: средства разработки. Кто чем пользуется, при написании?
Я в данный момент пользуюсь VC++ 6.0. Сначала отлаживаю алгоритм в среде Windows, а потом строю специальный билд для реальной проверки.
Сишные компиляторы от MS и Intel, меня удовлетворяют, а вот формат построенного файла хотелось бы немного изменить, сделать еще проще (как мне кажется) и добавить еще пару фич.
Спасибо,
Valery.
Кто дополнит?
Извеняюсь, компелируется, не фига,
ни очень, мыш, компановщик. Видать, от слова "комп" - нет компа и т.д.
Привет Всем !
Сразу извенюсь перед Митей, что не совсем по теме, но мне кажется здесь ответят быстрее.
Почему у Window-ов и Linux-а есть ограничение на максимальный размер памяти пользовательского процесса в два или три гигабайта? Немного зная архитектуру x86 процов, я не вижу причину, за исключением может быть производительности, но это тоже надо еще доказать.
Все эти вопросы возникают, естественно потому что пытаюсь тоже сделать свою ось :) как ни странно это может показаться :).
В связи с этим, есть очень большой и больной вопрос: средства разработки. Кто чем пользуется, при написании?
Я в данный момент пользуюсь VC++ 6.0. Сначала отлаживаю алгоритм в среде Windows, а потом строю специальный билд для реальной проверки.
Сишные компиляторы от MS и Intel, меня удовлетворяют, а вот формат построенного файла хотелось бы немного изменить, сделать еще проще (как мне кажется) и добавить еще пару фич.
Спасибо,
Valery.
А у тебя так много мозгов в компе??? Аж на два-три гига? Мне бы такое... Вообще, если ты о адресации сегмента задачи, то там только в пределах 32-х бит.
Да и вообще мне что-то кажется, что тут не обсуждение о том, как бы этих мелкомягких очередной раз в унитазе прополоскать, а какая-то откровенная ругань с переходом на личности. Я не выступаю в роли миротворца, но, в конце концов, о чем тема-то? Вы меня извините: я тут человек новый...
Да мне и самому не нравится, а что делать? Стоило сказать, что я не люблю Си, и началось...
Действительно, хватит! Мир! Это как в анекдоте:
"Его одели в кепку Зенита, футболку Локомотива и посадили в сектор Спартака.
Смотрите - Последний герой на первом канале".
Названия команд там точно были другие.
А переход на личности - согласен, чересчур. Но не я первый.
А у тебя так много мозгов в компе??? Аж на два-три гига? Мне бы такое... Вообще, если ты о адресации сегмента задачи, то там только в пределах 32-х бит.
32 бита = 4Gb
Ну в общем было пяток машин с 4Gb памяти. Но не в этом дело, а то что у приклада отнимается 1Gb памяти.
Да мне и самому не нравится, а что делать? Стоило сказать, что я не люблю Си, и началось...
Действительно, хватит! Мир! Это как в анекдоте:
"Его одели в кепку Зенита, футболку Локомотива и посадили в сектор Спартака.
Смотрите - Последний герой на первом канале".
Названия команд там точно были другие.
А переход на личности - согласен, чересчур. Но не я первый.
Дык, ха! Раз уж на то пошло, то я сам не люблю ни Си, ни остальные языки. Мало того, мне и камни интеловские не по душе, всмысле, сама релизация работы ядра. Не посчитайте меня выскочкой, решившим бросить камень в огород старательных людей, занимающихся проблемой написания ОСи на разных языках. Просто это так кажется лично мне. Может, я и себе на уме, как говорится. :) А ругаться лучше не надо.
32 бита = 4Gb
Ну в общем было пяток машин с 4Gb памяти. Но не в этом дело, а то что у приклада отнимается 1Gb памяти.
Честно сказать, почему - сам не знаю. Знаю, что в Windows ограничение на размер процесса составляет 2 гига, а в Linux - 2.5. Сколько сам не искал - нигде не написано в чем прикол.