This website is about FreeNOS (Free Niek's Operating System). FreeNOS is an experimental microkernel operating system for learning purposes, licensed under the GPLv3.



v1.0.3 Released

This release contains fixes for various bugs, many code improvements and some new features, including:

  • Added support for the Allwinner H2+, H3 ethernet controller
  • Added DHCP protocol support
  • Added Message Passing Interface (MPI) with ethernet and host OS support
  • Added GCC-9, GCC-10, Clang-9, Clang-10 to supported compilers
  • Enabled LZ4 compression on all program binaries to reduce memory footprint
  • Partial support for fault tolerance (RecoveryServer, DatastoreServer)
  • Upgraded Jenkins to LTS version 2.263.1
  • Various new tests: FileSystemServerTest, LoopbackTest, MemoryBlockTest and more

With the above changes FreeNOS now runs on an experimental ARM based computer cluster of 112 cores:

v1.0.2 Released

This version has multiple bug fixes in memory management, and includes several improvements in code and design for libraries (libstd, libipc, libfs, liballoc). Additionally, this version adds more test coverage and the ability to run some FreeNOS servers and user programs on the host operating system. Finally, this version has an improved heap allocator that boosts overall system performance.

v1.0.1 Released

This new version comes with a few new features and many smaller improvements and bugfixes. The list of new features includes:

  • Allwinner H2+/H3 System-on-Chip support
  • Multicore support for ARM targets
  • Clang support for ARM targets
  • Fully automated creation of Jenkins master and slaves using Vagrant (

v1.0.0 Released

With great pleasure I would like to announce that FreeNOS v1.0.0 is released. With many years after the previous release, this version contains a long list of new features and improvements, including:

  • ARMv6/ARMv7 architecture support (Raspberry Pi 1,2,3)
  • Symmetric Multi Processing with MPI support (Intel x86 only)
  • Devices (Raspberry Pi only):
    • USB controller and (root)hub
    • Loopback network and SMSC95xx ethernet driver
    • PL011 UART
    • ARMv7 generic timer
    • Broadcom 2835 timer, interrupt, mailbox, power and GPIO drivers
  • Commands:
    • 10+ new commands, including mpiping, mpiprime, ipctest, sysinfo, bench and more
  • Libraries:
    • libstd, for standard datastructures and algoritms
    • libipc, implements user-space IPC using shared memory (replaces IPCMessage())
    • libarch, provides architecture abstractions and platform specific code (including MMU)
    • libfs, filesystem abstractions and interfaces library
    • libmpi, basic Message Passing Interface (MPI) library
    • libnet, networking protocols library
    • libusb, generic USB implementation
    • libtest, generic test library for building autotesters
  • Build system extended with configuration files for target/host compilers and multiple architectures
  • Added basic networking (IP, UDP, ICMP, for Raspberry pi 1 only)
  • Fully automatic autotester
  • Example Jenkins CI scripts for continuous integration (Ubuntu/FreeBSD slaves)
  • All sources re-documented with Doxygen (
  • All sources updated for latest GCC and LLVM compilers with optimization (-O2)
  • Many stability improvements and bug fixes

Additionally, the FreeNOS website is completely redesigned using Bootstrap 4!

Code moved to git

All FreeNOS code has been moved to Git at googlecode. Git offers several benefits comparing to Subversion. See the Git Website for details. Please use the following command to retrieve the FreeNOS code from googlecode:

$ git clone

Busy, Busy, Busy

It's been some time since we posted something here, and not without reason. We are simply extremely B-U-S-Y =) That's not a bad thing per definition, but it leaves little time for FreeNOS so far. Nevertheless, we do our best to continue our work on next version of FreeNOS. Most likely, this release will not contain many new features, only improve what is already in FreeNOS. This also means we're gonna try to make the system reliable, like Minix3!

Take care,


v0.0.4 Released

After two months of hard work since we released 0.0.3 in July, we finally have a new version of FreeNOS! This release has new features, enhancements and bugfixes, including:

  • Shared and Private Memory mappings support in MemoryServer
  • Added Device and DeviceServer classes for easy driver programming (abstracts the IPC layer)
  • Abstracted the IPC layer from FileSystems, Files and Directories (also with IOBuffer class)
  • Simplified virtual FileSystems by using synchroneous I/O and Shared memory mappings.
  • FileURI improvements in libparse
  • ATA Host Controller support (read-only drive sectors)
  • VGA device in /dev/vga0 (removed from Terminal)
  • Keyboard device in /dev/keyboard0 (removed from Terminal)
  • RTC Time device in /dev/time0
  • Draft version of USB UHCI Host Controller in /dev/usb0
  • PCI pseudo FileSystem implementation in /dev/pci
  • GRUB pseudo FileSystem implementation in /dev/grub
  • /etc/rc is now executed with /bin/sh by /sbin/init
  • Reduced the number of programs in the BootImage (boot/boot.img.gz)
  • Added basename(), chdir() and syslog() support to libposix
  • Length modifier support for format strings in libc
  • Extra Doxygen documentation

FreeNOS Interview at HAR(.FM) 2009!

The day has finally arrived: HAR 2009! We all got here yesterday, and are having a really great time. There are a LOT of interesting talks organized, cool workshops (especially lockpicking ;) and they even have their own radio station: HAR.FM.

Today, I met Luc Nieland of HAR.FM and he invited me for a live interview about FreeNOS! It was my first interview ever, but I really enjoyed it :-) Click here to download the interview.

300,000 Page Hits in July!

We almost can't believe it, but it seems our webpage has been quite busy the last few weeks! TransIP statistics reported over 300,000 page hits total in July 2009, with an average of 11,000 page hits per day!

New Bug Tracking System!

The last few days we've been looking at the issue list of Google Code and we decided that as of today we'd use the list of issues in favor of flyspray. Google Code's Issue list provides us with extended functionality Firefly doesn't provide, like for example integration with the version control where we can close issues from svn commit messages. The issue history has been moved to Google Code and we're ready to start using our new bug tracking system!

You can find more information about Google's IssueTracker at

  Page 1 / 2   »