Few would argue the Node.js ecosystem is powerful enough to drive any number of server-side applications and frameworks. But could it also drive an entire operating system consisting of little more than the Linux kernel, Node.js engine, and Npm package manager?
The NodeOS project was created to find out how far such an approach could go. It's now on the verge of its 1.0 release and is preparing to reach out to a wider audience than its circle of alpha testers.
NodeOS is a small-footprint Linux distribution that uses only the Linux kernel, with the Node.js engine and Npm on top as a userland component. All software is provided via Npm packages or the Vagga container engine, though there's talk of enabling support for Docker.
NodeOS is primarily intended for running Node in cloud or minimal-hardware environments, echoing the approach of Linux distributions like CoreOS. Tentative plans for NodeOS include support for ARM processors (it's currently x86-only) and a graphical HTML5-based GUI, according to its developers.
The project has already garnered favorable attention as the winner of the Spain's 9th National Free Software Championship (it's currently a participant in the 10th edition), and as winner of the Granada University 2nd Free Projects prize.
Other people have entertained the concept of a Linux- or Unix-like OS with the kernel or userland -- or both -- written in a language other than C. The Clive project aims to provide an OS written entirely in Go, and the Redox project attempts to provide an OS written end-to-end in Rust.
NodeOS has a couple of advantages over those projects. Not only is it immediately useful, due to Node.js and its software ecosystem, NodeOS uses the existing Linux kernel, so most software written for Linux can in theory work with it. But the rapid growth of Go and Rust ensure more work in this vein is on the way.