Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/leecannon/zig-x86_64

Support for x86_64 specific instructions (e.g. TLB flush), registers (e.g. control registers), and structures (e.g. page tables)
https://github.com/leecannon/zig-x86_64

osdev x86 x86-64 zig zig-library zig-package ziglang

Last synced: 3 months ago
JSON representation

Support for x86_64 specific instructions (e.g. TLB flush), registers (e.g. control registers), and structures (e.g. page tables)

Awesome Lists containing this project

README

        

# zig-x86_64

[![CI](https://github.com/leecannon/zig-x86_64/actions/workflows/main.yml/badge.svg?branch=master)](https://github.com/leecannon/zig-x86_64/actions/workflows/main.yml)

**I don't use this library anymore. I made this as a port of the rust crate but over time I have come to dislike the API.**

**As written it does not support self-hosted so will probably be deleted with the release of zig 0.11**

This repo contains various functionality required to make an x86_64 kernel (following [Writing an OS in Rust](https://os.phil-opp.com/))

It is mainly a zig reimplementation of the rust crate [x86_64](https://github.com/rust-osdev/x86_64).

It includes a few additonal types in the `x86_64.additional` namespace:

- `SerialPort` - Serial port type, mainly for debug output
- `SimplePic` - Reimplementation of [pic8259_simple](https://docs.rs/pic8259_simple)

## How to get

### Gyro

`gyro add leecannon/x86_64`

### Zigmod

`zigmod aq add 1/leecannon/x86_64`

### Git

#### Submodule

`git submodule add https://github.com/leecannon/zig-x86_64 zig-x86_64`

#### Clone

`git clone https://github.com/leecannon/zig-x86_64`