Go to file
2023-10-25 00:07:32 +03:00
.github/workflows Загрузка модулей исправлена 2023-10-24 23:53:20 +03:00
.vscode Добавление модуля "Мелодия" 2023-10-23 09:16:16 +03:00
configs Загрузка модулей исправлена 2023-10-24 23:53:20 +03:00
include Добавление программируемого интервального таймера 2023-10-25 00:07:32 +03:00
kernel Добавление программируемого интервального таймера 2023-10-25 00:07:32 +03:00
modlib Загрузка модулей исправлена 2023-10-24 23:53:20 +03:00
modules Добавление программируемого интервального таймера 2023-10-25 00:07:32 +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-23 09:16:16 +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 Добавление модуля "Мелодия" 2023-10-23 09:16:16 +03:00
README.md Загрузка модулей исправлена 2023-10-24 23:53:20 +03:00
run.sh Добавление модуля "Мелодия" 2023-10-23 09:16:16 +03:00

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

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

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

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

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

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

Реализовано

Ядро:

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

Модули:

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

Драйвера:

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

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

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

Вебсайт:

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

Примеры:

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

Видеоуроки:

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

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

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

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

Модули:

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

Драйвера:

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

Партнеры

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

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

Ubuntu 18.04+

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

ArchLinux

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

Запуск

Qemu

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

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

Или

chmod +x run.sh
./run.sh

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

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

Ресурсы

Зеркала

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