OS List

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
dromenox
Posts: 5
Joined: Fri Oct 24, 2014 8:31 am

OS List

Post by dromenox »

Could you tell me some open source operating systems that you acknowledge that meet these requirements (in order of importance)?

- Simple (do not want one like MenuetOS, I want something more like MikeOS).
- Written mostly in C
- Simple file system.
- Allows you to develop, compile and run applications inside the system.
- Command Line Interface
- Single task
- 32-Bit Protected Mode

I want to develop a simple operating system, but am not finding some things. So maybe looking at some code I learn easier.
User avatar
Combuster
Member
Member
Posts: 9301
Joined: Wed Oct 18, 2006 3:45 am
Libera.chat IRC: [com]buster
Location: On the balcony, where I can actually keep 1½m distance
Contact:

Re: OS List

Post by Combuster »

If you want to learn from an existing kernel, you also learn to repeat the same mistakes that kernel made. There are various kernels out there made by members, and they all act differently, are designed differently, and are complex each in their own ways. Fact remains that operating systems are the most complex things to develop and you might just want to start with small things and ask for help there instead of trying the entire package all at once.

In particular, what I consider the closest match to your requirement is also possibly the best way to teach you the worst possible habits, so regrettably, I'll have to pass on posting it.
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]
madanra
Member
Member
Posts: 149
Joined: Mon Sep 07, 2009 12:01 pm

Re: OS List

Post by madanra »

Minix meets most of those requirements. It is not single tasking; most build systems require multi-processing (eg. make runs gcc, immediately you have 2 processes). Compared to Linux it is simple; compared to MikeOS it is not. All the other requirements are fulfilled.
mallard
Member
Member
Posts: 280
Joined: Tue May 13, 2014 3:02 am
Location: Private, UK

Re: OS List

Post by mallard »

madanra wrote:Minix meets most of those requirements. It is not single tasking; most build systems require multi-processing (eg. make runs gcc, immediately you have 2 processes).
Most build systems don't actually need multi-processing, just multiple-programs-in-memory; i.e. make doesn't run until gcc ends. "True" single-tasking systems are very rare, most are of the "task stack" type (e.g. MS-DOS, early Macintosh System Software versions, Atari TOS, etc.).
Image
User avatar
Brendan
Member
Member
Posts: 8561
Joined: Sat Jan 15, 2005 12:00 am
Location: At his keyboard!
Contact:

Re: OS List

Post by Brendan »

Hi,
dromenox wrote:Could you tell me some open source operating systems that you acknowledge that meet these requirements (in order of importance)?

- Simple (do not want one like MenuetOS, I want something more like MikeOS).
- Written mostly in C
- Simple file system.
- Allows you to develop, compile and run applications inside the system.
- Command Line Interface
- Single task
- 32-Bit Protected Mode
You can break all OSs up into 3 categories:
  • More complex than what you're looking for
  • Too simple to support any existing tool-chain (GCC, LLVM, etc); whether it's because the OS doesn't support "flat" processes, or doesn't support for pipes, or doesn't support PE/ELF, or any other reason
  • A simple OS, where the OS developer also implemented their own tool-chain from scratch.
I doubt there are any OSs in that last category. Anyone with the skills and time needed to implement a tool-chain that's actually usable would've also had the skills and time needed to either implement or improve the OS so that the OS is actually usable too (and therefore not simple enough).

Your best option might be to forget about the tools needed to develop and compile applications inside the system. For example, perhaps BareMetal OS (and a cross-compiler).


Cheers,

Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
User avatar
Rusky
Member
Member
Posts: 792
Joined: Wed Jan 06, 2010 7:07 pm

Re: OS List

Post by Rusky »

Another good one is MIT's xv6.

I have actually seen one with its own toolchain- MMURTL. It's a little old, but it's got an absolutely fantastic book full of how it was written and great documentation.
no92
Member
Member
Posts: 307
Joined: Wed Oct 30, 2013 1:57 pm
Libera.chat IRC: no92
Location: Germany
Contact:

Re: OS List

Post by no92 »

What I'd suggest for you is to decide what you want to do next (take paging as an example). First, read some documentation (Intel manual and the wiki). Then, search for a simple OS on GitHub that implements that. Now, read the code that OS uses and make sure you understand it, using the Intel manual and the wiki. After that, you should be able to write your own implementation.

But keep in mind these examples are only examples, the way they do things doesn't have to be the correct one or the one you'll use. Also, don't forget about the various code examples on the wiki.
User avatar
Muazzam
Member
Member
Posts: 543
Joined: Mon Jun 16, 2014 5:59 am
Location: Shahpur, Layyah, Pakistan

Re: OS List

Post by Muazzam »

You can download brokenthorn tutorial demo from http://brokenthorn.com/Resources/. Mostly written in C, fat12 file system, floppy disk support and command line interface. It is not self hosting but can load programs. If this does not meets your needs you can always check OS List at http://wiki.osdev.org/Projects.
Post Reply