The Node.js community has built itself an operating system. Known as NodeOS, this Linux kernel-based distribution layers a 100% JavaScript world on top of the traditional OS foundation. This layer is backed by the Node Package Manager (NPM), which allows all of the JavaScript applications to be downloaded and installed easily.

NodeOS is a slender operating system targeted at server needs. The project lives on GitHub, but is also available as a compiled image that is rebuilt after every commit.

While NodeOS is an exciting next step for the Node community, the project is still lacking in full support for traditional computing. Though NodeOS supports Linux Containers and Docker, it does not support mounting file systems within those containers. And file systems are a major sticking point for the operating system, as only RAM disks are supported at present.

(Related: The future of JavaScript is almost now)

That means file systems are destroyed at shutdown. User space does have access to home folders, which can be presented to the operating system at boot and then associated with a specific user. Root will receive this treatment first, and will have access to all potential home folders. Users will also be able to upgrade home directories for a user, later designated as Root.

Each layer of the operating system has its own future planned as far as file systems go. The initramfs archive is used to create the temporary RAM disks used to run a NodeOS machine. The rootfs will be read-only, and users will behave as a traditional userspace file system.

The fundamental goal of NodeOS is to build an ephemeral operating system for quickly deploying Node.js applications without requiring separate images for every application. The disposable nature of NodeOS means that configuring an instance will inherently be a part of booting that instance, making provisioning and configuration tools essential to the process.

The project is expected to reach version 1.0 sometime soon. NodeOS will continue to focus on NPM as the primary method of software installation, and will also remove more languages from the platform. With the exception of the Linux kernel, the goal is to have the OS be made up almost entirely of JavaScript.

About Alex Handy

Alex Handy is the Senior Editor of Software Development Times.