WHAT EXACTLY DO I NEED TO MAKE AN OS

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
YOSHO

WHAT EXACTLY DO I NEED TO MAKE AN OS

Post by YOSHO »

IM REALLY NEW AT THIS WHAT PROGRAMS WILL I NEED TO MAKE AN OS AND WHERE CAN I GET THESE PROGRAMS
I WANNA MAKE A LINUX OS OF MY OWN HOW AND WHAT DO I NEED?
User avatar
Pype.Clicker
Member
Member
Posts: 5964
Joined: Wed Oct 18, 2006 2:31 am
Location: In a galaxy, far, far away
Contact:

Re:WHAT EXACTLY DO I NEED TO MAKE AN OS

Post by Pype.Clicker »

First, you need to read some nettiquette docs ... writing ALL IN CAPS in a forum means you're shouting at people, and it is pretty disgraceful to read...

all the things you need to compile linux is the gnu tools (gcc, ar, ld, as ...) and should be available in any decent linux distribution ... though i'm not 100% sure to understand what you mean with "make a linux OS of your own" ... Your own Linux distribution or your own linux-compatible kernel ? or something else i completely missed ...
yosho

Re:WHAT EXACTLY DO I NEED TO MAKE AN OS

Post by yosho »

im sorry for writing in all caps.
i want to make a linux distro.
basically i want to know how to make my own set of GUI
its own kernel and do everything to make a fully operational OS...
Therx

Re:WHAT EXACTLY DO I NEED TO MAKE AN OS

Post by Therx »

i want to make a linux distro.
basically i want to know how to make my own set of GUI
its own kernel and do everything to make a fully operational OS...
That's three different projects. A linux distro is a collection of a kernel, apps, config files etc. A GUI is a pretty difficult project on its own and if you write your own OS it will be a while before you can put a GUI on it.

The final statement is the thing that everyone here is doing. It is harder than making a distro but more satisfying

Pete
Curufir

Re:WHAT EXACTLY DO I NEED TO MAKE AN OS

Post by Curufir »

i want to make a linux distro.
basically i want to know how to make my own set of GUI
Ok, I'm making a guess at what you actually want to do here, so I may be barking up the wrong tree :).

Option 1
If you want to make your own Linux distro from scratch then take a look here at the LFS site (Choose a mirror from this page):
http://www.linuxfromscratch.org

If you follow the LFS book you'll wind up with very lean Linux distro. Basically it consists of only the things you need to get a linux computer up and running, along with a full GNU toolchain (Binutils, GCC, Glibc).

Now build yourself XFree86, using the instructions found in the book here (Again, choose a mirror):
http://beyond.linuxfromscratch.org/index.shtml

You'll need to compile a number of libraries before building your XFree86 server, the BLFS book should explain which are required.

Ok, now you have a very small Linux distro with an XFree86 graphical environment (Using the TWM window manager).

This is all you need.

Now look into programming with xlib (And optionally GL/GLX for OpenGL programming). Xlib contains everything you need to program in the XFree86 environment, and if you've picked up the full XFree86 source package you'll have all the development tools you need.

You can program your whole environment just using xlib, but more likely you're going to want to make its functionality a little easier to use. You can do this by coding yourself a widget library over the top of it, or using one of the publicly available ones (Eg GTK+, Motif, Qt). There you go, you now have a basic Linux, a graphical environment, the tools to display fun graphics within that environment, and the means to capture events from the user (That's xlib again in case you were curious). The rest is all up to you, and if you're building a desktop GUI from scratch then it's going to take you a while (At least to get as far as Gnome or KDE).

While you're doing all that look up as much as possible on package mechanisms. RPM is popular, as is (Nowadays at least) Gentoo's ebuild system. Packages will make things a lot easier for your users.

***

Option 2

You want a Linux compatible OS that you control, and are happy with the GPL.

Fork Linux. There's nothing stopping you taking the Linux source and using it as the basis for your own work so long as you abide by the terms of the GPL. You'd just have to offer something significantly innovative to persuade people to use your kernel and not the official Linux kernel.

***

Option 3[/i]

Ok, let's say you didn't want to just make a Linux distro, or use the current Linux as a base, but a whole new OS that's compatible with Linux.

First off ignore the Linux part of the equasion. Make it POSIX compatible first and then concentrate on handling the minor idiosyncrasies of Linux. Some of the BSD's already run Linux applications in an emulation layer (Often faster than Linux does).

As for the rest, you're stuck learning the same things as the rest of us. How to boot your particular system, hardware programming and OS control algorithms.
mystran

Re:WHAT EXACTLY DO I NEED TO MAKE AN OS

Post by mystran »

Just install Gentoo and Gnome2. Then write down what you don't like about them. Gentoo's about as good as a Linux distribution can be, and Gnome2 is pretty decent for a GUI.

Once you have that list, if it consist of a set of improvements or changes, you probably don't want to make your own system, but instead either participate or fork one of the projects.

As for writing an OS kernel.. you write a program that is able to work on bare hardware, and run the programs you want it to run. Anything after this depends on your OS concept, though I'd imagine you probably want to write a thread scheduler, virtual memory manager, some kind of device driver framework, some means of communicating between different programs, and so on..
Post Reply