Голый Металл
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Разработчик | Возвращение бесконечности |
---|---|
Написано в | Сборка |
Рабочее состояние | Текущий |
Исходная модель | Открытый исходный код |
Первоначальный выпуск | 2008 год |
Последний выпуск | 1.0.0 / 13 ноября 2017 г [1] |
Маркетинговая цель | HPC , HTC , Облачные вычисления |
Доступно в | Английский |
Платформы | х86-64 |
ядра Тип | Экзоядро , САСОС |
Пользовательское пространство | Неизвестный |
По умолчанию пользовательский интерфейс | Командная строка |
Лицензия | Лицензия БСД [2] |
Официальный сайт | www |
BareMetal — это экзоядра на основе операционная система (ОС) с единым адресным пространством , созданная Return Infinity .
Он написан на ассемблере для достижения высокопроизводительных вычислений с минимальными затратами. [3] [4] с подходом «достаточно операционной системы» ( JeOS ). [5] Операционная система в первую очередь ориентирована на виртуализированные среды облачных вычислений или HPC , поскольку она спроектирована как облегченное ядро (LWK). Его можно использовать как одноядерное .
Он был вдохновлен другой ОС, написанной на ассемблере, MikeOS. [2] и это недавний пример операционной системы, которая не написана на C или C++ и не основана на Unix-подобных ядрах. [6]
Обзор [ править ]
Требования к оборудованию [ править ]
- AMD / Intel 64-битный компьютер на базе
- Память: 4 МБ (плюс по 2 МБ на каждое дополнительное ядро)
- Жесткий диск: 32 МБ [7]
Одна задача на ядро [ править ]
Многозадачность в BareMetal необычна для современных операционных систем. BareMetal использует внутреннюю рабочую очередь все ядра ЦП , которую опрашивают . Задача , добавленная в рабочую очередь, будет обработана любым доступным ядром ЦП в системе и будет выполняться до завершения, что приводит к отсутствию на переключение контекста накладных расходов . [8]
Программирование [ править ]
API [ править ]
API документирован [9] но, в соответствии со своей философией, ОС не обеспечивает наличие точек входа для системных вызовов (например, отсутствие шлюзов вызовов или других механизмов безопасности).
С [ править ]
В BareMetal OS есть сценарий сборки , позволяющий получить последнюю версию кода, внести необходимые изменения, а затем скомпилировать код C, используя [10] Newlib C. стандартная библиотека [11]
С++ [ править ]
Практически полная стандартная библиотека C++11 была спроектирована и разработана для работы в кольце 0 . [12] Основная цель такой библиотеки — предоставить на библиотечном уровне альтернативу аппаратной защите памяти , используемой в классических ОС, с помощью тщательно разработанных классов. [13]
Ржавчина [ править ]
В ноябре 2014 года к программам была добавлена демонстрация программы Rust, демонстрирующая возможность написания программ Rust для BareMetal OS. [14]
Сеть [ править ]
Стек TCP/IP [ править ]
Стек TCP/IP был запросом функции №1. [15] Порт lwIP, написанный на C, был анонсирован в октябре 2014 года. [16]
миниIP, [17] Минималистичный IP-стек на ANSI C, способный обеспечить достаточно функций для обслуживания простой статической веб-страницы , разрабатывается в качестве доказательства концепции для изучения основ при подготовке к x86-64 переписыванию сборки , запланированному на будущее.
Ссылки [ править ]
- ^ Сейлер, Ян. "ядро.асм" . BareMetal OS на GitHub Репозиторий . Проверено 24 мая 2017 г.
- ↑ Перейти обратно: Перейти обратно: а б Вурсангер, Конрад (2 июня 2011 г.). «Интервью с Яном Сейлером из Baremetal OS» . ОСНовости . Проверено 26 мая 2014 г.
- ^ Адамс, Дэвид (14 июля 2010 г.). «BareMetal OS» . ОСНовости . Проверено 26 мая 2014 г.
- ^ Бенчофф, Брайан (27 мая 2011 г.). «64-битная ОС, полностью написанная на ассемблере» . Взломать день . Проверено 26 мая 2014 г.
- ^ Сейлер, Ян. «Return Infinity (домашняя страница), преимущество BareMetal» . Вернуть бесконечность . Проверено 2 февраля 2015 г.
- ^ Смит, Джесси (19 июля 2010 г.). «DistroWatch Weekly, выпуск 363» . ДистроВотч . Проверено 26 мая 2014 г.
- ^ «Требования к ОС BareMetal» . Return Infinity (архивная копия на Wayback Machine ) . Архивировано из оригинала 6 сентября 2014 года . Проверено 6 сентября 2014 г.
- ^ «Очередь ОС BareMetal» . Проверено 28 апреля 2015 г.
- ^ Сейлер, Ян. «API-документация» . BareMetal OS на GitHub Репозиторий . Проверено 26 июня 2015 г.
- ^ Сейлер, Ян (17 января 2014 г.). «Скрипт сборки Newlib» . по ОС BeareMetal Группа Google . Проверено 2 февраля 2015 г.
- ^ Сейлер, Ян. "newlib.sh" . Сборка скриптов для BareMetal OS и связанных с ней утилит, GitHub репозиторий . Проверено 2 февраля 2015 г.
- ^ Лодягин, Сергей (17 ноября 2013 г.). «Голая библиотека C++» . по ОС BeareMetal Группа Google . Проверено 2 февраля 2015 г.
- ^ Лодягин, Сергей. «Голая библиотека C++» . библиотеки Bare C++ на GitHub Репозиторий . Проверено 2 февраля 2015 г.
- ^ Сейлер, Ян. «Добавить пример Rust» . Репозиторий BareMetal OS GitHub (устаревшая версия) . Проверено 18 марта 2018 г.
- ^ Сейлер, Ян (22 августа 2013 г.). «TCP/IP» . по ОС BeareMetal Группа Google . Проверено 2 февраля 2015 г.
- ^ Сейлер, Ян (31 октября 2014 г.). «BareMetal и lwIP» . по ОС BeareMetal Группа Google . Проверено 2 февраля 2015 г.
- ^ Сейлер, Ян. «minIP — минималистичный стек IP, написанный на ANSI C» . BareMetal OS на GitHub Репозиторий . Проверено 24 мая 2017 г.
Внешние ссылки [ править ]
- ReturnInfinity на GitHub
- BareMetal OS группы Google Дискуссионный форум