2023-10-12 22:30:54 +03:00
# БМПОС: Базовая Модульная Платформа Операционных Систем
2023-10-06 18:42:12 +03:00
2023-10-12 22:52:54 +03:00
[![CI сборка ](https://github.com/0Nera/BMOSP/actions/workflows/build.yml/badge.svg?branch=master )](https://github.com/0Nera/BMOSP/actions/workflows/build.yml)
[![Github pages сайт ](https://github.com/0Nera/BMOSP/actions/workflows/pages/pages-build-deployment/badge.svg?branch=pages )](https://github.com/0Nera/BMOSP/actions/workflows/pages/pages-build-deployment)
2023-10-06 18:42:12 +03:00
2023-10-21 21:23:51 +03:00
БМПОС - Базовая Модульная Платформа Операционных Систем для платформы x86_64 (BIOS/UEFI). Это отечественное программное обеспечение, созданное при поддержке Синапс О С на языке программирования C.
2023-10-06 18:42:12 +03:00
2023-10-24 23:39:00 +03:00
БМПОС не является операционной системой. Это платформа для изучения.
Философия БМПОС - "всё есть модуль".
2023-10-31 19:13:37 +03:00
![Скриншот вывода ядра в эмуляторе Qemu ](https://0nera.github.io/BMOSP/assets/0_0.1.367.png )
2023-10-21 20:27:23 +03:00
2023-10-17 10:55:16 +03:00
## Реализовано
2023-10-15 18:54:22 +03:00
Ядро:
2023-10-17 10:55:16 +03:00
2023-10-15 18:54:22 +03:00
- [x] Менеджер памяти
- [x] Менеджер видеопамяти
2023-10-06 18:42:12 +03:00
- [ ] Менеджер потоков
2023-10-15 18:54:22 +03:00
- [x] Загрузчик модулей
2023-10-27 18:58:30 +03:00
- [ ] Буферы ввода-вывода
2023-10-06 18:42:12 +03:00
Модули:
2023-10-17 10:55:16 +03:00
- [ ] Оболочка ввода-вывода
2023-10-06 18:42:12 +03:00
Драйвера:
2023-10-17 10:55:16 +03:00
2023-10-15 18:54:22 +03:00
- [ ] PS/2 (Клавиатура)
2023-10-24 23:39:00 +03:00
- [ ] SATA (AHCI) (Чтение)
2023-10-06 18:42:12 +03:00
- [ ] EXT2
2023-10-24 23:39:00 +03:00
Документация:
- [X] Системные вызовы
- [ ] Ядро
- [ ] Стандартная библиотека
Вебсайт:
- [X] Домен
2023-10-27 18:58:30 +03:00
- [X] Движок сайта
2023-10-24 23:39:00 +03:00
- [ ] Документация
- [ ] Статьи
- [ ] Примеры
Примеры:
2023-10-31 19:13:37 +03:00
- [X] Пример модуля
2023-10-24 23:39:00 +03:00
- [ ] Пример драйвера
- [ ] Пример программы-модуля
- [ ] Пример модуля ввода-вывода
2023-10-06 18:42:12 +03:00
Общая работа:
2023-10-17 10:55:16 +03:00
2023-10-06 18:42:12 +03:00
- [ ] Ядро
- [ ] Модули
- [ ] Драйвера
- [ ] Документация
- [ ] Вебсайт
- [ ] Примеры
- [ ] Видеоуроки
2023-10-15 18:54:22 +03:00
### Второстепенные задачи
Модули:
2023-10-17 10:55:16 +03:00
2023-10-15 18:54:22 +03:00
- [ ] Отладчик
- [ ] JavaScript
- [ ] Lua
- [ ] SQLite
- [ ] Криптограф
Драйвера:
2023-10-17 10:55:16 +03:00
2023-10-15 18:54:22 +03:00
- [ ] PS/2 (Мышь)
2023-10-24 23:39:00 +03:00
- [ ] SATA (AHCI) (Запись)
- [ ] SIMD (SSE, SSE2, SSE3, SSE4, AVX) - отдельный драйвер для инициализации SIMD инструкций
2023-10-15 18:54:22 +03:00
2023-10-27 18:58:30 +03:00
Видеоуроки:
- [ ] Основы языка C
- [ ] Основы ассемблера GAS
- [ ] Настройка окружения
- [ ] Сборка из исходного кода
- [ ] Привет мир!
- [ ] Написание драйвера
2023-10-13 18:03:14 +03:00
## Партнеры
- О О О "НПО Т Е -О Н "
2023-10-21 18:59:06 +03:00
## Сборка из исходного кода
2023-10-21 21:23:51 +03:00
### Ubuntu 18.04+
2023-10-21 18:59:06 +03:00
```bash
2023-10-27 14:48:11 +03:00
sudo apt install clang-format python3 git qemu-system-x86 gdisk dos2unix xorriso
2023-10-21 18:59:06 +03:00
git clone https://git.synapseos.ru/Aren/BMOSP.git
cd BMOSP/
chmod +x build.sh
./build.sh
```
2023-10-27 14:48:11 +03:00
### Astra Linux
Н а текущий момент доступна только сборка ISO образов
В qemu недоступен флаг `-cpu max` , просто уберите е г о при запуске
```bash
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
```
2023-10-22 02:37:05 +03:00
### ArchLinux
2023-10-27 14:48:11 +03:00
Модули грузятся с ошибкой
2023-10-22 02:37:05 +03:00
```bash
yay -S clang-format
2023-10-27 14:48:11 +03:00
sudo pacman -S python3 git qemu-system-x86 xorriso
2023-10-22 02:37:05 +03:00
git clone https://git.synapseos.ru/Aren/BMOSP.git
cd BMOSP/
chmod +x build.sh
./build.sh
```
2023-10-23 21:27:20 +03:00
## Запуск
2023-10-21 18:59:06 +03:00
### Qemu
2023-10-27 14:48:11 +03:00
Стандартная конфигурация загрузки с HDD
```bash
qemu-system-x86_64 -name "БМПОС" -cpu max -m 128M -smp 1 -bios ovmf/OVMF.fd -hda bmosp.hdd
```
Стандартная конфигурация загрузки с ISO образа
2023-10-21 18:59:06 +03:00
```bash
2023-10-27 14:48:11 +03:00
qemu-system-x86_64 -name "БМПОС" -cpu max -m 128M -smp 1 -cdrom bmosp.iso -boot d --no-reboot
2023-10-21 18:59:06 +03:00
```
Или
```bash
chmod +x run.sh
./run.sh
```
2023-10-13 18:03:14 +03:00
## Предупреждение
Использовать на свой страх и риск. Система расчитана на работу в эмулируемой среде Qemu под процессоры x86_64.
Мы не несем ответственности за нанесенный ущерб.
2023-10-06 18:42:12 +03:00
## Ресурсы
2023-10-15 19:03:24 +03:00
- < https: // vk . com / BMOSP > Страница вконтакте
2023-10-27 14:48:11 +03:00
- < https: // t . me / bmosp > Телеграм (активный форум)
- < https: // bmosp . ru > Вебсайт (в процессе)
2023-10-12 22:30:54 +03:00
- < https: // wiki . synapseos . ru / index . php ? title = БМПОС > Страница на вики
2023-10-06 18:42:12 +03:00
### Зеркала
2023-10-27 14:48:11 +03:00
Для отправки своих изменений вы можете использовать следующие зеркала:
2023-10-12 22:30:54 +03:00
- < https: // git . synapseos . ru / Aren / BMOSP > - доверенный сервер(главный репозиторий)
2023-10-27 14:48:11 +03:00
- < https: // github . com / 0Nera / BMOSP > - зеркало с CI
2023-10-12 22:30:54 +03:00
- < https: // tvoygit . ru / 0Nera / BMOSP > - зеркало
- < https: // hub . mos . ru / synapseos / BMOSP > - неактивное зеркало
### Использованные ресурсы
2023-10-17 10:54:15 +03:00
- < https: // github . com / limine-bootloader / limine > (BSD 2-Clause)
- < https: // github . com / nothings / stb > (MIT, Общественное достояние)
- < https: // en . wikipedia . org / wiki / CPUID >
- < https: // github . com / klange / toaruos > (NCSA)
- < https: // wiki . osdev . org / Model_Specific_Registers >
- < https: // sandpile . org / x86 / msr . htm >