ВарпОС
Разработчик | Хааге и партнеры |
---|---|
Написано в | PowerPC Язык ассемблера |
Семейство ОС | АмигаОС |
Рабочее состояние | Снято с производства |
Первоначальный выпуск | 1997 год |
Финальный выпуск | Финал/2007 |
Маркетинговая цель | Амига |
Доступно в | Английский |
Обновить метод | Скомпилировать из исходного кода |
Платформы | Амига PowerPC |
ядра Тип | Микроядро |
По умолчанию пользовательский интерфейс | Интерфейс командной строки |
Предшественник | АмигаОС |
Преемник | АмигаОС 4 , МорфОС |
WarpOS — это многозадачное ядро для (ЦП) с архитектурой PowerPC (PPC центрального процессора ), разработанное компанией Haage & Partner для компьютерной платформы Amiga в конце 1990-х — начале 2000-х годов. Он работает на платах ускорителя PowerUP, разработанных Phase5 , которые содержат как ЦП Motorola серии 68000 , так и ЦП PowerPC с общим адресным пространством. на базе 68k WarpOS работает вместе с AmigaOS , которая может использовать PowerPC в качестве сопроцессора . Несмотря на свое название, это не операционная система (ОС), а ядро; он предоставляет ограниченный набор функций, аналогичных функциям AmigaOS, для использования PowerPC. При выпуске его первоначальным названием было WarpUP, но оно было изменено, чтобы отразить более широкий набор функций и, возможно, чтобы избежать сравнения с его конкурентом PowerUP .
Он был разработан Сэмом Джорданом с использованием 680x0 и языка ассемблера PowerPC . [8] Его распространяли бесплатно.
История
[ редактировать ]В 1997 году компания Phase5 , производитель оборудования для Amiga , выпустила линейку ускорителей PowerPC (PPC) для Amiga. Поскольку AmigaOS еще не была родной для PowerPC, в качестве временной меры платы PowerUP представляли собой двухпроцессорные платы, включающие PPC и процессор 68K (68LC040, 68040 на 25 МГц или 68060 на 50 МГц). Они несли ядро PowerUP на борту в стираемой программируемой постоянной памяти ( EPROM ), аналогичном ядре, разработанном для того, чтобы позволить прикладному программному обеспечению AmigaOS использовать приложения PPC и 68k через интерфейса прикладного программирования ( API ) библиотеку , названную ppc.library
. AmigaOS по-прежнему требовал процессор 68K, в то время как PPC фактически использовался как чрезвычайно быстрый сопроцессор , выполняющий определенные инструкции.
Это приводит к значительному замедлению работы при переключении задачи ОС между 68K и PPC ( переключение контекста ), поскольку для сохранения целостности памяти необходимо очищать кэши ЦП. Чем больше переключений ЦП происходит в приложении, тем больше замедление, часто настолько сильное, что использовать процессор PPC было бессмысленно, поскольку он медленнее, чем собственный двоичный файл 68k. Основным обходным решением этой проблемы было просто избежать как можно большего количества вызовов ОС 68k или сгруппировать их вместе, но разработчикам было сложно и отнимало много времени на это.
WarpOS была запущена как спорная альтернатива ядру PowerUP от Phase5, но в конечном итоге стала наиболее используемым и номинально стандартным ядром PPC на AmigaOS. [ нужна ссылка ]
ВарпУП
[ редактировать ]WarpUP — это высокоскоростное ядро для PowerPC -версий Amiga . [ 1 ]
WarpUP формирует уровень аппаратной абстракции между аппаратным и программным обеспечением и обеспечивает правильную работу приложений на архитектуре PowerPC. Он также образует интерфейс между оборудованием под управлением PowerPC и программным обеспечением, совместимым с 68k, что позволяет оптимально использовать скорость процессора PowerPC, одновременно делая портирование приложений 68k максимально простым. [ 1 ]
Несколько преимуществ, которые, по утверждению WarpUP, предлагает: [ 1 ]
- Высокоскоростная связь между программами 68k и процессорами PowerPC.
- Встроенная многозадачность, управление памятью, семафоры , управление списками и тегами, сигнализация и обработка сообщений.
- Защита памяти (при необходимости задачам разрешено выделять защищенные области памяти)
- Виртуальные сигналы (сигналы распределяются между процессорами и при необходимости всегда перенаправляются на правильный процессор)
- Система обмена сообщениями между процессорами (сообщения передаются между процессорами при необходимости)
- Оптимальное использование блока управления памятью PowerPC. PowerPC и кэша ЦП
- Блок управления памятью и поддержка обработки исключений для приложений.
- Функция PowerSave, которая отключает PowerPC, если ни одно приложение его не использует.
- PowerPC Enforcer защищает первую страницу памяти
- Подробный запрос на сбой, который предоставляет подробную информацию, которая поможет разработчикам обнаружить ошибки.
- Интегрированная система отладки, которая упрощает отслеживание ошибок.
- Специальная поддержка высокооптимизированного программного обеспечения, такого как игры и демоверсии.
- Поддержка приложений, совместимых с Amiga.
- Библиотеки для собственных, смешанных и бинарных приложений PowerPC.
- WarpUP также можно использовать для альтернативных систем разработки, таких как Modula или E- компиляторы с поддержкой PowerPC. Это связано с тем, что объекты не обязательно создаются в исполняемом и связываемом формате (ELF). , совместимый с Amiga . формат hunk Вместо этого также можно использовать
- Простота установки
- Аппаратно независимый
Функции
[ редактировать ]WarpOS имела схожие с PowerUP функции, но с некоторыми существенными отличиями. Наиболее уместно то, что он использовал PowerOpen двоичный интерфейс приложений (ABI), в отличие от PowerUP, который использовал более новую и лучше поддерживаемую UNIX System V (SysV), что гарантировало, что оба ядра не могут быть напрямую совместимы.
Начиная с версии 14, ядро WarpOS использовало немного другой планировщик многозадачности , чем AmigaOS (или PowerUP), основанный на нем в системах Unix с «хорошими» значениями и приоритетами для собственных задач и процессов. Это было сделано для того, чтобы гарантировать, что всем задачам будет выделено время ЦП, и они не будут потребляться процессорным временем из-за задач с интенсивными вычислениями (как это было в случае с исходным планировщиком AmigaOS). Однако это было неэффективно, поскольку все еще было ограничено собственным планировщиком AmigaOS и создавало дополнительные трудности с синхронизацией со стороной 68k (особенно для звука). В версии 15 WarpOS представила концепцию, называемую атомарными задачами . Такие задачи являются непрерываемыми, и планирование не происходит, если задача явно не позволяет это сделать. [10]
WarpOS также имел встроенный отладчик , который мог отправлять информацию о любых сбойных задачах либо в окно консоли на экране, либо в последовательный порт, в зависимости от переменных среды.
Одной из наиболее хвалебных особенностей WarpOS было то, что она продолжила формат Amiga Hunk исходных исполняемых файлов Amiga в варианте формата, названном Extended Hunk format (EHF). [2] и реализовал тип хака с именем HUNK_PPC_CODE . [3] Это позволило AmigaOS прозрачно обрабатывать исполняемые файлы WarpOS без необходимости исправлять ОС для их распознавания, что PowerUP действительно нужно было сделать для запуска формата файлов ELF. Несмотря на свою элегантность в теории, недостатком формата EHF стало отсутствие широкой поддержки компиляторов (особенно GNU Compiler Collection (GCC)), а формат файлов ELF был принят AmigaOS 4 и MorphOS .
В отличие от PowerUP, WarpOS также могла создавать смешанные (толстые) двоичные файлы как с кодом 68k, так и с кодом PPC, которые могли работать как на платах Amiga PPC, так и на обычных системах Amiga. Эта практика была очень редкой из-за сложности программирования, но тип данных изображения в AmigaOS 3.9 (общая библиотека, которая загружала, обрабатывала и смешивала изображения через систему типов данных AmigaOS) был ярким примером его использования. Системы, оснащенные PPC, сразу же заметят значительное ускорение, в то время как системы 68k и эмуляторы по-прежнему будут совместимы без сбоев или установки другого двоичного файла.
В WarpOS было две служебные задачи: Defiant и Babylon5, которые, как полагают, были названы в честь военного корабля США Defiant из Star Trek DS9 и Babylon 5 , а его разработчики были научной фантастики поклонниками . Об этом часто сообщали новые пользователи, которые не знали, что они появляются в списках задач.
Споры
[ редактировать ]Haage & Partner , производитель программного и аппаратного обеспечения Amiga (который также создал AmigaOS 3.9), разработали конкурирующее с PowerUP ядро под названием WarpUP, которое, по их утверждениям, решит проблему переключения контекста, утверждение, которое будет резко оспорено Phase5. Phase5 правильно утверждала, что эту аппаратную проблему нельзя обойти, просто оптимизировав ядро, и что она является ограничением, присущим почти уникальной конструкции платы, которая разделяла шину памяти между двумя процессорами радикально разных семейств. Версии WarpOS до V7 представляли собой оболочки, добавленные к ядру PowerUP Phase5 , но, начиная с версии 8, это было собственное ядро PPC, работающее вместе с AmigaOS. [1] и был переименован в WarpOS.
Поскольку PowerUP находился в EPROM плат, а Phase5 не мог работать одновременно с WarpOS, его пришлось деактивировать с помощью небольшого программного инструмента. Поскольку у H&P не было доступа к EPROM, инструменту приходилось делать предположения о ядре PowerUP, и, естественно, в обновленных версиях это не работало. Это привело к открытым обвинениям со стороны сторонников WarpOS и автора Сэма Джордана в том, что Phase5 намеренно пыталась предотвратить запуск WarpOS на своих платах. Phase5 также заявила, что Haage & Partner злоупотребили подаренной им бесплатной платой разработчика для запуска этого конкурирующего ядра (хотя WarpOS была бесплатной, но поддерживалась почти исключительно коммерческим компилятором Storm C++ от H&P ), и что для этого они провели реверс-инжиниринг PowerUP. H&P отметила, что это было неизбежно, поскольку Phase5 отказывалась разрешать пользователям выбирать, какое ядро помещать в EPROM платы, утверждая, что ядро PowerUP необходимо для инициализации плат при загрузке, а их стирание просто сделает платы бесполезными. [4]
Хуже того, изначально пользователи могли запускать только одно из этих ядер, что приводило к значительному дублированию усилий между конкурирующими разработчиками, решившими использовать одно или другое, часто при независимой разработке двух версий программного обеспечения. [5] Несмотря на то, что реальная разница в производительности, возможностях отладки, удобстве использования или стабильности в обеих системах была незначительной или отсутствовала вообще, и стало совершенно ясно, что ни одна из них не может надеяться обойти проблему аппаратного переключения контекста, с каждой стороны был выдвинут ряд претензий и Последовали многочисленные бои в Usenet.
Это привело к появлению большого количества поспешно портированных, часто полуфункциональных портов программного обеспечения с открытым исходным кодом из Windows, часто просто для того, чтобы «одна вверх» другой стороны. Штеффен Хойзер (который получил известность, заявив: «ELF - это монстр !!!», имея в виду формат файла ELF). [6] ) из Hyperion Entertainment CVBA был особенно печально известен тем, что его «политические» порты были настолько спешными, что у них не было звука или они были очень нестабильными, и были выпущены только для того, чтобы подравнять цифры и составить список программного обеспечения, больший, чем у PowerUP. [ нужна ссылка ]
Тупик между конкурирующими системами в конечном итоге был разрешен благодаря оболочке PowerUP для WarpOS от Франке Вилле. [7] что позволило запускать программное обеспечение PowerUP в системах WarpOS.
Ожесточенная борьба в сообществе Amiga по поводу двух ядер, хотя и непродолжительная, привела к расколу, который в конечном итоге привел к расколу между AmigaOS и MorphOS, при этом большинство разработчиков WarpOS и PowerUP перешли на одну из новых реализаций AmigaOS соответственно. [ нужна ссылка ]
WarpOS планировалось использовать в качестве основы для AmigaOS 4, но Haage & Partner отказались от проекта, когда их контракт на AmigaOS 4 PPC был расторгнут Amiga, Inc. в 2000 году. [2] Когда Hyperion Entertainment взяла на себя проект, у них изначально была та же идея, но позже их разработчики признали, что она была очень малопригодна для модернизации ОС, поскольку была полностью написана на языке ассемблера без аннотаций машинного кода. [9]
Выбор WarpOS над ее конкурентом оказался пирровой победой , поскольку от стандартов, на основе которых она разработала, а именно EHF и PowerOpen, пришлось полностью отказаться при более поздней разработке AmigaOS и ее клонов . Модель с двумя процессорами больше не повторялась.
Поддержка устаревших версий в других операционных системах
[ редактировать ]АмигаОС 4
Для AmigaOS 4.0 и 4.1 была сделана оболочка, сначала она была включена, а затем распространялась командой GuruMedation (не путать с «синим» экраном смерти Amiga, который также имеет такое же название). Эта оболочка поддерживала процессоры PowerPC 603e, 604e, AMCC440EP, G3 и G4. Но не получилось работать на AMCC460 и PASemi PA6T,
Ведется работа над созданием новой оболочки под названием ReWarp. За новую обертку отвечает группа по имени Сакура.
МорфОС
[ редактировать ]MorphOS также использует оболочку для запуска программ WarpUP, у них также есть оболочка для PowerUP, конкурента WarpOS.
Игры для WarpOS
[ редактировать ]- Перекрестный огонь II
- Descent: FreeSpace – Великая война
Игра сначала была выпущена на WarpOS, затем портирована на AmigaOS4.0.
Оригинальное название: DOOM
(Только для WarpOS, не для AmigaOS)
Оригинальное название: Hexen: Beyond_Heretic (Та же игра под названием UHexen для AmigaOS4)
Игра сначала была выпущена на WarpOS, затем портирована на AmigaOS4.0.
(Только для WarpOS, не для AmigaOS)
(Только для WarpOS, не для AmigaOS)
Демоверсии для WarpOS
[ редактировать ]- PPC/Warp3D – демо от CdBS Software; 2-е место на UkonxParty 2000
- Демо-версия V1.0 – PPC/Warp3D от CdBS Software
- DeathTrial – FixPatch 0.1
- MusicDisk – Earth-Tribe-Media
- Чудо одного дня – автор Fit ASM'02 64k, вступление
- Booring Trip PPC – для UkonxParty 4 во Франции
- Greuh!Zillement Beta – 2-е место на LTP4
- Спасение – PPC dentro, компания Horizontal Lamerz
- Flow – победитель (64 КБ) на FuckYanica One
- Megademo IV – быстрый порт PPC
- DeathTrial – автор Mkd:AGA/CGXwarposPPCAhi+dbplayer
- Приглашение на демо-вечеринку «Равноденствие»
- PRO_GEAR_SPEC – демо-версия WarpOS PPC от человечества
- Mankind MesaGLUT – сюрреалистическая демо-версия wos+ahi
- 212 – от Мэдвизардс; 1-е место в Делириуме 2001 г.
- Амстердамские благословения – от Madwizards; 3-е место на М/С 2001 г.
- Cull Bazaar – от Madwizards; 11-е место на Ассамблее 2001 г.
- Нюанс «Тонкие оттенки 2» – 5 место на MS2K+1
- 4 место на MS99 от NUANCE
- NoSyncIzBack! – Демо-версия WOS 3-е место на IGDRP 2.
- Planet Potion – Введение от Potion, 64 КБ
- Suicidal – Вступление от Potion, 64 КБ
- Lamers Демо PPC AGA от
- Яркость – PPC WOS v1.1 – UKONX; 1-е место в Battle 2 1999 г.
- NoSync – от Universe – третье место в демо-версии WOS на Equinoxe 2003
- PowerUp - от Universe: демо Winner WOS на Slash 2001
- Все умирает – автор Venus Art, версия PPC WarpUP
- Призрак – автор Venus Art, версия PPC WarpUP
Эмуляторы для WarpOS
[ редактировать ]- IFusion, FusionPPC – эмулятор MacOS 8/9
- ВарпSNES
Программы для WarpOS
[ редактировать ]- Frogger — Видеоплеер
- fxpaint
- идеальная краска
- wosdb — простой отладчик
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Перейти обратно: а б с «ВарпАП» . Хааге и партнеры . 11 апреля 2007 г. Архивировано из оригинала 29 октября 2020 г. Проверено 14 июня 2010 г.
- Примечания
- ^ Проблемы с короблением: ( Штеффен Хаузер объясняет ядро WarpUp на comp.sys.amiga.games
- ^ См. также страницы, посвященные истории процессора PPC на Amiga , на сайте Amiga.History.
- ^ Спецификации EHF. Архивировано 16 ноября 2007 г. на сайте Wayback Machine на сайте Haage&Partners.
- ^ BlizzardPPC Flash Почему у WarpOS и Warp3D возникают проблемы с Blizzard PPC
- ^ Дитрих, Вольф; Журнал Amiga Report . Архивировано 7 июля 2011 г. в Wayback Machine. Хааге и партнеры объявляют о WarpUP, Phase5 взрывает H&P
- ^ comp.sys.amiga.games Штеффен Хойзер комментирует ELF
- ^ ppclibemu эмуляция ppc.library под WarpOS
- ^ Список программных проектов Сэма Джордана
- ^ Интервью с Беном Хермансом из Hyperion Бенджамин Херманс комментирует WarpOS
- ^ Джордан, С: powerpc.library/история WarpOS. 2001 г.
Дальнейшее чтение
[ редактировать ]- Однако Жак (ноябрь 1997 г.). «Какое ядро для карт PowerPC?». Новости Amiga (на французском языке). № 106. NewsEdition. стр. 7–10. ISSN 1164-1746 .
- «Новости, разработчики сходят с ума по ядру». Формат Амига . № 104. Будущее издательства. Декабрь 1997. с. 8. ISSN 0957-4867 .
- «Карты PowerUP были бы витриной!». Мечта (на французском языке). № 46. Поссе Пресс. Декабрь 1997. с. 12. ISSN 1259-1165 .
- Кренжелок, Петр (январь 1998 г.). «Искать свой PowerUp?». Обзор Amiga (на чешском языке). Нет. 33. Издательство Атлантида. стр. 7–11. ISSN 1211-1465 .
- Фроментен, Брайс; Поцци, Жан-Поль (март 1998 г.). «Карты P5 PowerUP PPC». AmigaNews (на французском языке). Нет. 110. Новостное издание. стр. 12–13, 16. ISSN 1164–1746 .
- «Новости, разработчики КПП закапывают топорики». Формат Амига . № 112. Будущее издательства. Июль 1998 г. с. 9. ISSN 0957-4867 .
- «Программное обеспечение PowerPC». Обзор Amiga (на чешском языке). № 36. Издательство «Атлантида». Сентябрь 1998 г., стр. 16, 18, 20–21. ISSN 1211-1465 .
- Драммонд, Ричард (июль 1999 г.). «ВарпАп 4.0». Формат Амига . № 125. Будущее издательства. п. 51. ISSN 0957-4867 .
- «Новости, NG AmigaOS для классических Amigas» Амиги Формат Когда. 136. Будущее издательства. Май 2000. с. 7. ISSN 0957-4867 .