User Tag List

Страница 15 из 29 ПерваяПервая ... 111213141516171819 ... ПоследняяПоследняя
Показано с 141 по 150 из 281

Тема: Пишем свою ОС. Теория

  1. #141

    Регистрация
    24.07.2008
    Адрес
    г. Курган
    Сообщений
    2,062
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    17 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А о MP/M могу сказать следующее. Она, как и CP/M 3 использует концепцию bank switched memory. Так вот, эти банки памяти переключаются от адреса 0 до некой верхней точки, можно условно считать что это адрес С000, хотя этот адрес может быть любым. Мы получаем как бы несколько разных зон TPA (Transient Programm Area) куда с адреса 100h можно загрузить обычный com-файл от системы CP/M. Т.к. поведение COM-программы неизвестно, то если мы ее запускаем в банке первой, то считаем что она использует всю область TPA. Есть формат программ PRL которые система при загрузке может релоцировать. В одной области ТПА может лежать несколько PRK'ок и возможно подгрузить ком-файл (т.е. PRLки прогрузятся в верхние адреса, верх ТПА опустится и запущенный ком файл их не испортит).

    Зачем была придумана MP/M? Вообще, изначально, для реализации многотерминальной работы. Одна машинка и до 16-и терминалов к ней. Каждый из них многозадачный. Супервизор работает от прерываний по таймеру. Использовалось 50 или 100Гц. программе запрещается переключать режим прерываний, и вообще-то даже обращаться к портам ввода-вывода (это сама ЦПМ как-бы накладывает ограничения, хотя реально мого программ лезли напрямую к портам конкретного компа и тем самым привязывались жестко к нему и переставали быть легко портируемыми). Нужно ли оно вам? У меня вот в планах есть такое что бы адаптировать MP/M, MP/M II, CP/M 2.2, ZSDOS и подобное на Профи или на другой клон. Что бы оно было. Что бы можно было запустить и посмотреть. Но в том виде как оно есть представляет только исторический интерес. Для реализации многозадачной ОС можно изучить MP/M посмотреть как там реализованы механизмы и делать свое. Я читал и изучал ак описания MP/M так и исходники ещё в 2002г, когда мне это удалось найти в инете. Про саму MP/M я писал ещё в 1998г в Вояджере. Но все промолчали. А сейчас столько обсуждений. Проснулись что ли? Или как? Так вот. MP/M отличается от CP/M только тем, что реализует переключение задач с сохранением контента. Реализованы семафоры и блокировки файлов, передача данных из программы в программу. Но весь обмен с диском остался в том же самом виде, т.е. по 128 байт за вызов. Если реализовать ее в чистом виде на любом из компов, то будут тормоза. Если запускается какая-либо программа юзающая железо напрямую то вся "многозадачность" замрет. Ведь многий софт который написан в расширенных режимах на Профи и АТМ после запуска или фактически выгружает систему из памяти (вернее сохраняет сегменты памяти где лежит система в других сегментах памяти) и юзает железо компа напрямую, а при выходе из программы восстанавливает систему в ОЗУ. Либо система не трогается, но переключаются прерывания на обработчик программы, переключатбся видеорежимы в обход системы и т.д. и т.п. Т.е. MP/M будет работать и мы будем наблюдать многозадачность только с классическим консольным софтом. Или с программами не лезущими к железу, а работающими только через системные вызовы. Оно вам надо?
    А если есть желание сделать нечто подобное на спектруме - когда мы на ПЦ запускаем 3-5 эмулей и в каждом свою программу для спектрума и переключаемся между ними. То надо делать всё совсем не так. MP/M тут не поможет. Нужен аппаратный task switching по NMI (если мы делаем на классическом Z80), защита памяти. Возможно сегментация аналогичная 8086. И много, много чего. Читать теорию по реализации многозадачным ОС. Какие механизмы используются, как это реализуется. И делать. Уверен, что на форуме людей которые всё это осилят нет.

    Скрытый текст

    Profi 5.06 1024K 12Mhz (кварц на 24), палитра, COM-порт, часы, hdd, covox, программатор
    ZX-Spectrum +3, ZX-Spectrum +2B, ZX-Spectrum +2, ZX Spectrum 48, ZX Spectrum 48+
    ZX Evolution Rev B.
    Color 48 + Beta Disk Interface +FDD+YM2149F
    Орель-08БК
    Pentagon-48 (недоссобранный кем-то)
    Pentagon-128 (полуубитый)
    Кворум-128 (в ремонте)
    Магик-05 (в ремонте)
    Robotron 1715
    Корвет ПК8020 и ПК8010
    Amstrad CPC 464
    Amstrad CPC 6128
    [свернуть]

  2. #142

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vadim Посмотреть сообщение
    Но весь обмен с диском остался в том же самом виде, т.е. по 128 байт за вызов. Если реализовать ее в чистом виде на любом из компов, то будут тормоза.
    По-моему, это не страшно, просто блоки по 128 байт - это еще один уровень абстракции. Можно и читая большими блоками сделать в итоге работу медленно-медленно. Надо просто кэшировать в BIOS. В Орионе на всех версиях CP/M (начиная уже c первых версий 1990 года) BIOS сам кэшировал обращения к девайсам, работая большими блоками, отдавая BDOS уже из буфера. Чуть медленнее, но вполне приемлимо.

    Цитата Сообщение от Vadim Посмотреть сообщение
    Если запускается какая-либо программа юзающая железо напрямую то вся "многозадачность" замрет.
    По-моему, тоже не страшно. Меня, к примеру, вполне устроит многозадачность, "замерзающая" на время аппаратнопривязанной игрухи (на РС я даже на Винде не использую вместе с игрухами параллельно что-то еще), но по выходу продолжающая работу.
    Последний раз редактировалось Error404; 15.02.2010 в 09:55.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  3. #143

    Регистрация
    24.07.2008
    Адрес
    г. Курган
    Сообщений
    2,062
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    17 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    BIOS сам кэшировал обращения к девайсам, работая большими блоками, отдавая BDOS уже из буфера. Чуть медленнее, но вполне приемлимо.
    В МикроДОС на профи сделано именно так. С дискеты читался сектор 1024 байт и БДОС 8 раз делала вызов за очередным 128-и байтным блоком. И что? Тормоза были жуткие. Реально нужно что бы бдос делал вызов не за 128-и байтной записью это раз (что бы она знала секторы более 128 байт, а 128 - это как раз размер сектора на первых дискетах на которых делался ЦПМ) и во вторых запрашивать более одного сектора за раз.

    Скрытый текст

    Profi 5.06 1024K 12Mhz (кварц на 24), палитра, COM-порт, часы, hdd, covox, программатор
    ZX-Spectrum +3, ZX-Spectrum +2B, ZX-Spectrum +2, ZX Spectrum 48, ZX Spectrum 48+
    ZX Evolution Rev B.
    Color 48 + Beta Disk Interface +FDD+YM2149F
    Орель-08БК
    Pentagon-48 (недоссобранный кем-то)
    Pentagon-128 (полуубитый)
    Кворум-128 (в ремонте)
    Магик-05 (в ремонте)
    Robotron 1715
    Корвет ПК8020 и ПК8010
    Amstrad CPC 464
    Amstrad CPC 6128
    [свернуть]

  4. #144

    Регистрация
    15.06.2006
    Адрес
    S.Pb
    Сообщений
    5,791
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    7
    Поблагодарили
    6 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vadim Посмотреть сообщение
    БК, не смеши! Чё вот ты стал молоть? Какого радиолюбительского уровня? ОТМ что ли профессионалы делали или Пентагон? Кай? (Что там ещё осталось?)
    Vadim, твоя ошибка в том, что ты не понимаешь с какой т.з. я раассматриваю архитектуры. Ты говоришь о схемотехническом уровне, а я об идеологии и концепциях развития архитектур. По схемотехнике Профи действительно хорошая машина, но идеология и аппаратная концепция его безнадёжно устарели - это каменный век. В плане грамотности реализации идеологии и концепции в своё время не было равных Каю, но сейчас это тоже всё устарело, нужна новая, более современная архитектура, под которую я и предлагаю адаптировать ОС.

  5. #145

    Регистрация
    24.07.2008
    Адрес
    г. Курган
    Сообщений
    2,062
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    17 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну так скажи каким ты видишь комп. В чем концепция. Да, выше я читал твои мысли о том каким должен быть комп - это всё верно. Но это просто слова. Общие фразы. Нужны детали, надо всё обрисовать. Как и что.

    Скрытый текст

    Profi 5.06 1024K 12Mhz (кварц на 24), палитра, COM-порт, часы, hdd, covox, программатор
    ZX-Spectrum +3, ZX-Spectrum +2B, ZX-Spectrum +2, ZX Spectrum 48, ZX Spectrum 48+
    ZX Evolution Rev B.
    Color 48 + Beta Disk Interface +FDD+YM2149F
    Орель-08БК
    Pentagon-48 (недоссобранный кем-то)
    Pentagon-128 (полуубитый)
    Кворум-128 (в ремонте)
    Магик-05 (в ремонте)
    Robotron 1715
    Корвет ПК8020 и ПК8010
    Amstrad CPC 464
    Amstrad CPC 6128
    [свернуть]

  6. #146

    Регистрация
    09.02.2010
    Адрес
    Луцк
    Сообщений
    75
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vadim Посмотреть сообщение
    Она, как и CP/M 3 использует концепцию bank switched memory.
    Одно уточнение - она умеет ее использовать, и ввиду малого адрессного пространства 8080 это очень полезная вещь. Но МР/М может работать и без банк свитчинга.
    Так вот, эти банки памяти переключаются от адреса 0 до некой верхней точки, можно условно считать что это адрес С000, хотя этот адрес может быть любым.
    Не верно. При конфигурировании системы задаются сегменты памяти с которыми работает менеджер МР/М. Всего может быть не более 8 штук. Для каждого сегмента задается его начальный адрес в адресном пространстве ЦПУ, размер и номер банка (который передается в XIOS при активации данного сегмента). То-есть, сегменты могут быть совершенно любыми и рассположеными где угодно хоть по 4 штуки в банке. Однако СОМ программы могут загружаться и исполняться только в сегментах с начальным адрессом 0000. Тем не менее, МР/М предусматривает возможность полного отсутствия таких сегментов. В таком случае просто не получится запускать программы СР/М, релоцируемые PRL будут грузиться в то что есть.
    Супервизор работает от прерываний по таймеру.
    Не только. Таймер конечно очень рекомендовано иметь но МР/М может работать и без него. В таком случае переклчение задач выполняется при любых системных вызовах или наличии каких либо прерываний. С этой целью, для тяжелого кода рекомендуется делать переодические вызовы функции Dispatch.
    Использовалось 50 или 100Гц.
    Рекомендуемый диапазон 16-20мс.
    Нужно ли оно вам?
    Я уже несколько раз пробовал обьяснить замысел... такое впечатление что доказать народу что то, что я собираюсь делать, важнее чем сама работа.
    Ну и почему я должен оправдоваться? Впрочем читай мои предыдущие сообщения в этой ветке, я уже все обьяснил.
    У меня вот в планах есть такое что бы адаптировать MP/M, MP/M II, CP/M 2.2, ZSDOS и подобное на Профи или на другой клон.
    СР/М там уже есть. Нет?
    Но в том виде как оно есть представляет только исторический интерес.
    Это само собой. Однако сам спектрум как платформа тоже представляет исключительно исторический интерес. И если есть желание получить новую функциональность на платформе 20-30 летней давности, то применение для этого технологий того периода, разработаных специально для машин подобного класса более чем уместно.
    Для реализации многозадачной ОС можно изучить MP/M посмотреть как там реализованы механизмы и делать свое.
    Да, безусловно можно. Но я не возьмусь вот так вот на ура писать аналог МР/М не говоря уже о чем то более крутом. Портировать МР/М куда как проще тем более что она изначально портируемая. Я уже уточнял - референсный XIOS всего около 500 строк ассма. И проблема даже не в сложности написания большого кода а в сложности получения надежного и полнофункционального продукта коим МР/М уже является.
    Про саму MP/M я писал ещё в 1998г в Вояджере. Но все промолчали.
    В 98 меня Спектрум не итересовал поскольку тогда он уже утратил свою ценность для практического применения но еще не стал инетересным в плане ретро компьютинга.
    А сейчас столько обсуждений. Проснулись что ли? Или как?
    Эмм... ну вы отлистайте пару страниц назад и поймете откуда или как. Это я начал случайно. Я просто изложил там кое какие свои мысли. В них прозвучали GEOS и МР/М. Потом по ходу обсуждения этих мыслей возникла идея на МР/М сделать GUI по принципу (но не аналогично) Х-Windows. Ну вот идея мне понравилась как с точки зрения интересной технической задачи так и возможного расширения функциональности платформы. В любом случае - ничего подобного не существует и уж тем более под Спек. Вот отсюда и все обсуждения.
    Реализованы семафоры и блокировки файлов, передача данных из программы в программу.
    Совершенно верно. И это есть хорошо ибо она обладает всеми возможностями взрослой многозадачки. При этом в памяти весит около 16кб, что тоже есть хорошо.
    Но весь обмен с диском остался в том же самом виде, т.е. по 128 байт за вызов. Если реализовать ее в чистом виде на любом из компов, то будут тормоза.
    Совершенно не согласен ибо весь доступ к накопителю происходит через вызовы XIOS, а уж какой код мы положим туда, так он и будет работать.
    Если запускается какая-либо программа юзающая железо напрямую то вся "многозадачность" замрет.
    Ну дык програмы написанные под МР/М этого не делают. А програмы написанные под существующее железо нам всеравно не интересны поскольку написаны они не под наше железо. То-есть, работать будут те которые полностью совместимы и те которые в последствии будут портированы или созданы для нашей платформы.
    Ведь многий софт который написан в расширенных режимах на Профи и АТМ после запуска или фактически выгружает систему из памяти (вернее сохраняет сегменты памяти где лежит система в других сегментах памяти) и юзает железо компа напрямую, а при выходе из программы восстанавливает систему в ОЗУ.
    Ну что с ним делать с таким софтом? Он не пойдет конечно. И на новой ОС не пойдет.
    MP/M будет работать и мы будем наблюдать многозадачность только с классическим консольным софтом. Или с программами не лезущими к железу, а работающими только через системные вызовы.
    То же справедливо для любой новой ОС. Кроме эмуляторов и ВМ, но реализовать такое на целевой платформе не реально.
    Оно вам надо?
    Опять? Два раза в одном посте...
    А если есть желание сделать нечто подобное на спектруме - когда мы на ПЦ запускаем 3-5 эмулей и в каждом свою программу для спектрума и переключаемся между ними.
    Я об этом уже писал. Пожалуйста полистайте пару страниц назад и отследите ход обсуждения начиная с моего первого поста в этой ветке. Смысла повторяться не вижу.
    То надо делать всё совсем не так. MP/M тут не поможет. Нужен аппаратный task switching по NMI (если мы делаем на классическом Z80), защита памяти. Возможно сегментация аналогичная 8086. И много, много чего.
    То есть, другими словами, надо сделать новую машину? Но зачем тогда ее делать под Z80? АРМ сегодня дешевле. Да и пни не дороги. Правда? И зачем для нее непонятную новую ось мутить если есть Линух например. Ась?
    Да и вообще зачем делать если есть их много и в ассортименте и у каждого в наличии в том числе и в кармане?
    Это уже не ретро компьютинг будет и никакого интереса у меня к этому не будет вообще, поскольку если создавать НОВУЮ машину то только с целью получить какие либо преимущества по сравнению с существующими машинами, будь то производительность, цена, компактность, надежность либо что-то еще. Извраты на 8080 со страницами а-ля 8086 не представляются перспективными в плане достижения каких либо преимуществ. Разве что вы сможете показать обратное, в чем я сомневаюсь.
    Однако даже если получится создать машину современного уровня, то на написание новой, полнофункциональной ОС потребуется несколько тысяч человеко лет. То-есть - не реально. Поэтому придется взять то что есть, и это почти 100% будет ГНУ.
    ... а я тут просто хочу нечно новое, интересно под спектрум сделать. Что, нельзя чтоли? Обязательно отказываться от Спектрума?
    Уверен, что на форуме людей которые всё это осилят нет.
    То то же и оно!!! Вот и вы пришли к очевидной истине. Поэтому нет смысла браться за то что осилить неполучится. А вот портирование МР/М как первый шаг мне кажется вполне возможным (если получится конечно, я еще не совсем в этом уверен). И результат может дать надежную основу для дальнейшего развития. Впрочем это уже по желанию.

    ---------- Post added at 10:12 ---------- Previous post was at 10:10 ----------

    Цитата Сообщение от Vadim Посмотреть сообщение
    нужно что бы бдос делал вызов не за 128-и байтной записью это раз (что бы она знала секторы более 128 байт, а 128 - это как раз размер сектора на первых дискетах на которых делался ЦПМ) и во вторых запрашивать более одного сектора за раз.
    Почему? В чем проблемы с кешированием накопителя в XIOS?
    Последний раз редактировалось Larsen; 15.02.2010 в 11:15.

  7. #147

    Регистрация
    16.02.2006
    Адрес
    Новосибирск
    Сообщений
    3,280
    Спасибо Благодарностей отдано 
    17
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    54 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    я согласен с Вадимом по части, что создание "многозадачной ос" на день сёдняшний, носит исключительно исторический ну или чисто академический интерес. перенос мпм или будет чтото новое, не важно. важно то, что оно как было трдос повсеместно, так и будет. появление мпм и нового мегаклона от БК ничего не изменит в практичном смысле.
    0A заповедей:
    I. Не удаляй каталог свой.
    II. Не удаляй до времени ни одного файла.
    III. Не кради файлы.
    IV. Не желай программы ближнего своего.
    V. Почитай BDOS и BIOS как родителей своих ...
    ---
    Sprinter resurrect:
    Telegram
    Discord
    Repo
    Forum

  8. #148

    Регистрация
    24.07.2008
    Адрес
    г. Курган
    Сообщений
    2,062
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    17 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Larsen Посмотреть сообщение
    СР/М там уже есть. Нет?
    Стандартной версии 2.2 нет. Есть МикроДОС и моя профидос. Всё.

    Скрытый текст

    Profi 5.06 1024K 12Mhz (кварц на 24), палитра, COM-порт, часы, hdd, covox, программатор
    ZX-Spectrum +3, ZX-Spectrum +2B, ZX-Spectrum +2, ZX Spectrum 48, ZX Spectrum 48+
    ZX Evolution Rev B.
    Color 48 + Beta Disk Interface +FDD+YM2149F
    Орель-08БК
    Pentagon-48 (недоссобранный кем-то)
    Pentagon-128 (полуубитый)
    Кворум-128 (в ремонте)
    Магик-05 (в ремонте)
    Robotron 1715
    Корвет ПК8020 и ПК8010
    Amstrad CPC 464
    Amstrad CPC 6128
    [свернуть]

  9. #149

    Регистрация
    09.02.2010
    Адрес
    Луцк
    Сообщений
    75
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Так нет никакого практического смысла вообще. Любое использование спектрумов на сегодняшний день носит либо ностальгический, либо историко-познавательный, либо академический интерес. Реальные прикладые задачи никто на них не решает. Игры играют по тем же причинам - на сегодня даже убогие Джава игры для самых простеньких мобильников превосходят спектрум как по качеству так и по ассортименту...
    Так о каком практическом смысле речь? Его нет и не будет. Есть только хобби и это хорошо. Пора это понять.

    ---------- Post added at 11:29 ---------- Previous post was at 11:28 ----------

    Цитата Сообщение от Vadim Посмотреть сообщение
    Стандартной версии 2.2 нет. Есть МикроДОС и моя профидос. Всё.
    Понял. На циферки не обратил внимания.

  10. #150

    Регистрация
    15.06.2006
    Адрес
    S.Pb
    Сообщений
    5,791
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    7
    Поблагодарили
    6 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Larsen Посмотреть сообщение
    Так о каком практическом смысле речь? Его нет и не будет. Есть только хобби и это хорошо. Пора это понять.
    нет, было только хобби, но если работать целенаправленно и последовательно в нужном направлении, то появится возможность и практического применения

Страница 15 из 29 ПерваяПервая ... 111213141516171819 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Пишем на ассемблере под эмулятором
    от GM BIT в разделе Для начинающих
    Ответов: 76
    Последнее: 15.07.2016, 20:04
  2. Теория
    от Sonic в разделе Несортированное железо
    Ответов: 16
    Последнее: 04.07.2005, 09:58
  3. Я ищу свою дему
    от AAA в разделе Демо
    Ответов: 4
    Последнее: 04.05.2005, 22:59
  4. Ищу свою gfx работу!!!
    от invador в разделе Игры
    Ответов: 7
    Последнее: 02.02.2005, 12:54

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •