blog_os README

The project's README from github.com/phil-opp/blog_os. As one markdown file: README.md.

Blog OS

This repository contains the source code for the Writing an OS in Rust series at os.phil-opp.com.

If you have questions, open an issue or chat with us on Gitter.

Where is the code?

The code for each post lives in a separate git branch. This makes it possible to see the intermediate state after each post.

The code for the latest post is available here.

You can find the branch for each post by following the (source code) link in the post list below. The branches are named post-XX where XX is the post number, for example post-03 for the VGA Text Mode post or post-07 for the Hardware Interrupts post. For build instructions, see the Readme of the respective branch.

You can check out a branch in a subdirectory using git worktree:

git worktree add code post-10

The above command creates a subdirectory named code that contains the code for the 10th post ("Heap Allocation").

Posts

The goal of this project is to provide step-by-step tutorials in individual blog posts. We currently have the following set of posts:

Bare Bones:

Interrupts:

Memory Management:

Multitasking:

First Edition Posts

The current version of the blog is already the second edition. The first edition is outdated and no longer maintained, but might still be useful. The posts of the first edition are:

Click to expand

Bare Bones:

Memory Management:

Exceptions:

Additional Resources:

License

This project, with exception of the blog/content folder, is licensed under either of

at your option.

For licensing of the blog/content folder, see the blog/content/README.md.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

blog_os (phil-opp/blog_os)

Searching Database…

17.8K ·GitHub
Что это такое?Исходный код серии постов 'Writing an OS in Rust' на os.phil-opp.com — пошаговые статьи, в которых на Rust создаётся небольшое ядро операционной системы для x86-64.
Это просто блог, или будет и код, который можно запустить?И то, и другое: к каждому посту на сайте прилагается рабочий код, который лежит в отдельной ветке git этого репозитория, так что вы можете запустить именно то состояние кода, которое описано в посте.
Как получить код для конкретного поста?Перейдите по ссылке (source code) рядом с постом или сразу переключитесь на его ветку — ветки называются post-XX (post-03 — это VGA Text Mode, post-07 — Hardware Interrupts). Инструкции по сборке находятся в README каждой ветки.
Серия уже завершена?Работа ещё продолжается: во втором издании 12 постов, и пока оно заканчивается разделом Async/Await в части о многозадачности. Более старое первое издание больше не поддерживается.
Мне нужно знать Rust до того, как начать?Посты идут пошагово, но писать на Rust вы начинаете с самого первого ('A Freestanding Rust Binary'), так что базовое знание Rust по сути необходимо. Самим концепциям разработки ОС учат с нуля.
Где вообще будет работать получившаяся ОС?Ядро нацелено на «голое железо» x86-64 — оно запускается напрямую на оборудовании или в эмуляторе вроде QEMU, а не внутри существующей ОС типа Linux или Windows.
Могу ли я использовать код в своих проектах?Да — код распространяется по двойной лицензии Apache-2.0 и MIT, так что можно выбрать любую. Папка блога с контентом лицензируется отдельно (см. blog/content/README.md).
Какие темы затрагивают посты?Четыре раздела: Bare Bones (автономный бинарник, минимальное ядро, текстовый режим VGA, тестирование), Interrupts (исключения процессора, двойные ошибки, аппаратные прерывания), Memory Management (страничная память, выделение из кучи, схемы аллокаторов) и Multitasking (async/await).
С чего новичку лучше начать?С первого поста раздела Bare Bones, 'A Freestanding Rust Binary'. Посты опираются друг на друга по порядку, и у каждого есть соответствующая ветка post-XX в этом репозитории с его кодом.
Можно держать код нескольких постов рядом, не переключая ветки?Да — в README предлагается git worktree, который выгружает ветку в отдельный подпапку; в примере код поста post-10 (Heap Allocation) кладётся в папку с именем code.
Почему GitHub указывает язык HTML, если это ОС на Rust?В корне репозитория лежит сам сайт блога; настоящий код ядра на Rust находится в ветках отдельных постов, поэтому главная страница показывает сайт, а не исходники ядра.
Creator
phil-opp
Size
21.4 MB
Stars
17.8K
Updated
CommitAug 07
Age
11y
Commits · 90 Days