Skip to main content

CI PyPI PyPI downloads License: MIT Python 3.10+ Platform: Windows

osdev

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 секунд.

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

:: 0. установить инструмент
pip install python-osdev

:: 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

- [x] CLI + `doctor` + `setup` (NASM, Zig)
- [x] `new` + `build` + `run` + `debug`
- [x] Шаблон `i686-c-mbr`
- [x] Человеческие подсказки к ошибкам (`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.1

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.1
File Size Uploaded
python_osdev-0.1.1.tar.gz 13.9 kB Details

Built distribution (wheel)

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

Total release size: 30.5 kB

Release files / python_osdev-0.1.1.tar.gz

Download URL python_osdev-0.1.1.tar.gz
Size 13.9 kB
Tags Source
SHA-256 checksum
How to use checksums
9e311b7d0536234920cf2c1e086d8f28dcb34c7c926286378a863dc6a74b8a12
BLAKE2b-256 checksum
How to use checksums
0cf34ea2ae04fc606179b04e492ec4208d3a85d0dc66ffac45e0551b9f8cb385
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

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

Download URL python_osdev-0.1.1-py3-none-any.whl
Size 16.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9aee94b1e14053be21a78e3188bdbb532a14c0a7df45e87b114efd3d3568ca83
BLAKE2b-256 checksum
How to use checksums
c684e2fcfb0f8531d6927ab914593f29f4b6d9c755d9040afd13ae206911d868
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

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