https://github.com/smallkirby/writing-hypervisor-in-zig
Writing Type-1 Hypervisor in Zig from scratch.
https://github.com/smallkirby/writing-hypervisor-in-zig
hypervisor zig
Last synced: 4 months ago
JSON representation
Writing Type-1 Hypervisor in Zig from scratch.
- Host: GitHub
- URL: https://github.com/smallkirby/writing-hypervisor-in-zig
- Owner: smallkirby
- License: cc0-1.0
- Created: 2024-10-13T10:58:34.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-08-23T13:17:23.000Z (9 months ago)
- Last Synced: 2025-11-05T18:30:41.180Z (7 months ago)
- Topics: hypervisor, zig
- Language: JavaScript
- Homepage: https://hv.smallkirby.com
- Size: 10 MB
- Stars: 27
- Watchers: 3
- Forks: 5
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# Writing Hypervisor in Zig


Blog series where we write a hypervisor from scratch in Zig language, that can finally boot Linux kernel.
Refer to [smallkirby/ymir](https://github.com/smallkirby/ymir)'s `whiz-*` branches for the reference implementation.
Note that these branches might be not necessarily up-to-date.
Please refer to `master` branch to check available fixes and updates.
## Development
```sh
# Japanese
./scripts/serve.sh ja book
# English
./scripts/serve.sh en book/en
```
## Contributions
Request an update when you:
- Find a technical error in the description
- Find an expression that is hard to understand
- Find a typo or misspelling
- Find that the provided code does not work or is hard to understand
- Want to add a new topic that is not covered in this series
- Want to read the blog in a different language
You can create an issue or pull request to request an update or fix.
You don't need to create an issue before creating a pull request.
We welcome any requests or fixes.
## Translations
This blog series is available in the following languages:
- Japanese (Original)
- English
We use [google/mdbook-i18n-helpers](https://github.com/google/mdbook-i18n-helpers) to support multiple languages.
To update translations, use below commands:
```sh
# When original (Japanese) version is updated, run below command to update the POT file.
MDBOOK_OUTPUT='{"xgettext": {}}' mdbook build -d po
# Update translations
TARGET_LANG=en
msgmerge --update po/$TARGET_LANG.po po/messages.pot
```
`po` files can be edited using PO editors like [Poedit](https://poedit.net/).
## LICENSE
[CC0-1.0](LICENSE) except where otherwise [noted](./src/license.md).