Введение

Встроенная операционная система

A/ROSE (Apple Real time Operating System Environment) — это небольшая встроенная операционная система, работающая на "Платформе копроцессоров Macintosh" от Apple Computer, представляющей собой плату расширения для Macintosh. Идея заключалась в создании единой, избыточно спроектированной аппаратной платформы, на которой сторонние разработчики могли бы создавать практически любые продукты, снижая значительные затраты на разработку карт расширения на основе NuBus. Однако карты MCP были дорогими, что ограничило привлекательность этой концепции. A/ROSE практически не использовалась, по всей видимости, ограничиваясь лишь сетевыми картами Apple для последовательного ввода-вывода, Ethernet, Token Ring и Twinax. Компания GreenSpring Computers разработала RM1260 — карту-носитель IndustryPack (IP) с процессором 68000, работающим под управлением A/ROSE, предназначенную для рынка систем сбора данных.

История

A/ROSE и MCP появились в августе 1987 года в процессе разработки Macintosh II. Работая над различными сетевыми продуктами для новой системы, разработчики осознали, что существующая классическая Mac OS усложнит создание любой "серьезной" карты из-за больших задержек и сложности разработки сложных драйверов устройств. Их решением стало создание "интеллектуальной" карты NuBus, которая по сути представляла собой целый компьютер на плате, включающий в себя собственный процессор Motorola 68000, рабочее пространство в оперативной памяти, дублирующееся в основной системе, и собственную базовую операционную систему. Первая версия системы была готова к использованию в феврале 1988 года. Внутри компании A/ROSE называли MR DOS (Multitasking Realtime Distributed Operating System), но Microsoft (разработчик MS DOS) не одобрила это название и оказала давление на Apple, чтобы оно было изменено. Эрик М. Трехус, инженер по контролю качества на карте Token Ring, работающей под управлением A/ROSE, по сообщениям сказал: "Как бы ни называли A/ROSE, это все равно MR DOS". A/ROSE известен своей узкоспециализированной областью применения, которая обычно непонятна конечным пользователям Mac, а также тем, что вызывает системную ошибку при загрузке во многих эмуляторах Mac, таких как Basilisk II.

Обзор

A/ROSE очень мал – всего 28 кБ, при этом ядро составляет 6 кБ. A/ROSE поддерживает вытесняющую многозадачность с циклической организацией планирования задач, с временем переключения контекста 110 микросекунд и задержкой всего 20 микросекунд (гарантированное время отклика на прерывание). Основная задача системы – перемещение данных, а также запуск и остановка задач на картах. Весь API состоит всего из десяти вызовов. A/ROSE – это система передачи сообщений, и основные вызовы, используемые в её программах, – отправка и получение сообщений. Сообщения короткие, содержат лишь 24 байта пользовательских данных и отправляются асинхронно. Для поиска нужной конечной точки сервер имен позволяет приложениям привязывать свои имена к идентификаторам задач, что позволяет им перемещаться по системе и динамически обнаруживаться. Операционная система содержит несколько процедур для поиска, запуска и остановки задач на других картах, включая виртуальную карту, представляющую хост-компьютер. Для координации обмена данными и обеспечения механизма взаимодействия с процессором хоста, урезанная копия A/ROSE также работает внутри Mac OS в виде расширения системы, или "INIT", известного как "Prep". Драйверы устройств для карт A/ROSE являются INIT и запускаются автоматически. После запуска они находят модуль Prep и используют стандартный канал связи A/ROSE, предоставляемый им, для взаимодействия с картами. Например, карта Apple TokenTalk NB устанавливает свой драйвер как INIT и, опционально, устанавливает модуль Prep, если он еще не был установлен. При запуске драйвер находит модуль Prep и запрашивает перечисление установленных в системе карт TokenTalk, а также, опционально, загружает на них код или настройки. После этого модуль Prep обрабатывает связь с картой, передавая результаты драйверу TokenTalk.