Защищенный режим для Zilog Z80
Знаете ли вы, что такое защищенный режим?
Современные процессоры предоставляют системному программисту средства защиты. Эти средства позволяют защитить область ядра ОС от чтения и записи со стороны пользовательских процессов, а также защитить память процессов друг от друга.
Разные процессоры предоставляют разные механизмы, позволяющие организовать такую защиту.
x86 — наиболее популярная архитектура, применяемая в персональных компьютерах, вводит понятия колец защиты. В этой терминологии ядро ОС исполняется на нулевом кольце, а программы пользователя – на третьем. И третье кольцо сильно ограничивает набор инструкций, доступный программам. Также процессор предоставляет механизмы сегментации и страничной адресации. Они позволяют создавать независимые друг от друга адресные пространства.
Процессоры производителя ARM предоставляют несколько уровней исключений (exception levels), каждый со своим банком системных регистров, а также механизм страничной адресации.
В общем, большинство современных процессоров имеют тот или иной механизм защиты кода ядра и памяти процессов друг от друга.
А что же z80? Это процессорная архитектура из прошлого. Если вы слышали про домашний компьютер ZX Spectrum, то это как раз машина на основе z80. Этот архаичный, хотя и многими любимый процессор, никогда не задумывался для использования в многозадачной среде. Лучший сценарий использования для него — одна программа, занимающая большую часть ОЗУ. Нужно загрузить другую программу? Что же — перезагружаем машину!
Автор видео по ссылке, Энди Ху, не стал мириться с такими ограничениями и попытался придумать нехитрую модификацию для обвязки процессора z80, чтобы он начал поддерживать что-то похожее на защищенный режим. Благодаря его доработкам, z80 приблизился к современным процессорам по возможностям разграничивать доступ к разным участкам памяти, что позволяет создавать для z80 продвинутые многозадачные операционные системы. Конечно же с разумными для восьмибитного процессора ограничениями.
А был ли у вас какой-либо восьмибитный компьютер? ZX Spectrum, Commodore 64? Напишите в комментариях.
#digest
Post #104
1.79K