Saturday, June 16, 2012

Beginning a FreeBSD based Operating System

Luckily for users of the computer world today, there are many different types of operating systems. While there are lots of different types out there, I feel that none of them are really that interesting to learn about. For this reason, I am embarking on an endeavor to create my very own operating system, to learn about and experiment with.

Rather than going through the arduous process of writing a custom system kernel, I will be doing something different. I recently downloaded FreeBSD (http://www.freebsd.org/), a command-line only UNIX based operating system, and will be modifying it to create my own operating system. I will using FreeBSD instead of the more popular Linux for the following reasons:

  1. It already has a proven foundation as a part of Mac OS X and 
  2. its licensing is less restrictive than the GPL frequently used under Linux.

I'll start by installing FreeBSD to a computer and configuring the network connection. From there I'll install the X Window System and a lightweight desktop environment with a custom, modified window manager and my own program launcher. From there I'll come up with a use for it and then distribute it.

Sounds simple, yet the project will test my abilities. Hopefully if all goes well then version 2.0 will be better, faster and capable of more heavy lifting. My goals for the project are:

  • Create a functional operating system with two parts: a desktop environment and an edition with only a command line;
  • Allow both versions to inter-operate, that is, an administrator on one edition can boot another user from the system, showing the usual message on the command line environment and a "Shutdown Warning" dialog box for users of the desktop;
  • Tweak the desktop enough so it is useable by users coming from all kinds of backgrounds: Mac or PC - this may mean adding to capability to allow switching from a panel based interface like Windows and most Linux desktops to one with solely a Dock-like application and panels that displays stuff like the system time;
  • And finally, create an operating system that ships with the best software that is needed to perform nearly all tasks - a web browser, file manager, etc. A few of these are already implemented in open source software.
Screenshots and development information will be posted as needed, and when it is available. Eventually, but not in the near future, beta testing will commence. I'll see you there.

1 comment:

Jamuna Pandy said...

Really nice post. Unix is a multiuser and multi tasking operating system at the same time. Unix Training in Chennai offering real time Unix course at reasonable cost.