Кварк (ядро)
Эта статья нуждается в дополнительных цитатах для проверки . ( июль 2009 г. ) |
Разработчик | Ральф Шмидт, Теему Суйкки |
---|---|
Написано в | Си , язык ассемблера |
Семейство ОС | АмигаОС |
Рабочее состояние | Текущий |
Маркетинговая цель | Амига |
Доступно в | Английский |
Обновить метод | Скомпилировать из исходного кода |
Платформы | Серия Motorola 68000 (MC680x0, 68k), PowerPC (КПП) |
ядра Тип | Микроядро |
По умолчанию пользовательский интерфейс | Интерфейс командной строки |
Предшественник | АмигаОС |
В вычислительной технике Quark — это операционной системы, ядро используемое в MorphOS . Это микроядро, предназначенное для работы полностью виртуализированных компьютеров, называемых «боксами» (см. «песочница» ). По состоянию на 2020 год [update] только один блок доступен , ABox , который позволяет пользователям запускать существующее программное обеспечение AmigaOS , скомпилированное для серии Motorola 68000 (MC680x0 или 68k) и (ЦП) PowerPC центральных процессоров .
Цели дизайна
[ редактировать ]Микроядро Quark не является членом семейства микроядер L4 , но заимствует из него концепции, включая: клан (группу задач), концепцию идентификатора и рекурсивное сопоставление адресов. Quark также имеет интерфейс асинхронных/синхронных сообщений, аналогичный ядру Amiga Exec , но адаптированный к среде с защитой памяти .
Другие функции Quark включают в себя:
- Высокая скорость переключения супер/пользовательского режима
- Низкая задержка прерывания
- прерываний Потоки Int P-кода (IntThreads) и абстракция
- Симметричная многопроцессорная обработка (SMP)
- Модели задач/тем и клана/начальника
- Отслеживание ресурсов
- Виртуальная память (опционально)
- Распределенные вычисления
- Нет доступа к ядра структурам
- Чистый дизайн с элегантным интерфейсом прикладного программирования ( API )
- Смесь ядер микро/пико
Для этого нового ядра уровень абстракции оборудования используется Amiga Zorro II , который предоставляет необходимую информацию об аппаратных ресурсах, например, сканирование всех шинных плат , плат взаимодействия периферийных компонентов (PCI) и локальных аппаратных ресурсов. [ 1 ] [ 2 ]
Функции
[ редактировать ]- SYS_AddLinkMessage
- SYS_AttemptSemaphore
- SYS_AttemptSemaphoreShared
- SYS_CopyCPUHalConfig
- SYS_CreateMemList
- SYS_CreateTask
- SYS_DeletePort
- SYS_DeleteSemaphore
- SYS_DumpMemHeader
- SYS_FindFreeMemArea
- SYS_FindSkipSize
- SYS_GetLinkMessage
- SYS_GetMessageAttr
- SYS_GetNextCPU
- SYS_Init
- SYS_InsideClan
- SYS_IsClanMember
- SYS_MMUAddPage
- SYS_MMUGetEntry
- SYS_MoveRomModuleToMemoryEnd
- SYS_ObtainPort
- SYS_ObtainSemaphore
- SYS_ObtainSemaphoreShared
- SYS_ReleaseSemaphore
- SYS_ReplyMessage
- SYS_SendMessage
- SYS_SetMessageAttr
- SYS_SetupPageTable
- SYS_ShowExceptionThreads
- SYS_ShowForbidThreads
- SYS_ShowIntThreads
- SYS_ShowQuarkState
- SYS_ShowReadyThreads
- SYS_ShowRunThreads
- SYS_ShowThreads
- SYS_ShowWaitIntThreads
- SYS_ShowWaitThreads
- SYS_Start
- SYS_StartNextThread
- SYS_StartThread
- SYS_WaitPort
JIT транс
[ редактировать ]Trance JIT — это MorphOS JIT - компилятор или транслятор кода для запуска приложений 68k в среде MorphOS. Он был частью операционной системы MorphOS начиная с MorphOS 1.4. [ 3 ]
MorphOS имеет полностью интегрированный эмулятор 68k для запуска многих приложений Amiga, которые почти исключительно скомпилированы для процессора 68k, хотя MorphOS работает на PowerPC . Trance дополняет эту функцию добавлением JIT-компиляции, увеличивающей скорость эмуляции. Это не мешает полной интеграции задач 68k и PowerPC, предоставляемых MorphOS. [ 1 ]
Trance существует в виде исполняемого файла, запускаемого во время загрузки, и общей библиотеки. Хотя технически он не является частью ядра и MorphOS может работать без него, Trance считается фундаментальной частью MorphOS и одной из его самых мощных функций.
Совместимость Trance считается очень высокой, и существует мало или вообще нет последовательностей команд или приложений размером 68 000, которые вызывают какие-либо проблемы. Он также считается очень быстрым: пользователи не замечают особых различий между программами 68k и собственным кодом PowerPC. [ 4 ] [ 5 ] [ 6 ]
Trance был разработан Ральфом Шмидтом и Теему Суйкки при незначительной поддержке со стороны других членов команды MorphOS, Марка Олсена, Сигбьёрна Скьерета и Гарри Синтонена.
Коробка
[ редактировать ]В ядре Quark реализована PowerPC, собственная реализация операционной системы известная по системам Commodore International A1000, A500(+), A600, A2000, A1200, A3000(T) и A4000(T), работающим как сочетание виртуальной эмуляции и водитель . Этот драйвер ОС называется ABox.
Эмуляция 68k написана на C и использует GNU Compiler Collection (GCC) макросы ассемблера там, где это необходимо для ускорения некоторых сложных инструкций.
JIT-движок Trance также доступен для MorphOS, чтобы ускорить работу старых 68k-программ за пределами текущего состояния традиционной эмуляции.
Собственный Exec PPC поддерживает модель регистров PowerPC, что означает, что для этого Exec нет никакой разницы, выполняет ли он код 68k или PowerPC. Код PowerPC не блокирует многозадачность внутри ОС, как в эмуляциях, где код 68k просто эмулируется в задаче некоторой хост-системы (тогда каждый доступ за пределами этой среды будет останавливать многозадачность в эмулируемой среде).
Для приложений, работающих под этим новым ядром PowerPC ABox, код 68k выполняется как подпрограммы внутри задач PowerPC. Для приложений 68k или PowerPC полностью прозрачно, если какая-то библиотека, ловушка, прерывание все еще 68k или уже использует код PowerPC. [ 7 ]
Ссылки
[ редактировать ]- ^ Jump up to: а б «МорфОС? Что это тогда?». АмигАктив . Июль 2000. стр. 14–17.
- ^ Гербер, Дэвид (2002). «Полный список возможностей MorphOS» (PDF) . Проверено 28 июля 2010 г.
- ^ «Доступна MorphOS 1.4» . 9 августа 2003 года . Проверено 28 июля 2010 г.
- ^ «Насколько быстр MorphOS?» . 8 февраля 2003 г. Проверено 28 июля 2010 г.
- ^ «Скорость MorphOS 68k» . 3 ноября 2002 года . Проверено 28 июля 2010 г.
- ^ «Сравнение: производительность AmigaOS 4.1 и MorphOS 2.3 на Pegasos II» (на французском языке). Сентябрь 2009 года . Проверено 28 июля 2010 г.
- ^ «Полный список возможностей MorphOS» . 11 декабря 2002 года . Проверено 28 июля 2010 г.