nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 09:19



Reply to topic  [ 62 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next
Ядро операционной системы 
Author Message
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
CHRV wrote:
Quote:
Hа какой объем памяти pасчитываешь вести каpту ?. Hа нынешние 4 метpа ?.

На сколько я знаю большую память не поддерживает прошивка ПЛМ. Т.е. под идентификатор страницы (16К) пока отводится только один байт отсуда и такой размер 256x16k=4096к.


Когда я писал свою операционку ShaOS ;) в 1992-1998 годах то я делал глобальную таблицу распределения блоков памяти с указанием идентификатора процесса-владельца для кажлого блока - по 1 байту на блок. Правда я рассчитывал на маленькую память и 1 блок у меня был размером 256 байт.

http://www.nedopc.org/nedopc/shaos/shaos_w.htm

_________________
:dj: https://mastodon.social/@Shaos


06 Feb 2004 07:56
Profile WWW
God
User avatar

Joined: 29 Dec 2003 01:00
Posts: 1101
Location: Москва
Reply with quote
Post 
Shaos wrote:
Когда я писал свою операционку ShaOS ;) в 1992-1998 годах то я делал глобальную таблицу распределения блоков памяти с указанием идентификатора процесса-владельца для кажлого блока - по 1 байту на блок. Правда я рассчитывал на маленькую память и 1 блок у меня был размером 256 байт.


Александр тут подразумевается именно хардваре ограничение. У Спринтера на данный момент для переключения страниц используется 8битный поинтер на 16кбайтную страницу (ты это лучше меня знаешь :-) ). Т.е. в данной прошивке ПЛМ невозможно добраться до памяти свыше чем 4Мбайта.
Дело не в операционке, а в схеме...
Хотя операционку надо писать конечно с учетом, что Петерсы или сам Иван Мак (кстати куда он пропал?) выпустят обещанную поддержку до 64Мбайт.

Кстати порт RiseOut под Спринтер практически готов, осталось сделать, загрузку-выгрузку сохраненок... Звук я пока не делал, но может сделаю. Дему скоро брошу суда :-) Типа анонс.


09 Feb 2004 00:30
Profile ICQ WWW
Retired

Joined: 03 Aug 2003 22:37
Posts: 1474
Location: Moscow
Reply with quote
Post 
Quote:
Хотя операционку надо писать конечно с учетом, что Петерсы или сам Иван Мак (кстати куда он пропал?) выпустят обещанную поддержку до 64Мбайт.


Так и будем делать :wink:

Quote:
Кстати порт RiseOut под Спринтер практически готов, осталось сделать, загрузку-выгрузку сохраненок... Звук я пока не делал, но может сделаю.


Со звуком у «Спринтера» особенно плохо, вообще нет никаких средств его извлечения :(

Quote:
Дему скоро брошу суда :-) Типа анонс.


Здорово! Ждём! :D


09 Feb 2004 01:03
Profile
God
User avatar

Joined: 03 Feb 2003 13:53
Posts: 1078
Reply with quote
Post 
CHRV wrote:
Кстати порт RiseOut под Спринтер практически готов, осталось сделать, загрузку-выгрузку сохраненок... Звук я пока не делал, но может сделаю. Дему скоро брошу суда :-) Типа анонс.

Сделай АУ!!


09 Feb 2004 04:20
Profile
God
User avatar

Joined: 29 Dec 2003 01:00
Posts: 1101
Location: Москва
Reply with quote
Post 
cr0acker wrote:
Сделай АУ!!

AY на Спринтере не доступен из под стандартной конфигурации (прошивки ПЛМ). AY работает только в ZX прошивках.
Из стандартной конфигурации доступен токо COVOX, возможно сделаю под него, но это будет не музыка а озвучка...


09 Feb 2004 06:35
Profile ICQ WWW
God
User avatar

Joined: 03 Feb 2003 13:53
Posts: 1078
Reply with quote
Post 
CHRV wrote:
cr0acker wrote:
Сделай АУ!!

AY на Спринтере не доступен из под стандартной конфигурации (прошивки ПЛМ). AY работает только в ZX прошивках.
Из стандартной конфигурации доступен токо COVOX, возможно сделаю под него, но это будет не музыка а озвучка...

В Спринтере 2000 АУ доступен везде.


09 Feb 2004 13:33
Profile
Doomed
User avatar

Joined: 11 Dec 2003 14:34
Posts: 413
Reply with quote
Post 
[quote="Mac Buster"]

VI>> Распиши адpеса pасположения этих "пунктов". Hавеpняка пpикидывал.
MB> Из этих прикидок вышло только что какие-то данные придется хранить
MB> в неполном объеме. В первых 512-и байтах будут располагаться обработ-
MB> чики прерываний, затем переменные, остальное (байт 128) отводится под
MB> начальный стек.

0000 ----------
Рестарты обработки прерываний
512 байт
01FF ----------

0200 ----------
?? байт
???
0xxx ----------

0xxx ----------
Указатели на аргументы ком-строки консоли
массив ?? байт
037F ----------

0380 ----------
Стек
128 байт
03FF ----------


VI>> Hа какой объем памяти pасчитываешь вести каpту?. Hа нынешние 4 метpа?.
MB> Постараюсь на максимальный объем.

Надо расчитывать на 64 метра. Ваня Мак планировал поддерживать такой
объем блоками по 4 метра нынешнего распределения памяти. При такой
поддержке памяти, не исчезнет совместимость с уже существующими програм-
мами (т.е. работающими со "старым" распределением памяти).

VI>> Каpта будет пpедставлять из себя массив байтов или битов ?.
MB> Никак не решу. С байтами вроде проще, но места надо больше.

Делай как массив битов. Иначе тебе данную карту придется раздувать в 8
раз, что не есть хорошо, сам прекрасно знаешь. Imho это будет не самым
слабым звеном, в плане скорости работы FS.

VI>> Отведешь массив в 256 байт ?.
MB> Планирую сразу разбирать командную строку терминала и хранить только
MB> указатели на слова, отделенные пробелами.

А где же тогда будешь хранить сами слова ?, тем более в многозадачке,
где могут запускаться еще куча программ. Может лучше ком-строку каждого
запущенного приложения хранить в "префиксе" 0x0000...0x3FFF своего прило-
жения ?. И не надо для этого занимать место в служ. буферах ОС.

В качестве разделителей аргументов, нужно предусмотреть не только одни
пробелы, но и как минимум ",", возможно еще "=". Если в ком. строке будут
табуляции, то обрабатывать и табуляции.

MB> Думаю, у каждого кто писал программы для AmigaOS она стала чем-то
MB> вроде стандарта, ниже которого опускаться нельзя, а лучше сделать
MB> трудно ;).

А лучше делать и не надо ;). Все хорошо в меру. Поделись об особенностях
(фитчах) этой АмигаОС.

VI>> Опpеделился с FS ?. Какой pазpядности она будет ?. Imho меньше 32-х
VI>> битной делать не стоит.
MB> Да, будет 32-разрядная. Только конкретную еще не выбирал. Надо рас-
MB> сматривать организацию каждой FS отдельно, и выбрать оптимальную по
MB> соотношению "сложность реализации/скорость работы/надежность".

Imho надо было с самого начала выбрать FS и только потом планировать
остальные части новой ОС. Лог. диски в АмигаОС тоже надо монтировать
как в *nix-ах ?. Если так, то можно за основу взять FS от UZIX и доработать
ее для новой ОС-и. Все легче, чем начинать с "чистого листа".

Насколько я помню, название своей ОС-и ты дал "Ozon" ?. Значит давай
его юзать ;).

Было бы не плохо в FS юзать бинарное дерево для работы с именами файлов
(поиск имени файла, поиск свободного места в FS).

VI>> С чего начинать писать новую ОС ?.
MB> С техзадания.

Вот и я о том же ;). Надо его выработать.

VI>> Поскольку поpты Спpинтеpа нам доступны, надо писать биосные дисковые
VI>> функции под новую ОС и паpаллельно с этим файловую систему.
MB> Про функции БИОС ты совершенно прав. Вообще было-бы неплохо раздобыть
MB> эту вещь и спосмотреть как она устроена, а потом сделать свое, но лучше.

Я тоже разделяю такой подход к проблеме ;). Только вот бывшая Sprinter
Team отмолчится, со всеми вытекающими...
А что тебя интересует в Биосе: вывод на экран, выделение памяти, обработка
клавы, структура экранов ?.

MB> Можем для начала определиться какие должны быть функции у основного
MB> модуля ядра, а какие у остальных модулей. Под функциями подразуме-
MB> ваютcя конкретные вызовы.

Если уж ты постоянно говоришь о АмигаОС ;), то возможно есть смысл
огласить общественности список данных функций этой ОС-и.

_________________
Vasil Ivanov
vasil-i@yandex.ru


09 Feb 2004 20:59
Profile
God
User avatar

Joined: 29 Dec 2003 01:00
Posts: 1101
Location: Москва
Reply with quote
Post 
cr0acker wrote:
В Спринтере 2000 АУ доступен везде.

Насколько я знаю, или акселератор или AY. Если я ошибаюсь то исходник (пример) на бочку!

По поводу ОС:
Нужен хотя бы список функций. Или какаято схема, чтобы представлять что ты хочешь?

По поводы замены БИОС, боюсь придется все дизассемблировать ибо ответов из Питера нет , Мак тоже молчит (может мыло сменил).


10 Feb 2004 00:13
Profile ICQ WWW
Doomed
User avatar

Joined: 11 Dec 2003 14:34
Posts: 413
Reply with quote
Post 
CHRV wrote:
По поводы замены БИОС, боюсь придется все дизассемблировать ибо ответов из Питера нет , Мак тоже молчит (может мыло сменил).


Имей ввиду, что код там упакован Хрустом. Отдельные блоки надо
искать по сигнатуре "HR".

_________________
Vasil Ivanov
vasil-i@yandex.ru


13 Feb 2004 14:20
Profile
Retired

Joined: 03 Aug 2003 22:37
Posts: 1474
Location: Moscow
Reply with quote
Post 
Quote:
Надо расчитывать на 64 метра. Ваня Мак планировал поддерживать такой объем блоками по 4 метра нынешнего распределения памяти. При такой поддержке памяти, не исчезнет совместимость с уже существующими программами (т.е. работающими со "старым" распределением памяти).


Полностью согласен.

Quote:
Делай как массив битов. Иначе тебе данную карту придется раздувать в 8 раз, что не есть хорошо, сам прекрасно знаешь. Imho это будет не самым слабым звеном, в плане скорости работы FS.


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

Quote:
А где же тогда будешь хранить сами слова ?, тем более в многозадачке, где могут запускаться еще куча программ. Может лучше ком-строку каждого запущенного приложения хранить в "префиксе" 0x0000...0x3FFF своего приложения ?. И не надо для этого занимать место в служ. буферах ОС.


Вполне можно сделать так, но придется ограничить длину строки :-?

Quote:
В качестве разделителей аргументов, нужно предусмотреть не только одни пробелы, но и как минимум ",", возможно еще "=". Если в ком. строке будут табуляции, то обрабатывать и табуляции.


Конечно, так и планировалось сделать.

Quote:
А лучше делать и не надо ;). Все хорошо в меру. Поделись об
особенностях (фитчах) этой АмигаОС.


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

Quote:
Imho надо было с самого начала выбрать FS и только потом
планировать остальные части новой ОС. Лог. диски в АмигаОС тоже надо монтировать как в *nix-ах ?.


Да.

Quote:
Если так, то можно за основу взять FS от UZIX и доработать ее для новой ОС-и. Все легче, чем начинать с "чистого листа".


Хорошо, я посмотрю что это такое :)

Quote:
Насколько я помню, название своей ОС-и ты дал "Ozon" ?. Значит давай его юзать ;).


Совершенно верно. Для тех кто не знает, название ОЗОН выросло из сокращения Операционная Система Общего Назначения, в котором изменена одна буква :D

Quote:
Было бы не плохо в FS юзать бинарное дерево для работы с именами файлов (поиск имени файла, поиск свободного места в FS).


Я тоже так считаю. Мне кажется что такой механизм удобнее FAT-а.

Quote:
А что тебя интересует в Биосе: вывод на экран, выделение памяти, обработка клавы, структура экранов ?.


Откровенно говоря интересует только начальный загрузчик. Все остальное придется переписать, т.к. старое не соответствует идее примененной в ОЗОНе для доступа к функциям, а следовательно будет лишь занимать место :P

Quote:
Если уж ты постоянно говоришь о АмигаОС ;), то возможно есть смысл огласить общественности список данных функций этой ОС-и.


Хорошо, я выложу на своем сайте т.н. «автодоки» содержащие краткое описание функций каждой библиотеки. Однако предупреждаю сразу - они на английском языке и их достаточно много :wink:

Вот ссылка на файл http://mbr.nm.ru/amiga/autodocs.zip
Внутри архива находятся автодоки и программа для их чтения под Win. А тем, кто никогда не видел системы самой Амиги можно посоветовать зайти вот сюда http://mbr.nm.ru/amiga/index.html


14 Feb 2004 03:58
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
Mac Buster wrote:
Из особеноостей - непрерывная память


И как результат - отсутствие аппаратной защиты сегментов памяти друг от друга?

_________________
:dj: https://mastodon.social/@Shaos


14 Feb 2004 13:56
Profile WWW
Retired

Joined: 03 Aug 2003 22:37
Posts: 1474
Location: Moscow
Reply with quote
Post 
Quote:
И как результат - отсутствие аппаратной защиты сегментов памяти друг от друга?


А вот и не угадал, непрерывная она только с точки зрения програмиста :wink: А на самом деле всем заведует MMU, как тому и положено.


Last edited by Mac Buster on 15 Feb 2004 14:37, edited 1 time in total.



15 Feb 2004 00:55
Profile
Doomed
User avatar

Joined: 11 Dec 2003 14:34
Posts: 413
Reply with quote
Post 
Quote:
> Делай как массив битов.
> Imho это будет не самым слабым звеном, в плане скорости работы FS.

При использовании байтовой схемы может не хватить места в области
описателя процесса.


И я о том же, как-то не кузяво для подобных дел юзать целые байты.

Quote:
В этом случае придется вынести всю информацию об используемой памяти
в отделный блок вне описателя, оставив там лишь указатель.


И эти 64 "блока" будут болтаться где-то вне служ. областей своих программ.
Это imho криво как-то будет выглядеть, да и лишний гемор для кодинга.

Quote:
> Может лучше ком-строку каждого запущенного приложения хранить в "префиксе"
> 0x0000...0x3FFF своего приложения ?. И не надо для этого занимать место в
> служ. буферах ОС.

Вполне можно сделать так,


И не будет никакой путанки с ком. строками ;).

Quote:

но придется ограничить длину строки


Согласен на 128 байт ?. Если уж "припрет" со свободным местом, можно
урезать до 80 байт. Не уверен, что для приложений потребуется забивать всю
строку аргументами, даже если она будет в 80 символов. Исключение может
быть для линкеров, собирающих списки объектных файлов, но для них (линкеров)
можно будет прикрутить подстановочные файлы, содержащие эти самые списки
объектников.

Quote:
> Поделись об особенностях (фитчах) этой АмигаОС.

Полностью описать вряд ли смогу. В двух словах - АмигаОС это упрощенный
вариант UNIX, который был максимально адаптирован к той аппаратуре, кото-
рая исползуется в Амигах.


Можно (imho нужно) пойти по такому же пути, взяв UZIX в качестве отправной
точки. Насколько видно по сорцам, кроме самой ОС, там есть исходники ее
утилит.

Quote:
Там одинаково удобно программировать как на ассемблере, так и на Си,
что большая редкость.


За счет чего это достигается ?. За счет организации API ОСи ?.

Quote:
Привести полное руководство по программированию трудно, т.к. оно в
печатном виде составляет 5 книг от 800 до 1300 страниц в каждой.


В этом нет необходимости.

Quote:
> диски в АмигаОС тоже надо монтировать как в *nix-ах ?.

Да.


Ясно.

Quote:
> Если так, то можно за основу взять FS от UZIX и доработать ее для новой
> ОС-и. Все легче, чем начинать с "чистого листа".

Хорошо, я посмотрю что это такое


Сходи на http://uzix.msx.org

Quote:
> Насколько я помню, название своей ОС-и ты дал "Ozon" ?. Значит давай
> его юзать.

Совершенно верно. Для тех кто не знает, название ОЗОН выросло из сокращения
Операционная Система Общего Назначения, в котором изменена одна буква


Значит заметано ;)

Quote:
> Было бы не плохо в FS юзать бинарное дерево для работы с именами файлов
> (поиск имени файла, поиск свободного места в FS).

Я тоже так считаю. Мне кажется что такой механизм удобнее FAT-а.


На счет удобства (кодинга) не знаю, но поиск будет происходить быстрее.
Хотя добавление имени файла в бинарное дерево отнимет какое-то время.
Или может заюзать хэш для поиска/добавления имени файла или свободного
места, как это делается в символьных таблицах компиляторов ?. Ну чем
каталог не таблица компилятора ? ;)). Хотя связываться с чем-то другим,
кроме линейного списка (поиска), целесообразно лишь для вместительных
каталогов, что применительно к Спринтеру imho начинается где-нить с
нескольких сотен файлов на каталог. Кто-что думает ?.

Quote:
> А что тебя интересует в Биосе: вывод на экран, выделение памяти,
> обработка клавы, структура экранов ?.

Откровенно говоря интересует только начальный загрузчик.


Понял. У меня есть дизассемблерный вариант загрузчика Дениса, выделил
его, когда девелопил fformat. Только этот сорц надо подробно прокомменти-
ровать. Займусь этим на досуге. Этот загрузчик юзает функции ПЗУ для
загрузки секторов с винта или дискеты, так что, как ни крути, а в первую
очередь придется прикручивать функции I/O для Биоса. Без них будет как
в вакууме, вообще никакой связи с девайсами.

Quote:
Все остальное придется переписать, т.к. старое не соответствует идее
примененной в ОЗОНе для доступа к функциям, а следовательно будет лишь
занимать место


Ну, функции чтения/записи секторов дискеты, винта, cd-rom`а мало зависят
от системы, не думаю, что есть необходимость в их переделке ;).

К слову. Как (и чем) собираешься прошивать новые функции в ПЗУ ?.

Quote:
> Если уж ты постоянно говоришь о АмигаОС , то возможно есть смысл огласить
> общественности список данных функций этой ОС-и.

Хорошо, я выложу на своем сайте т.н. "автодоки" содержащие краткое описа-
ние функций каждой библиотеки. Однако предупреждаю сразу - они на английском
языке и их достаточно много


Лучше на англицком, чем вообще никакой.

Quote:
Вот ссылка на файл http://mbr.nm.ru/amiga/autodocs.zip
Внутри архива находятся автодоки и программа для их чтения под Win.


У меня такое ощущение от этих док, что от них будет мало толку для сабжа.
Лучше я гляну доки по BeOS-у, там наглядней ;). Но эти автодоки сохраню,
может пригодятся когда-нить.

Quote:
А тем, кто никогда не видел системы самой Амиги можно посоветовать зайти
вот сюда http://mbr.nm.ru/amiga/index.html


В свое время я это сливал себе на винт ;). Похожа на Linux ;).


P.S. Я тебе на e-mail бросил файлик ntfs.zip с некоторым описаловом NTFS.
Я лично с удовольствием прочитал его. Если хочешь, скинь себе на страничку,
может еще кому-нить интересно будет почитать. Освещаются вопросы о структуре,
журнализации, фрагментации и скорости работы NTFS.

_________________
Vasil Ivanov
vasil-i@yandex.ru


15 Feb 2004 14:17
Profile
God
User avatar

Joined: 29 Dec 2003 01:00
Posts: 1101
Location: Москва
Reply with quote
Post 
Quote:
Ну, функции чтения/записи секторов дискеты, винта, cd-rom`а мало зависят
от системы, не думаю, что есть необходимость в их переделке ;).

К слову. Как (и чем) собираешься прошивать новые функции в ПЗУ ?.


Думаю что необходимость есть, например LBA адресация винта отличается от обычной.. Насколько я знаю современный Биос Спринтера не поддерживает больше 2Гб.

Функции Биоса не обязательно держать в ПЗУ. Хотя желательно :-)


16 Feb 2004 02:14
Profile ICQ WWW
Retired

Joined: 03 Aug 2003 22:37
Posts: 1474
Location: Moscow
Reply with quote
Post 
Quote:
Согласен на 128 байт ?. Если уж "припрет" со свободным местом, можно урезать до 80 байт. Не уверен, что для приложений потребуется забивать всю строку аргументами, даже если она будет в 80 символов. Исключение может быть для линкеров, собирающих списки объектных файлов, но для них (линкеров) можно будет прикрутить подстановочные файлы, содержащие эти самые списки объектников.


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

Quote:
За счет чего это достигается ?. За счет организации API ОСи ?.


Да. API АмигаОС не использует странных callback-методов как в Win и некоторых UNIX. И программист всегда знает что где возвращается после вызова.

Quote:
Хотя связываться с чем-то другим, кроме линейного списка (поиска), целесообразно лишь для вместительных каталогов, что применительно к Спринтеру imho начинается где-нить с нескольких сотен файлов на каталог. Кто-что думает ?


Ограничивать пользователя нехорошо :wink:

Quote:
Понял. У меня есть дизассемблерный вариант загрузчика Дениса, выделил его, когда девелопил fformat. Только этот сорц надо подробно прокомментировать. Займусь этим на досуге. Этот загрузчик юзает функции ПЗУ для загрузки секторов с винта или дискеты, так что, как ни крути, а в первую очередь придется прикручивать функции I/O для Биоса. Без них будет как в вакууме, вообще никакой связи с девайсами.


Согласен. Впрочем, на начальной стадии можно вообще без конкретной файловой системы обойтись при загрузке монтируя RAM-диск и закидывать туда файлы средствами Estex.

Quote:
Ну, функции чтения/записи секторов дискеты, винта, cd-rom`а мало зависят от системы, не думаю, что есть необходимость в их переделке ;)


Есть шанс понять почему система не всегда грузится.

Quote:
К слову. Как (и чем) собираешься прошивать новые функции в ПЗУ ?


Есть стандартная программка прошивающая ПЗУ. Надо посмотреть, что она делает. Только нечем :(

Quote:
У меня такое ощущение от этих док, что от них будет мало толку для сабжа.


Я сразу предупредил что там очень много всего, UNIX все-таки :)

Quote:
Лучше я гляну доки по BeOS-у, там наглядней ;)


Кстати, BeOS изнутри здорово напоминает АмигаОС.

Quote:
P.S. Я тебе на e-mail бросил файлик ntfs.zip с некоторым описаловом NTFS. Я лично с удовольствием прочитал его. Если хочешь, скинь себе на страничку, может еще кому-нить интересно будет почитать. Освещаются вопросы о структуре, журнализации, фрагментации и скорости работы NTFS.


Большое спасибо! Никогда не доводилось читать по этой теме на русском языке. А после чтения на английском мало что остается в памяти :P


16 Feb 2004 02:52
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 62 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next

Who is online

Users browsing this forum: No registered users and 11 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.