Nodes

The latest version of Nodes is 0.01

Table of contents


Introduction

Nodes is an operating system kernel which is being developed by me, Apurva Mehta, as an effort to get some practical experience with operating system development. I am a 20 year old Computer Engineering student in Mumbai, India.

The name Nodes stands for NO DESign. Basically I am writing it to get familiar with my IA-32 machine, with the GNU development tools and with operating system development concepts. The ultimate goal is to write an operating system which is mathematically correct. I believe that programming is a scientific discipline and my hope is to write an operating system in that spirit. Nodes is just a stepping stone toward that goal. I continue to research the math needed in accomplishing that goal while Nodes is being written.

Back to Top


Design

When I explained the meaning of the name, I really meant what I said. There has been absolutely no design process involved in the construction of Nodes.

There are two things that you might find helpful if you want to have a look at the Nodes source code.

  1. Nodes is a monolithic kernel.
  2. The source code layout is modelled on that of Linux.

Back to Top


Future Plans

I do not intend Nodes to be a UNIX clone. As a result of this decision, I have no System Call Interface in mind at the moment. I do not think there will ever be such a formal specification for Nodes. I think that I will be the only one writing programs for Nodes and those programs will exist purely to test the capability of the kernel. Not to make it useful.

However, There are a lot of things I want to do with Nodes before I move on:

If you also believe that programming is a scientific discipline and want to help me design and build an OS which can be mathematically proven to work, then please get in touch with me. My inspiration is Edsger Dijkstra and I find his papers an invaluable source of information. You can find many of his papers online here .

If you have no OS development experience and want to get started, then you will find that Nodes is so small that it is easy to understand.

Back to Top


Current Status

Currently, Nodes has the following features:

Back to Top


Development environment

The programming language for Nodes is ANSI C. x86 assembly is used only when there is no way doing a particular thing in C.

The GNU development tools are the tools of choice for developing Nodes. These include :

Back to Top


Getting Nodes

You can download Nodes from the following locations:

Nodes uses GNU Grub as its bootloader. If you do not already have Grub installed, you can get it from here. Alternatively, I have prepared a bootable floppy image which contains GNU Grub as well as Nodes. You can download this image here. You must first uncompress this image and then write it straight to a floppy. On UNIX systems, you can use dd, on Windows Systems rawrite is available.

Back to Top


Apurva Mehta
  • Last Updated 17th January 2004