Skip to main content

CI License: MIT Python 3.10+ Platform: Windows

osdev

Инструмент для разработки операционных систем на Windows — без WSL, без MSYS2, без кросс-компилятора.

Одна команда — и у тебя есть весь тулчейн: компилятор C/C++ для bare-metal, ассемблер, линкер, эмулятор и отладчик. Всё нативно под Windows.

Зачем

Классический путь OSDev на Windows выглядит так:

  • поставить WSL или MSYS2,
  • собрать i686-elf-gcc (полдня),
  • разобраться с xorriso, grub-mkrescue, mtools,
  • писать Makefile,
  • ловить странные ошибки путей.

osdev убирает всё это. Ты пишешь kernel.c, нажимаешь osdev run и видишь своё ядро в QEMU через 5 секунд.

Быстрый старт

:: 1. поставить тулчейн (один раз)
osdev setup

:: 2. проверить, что всё на месте
osdev doctor

:: 3. создать проект
osdev new myos
cd myos

:: 4. собрать и запустить
osdev run

В окне QEMU появится:

Hello from osdev!
i686, protected mode, C kernel.

Команды

Команда Что делает
osdev doctor Проверить, что установлено (Zig, NASM, QEMU, GDB)
osdev setup Скачать и распаковать тулчейн в ~/.osdev/tools/
osdev new <name> Создать новый проект ОС из шаблона
osdev build Собрать образ (build/<name>.img)
osdev run Собрать и запустить в QEMU
osdev debug Собрать и запустить под GDB (с брейкпоинтом на kernel_main)

osdev debug — что попробовать в GDB

(gdb) info registers        # состояние регистров
(gdb) x/10i $pc             # дизассемблер вокруг текущей инструкции
(gdb) si                    # шаг
(gdb) c                     # продолжить
(gdb) q                     # выход

Требования

  • Windows 10/11
  • Python 3.10+

Больше ничего. Zig, NASM и QEMU osdev setup поставит сам. GDB нужен только для osdev debug (можно взять из mingw-w64).

Что внутри

osdev/
├── cli.py            # команды Typer
├── detect.py         # поиск тулчейна в ~/.osdev/tools и в системе
├── doctor.py         # вывод таблицы
├── setup.py          # скачивание NASM, Zig
├── build.py          # сборка ядра: nasm → zig cc → ld.lld → .img
├── errors.py         # человеческие подсказки к ошибкам компилятора
└── templates/
    └── i686-c-mbr/   # шаблон: свой bootloader + C-ядро

Что делает osdev build

  1. nasm -f bin src/boot.asm -o build/boot.bin — 512-байтный MBR.
  2. zig cc -target x86-freestanding-none -c src/kernel.c — объектник.
  3. zig cc ... -fuse-ld=lld -T src/linker.ld — линковка в ELF.
  4. Python извлекает загружаемые секции → kernel.bin.
  5. Склеивает boot.bin + kernel.bin → build/<name>.img (1.44 MB).

Стек тулчейна

Задача Инструмент Почему
C/C++ компилятор Zig (zig cc) Один бинарник, включает clang + lld + freestanding headers. Не нужен кросс-gcc.
Ассемблер NASM Стандарт для OSDev, 16-bit + 32-bit + 64-bit.
Линкер ld.lld Внутри Zig.
Эмулятор QEMU i386, x86_64, ARM — всё в одном пакете.
Отладчик GDB Подключается к QEMU через -gdb tcp::1234.

Roadmap

  • CLI + doctor + setup (NASM, Zig)
  • new + build + run + debug
  • Шаблон i686-c-mbr
  • Человеческие подсказки к ошибкам (errors.py)
  • Шаблон i686-cpp-mbr
  • Шаблон i686-c-printf (своя мини-реализация printf)
  • Шаблон x86_64-c-mbr (long mode, page tables)
  • Обработка прерываний (IDT, PIC, клавиатура)
  • ARM (aarch64)
  • GUI поверх CLI

Лицензия

MIT.

Metadata

Release files for python-osdev 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for python-osdev 0.1.0
File Size Uploaded
python_osdev-0.1.0.tar.gz 13.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for python-osdev 0.1.0
File Interpreter ABI Platform
python_osdev-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 30.5 kB

Release files / python_osdev-0.1.0.tar.gz

Download URL python_osdev-0.1.0.tar.gz
Size 13.9 kB
Tags Source
SHA-256 checksum
How to use checksums
6e59b0656f3e848ab616487569f8158740b0fab58707271d87aea4bf8df8cafb
BLAKE2b-256 checksum
How to use checksums
28132986c2edd23e3e22e885622223d19d38cb6afaccf8a295ad0153551c7903
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.9

Release files / python_osdev-0.1.0-py3-none-any.whl

Download URL python_osdev-0.1.0-py3-none-any.whl
Size 16.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
490d7e05ec81e4b569fe198b08642593ac036c2ac1ddeb9f34a5f4a9f10a938d
BLAKE2b-256 checksum
How to use checksums
dc3d3bd9f2c3f45faf4e704c2660ac8cf3ddbf08d905e567fe2b01006a8ee52a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.9

Release history Release notifications | RSS feed

0.1.1

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page