WarpOS - это многозадачное ядро для архитектуры PowerPC, разработанное Haage Partner для компьютерной платформы Amiga в конце 1990-х - начале 2000-х. Он работает на ускорительных платах PowerUP, разработанных phase5, которые содержат как ЦП семейства Motorola 68000, так и ЦП PowerPC с общим адресным пространством. WarpOS работает вместе с основанной на 68k AmigaOS, которая может использовать PowerPC в качестве сопроцессора. Несмотря на свое название, это не операционная система (ОС), а ядро; он предоставляет ограниченный набор функций, подобных тем, что есть в AmigaOS для использования PowerPC. Когда он был выпущен, его первоначальное название было WarpUP, но было изменено, чтобы отразить его расширенный набор функций и, возможно, чтобы избежать сравнения с его конкурентом, PowerUP.
Он был разработан Сэмом Джорданом с использованием 680x0 и ассемблера PowerPC. Распространяется бесплатно.
В 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 - это высокий -speed kernel для PowerPC версий Amiga.
WarpUP формирует уровень абстракции оборудования между оборудованием и программное обеспечение, и обеспечивает правильную работу приложений на архитектуре PowerPC. Он также образует интерфейс между аппаратным обеспечением, управляемым PowerPC, и программным обеспечением, совместимым с 68k, что позволяет оптимально использовать скорость PowerPC CPU, одновременно делая перенос приложений 68k максимально простым.
Ряд преимуществ, которые предлагает WarpUP:
WarpOS имела функции, аналогичные PowerUP, но с некоторыми существенными отличиями. Наиболее уместно то, что он использовал PowerOpen ABI, в отличие от PowerUP, который использовал более новый и лучше поддерживаемый SysV, который гарантировал, что оба ядра не могут быть напрямую совместимы.
Начиная с версии 14, ядро WarpOS использовало несколько иной планировщик многозадачности, чем AmigaOS (или PowerUP), основанный на таковом в системах Unix с «хорошими» значениями, а также своими собственными приоритетами. задачи и процессы. Это было сделано для того, чтобы все задачи получали процессорное время и не «истощали» процессорного времени из-за ресурсоемких задач (как в случае с исходным планировщиком AmigaOS). Однако это было неэффективно, поскольку все еще ограничивалось встроенным планировщиком AmigaOS и создавало дополнительные трудности при синхронизации со стороной 68k (особенно для звука). В версии 15 WarpOS представила концепцию, называемую атомарными задачами. Атомарные задачи не могут быть прерваны, и планирование не выполняется, если задача явно не разрешает это.
WarpOS также имеет встроенный отладчик, который может быть отправлен для вывода информации о любых сбойных задачах в любое окно консоли на экран или последовательный, в зависимости от переменных среды.
Одной из самых хвалебных особенностей WarpOS было то, что она продолжила формат «ломтика» исходных исполняемых файлов Amiga, который реализовал формат исполняемых файлов Amiga Hunk. Этот формат назывался EHF (расширенный формат фрагмента) и реализовывал тип фрагмента с именем HUNK_PPC_CODE . Это позволяло AmigaOS прозрачно обрабатывать исполняемые файлы WarpOS без необходимости исправлять ОС, чтобы распознавать их, что PowerUP действительно должен был сделать для запуска своего файлового формата ELF. Несмотря на то, что формат EHF элегантен в теории, его недостатком было отсутствие широкой поддержки компилятора (особенно GCC ), а формат файла ELF был принят в AmigaOS 4 и MorphOS <204.>В отличие от PowerUP, WarpOS также может создавать смешанные (толстые) двоичные файлы с кодом 68k и PPC, которые могут работать как на платах Amiga PPC, так и на обычных системах Amiga. Эта практика была очень редкой из-за сложности программирования, но тип данных изображения в AmigaOS 3.9 (разделяемая библиотека, которая загружала, обрабатывала и смешивала изображения через систему типов данных AmigaOS) был ярким примером его использования. Системы, оснащенные PPC, сразу же заметят значительное ускорение, в то время как системы 68k и эмуляторы будут по-прежнему совместимы без сбоев или установки другого двоичного файла.
WarpOS выполняла две служебные задачи под названием Defiant и Babylon5, которые, как предполагается, были названы в честь USS Defiant из Star Trek DS9 и Babylon 5, его разработчики - фанаты научной фантастики. Об этом часто сообщали новые пользователи, которые не знали, что они отображали в списках задач.
Haage Partner, производитель программного и аппаратного обеспечения для Amiga (который также создал AmigaOS 3.9), разработали ядро, конкурирующее с PowerUP, под названием WarpUP, которое, по их утверждениям, могло бы решить проблему переключения контекста., претензия, которая будет решительно оспорена Phase5. Phase5 правильно заявила, что эту аппаратную проблему нельзя обойти простой оптимизацией ядра и что это ограничение, присущее почти уникальной конструкции платы, которая разделяет шину памяти между двумя процессорами радикально разных семейств. Версии WarpOS до V7 были добавлены к ядру Phase5 PowerUP, но начиная с версии 8 это было собственное ядро PPC, работающее вместе с AmigaOS, и было переименовано в WarpOS.
Поскольку PowerUP находился в EPROM плат и Phase5 не мог работать одновременно с WarpOS, его пришлось деактивировать с помощью небольшого программного инструмента. Поскольку у HP не было доступа к EPROM, инструмент должен был сделать предположения о ядре PowerUP, и, естественно, это сломалось в обновленных версиях. Это привело к открытым обвинениям со стороны сторонников WarpOS и автора Сэма Джордана в том, что Phase5 намеренно пытались предотвратить запуск WarpOS на своих досках. Phase5 также заявила, что Haage и партнер злоупотребляли подаренной им бесплатной доской для запуска этого конкурирующего ядра (хотя и бесплатно, WarpOS поддерживалась почти исключительно коммерческим компилятором StormC ++ от HP), и что для этого у них была проведена обратная инженерия PowerUP. Компания HP указала, что этого нельзя было избежать, пока Phase5 отказывался разрешать пользователям выбирать, какое ядро установить на EPROM платы, утверждая, что ядро PowerUP необходимо для инициализации плат при загрузке, и их стирание просто сделает платы бесполезными.
Что еще хуже, пользователи изначально могли запускать только одно из этих ядер, что приводило к значительному дублированию усилий между конкурирующими разработчиками, решившими использовать одно или другое, часто с двумя версиями программного обеспечения, разрабатываемыми независимо. Несмотря на небольшую разницу в производительности, отладочных возможностях, удобстве использования или стабильности в любой системе или ее отсутствие, и стало очевидно, что ни одна из них не может надеяться на решение проблемы аппаратного переключения контекста, с каждой стороны был сделан ряд требований и последовало много боев в Usenet.
Это привело к появлению большого количества поспешно портированных, часто полуфункциональных портов программного обеспечения с открытым исходным кодом из Windows, часто просто «один вверх» на другую сторону. Штеффен Хойзер (получивший известность, заявив, что «ELF - это монстр !!!», имея в виду формат файла ELF) Hyperion Entertainment CVBA был особенно печально известен тем, что его «политические» порты были настолько спешными, что в них не было звука или они были очень нестабильными., выпущенный только для того, чтобы подсчитать цифры и составить список программного обеспечения, больший, чем у PowerUP.
Тупик между конкурирующими системами в конечном итоге был разрешен благодаря обертке PowerUP для WarpOS от Franke Wille, которая позволила пользователям запускать программное обеспечение PowerUP на своих системах WarpOS.
Горькая борьба в сообществе Amiga из-за двух ядер, хотя и кратковременная, привела к расколу, который в конечном итоге вылился в раскол между AmigaOS и MorphOS, когда большинство разработчиков WarpOS и PowerUP перешли на новую AmigaOS. реализация соответственно.
WarpOS предназначалась для использования в качестве основы для AmigaOS 4, но Haage и партнер отказались от проекта, когда Amiga, Inc. аннулировала свой контракт на AmigaOS 4 PPC в 2000 году. Когда Hyperion Entertainment взяло на себя проект, у них изначально была такая же идея, но позже их разработчики признали, что она оказалась очень малопригодной для модернизации ОС, поскольку была написана полностью на непонятном языке. ассемблер аннотированного машинного кода.
Выбор WarpOS над его конкурентом оказался пирровой победой, поскольку стандарты, которые он разработал вокруг, а именно EHF и PowerOpen, должны были быть полностью отброшены в более позднее развитие AmigaOS и ее клонов. Модель с двумя процессорами не пересматривалась.
AmigaOS 4
Обертка была сделана для AmigaOS 4.0 и 4.1, сначала она была включена, а затем распространена командой GuruMedation (не путать с Amiga's " Синий «Экран смерти», тоже имеющий такое же название). Эта оболочка поддерживает процессоры PowerPC 603e, 604e, AMCC440EP, G3 и G4. Но не удалось работать с AMCC460 и P.A.Semi PA6T,
Ведутся работы по созданию новой оболочки под названием ReWarp. За новую обертку отвечает группа под названием Сакура.
MorphOS также использует оболочку для запуска программ WarpUP, у них также есть оболочка для PowerUP, конкурента WarpOS.
Игра сначала была выпущена на WarpOS, затем портирована на AmigaOS4.0
Исходное название: DOOM
(только для WarpOS, не для AmigaOS)
Оригинальное название: Hexen: Beyond_Heretic (та же игра под названием UHexen для AmigaOS4)
Игра сначала была выпущена на WarpOS, затем портирована на AmigaOS4.0
(Только для WarpOS, не для AmigaOS)
(Только для WarpOS, не для AmigaOS)