Skip to content

A9N is a Capability-based Microkernel / Microhypervisor in C++ with a Hardware Abstraction Layer (HAL) for easy portability and enhanced security.

License

Notifications You must be signed in to change notification settings

horizon2038/A9N

A9N_header

A9N Microkernel

GitHub Actions Workflow Status Contributor Covenant

LLVM C C++ LLVM

A9N is a Capability-Based Microkernel that supports a variety of hardware platforms through appropriate HAL.
It is implemented with an object-oriented interface, making it easy to use and extend.
It combines high portability, stability, and scalability.

A9N Components list

.
├── src
│   ├── kernel
│   ├── hal
│   │    └── include/hal/interface
│   │    └── {ARCH}
│   ├── liba9n
└── test

src/kernel

The main hardware-independent part of the A9N microkernel.

src/hal

A Hardware Abstraction Layer (HAL) is implemented to provide a portable interface to the underlying hardware.
The {ARCH} directory is referenced during the make process.

src/liba9n

The A9N base library. Used by the kernel, and HAL.

Architecture Status

Currently supported architectures:

  • x86_64 (Long Mode)

Requirements

Kernel

  • LLVM 18 or later
    • Clang
    • Clang++
    • LLVM Config
  • LLD

HAL

x86_64

  • NASM

Build (with Docker)

docker build -t a9n-build .
docker run --rm -v $(pwd):/A9N a9n-build bash -c "./scripts/setup.sh && make -j8"

Warning

Docker-based builds are currently under maintenance and unavailable.

Build (with CMake)

mkdir build
cmake -B build -DARCH={target_arch} -DCMAKE_TOOLCHAIN_FILE=./src/hal/{target_arch}/toolchain.cmake -DCMAKE_BUILD_TYPE={Debug|Release}
cmake --build build

Note

Currently, the CMake build supports only the kernel binary.

How to Use

  • Nun OS Framework is a framework for building Operating Systems based on A9N; Written in Rust.
  • A9NLoader is a bootloader for A9N-based systems (compatible with A9N Boot Protocol x86_64); Written in C w/EDK2.
  • A9NLoader-rs is a bootloader for A9N-based systems (compatible with A9N Boot Protocol x86_64); Written in Rust.

Author

horizon2k38 ( Rekka "horizon" IGUMI )

Email : horizon "at" sfc.wide.ad.jp
X : @horizon2k38
Mastodon : @[email protected]
Misskey : @horizon

Acknowledgements

MITOU JR : This project was supported by the MITOU Junior program.

  • @kyasbal : My mentor during the MITOU Junior program, who provided valuable advice.
  • @nuta : Gave me a advice on the implementation.

MITOU IT : This project was supported by the MITOU IT program.

  • @sowawa : My mentor during the MITOU IT program, who provided valuable advice.

And I would also like to thank everyone who supported this project.

License

MIT License

About

A9N is a Capability-based Microkernel / Microhypervisor in C++ with a Hardware Abstraction Layer (HAL) for easy portability and enhanced security.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published