NodeOS: The JavaScript Based Operating System

Unlike other JavaScript development tools, Node.js is developed as a cross-platform runtime engine. It interprets JavaScript code using Google’s V8 JavaScript engine. The V8 JavaScript engine converts JavaScript code into native machine code. But Node.js enables web developers to write both front-end and back-end code in JavaScript. Also, it uses a fast, consistent and dependable package manager like npm to make it easier for developers to specify and install project dependencies without putting extra time and effort.

The web developers also have option to avail NodeOS, a lightweight operating system designed based on Node.js. The project was initially introduced by Jacob Groundwater in 2013. Jacob Groundwater has already made release candidates of NodeOS available to developers for testing and bug detection. Hence, the developers will soon have option to use version 1.0 of NodeOS in production environments. However, it is also important for the developers to understand the key features and technologies that make NodeOS different from other operating systems.

Overview of Key Features of NodeOS

Developed on top of Linux Kernel

The lightweight operating system in designed on top of the Linux kernel. It uses the Linux critical to accomplish a variety of performance critical tasks including hardware interactions. The developers can run the applications written by targeting Linux operating system on NodeOS with minimal changes.

Uses Node.js as Its Primary Runtime

Unlike other operating systems, NodeOS is written in JavaScript. It uses Linux kernel to accomplish most performance critical tasks. But it used Node.js to accomplish all remaining tasks. So the users can take advantage of various features and tools provided by the cross-platform runtime engine. Also, they can manage project dependencies efficiently with npm.

Uses npm as Its Primary Package Manager

NodeOS further aims to extend and enhance the functionality of npm as a robust package manager. As the operating system uses npm as its primary package mangers, the developers can use any npm package as a NodeOS package. Hence, the users have option to use more than 244,180 packages. Also, they can easily avail the new npm packages being updated by other developers on a regular basis.

Different Layers of the Operating System

The core NodeOS is divided into a number of layers including barebones, initramfs, rootfs and usersfs. Each layer has its own structure and file system. Barebones include the custom Linux kernel and initramfs. As the initram file system, initramfs facilitates mounting of users partitions and booting the system and Node.js REPL. At the same time, rootfs includes the read-only partition images require for hosting the Linux kernel and initramfs files, whereas usersfs contains the multi-user file system used by conventional operating systems.

Keeps the System Secure

NodeOS allows each user to work with isolated file systems. Each user can further use a distinct file system hierarchy to install the packages globally. When a hacker accesses the operating system through a specific user account or profile, he will be able to access only the partition of the specific user. He will lack all options to access the partition of other users. Hence, no hacker can completely affect the security of the entire system.

Aims to Run on Many Platforms

The developers of NodeOS aim to make the lightweight operating system run on many devices and platforms. Hence, users will have option to run NodeOS on their personal computers and other real hardware. At the same time, they can also run the operating system on virtual machines, cloud platforms, containers and PaaS providers.

The developers can gather information about the release date of NodeOS 1.0 from the release roadmap posted on Github. They can further consider using the lightweight operating system to build responsive applications by leveraging the features of JavaScript. But many analysts find it difficult to review or evaluate NodeOS properly as it is still a work in progress.


Originally published at javascript-development.blogspot.com.