User Tag List

Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 20 из 20

Тема: Виртуализация ZX

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    06.05.2006
    Адрес
    Ливны, Орловская обл
    Сообщений
    1,169
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну тогда надо делать(как минимум) аппаратную доработку, MMU, чтобы была память гипервизора и память виртуалок.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    27.01.2005
    Сообщений
    924
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    193
    Поблагодарили
    154 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ИМХО нормальная виртуализация возможна и нужна только в современных клонах, таких как PentEvo.

    Памяти много, можно организовать на ПЛИС схему виртуальных адресов и переключения страниц при обращении по нужным RST.

    Задача интересная, но и сложная. ПО для такого режима нет.

  4. #3

    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,094
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    как доступ к железу разруливать? памяти много, ее можно поделить, а железо - одно.

  5. #4
    ZEK
    Гость

    По умолчанию

    Цитата Сообщение от SfS Посмотреть сообщение
    схему виртуальных адресов
    для виртуальной адресации не хватает одной мелочи, исключения у процессора (выскакивают если не прошли какие либо проверки ДО выполнения инструкции)

  6. #5

    Регистрация
    03.01.2006
    Адрес
    Рязань
    Сообщений
    2,935
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Схема может подсунуть пустышку вместо памяти, к которой незаконно обращается процесс. Так что проблема не в этом. Проблема в командах IM 0/1/2, DI, от которых невозможно защититься.

    А хотя... схема может подменять опкоды во время их чтения.

  7. #6

    Регистрация
    28.12.2012
    Адрес
    Leesburg, VA, USA
    Сообщений
    974
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Нужно или нужно - вопрос 90-х, когда действительно было актуальным запустить на одном спеке несколько системных программ. Сейчас - только и исключительно ради спортивного интереса.
    Для з80 есть несколько проблем:
    - непростой отлов состояния проца (включенные страницы, IM, стек наконец, который обязан быть в ОЗУ, иначе в задачу не вернемся, хорошо, если не грохнем ядро).
    - отстутствие терминации кванта задачи, чтоб вернуть управление ядру или другим задачам, если задача не занимается полезным делом. ОК, можно отлавливать халт, но если задача будет висеть в цикле (опрашивая например клавишу), она будет просто грузить проц и ждать окончание своего заскедьюленого времени.
    - банальная слоупочность зетника, которая в сочетании с предыдущим пунктом сильно уменьшит комфорт от работы. Ну допустим, турба, ОК.
    - необходимость аппаратной доработки, которая будет а) помогать подменять/сохранять контекст, б) обеспечивать прерывание таски по скедьюлеру (приходит на ум только NMI).

    Если очень захотеть, реализовать можно. Например ФПГА может вообще отлавливать все критичные изменения контекста процом (паги, стек, режим ИНТа) и хранить внутри доступными для чтения. Но это какбэ не то, а сделать подобное на ЛА3 - надо куча МГТФа.

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

    А, еще забыл про периферию. Придется виртуализировать все устройства, та же ВГ93 сойдет с ума, если ее трогать из 1+ задач.

  8. #7

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

    По умолчанию

    Цитата Сообщение от TSL Посмотреть сообщение
    А, еще забыл про периферию. Придется виртуализировать все устройства, та же ВГ93 сойдет с ума, если ее трогать из 1+ задач.
    Как вариант, не виртуализировать - а сериализировать: устроить очередь на входе таких устройств: порезать обращения на неразрывные "кадры", которые выполнять последовательно в очереди. Ну собственно, как делается во всех многозадачных ОС (один хрен какая-то же программная прослойка все обеспечивающая там же будет?).
    Лучше сделать и жалеть, чем не сделать и жалеть.

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

  9. #8

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

    По умолчанию

    Цитата Сообщение от TSL Посмотреть сообщение
    Если очень захотеть, реализовать можно. Например ФПГА может вообще отлавливать все критичные изменения контекста процом (паги, стек, режим ИНТа) и хранить внутри доступными для чтения. Но это какбэ не то, а сделать подобное на ЛА3 - надо куча МГТФа.
    Не проще ли для этих целей заюзать уже готовые решения? Тот же i386, в котором все вышеуказанные проблемы решены? Когда у нас для виртуальных процев (или машин) есть свои адресные пространства, свои пространства портов ВВ. Когда проц может сам это регулировать, оперируя реальным ОЗУ? Естественно не без помощи ОСи? Зачем велосипед изобретать? Я вот к чему. Всё равно в итоге вы придёте к общеизвестным механизмам. На базе Z80 это просто не сделать, в апофеозе, вы всё таки придёте к тому, что было сделано ещё в 1982-м году. К MP/M. Не стоит ли почитать как там это организовано?

    ---------- Post added at 23:22 ---------- Previous post was at 23:19 ----------

    Цитата Сообщение от alone Посмотреть сообщение
    Схема может подсунуть пустышку вместо памяти, к которой незаконно обращается процесс.
    Защита ОЗУ в простейшем варианте реализована в Z-280. Когда нельзя обратиться к странице, если у тебя нет прав на неё. Зачем изобретать велосипед? Читаем доки Алоний, читаем доки и учимся. Потом думаем, как это применить и надо ли оно нам?

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

    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
    [свернуть]

  10. #9

    Регистрация
    03.01.2006
    Адрес
    Рязань
    Сообщений
    2,935
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я говорю про решения, которые можно применить в ZX Evo. Процессор там заменить не получится.

  11. #10

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

    По умолчанию

    Тогда советую тебе ознакомиться с ОСями, на Z80, где это уже давным давно реализовано. Да, у них есть недостатки, но они опирались на железо какое? Начала 80-х. У нас сейчас возможности шире. Подумай. Но далее того, что было сделан уйти вряд ли удастся, т.е. будет более красивее но не более.

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

    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 из 2 ПерваяПервая 12

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

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

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

Ваши права

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