Skip to content

kwrx/aplus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

aplus #os

deploy GitHub release (latest by date) License: GPL

A hobby operating system built mostly from scratch with a unix-like, hybrid and cross-platform kernel.

🔥 Features

  • Cross-platform: arch/*, designed for cross-platform environment targets
  • Multitasking: Thread and Process support with SMP
  • Network: kernel/network/, Almost full TCP/IP Network Stack by lwIP
  • Unix-like: VFS, Signals, Pipes, IPC, Shared Memory, Unix Sockets
  • ELF: Dynamic and static executables
  • Linux Framebuffer: Linux-like framebuffer support
  • Linux Syscalls: Linux-like syscall layer
  • Virtio: Virtio devices (gpu, block, network, crypto)
  • GUI: coming soon...

See FEATURES.md for more information about features.


aplus v0.4 - CLI interface running on Qemu

:electron: Kernel

The kernel provides a basic unix environment with a minimal subset of posix stuff. Moreover, it uses a modular architecture with loadables kernel objects and run on different platforms like x86, x86_64, ARM, etc.

🤖 Userspace

Userspace is still under development. It provides several GNU/Linux core tools, devtools like gcc or binutils, a very simple Java Virtual Machine, graphical interface, windows manager, services like NTP, I/O Cache Sync and so on.

Furthermore, userspace has multi-user environment with unix permission support, superuser (root), unix-like filesystem with /proc and /dev implementation

🔌 Drivers

Modules provides various core platform features: caching, char/block devices, filesystems, I/O devices, system low-level services, network, audio/video and virtio support.

Notable modules


⚡ Getting Started

  1. Clone this repository and change working directory.
$ git clone https://github.com/kwrx/aplus
$ cd aplus

Now you have basically two options to build image from sources.

Building with Docker (Recommended):

  1. Pull and run the build system in a docker image environment
# docker run -it --privileged=true      \
    -v $(pwd):/opt/prj/aplus            \
    -w /opt/prj/aplus -t ubuntu:focal   \
    ./extra/utils/build-with-docker
  1. Run it (Linux):
$ ./extra/utils/run-qemu TARGET

NOTE: replace TARGET with the target build: i686, x86_64, etc.

Building with Toolchain:

It's recommended you use a recent Linux host environment with this method.

Some packages are required for the build system:

  • binutils, make, autoconf, automake (or build-essential on Ubuntu/Debian)
  • gcc, g++ to compile c/c++ sources
  • nasm to compile asm sources
  • python3 to run some build scripts
  • e2fsprogs, grub, parted, dd, fc-scan to generate hdd image
  • qemu or VirtualBox to run Virtual Machine

  1. Install dependencies
$ pip3 install -r docs/requirements.txt
  1. Configure and check environment
$ ./configure
  1. Run it
$ ./makew run

🌐 Third-Party Software:

aplus uses and depends on a large number of third-party open-source tools and libraries which are outside of this repository.

Licenses for the included third-party tools and libraries can be found here, and for project here