Need help with EwokOS?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

146 Stars 28 Forks Apache License 2.0 1.6K Commits 2 Opened issues


A microkernel os for ARM, well ported on Raspberry Pi(s)

Services available


Need anything else?

Contributors list



Misa.Z [email protected]


A microkernel OS for learning operating system. versatilepb / raspi1,2,3 ported well, raspi4 todo....
-multi processes
-multi thread
-virtual fs service(everythig is a file)
-very simple ramdisk for initrd
-framebuffer device service for graphics
-uart device service
-SD card

.Environment & Tools

    brew install glib
    brew install pixman
    brew install pkg-config
    download modified qemu-4.2.0 from
    ./configure --enable-kvm --enable-hax --target-list=arm-softmmu
    make and make install
    Ubuntu Linux 16.04 with "libglib2.0-dev","libpixman-1-dev","libsdl2-dev","gcc-arm-none-eabi","gdb-arm-none-eabi" or "gdb-multiarch","fuseext2"
    installed(can install by "apt")

Mac OSX(with brew installed):
brew tap PX4/homebrew-px4 brew install gcc-arm-none-eabi-49 (set the right PATH environment after installed) download usb to ttl driver brew install python pip install pyserial

How to create/mount ext2 image in macosx ===============prepair================ brew install e2fsprogs brew cask install osxfuse brew install libtool brew install autoconf brew install automake

CFLAGS="-idirafter/opt/gnu/include -idirafter/usr/local/include/osxfuse/ -idirafter/$(brew --prefix e2fsprogs)/include" LDFLAGS="-L/usr/local/opt/glib -L/usr/local/lib -L$(brew --prefix e2fsprogs)/lib" ./configure
sudo xcode-select -s /Applications/
sudo make install
dd if=/dev/zero of=img bs=1024 count=16384
mke2fs img
mkdir -p tmp
fuse-ext2 -o force,rw+ img tmp
(copy files)
umount ./tmp
rm -r tmp

.tty debug

install /dev/xxxUSBTTY 115200

.make and run

"cd system; make/make full(with XGUI)":
  build EwokOS rootfs apps and sd file system.
"cd kernel/build/{arch}; make":
  build EwokOS kernel image.
"make run":
  run EwokOS;
"make debug":
  run EwokOS at debug server-mode.
"make gdb":
  debug EwokOS (debug client-mode).


Most of commands are in 'rootfs/sbin' directory, like:
ls, ps, pwd, test ......

.Source code read-guide Tips: Don't fall in love with assembly too much;).

. Kernel init memory map

PhyMem        VMem         Desc
0x00000000    0xFFFF0000   interrupt table
0x00008000    0x80008000   Kernel start (load to)
***           ***          (_init_stack, _irq_stack, _startup_page_dir)
***           ***          Kernel end, Kernel PageDir Table start
+16KB         +16KB        Kernel PageDir Table end.
+128KB        +128KB        kernel malloc base
+32M           +32M          kernel malloc end (size=2M).
physical ram top           Share memory start base               

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.