If this is the first time you’re hearing about it, NodeOS is the first ever operating system powered by Node.js & npm and built on top of the Linux Kernel. Jacob Groundwater introduced this project in mid-2013. The primary technologies used in building the system are:
- Linux Kernel: The entire OS is built on the Linux Kernel.
- Node.js runtime: Node is used as the primary runtime.
- npm Packages: npm is used for package management.
NodeOS source is hosted on Github Repository. So, anybody interested can easily contribute and report bugs. Users can build from source or use the pre-built images available. The build process and quick start guide can be found at project repository.
The idea behind NodeOS is to provide just enough to let npm run on it and then the rest of the functionalities will come from npm packages. So, the users have access the vast collection of about 250,000 packages and that number is continuously increasing every day. And everything being open-source, it’s always easy to patch bugs and add more packages to npm according to your need.
NodeOS core development is separated into layers and the general structure includes:
- barebones – custom Linux kernel along with an initramfs that boots to a Node.js REPL
- initramfs – Initram filesystem to mount the users partition & boot the system
- rootfs – Read-only partition image hosting the Linux kernel & initramfs files
- usersfs – multi-user filesystem (as traditional OSes)
NodeOS aims to be able to run on virtually any platforms, including – Real Hardware (personal computers or SOCs), Cloud platforms, Virtual machines, PaaS providers, Containers (Docker & Vagga ) etc. And so far, it seems that they’re doing pretty good. On March 3, Jesús Leganés Combarro, NodeOS member on GitHub, announced that:
NodeOS is not a toy OS anymore, and it’s very capable to be used on production environments for real use cases from now on.
So, if you are a die-hard fan of Node.js and/or have a knack for trying new things, this might be the thing for you to try. And in related post, you should read about these niche Linux distributions for specific usage.