Go to file
2023-10-29 18:41:16 +03:00
.github/workflows Удалена система сборки бинарных релизов 2023-10-29 16:14:34 +03:00
.vscode Добавление модуля "Мелодия" 2023-10-23 09:16:16 +03:00
configs Новая система логов 2023-10-29 16:12:00 +03:00
include Новая система логов 2023-10-29 16:12:00 +03:00
kernel Добавлена инициализация SSE 2023-10-29 18:41:16 +03:00
modlib Загрузка модулей исправлена 2023-10-24 23:53:20 +03:00
modules Добавлена инициализация SSE 2023-10-29 18:41:16 +03:00
scripts Переименовал проект в БМПОС 2023-10-12 22:30:54 +03:00
templates Перевод кодовой базы на язык C 2023-10-21 20:27:23 +03:00
.clang-format Добавление программируемого интервального таймера 2023-10-25 00:07:32 +03:00
.gitignore Новая система логов 2023-10-29 16:12:00 +03:00
API.md Добавление модуля "Мелодия" 2023-10-23 09:16:16 +03:00
AUTHORS.md Добавлены описания 2023-10-21 21:23:51 +03:00
boot.bmp Изображения для загрузчика 2023-10-12 22:51:03 +03:00
boot.png Изображения для загрузчика 2023-10-12 22:51:03 +03:00
boot.tga Добавлена поддержка TGA 2023-10-19 19:46:58 +03:00
build.sh Загрузка модулей исправлена 2023-10-24 23:53:20 +03:00
deploy_to_sdc.sh Небольшие исправления 2023-10-15 20:29:21 +03:00
HISTORY.md Добавлены описания 2023-10-21 21:23:51 +03:00
LICENSE Исправление невидимых символов 2023-10-15 18:48:38 +03:00
pbuild.py Добавлена инициализация SSE 2023-10-29 18:41:16 +03:00
README.md Обновление README 2023-10-27 18:58:30 +03:00
run.sh Добавлен запуск с cdrom 2023-10-26 23:11:38 +03:00

БМПОС: Базовая Модульная Платформа Операционных Систем

CI сборка Github pages сайт

БМПОС - Базовая Модульная Платформа Операционных Систем для платформы x86_64 (BIOS/UEFI). Это отечественное программное обеспечение, созданное при поддержке Синапс ОС на языке программирования C.

БМПОС не является операционной системой. Это платформа для изучения.

Философия БМПОС - "всё есть модуль".

Скриншот вывода ядра в эмуляторе Qemu

Реализовано

Ядро:

  • Менеджер памяти
  • Менеджер видеопамяти
  • Менеджер потоков
  • Загрузчик модулей
  • Буферы ввода-вывода

Модули:

  • Оболочка ввода-вывода

Драйвера:

  • PS/2 (Клавиатура)
  • SATA (AHCI) (Чтение)
  • EXT2

Документация:

  • Системные вызовы
  • Ядро
  • Стандартная библиотека

Вебсайт:

  • Домен
  • Движок сайта
  • Документация
  • Статьи
  • Примеры

Примеры:

  • Пример модуля
  • Пример драйвера
  • Пример программы-модуля
  • Пример модуля ввода-вывода

Общая работа:

  • Ядро
  • Модули
  • Драйвера
  • Документация
  • Вебсайт
  • Примеры
  • Видеоуроки

Второстепенные задачи

Модули:

  • Отладчик
  • JavaScript
  • Lua
  • SQLite
  • Криптограф

Драйвера:

  • PS/2 (Мышь)
  • SATA (AHCI) (Запись)
  • SIMD (SSE, SSE2, SSE3, SSE4, AVX) - отдельный драйвер для инициализации SIMD инструкций

Видеоуроки:

  • Основы языка C
  • Основы ассемблера GAS
  • Настройка окружения
  • Сборка из исходного кода
  • Привет мир!
  • Написание драйвера

Партнеры

  • ООО "НПО ТЕ-ОН"

Сборка из исходного кода

Ubuntu 18.04+

sudo apt install clang-format python3 git qemu-system-x86 gdisk dos2unix xorriso
git clone https://git.synapseos.ru/Aren/BMOSP.git
cd BMOSP/
chmod +x build.sh
./build.sh

Astra Linux

На текущий момент доступна только сборка ISO образов В qemu недоступен флаг -cpu max, просто уберите его при запуске

sudo apt install clang-format python3.7 git qemu-system-x86 gdisk dos2unix xorriso
git clone https://git.synapseos.ru/Aren/BMOSP.git
cd BMOSP/
python3.7 pbuild.py

ArchLinux

Модули грузятся с ошибкой

yay -S clang-format
sudo pacman -S python3 git qemu-system-x86 xorriso
git clone https://git.synapseos.ru/Aren/BMOSP.git
cd BMOSP/
chmod +x build.sh
./build.sh

Запуск

Qemu

Стандартная конфигурация загрузки с HDD

qemu-system-x86_64 -name "БМПОС" -cpu max -m 128M -smp 1 -bios ovmf/OVMF.fd -hda bmosp.hdd

Стандартная конфигурация загрузки с ISO образа

qemu-system-x86_64 -name "БМПОС" -cpu max -m 128M -smp 1 -cdrom bmosp.iso -boot d --no-reboot

Или

chmod +x run.sh
./run.sh

Предупреждение

Использовать на свой страх и риск. Система расчитана на работу в эмулируемой среде Qemu под процессоры x86_64. Мы не несем ответственности за нанесенный ущерб.

Ресурсы

Зеркала

Для отправки своих изменений вы можете использовать следующие зеркала:

Использованные ресурсы