Создадим О/С (перемешено из форума "Операционные системы")
Подключайтесь к созданию новой мультизадачной операционной системы!
[email]gladkih@hot.ee[/email]
Я говорю не про то, что кто-то там или я сам его неправильно настроил, а что по умолчанию у новой мамы был выключен Bus Master и вместе с ним расширенный инт13. По моему это большая лажа. И если я и нашел, то это не значит, что все найдут.
А винт на 15Г. И через биос твоя ось у меня (и не только) не загрузилась бы!!!
Грузилась бы, очень даже грузилась. Просто нерасширенный инт13 способен "видеть" только первые 8 гб винта. И не грузилась бы она если находилась бы за пределами этой области.
Не знаю где ты копался, но для стандартных устройств он работает ооочень медленно и занимает намного больше места, чем аналогичная прога!
Скорее всего он работает медленно, потому что записан в ПЗУ, а такая память отличается достаточно малым быстродействием.
Ты только сильно не обижайся, просто, по-моему, ты начал не с того конца. Все сначала проектируют, потом пишут хоть что-то(загрузчик, ядро и, обязательно, компилятор и дебагер), а уж потом набирают команду. А ты хочешь все наоборот.
Конечно доля правды есть, но как ты будешь писать дебагер под несуществующую ось? Ведь его запускать как то нужно будет. А где? Так что пока единственным способом отладки является вывод сообщений на экран, типа: "Запустился обработчик прерывания дисковода". Потом такие вещи как ядро, я вообще не предсталяю как отлаживать.
Подобное я только в QNX видел... Но QNX достаточно новая система, а Оберон аж 88 года выпуска (правда это сам язык, а операционка появилась этак в 96).
http://www.oberon.ethz.ch/download.html
Хмм .. может я чтото гдето упустил ? Цытирую:
QNX Software Systems is a leading global provider of realtime operating system (RTOS) technology. Founded in 1980 by Gordon Bell and Dan Dodge, QNX is committed to enabling embedded systems vendors to accelerate the development of highly reliable and scalable realtime applications.
TIA
Решил я тут встрять в спор, хоть и поздно.
Грузилась бы, очень даже грузилась. Просто нерасширенный инт13 способен "видеть" только первые 8 гб винта. И не грузилась бы она если находилась бы за пределами этой области.
Кому нужна такая ось, которая будет выбирать сама будет она грузиться отсюда или вон оттуда? Универсальность должна быть.
Скорее всего он работает медленно, потому что записан в ПЗУ, а такая память отличается достаточно малым быстродействием.
Очень даже может быть. Я даже никогда об этом и не задумывался (что работает из пзу). Хотя написан все равно криво.
Конечно доля правды есть, но как ты будешь писать дебагер под несуществующую ось? Ведь его запускать как то нужно будет. А где? Так что пока единственным способом отладки является вывод сообщений на экран, типа: "Запустился обработчик прерывания дисковода". Потом такие вещи как ядро, я вообще не предсталяю как отлаживать.
А что такое дебагер? Это прога, которая показывает регистры, память и еще чего. Но только не когда BSoD, а в реальном времени. Можно даже делать что-то типа отладочных версий с вызовом в некоторых местах этих функций (отображение регистров... ). А ядро надо не отлаживать, а писать без ошибок. Если требуется отладка ядра, то это или не досканальное знание работы процессора (у меня) или не понимание самого процесса. Там же голый асм. Чего там отлаживать? Другое дело тестить как оно работает.
P.S. По-моему мы немного вышли из темы. Предлагаю открыть новую тему: Универсальный подход к написанию оси без конкретной реализации. С целью проанализировать ошибки и недостатки других осей.
P.P.S. Хорошая книга Олифер: "Сетевые операционные системы". Название точно не помню. Есть на цитфоруме.
Кому нужна такая ось, которая будет выбирать сама будет она грузиться отсюда или вон оттуда? Универсальность должна быть.
О чем вообще речь?
Естественно, универсальность.
Но этот загрузчик - ДЛЯ ДИСКЕТЫ!!!!!
Прошу, друзья, вначале внимательнее смотреть предыдущие сообщения, мою теорию, а потом кричать.
Очень даже может быть. Я даже никогда об этом и не задумывался (что работает из пзу). Хотя написан все равно криво.
По ходу он должен копироваться в ОЗУ, так было по-крайней мере в IBM PC
А насчет криво - я бы так не сказал. Писал его не дядя Вася из первой квартиры, а профессионалы IBM, т.к. это самая критичная часть. Как говорится, надо чаще смотреть в зеркало. Как мы сами все иногда пишем...
А что такое дебагер? Это прога, которая показывает регистры, память и еще чего. Но только не когда BSoD, а в реальном времени. Можно даже делать что-то типа отладочных версий с вызовом в некоторых местах этих функций (отображение регистров... ). А ядро надо не отлаживать, а писать без ошибок.
Как ты программируешь? Первое правило - ПРОГРАММЫ БЕЗ ОШИБОК НЕ СУЩЕСТВУЕТ!!! Если их нет, значит либо программа не работает как надо, либо ты их не заметил, третьего не дано.
Если требуется отладка ядра, то это или не досканальное знание работы процессора (у меня) или не понимание самого процесса. Там же голый асм. Чего там отлаживать? Другое дело тестить как оно работает.
Отлаживать придется.
У меня интернет грохнулся, поэтому редко появляюсь. Не могу никак понять, почему исключения не так работают...(точнее не работают вообще - перезагружается. Опять сказывается недостаток опыта программирования именно З/Р)Скоро выйдет дополнение к теории и опять просьба о помощи...
P.S. По-моему мы немного вышли из темы. Предлагаю открыть новую тему: Универсальный подход к написанию оси без конкретной реализации. С целью проанализировать ошибки и недостатки других осей.
P.P.S. Хорошая книга Олифер: "Сетевые операционные системы". Название точно не помню. Есть на цитфоруме.
Спасибо за ссылки, но пока нужно сделать костяк.
Наконец-то я завершил войну с провайдером,
терь я снова в сети!! хехе))
Гляжу форум бурно идет - спустя почти
месяц моего отсутствия исписали чуть
ли не 2 страницы :) и рейтинга дофига.
Вобщем ща еще дел выше крыши, но все-же как-нить почитаю ваши "проказы". Mitja, просьба к тебе - напиши на мыло, чего там типа нового произошло?
Ну ладно, типа решил главное написать, што я типа жив, а так еще незнаю когда дел поразгребу, шобы осями заняться.
Недавно приехал с Обласной олимпиады по инф,
5-ое место :(( (из за точки-запятой 14 баллов посеял!!)
Вот, заодно в Твери купил кнугу Таненбаума "Архитектура компьютера", и еще на днях должна прийти по почте "Операционные системы" (тоже Таненбаум) такшо свежая инфа идет, вот только время маловато..
До встречи!
Всем ПРИВЕТИЩЕ!!
Наконец-то я завершил войну с провайдером,
терь я снова в сети!! хехе))
Гляжу форум бурно идет - спустя почти
месяц моего отсутствия исписали чуть
ли не 2 страницы :) и рейтинга дофига.
Вобщем ща еще дел выше крыши, но все-же как-нить почитаю ваши "проказы". Mitja, просьба к тебе - напиши на мыло, чего там типа нового произошло?
Ну ладно, типа решил главное написать, што я типа жив, а так еще незнаю когда дел поразгребу, шобы осями заняться.
Недавно приехал с Обласной олимпиады по инф,
5-ое место :(( (из за точки-запятой 14 баллов посеял!!)
Вот, заодно в Твери купил кнугу Таненбаума "Архитектура компьютера", и еще на днях должна прийти по почте "Операционные системы" (тоже Таненбаум) такшо свежая инфа идет, вот только время маловато..
До встречи!
С новыми силами - к новым делам.
Все также, проектирую. Смотри сайт, может, я его обновил когда ты отключился?(тех.инфо)
Сейчас грядет обновление. Завершаю свою битву с исключениями, Всем!!! Смотрите вопрос о стеке.
А я тут недавно на олимпиаду "ходил".
Ну препод по информатике говорит: так и так, ты единственны программер на школу, иди. Пришел, часа два по ТПедИ ходил, потом оказалось, что ее перенесли в др. место или заочно, черт те знает. Короче, препод об этом тоже не знал, а устроители, гады, пардон, не оповестили.!@#$%^&
Но она БЫЛА, есть рез-ты. И прикинте, первое место - 53 балла из 100! Я от смеха чуть не лопнул, особенно, когда задачи увидел. Я б там баллов на 98 нарешал... :)
Sorry for offtopic
Ну и зря, все MMX нежелательно. Как я понимаю у AMD (конечно, я могу ошибаться) нет MMX, значит даже базовые функции пахать не будут, а значит по сути на аналогах Intel твоя ОСь не пойдет. А это хреново, т.к. у многих AMD. Далее, зачем оптимизировать некритичные по времени исполнения функции. Пользователь все равно не заметит как ему на экран текст выводится - через MMX или по обычному. А сайт mndos.narod.ru помойму :)
Ну не совсем ты прав... начиная с k6-2 MMX поддерживается и у амдов - я не думаю что сейчас много машин меньшей мощности - их в свое время не очень много брали...
ИМХО:
возвращаясь к ФС. Интересно вы что думаете кластерную систему придумали от нечего делать? давайте прикинем: современный винт, гигов 40-60, забит под завязку. Сколько у вас уйдет только на одну ФС?????? подумать страшно...Хотя может я и не прав... щаз конечно пойду погляжу на сайт, потом буду дальше громить... ничего личного просто люблю громить...
Первое дизайн сайта... оригинальное решение голубой на синем - как выяснилось в процессе чтения неплохо, вот только тогда приглушите окружающий фон - забивает все-таки... Где-то строки перенесены неправильно и слофо тафтология пишется через "в"...
ну это так - мелочи жизни...
Итак начнем серъезные накаты... Первое: тех. план оставляет весьма гнусное впечатление... видно примерно куда собираешься (собираетесь?) идти, но в общем-то подробностями это назвать трудно, тем более техническими.
Второе. Кто тебе сказал, что расположение в середине винта таблицы ускорит доступ. Учитывая способности современных винтов, типа там замены битых секторов на лету не думаю что заметите разницу... и как интересно собираетесь определять середину? Сейчас между прочим число секторов зависит не только от цилиндра но и от модели, изготовителя и черт от чего знает еще... так что лучше забейте и поместите в начало как все нормальные люди (хотя с другой стороны никакой вирус не догадается гадить таблицу в середине диска).
Третье. Замечание по поводу негибкости 256 процессов лучше рассмотри повнимательнее. Между прочим неплохой способ завесить систему - зарегистрировать 256 процессов (ну или сколько дадут) - любое следующее приложение обломиться.
Четвертое. Дерагментация. Прости но про дефрагментацию в общем-то не написано ничего... не знаю что и сказать... посмотри кнута хоть что-ли, вроде у него что-то было по этому поводу...
И последнее обновление 4 января... - ты еще жив?
Ну что бы еще сказать... Я бы не прочь присоединиться, но вот только мой опыт программирования под асмами не слишком велик... точнее сказать исчезающе мал... так что не знаю чем смогу пригодиться...
Почему-то у многих из нас сейчас проблеммы с провайдерами. Страная общность.
Второе.
Да AMD поддерживают MMX. Ситуация разворачивается в сторону того, что AMD придётся поддержать и более новые extensions from Intel. Можно смело ориентироваться на сегодняшние SSE2 т.к. пока мы закончим ОС, Intel выпустит ещё несколько Instructions Sets. На первых порах об extensions можно не беспокоится. Дальше будет виднее.
Третие.
Распологая таблицу в середине, мы обрекаем программу на конкретные модели HDDs. Как было замечано ранее середину по единой формуле не найдёшь, также нужно учитывать, что HDD всё ещё расут и соответственно растёт количество внутренних вариаций.
Спасибо за внимание.
Ну не совсем ты прав... начиная с k6-2 MMX поддерживается и у амдов - я не думаю что сейчас много машин меньшей мощности - их в свое время не очень много брали...
ИМХО:
возвращаясь к ФС. Интересно вы что думаете кластерную систему придумали от нечего делать? давайте прикинем: современный винт, гигов 40-60, забит под завязку. Сколько у вас уйдет только на одну ФС?????? подумать страшно...Хотя может я и не прав... щаз конечно пойду погляжу на сайт, потом буду дальше громить... ничего личного просто люблю громить...
Про файловую систему - все, проехали и точка.
Принимаются дополнения. И не поставил бы я посекторный учет с бухты-барахты, опять же - привожу пример OS/2, обдумывал не раз.
Мда-а-а продолжим однако...
Первое дизайн сайта... оригинальное решение голубой на синем - как выяснилось в процессе чтения неплохо
Это сарказм или...?
вот только тогда приглушите окружающий фон - забивает все-таки... Где-то строки перенесены неправильно и слофо тафтология пишется через "в"...
Да? Извините! Но думаю, я пишу все же грамотнее, чем многие участники форума.
ну это так - мелочи жизни...
Итак начнем серъезные накаты... Первое: тех. план оставляет весьма гнусное впечатление... видно примерно куда собираешься (собираетесь?) идти,
Поподробнее, пожалуйста!
но в общем-то подробностями это назвать трудно, тем более техническими.
Конкретные примеры - ?
Второе. Кто тебе сказал, что расположение в середине винта таблицы ускорит доступ.
Почитай пожалуйста, на странице 2-3 есть даже расчеты. И к этому можно логическими размышлениями прийти.
Учитывая способности современных винтов, типа там замены битых секторов на лету не думаю что заметите разницу...
Да, в современных дисках даже разное кол-во секторов на разных дорожках, это учтено при проектировании. Вы все извините, но я не могу свои мысли по этому поводу выразить на "бумаге".
и как интересно собираетесь определять середину?
Элементарно! LBA число/2
Сектора нумеруются "прошивкой", как в БИОСе для дискеты.
Сейчас между прочим число секторов зависит не только от цилиндра но и от модели, изготовителя и черт от чего знает еще...
Даже на компьютерах XT AT параметры НМД зависили от модели, это было даже когда еще и персоналок не было...
так что лучше забейте и поместите в начало как все нормальные люди (хотя с другой стороны никакой вирус не догадается гадить таблицу в середине диска).
Ну, спасибо, конечно, за ненормального.
В начале диска ставят те, кто не знает ничего, кроме FAT, кто хочет сделать попроще, кто идет по пути наименьшего сопротивления, не хочет заниматься оптимизацией и т.д.
По-моему, на форуме было приведено уже достаточно доводов в пользу Ф/С MN-DOS.
Тем более, чтобы появились вирусы, надо какое-то время после появления системы. Первые вирусы под Windows 95 появились нескоро, для Linux - быстрее, наверно, из-за Open Sources. Ничего против O.S. не имею, это побочное явление.
Третье. Замечание по поводу негибкости 256 процессов лучше рассмотри повнимательнее. Между прочим неплохой способ завесить систему - зарегистрировать 256 процессов (ну или сколько дадут) - любое следующее приложение обломиться.
Вот-вот! Именно не запустится, а ситема не зависнет! Но, как я уже сказал, расширить не составляет труда.
[/QUOTE]
Четвертое. Дерагментация. Прости но про дефрагментацию в общем-то не написано ничего... не знаю что и сказать... посмотри кнута хоть что-ли, вроде у него что-то было по этому поводу...
[/QUOTE]
Про дефрагментацию чего?
Посмотреть что...?
И последнее обновление 4 января... - ты еще жив?
Ну что бы еще сказать...
Приношу свои извинения, у меня есть время на систему, а на сайт не хватает... Сделаю обновление точно не позднее 5 февраля.
Я бы не прочь присоединиться, но вот только мой опыт программирования под асмами не слишком велик... точнее сказать исчезающе мал... так что не знаю чем смогу пригодиться...
Хоть критикуйте, но тщательно взвешивая аргументы.
Третие.
Распологая таблицу в середине, мы обрекаем программу на конкретные модели HDDs.
Ничего подобного.
Как было замечано ранее середину по единой формуле не найдёшь
Очень даже найдешь. Если я разделю размер LBA на 2, контроллер действительно даст именно ФИЗИЧЕСКУЮ СЕРЕДИНУ любого диска, с любой геометрией, с любыми вариациями расположения и количества секторов.
Нет это не сарказм, это констатация удобства на мой взгляд не совсем совместимых цветов.
Я ж не потому это писал, что ты неграмотен, а чтобы выловил ошибки.
Извини не понял, что такое LBA число/2, кто такое LBA число???
Посмотреть что...?
Чего дефрагментацию - тебе виднее; я месс писал прямо по тех. документации - наверное оперативки. Кнут - автор нехилой по размерами книжки (пока в 3-4 томах) где вроде бы можно найти ВСЕ о программировании в целом (то есть как писать ОС там не написано). Просто есть несколько способов организации памяти (в том числе дефрагментации) отличающихся либо скоростью, либо качеством...
А по поводу тех. подробностей... Где-то была уже мессага о том, что прочитав тех. подробности чел должен понять вообще что вы делаете, и если хочет сразу включиться в разработку. То есть видит он тот же планровщик задач. ПОнимает как эТо работАет и пробует его написать (хотя бы и с нуля). А по пока имеющемуся даже непонятно для какого режима проца ось делается... я понимаю, что это есть в форуме, но ведь листать-читать весь форум - не лучшее развлечение... Кстатти можешь выложить копию этого форума на свой сайт - будет кстати, или хотя бы ссылку...
Нет это не сарказм, это констатация удобства на мой взгляд не совсем совместимых цветов.
Я ж не потому это писал, что ты неграмотен, а чтобы выловил ошибки.
Извини не понял, что такое LBA число/2, кто такое LBA число???
Ну....
Logical Block Addressing.
То-есть, я не совсем правильно выразился, наверно.
Имелось ввиду общее кол-во секторов, получаемое от контроллера ЖМД.
Чего дефрагментацию - тебе виднее; я месс писал прямо по тех. документации - наверное оперативки.
Там вроде речь и о дефрагментации накопителей шла.
Кнут - автор нехилой по размерами книжки (пока в 3-4 томах) где вроде бы можно найти ВСЕ о программировании в целом (то есть как писать ОС там не написано). Просто есть несколько способов организации памяти (в том числе дефрагментации) отличающихся либо скоростью, либо качеством...
Я свои способы брал из специальной книжки -"Проектирование О/С для малых ЭВМ".(не микро(ПК), а малых.)
Ну, и естественно, сам додумывал.
А по поводу тех. подробностей... Где-то была уже мессага о том, что прочитав тех. подробности чел должен понять вообще что вы делаете, и если хочет сразу включиться в разработку. То есть видит он тот же планровщик задач. ПОнимает как эТо работАет и пробует его написать (хотя бы и с нуля). А по пока имеющемуся даже непонятно для какого режима проца ось делается...
Все дело в том, что в-основном люди попадают туда, прочитав этот форум... :)
я понимаю, что это есть в форуме, но ведь листать-читать весь форум - не лучшее развлечение... Кстатти можешь выложить копию этого форума на свой сайт - будет кстати, или хотя бы ссылку...
Хорошая идея, сделаю.
А про середину нужны подробности.
Обдумай несколько факторов:
- файлы дефрагментированны на HDD;
- диаметр диска увеличивается от центра, что уже не обеспечивает равномерной скорости если располагать таблицу в середине;
- BAD sectors скажутся на скорости доступа к "середине";
- стандартный HDD не достаточно широкий чтобы обеспечивать прирост из-за размещения таблицы в центре, другое дело HDD диаметром в 1000 метров; а на стандартном механическая головка не сможет обеспечить такого "1000 метрового результата", ведь помимо "перемещения", ещё есть много процессов на стороне головки:
-- процесс остановки,
-- начала процесса записи,
-- конца процесса записи,
-- начала процесса чтения,
-- конца процесса чтения,
-- начала движения по диску,
-- завершения движения по диску,
- т.е. само перемещение не составляет ста процентов от комплексного процесса доступа к диску;
- попробуй поэкспериментировать с знаменитыми FS и твоей FS когда закончишь версию для HDD, я предполагаю, не обижайся, что знаменитые FS покажут лучший результат по скорости;
- Я искренне хочу увидеть FS с таблицей, в центре работающею быстрее, чем FS с таблицей в начале, но пока я такого чуда не видел. Приведи реальные цифры в миллисекундах.
С глубоким уважением.
Очень долго смеялся. Особенно про стек.
Теперь серьезно:
- есть очень хорошая книга Зубкова С. В. про асм. Там и про з\р немного есть. Как раз и про стек. Стек от данных ничем не отличается. Процу все равно что там хранить.
- я никак не могу понять зачем вообще весь этот спор про расположение в середине винта или еще где. По моему элементарно сделать так, чтобы ее можно было расположить в любом месте, а уже потом опытным путем выбрать где именно, в начале, середине или еще где. Или предоставить выбор пользователю.
- и, наконец, про то откуда грузиться. Ты говоришь, что утебя пока все с дискеты. Теперь представь, что ты упихал все в бут почти под завязку. С дискеты все нормально. И надо доделать загрузку с других устройств. Куда ты будешь пихать эти процедуры?
P.S. Какого размера у тебя бут, лоадер или еще чего? Я говорил про универсальность не просто, необходимо сначала спроектировать. Где твой проект? Что за чем, в каком режиме проца, когда и откуда грузиться будет?
Всего наилучшего.
By
Hi
Очень долго смеялся. Особенно про стек.
Теперь серьезно:
- есть очень хорошая книга Зубкова С. В. про асм. Там и про з\р немного есть. Как раз и про стек. Стек от данных ничем не отличается. Процу все равно что там хранить.
Вот если бы ты не смеялся, а читал, то понял, что разговор шел главным образом о организации сегментов с расширением вверх и вниз. Нигде подробно об этом не пишется, только в мануале Intel-a том 3.
P.S. Какого размера у тебя бут, лоадер или еще чего? Я говорил про универсальность не просто, необходимо сначала спроектировать. Где твой проект? Что за чем, в каком режиме проца, когда и откуда грузиться будет?
Всего наилучшего.
By
Кстати, Митя, я посмотрел бут по подробнее (только начало) и понял, что тебе придется его переделывать (хотя и немного). Есть там такое поле
BOOT DB 00h ;PHYSICAL DRIVE NUMBER
Вот оно абсолютно лишнее. Получается, что если мы вставим дискету в дисковод B:, то будет прикольный облом. Пора уже знать, проектировщик :), что при считывании бута БИОС заносит номер девайса в регистр DL и передает управление буту. Да, еще нет универсальности относительно директории где находится ОС и имени файла ядра.
Лично я бы поступил так.
Бут грузит exe-шник или com (например osloader.exe), который в корневом каталоге (такой бут легко уместиться в 512 байт для любых девайсов, даже для всех сразу можно было бы использовать один и тот же бут, конечно только для определенной FS). В этом экзешнике на размер нет практически никаких ограничений, т.е. мы имеем большое поле для маневров. Osloader переходит в ЗР (хотя и не обязательно) ищет в корневике system.ini, где прописаны все пути, файлы которые нужно запустить и т.д и т.п. Ну а дальше лишь дело техники. А то у Вас бедное ядро даже флоп отключает после своего запуска (нехорошо, я даже сказал, что очень нехорошо, получается, что ядро привязано только к дискете, я говорю на основании тех исходников, которые видел на форуме, может щас все и поменялось). Вот так будет все универсально, я бы даже сказал абсолютно универсально. По такому принципу грузится скажем WinNT, я думаю, что Вы не скажете, что это абсолютное фуфло и мы даже смотреть не будем в ее сторону.
Желаю успехов!!!
Ну....
Logical Block Addressing.
То-есть, я не совсем правильно выразился, наверно.
Имелось ввиду общее кол-во секторов, получаемое от контроллера ЖМД.
Здо`рово! берем винт, пусть даже один блин, на каждой стороне по 10 (условно) секторов, всего - 20, что и покажет LBA, теперь делим пополам и попадаем ровно в конец первой стороны блина (или начало второй) - я до сих пор не понимаю алгоритм поиска середины диска, при отутствии инфы о геометрии харда, которую получить мягко говоря затруднительно. И что такое тогда середина диска, ответь плиз?
Здо`рово! берем винт, пусть даже один блин, на каждой стороне по 10 (условно) секторов, всего - 20, что и покажет LBA, теперь делим пополам и попадаем ровно в конец первой стороны блина (или начало второй) - я до сих пор не понимаю алгоритм поиска середины диска, при отутствии инфы о геометрии харда, которую получить мягко говоря затруднительно. И что такое тогда середина диска, ответь плиз?
Середину диска невозможно определить, не зная его геометрии. Вот у дискеты - это начало сороковой дорожки, а у винтов всё по разному.
Здо`рово! берем винт, пусть даже один блин, на каждой стороне по 10 (условно) секторов, всего - 20, что и покажет LBA, теперь делим пополам и попадаем ровно в конец первой стороны блина (или начало второй) - я до сих пор не понимаю алгоритм поиска середины диска, при отутствии инфы о геометрии харда, которую получить мягко говоря затруднительно. И что такое тогда середина диска, ответь плиз?
Прикольный пример. Молодец. Мне было действительно смешно :). Посмотрим как Митя это оспорит.
P.S. Я еще ни разу не видел как он признает свои ошибки :D
Митя, цвет сайта действительно плохо влияет на читаемость. Хочешь хороший пример сочетания цветов, посмотри хотя бы на данный форум, так намного приятнее читать.
А про середину нужны подробности.
Обдумай несколько факторов:
- файлы дефрагментированны на HDD;
Ну и что? Они и в SLTFS могут быть дефрагментированы, и в FAT - это только еще более усредняет показатели, "сглаживает" неровности графиков.
- диаметр диска увеличивается от центра, что уже не обеспечивает равномерной скорости если располагать таблицу в середине;
В середине - не возле шпинделя, а на 40 дорожке из 80, например.
Т.е. вохле шпинделя 5 с., на конце - 100, значит, в середине - 105/2 - самое среднее время считывания.
- BAD sectors скажутся на скорости доступа к "середине";
Нелогично. Они мешают ЛЮБОЙ Ф/С
- стандартный HDD не достаточно широкий чтобы обеспечивать прирост из-за размещения таблицы в центре, другое дело HDD диаметром в 1000 метров; а на стандартном механическая головка не сможет обеспечить такого "1000 метрового результата",
Не понялсути, разъясни.
ведь помимо "перемещения", ещё есть много процессов на стороне головки:
-- процесс остановки,
-- начала процесса записи,
-- конца процесса записи,
-- начала процесса чтения,
-- конца процесса чтения,
-- начала движения по диску,
-- завершения движения по диску,
- т.е. само перемещение не составляет ста процентов от комплексного процесса доступа к диску;
Да, но перемещение - самая долгая операция.
Я именно на уменьшении использования самой долгой операции и основал Ф/С.
- попробуй поэкспериментировать с знаменитыми FS и твоей FS когда закончишь версию для HDD, я предполагаю, не обижайся, что знаменитые FS покажут лучший результат по скорости;
- Я искренне хочу увидеть FS с таблицей, в центре работающею быстрее, чем FS с таблицей в начале, но пока я такого чуда не видел. Приведи реальные цифры в миллисекундах.
В миллисекундах сложно, а в условных единицах - кто-то на форуме уже приводил, в самом начале.
Hi
Очень долго смеялся. Особенно про стек.
Теперь серьезно:
- есть очень хорошая книга Зубкова С. В. про асм. Там и про з\р немного есть. Как раз и про стек. Стек от данных ничем не отличается. Процу все равно что там хранить.
No comments, читайте внимательно!
- я никак не могу понять зачем вообще весь этот спор про расположение в середине винта или еще где. По моему элементарно сделать так, чтобы ее можно было расположить в любом месте, а уже потом опытным путем выбрать где именно, в начале, середине или еще где. Или предоставить выбор пользователю.
Да, в какой-то системе для малых ЭВМ я такое видел. Может, попробую.
- и, наконец, про то откуда грузиться. Ты говоришь, что утебя пока все с дискеты. Теперь представь, что ты упихал все в бут почти под завязку. С дискеты все нормально. И надо доделать загрузку с других устройств. Куда ты будешь пихать эти процедуры?
У меня boot loader в двух секторах, второй занят только наполовину. Тем более, чтобы грузиться с НМД, надо только изменить размерность используемых регистров и операций. И вместо 12-битной Таблицы сделать 16/32.
P.S. Какого размера у тебя бут, лоадер или еще чего? Я говорил про универсальность не просто, необходимо сначала спроектировать. Где твой проект? Что за чем, в каком режиме проца, когда и откуда грузиться будет?
Вот теперь я долго смеялся. Вот уже с прошлого года обсуждаем 32 pmode MN-DOS...:)
Всего наилучшего.
By
Вам всем также!
Вот если бы ты не смеялся, а читал, то понял, что разговор шел главным образом о организации сегментов с расширением вверх и вниз. Нигде подробно об этом не пишется, только в мануале Intel-a том 3.
Кстати, Митя, я посмотрел бут по подробнее (только начало) и понял, что тебе придется его переделывать (хотя и немного). Есть там такое поле
BOOT DB 00h ;PHYSICAL DRIVE NUMBER
Вот оно абсолютно лишнее. Получается, что если мы вставим дискету в дисковод B:, то будет прикольный облом.
Ничего подобного. BIOS всегда грузит с A, а если и нет, то используется опция Swap floppy drives, в это мслучае грузится с В:, но он везде как А:
Пора уже знать, проектировщик :), что при считывании бута БИОС заносит номер девайса в регистр DL и передает управление буту.
Кстати!
Я об этом узнал только когда попал на форум CodeNet в прошлом году! Где только не искал - нигде не было. Но можно и доделать.
Не фатально.
Да, еще нет универсальности относительно директории где находится ОС и имени файла ядра.
Почему же?
A:\SYSTEM\kernel.bin - всегда!
Причем эта директория недоступна для программ.
(на диске, где О/С)
Лично я бы поступил так.
Бут грузит exe-шник или com (например osloader.exe), который в корневом каталоге (такой бут легко уместиться в 512 байт для любых девайсов, даже для всех сразу можно было бы использовать один и тот же бут, конечно только для определенной FS). В этом экзешнике на размер нет практически никаких ограничений, т.е. мы имеем большое поле для маневров. Osloader переходит в ЗР (хотя и не обязательно) ищет в корневике system.ini, где прописаны все пути, файлы которые нужно запустить и т.д и т.п. Ну а дальше лишь дело техники.
Каждый вибирает по себе.(песенка такая есть.)
У меня этим будет начальная часть ядра заниматься.
А то у Вас бедное ядро даже флоп отключает после своего запуска (нехорошо, я даже сказал, что очень нехорошо, получается, что ядро привязано только к дискете, я говорю на основании тех исходников, которые видел на форуме, может щас все и поменялось).
:):)
Дело не в этом. Просто у меня на Laptop'е, где О/С пишу, оооочень шумный флопчик - и когда мне надо подумать, почему жу та или иная часть не работает, он меня своим шумом отвлекает.
Потом, конечно, уберу.
Вот так будет все универсально, я бы даже сказал абсолютно универсально. По такому принципу грузится скажем WinNT, я думаю, что Вы не скажете, что это абсолютное фуфло и мы даже смотреть не будем в ее сторону.
Желаю успехов!!!
Да, кстати, покажите мне Linux, в котором можно 98 окон открыть и не зависнуть. В Win98 можно(98 и 98 - совпадение.)
Прикольный пример. Молодец. Мне было действительно смешно :). Посмотрим как Митя это оспорит.
Сейчас напишу.
P.S. Я еще ни разу не видел как он признает свои ошибки :D
:) Если бы вы имели возможность спросить моих друзей, они бы сказали, что за время нашего знакомства я может раз или два признал, что неправ.
Главным образом, потому, что часто я могу доказать свою ПРАВОТУ.
Середину диска невозможно определить, не зная его геометрии. Вот у дискеты - это начало сороковой дорожки, а у винтов всё по разному.
Смотря о какой дискете идет речь.
Здо`рово! берем винт, пусть даже один блин, на каждой стороне по 10 (условно) секторов, всего - 20, что и покажет LBA, теперь делим пополам и попадаем ровно в конец первой стороны блина (или начало второй) - я до сих пор не понимаю алгоритм поиска середины диска, при отутствии инфы о геометрии харда, которую получить мягко говоря затруднительно. И что такое тогда середина диска, ответь плиз?
Как бы я хотел иметь такое устройство, чтобы увидев некое сообщение, нажимал на кнопку, и автора било бы током. Шутка, конечно. Видел в "Принцип'е Дилберта"
Как же еще заставить людей внимательно читать форум!?
Моя система прдставляет нумерацию секторов так же, как и BIOS. Причины я уже называл.
То-есть, получается такой меандр - вверх-вниз...
И в данном случае 20/2 будет не конец первого блина, а 5 сектор первой стороны.
Если мы возьмем среднее арифм. между кол-вом сеторов у шпинделя и на 0 треке, перемещений головок будет больше, но будут интенсивнее использоваться сектора более полноценных дорожек, значит - опять же плюс.
Во-вторых: я спрашивал не про то в каком режиме она будет работать, а где именно будет переходить в з\р.
B сколько можно спорить по поводу середины винта? Когда будет готова - тогда и сравним с другими фс.
P.S. Если я чего напутал, то прошу прощения. У меня сессия.
Во-первых: были проблемы со стеком. Из за него вроде чего-то не работало (или перегружалось (висло)), поэтому и смешно, если ты пытался делать стек не как данные для всегда одинакового по размеру стека. И судя по твоим вопросам это именно так.
Да, мне нужен был обычный стек с расширением вниз, а что?
Во-вторых: я спрашивал не про то в каком режиме она будет работать, а где именно будет переходить в з\р.
Как где - где-то там..... В ядре. Задай, пожалуйста, конкретнее.
B сколько можно спорить по поводу середины винта? Когда будет готова - тогда и сравним с другими фс.
Согласен, но скажи это тем, кто спорит - мне-то надо отвечать на выпады.
Да, кстати, покажите мне Linux, в котором можно 98 окон открыть и не зависнуть. В Win98 можно(98 и 98 - совпадение.)
Любой Linux. Вообще фраза "открыть в линуксе 98 окон и не зависнуть" - некорректна, т.к. графическая подсистема не является частью Linux. Сервер X-Window выполняется в третьем кольце как обычное пользовательское приложение и завесить систему не может в принципе :)
Любой Linux. Вообще фраза "открыть в линуксе 98 окон и не зависнуть" - некорректна, т.к. графическая подсистема не является частью Linux. Сервер X-Window выполняется в третьем кольце как обычное пользовательское приложение и завесить систему не может в принципе :)
Не может, но всё равно завешивает...
Не может, но всё равно завешивает...
Не знаю ,не знаю у меня получилось завесить linux только запустив StarCraft через wine,а по большому счёту он у меня работал без сбоев.Linux вообще намного стабильнее тойже windows или Unix
Не может, но всё равно завешивает...
Не завешивает. Есть разница между зависоном X-сервера и зависоном Линукса. Если бы вдруг какая-то программа, исполняющаяся с CPL=3 и с правами обычного пользователя смогла бы завесить Linux, то об этом уже знал весь мир :D. В отличие от Win9x в пингвине изоляция процессов друг от друга выполнена на пять с плюсом.
ЗЫ. А зависший X-сервер лечится командами Ctrl-Alt-Backspace, Alt-Fn, Ctrl+PrtScr ...
Ну, у кого еще желание спросить, помочь...?
Слушай, а под какой объём оперативки будет ориентирована твоя ОС? И ещё, как собираешся быть с совместимостью программ, написанных под Windows с твоей ОС. Если они будут нормально совместимы, то это резко повысит полезность твоей ОС.
Любой Linux. Вообще фраза "открыть в линуксе 98 окон и не зависнуть" - некорректна, т.к. графическая подсистема не является частью Linux. Сервер X-Window выполняется в третьем кольце как обычное пользовательское приложение и завесить систему не может в принципе :)
:D После такого "зависания 3 кольца" все клинит так, что даже ни CAD, ни NumLock не работают :D
Не знаю ,не знаю у меня получилось завесить linux только запустив StarCraft через wine,а по большому счёту он у меня работал без сбоев.Linux вообще намного стабильнее тойже windows или Unix
Я тут недавно провел опыт - на восемь разных компьютеров ставил Win98 и разные Линуксы.
Везде, подчеркиваю - везде Win98 работал заметно стабильнее...
И я так, просто, фразу бросил, тут форум про MN-DOS!
Слушай, а под какой объём оперативки будет ориентирована твоя ОС? И ещё, как собираешся быть с совместимостью программ, написанных под Windows с твоей ОС. Если они будут нормально совместимы, то это резко повысит полезность твоей ОС.
Чтобы попробовать - 1 Мб, желательно 4 и более...
:) MS-DOSовские буду поддерживать, а насчет Win - вряд ли, но его протоколы и Ф/С буду.
Я тут недавно провел опыт - на восемь разных компьютеров ставил Win98 и разные Линуксы.
Везде, подчеркиваю - везде Win98 работал заметно стабильнее...
И я так, просто, фразу бросил, тут форум про MN-DOS!
Это во многом, так и есть.
Перед тем чтобы Linux начал работать, так же как и Win XP работает сразу после установки "by default" нужно потратить уйму времени. Начинать лучше с компиляции ядра.
Это во многом, так и есть.
Перед тем чтобы Linux начал работать, так же как и Win XP работает сразу после установки "by default" нужно потратить уйму времени. Начинать лучше с компиляции ядра.
комплирирую ядро, только радо того, что бы подогнать под свой PC, а так оно нормально работает
А вообще, на RH-7.1 в X дошел до 300 окно,
на Slakware 8.1 - 500 птом вырубил
На счет того чтоб линуксы работали хуже виндов просто неверю, правда их поставить сначало нормально нужно