Page 1 of 1

OS List

Posted: Tue Oct 28, 2014 6:15 am
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.

Re: OS List

Posted: Tue Oct 28, 2014 6:31 am
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.

Re: OS List

Posted: Tue Oct 28, 2014 7:01 am
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.

Re: OS List

Posted: Tue Oct 28, 2014 7:28 am
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.).

Re: OS List

Posted: Tue Oct 28, 2014 10:57 am
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

Re: OS List

Posted: Tue Oct 28, 2014 5:26 pm
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.

Re: OS List

Posted: Thu Oct 30, 2014 1:47 am
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.

Re: OS List

Posted: Thu Oct 30, 2014 3:04 am
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.