Bona Fide OS Developer
View unanswered posts | View active topics It is currently Wed Jul 26, 2017 7:37 am



Post new topic Reply to topic  [ 1 post ] 
 My First Major Kernel: LowEST Kernel, Level 1 OS 
Author Message

Joined: Sun Sep 19, 2010 9:45 am
Posts: 8
Post My First Major Kernel: LowEST Kernel, Level 1 OS
Download here: LowEST_Kern_2012-07-03.zip

This is the first kernel I have managed to turn into a minimally useful program.

And it is 100% Public Domain.

I consider it as the Level 1 of an operating system, and the simplest yet useable you will easily find around.

What is different about it from a regular tutorial is that it consolidates several features that would not be connected together or useable in such a single-topic-centered tutorial.

Although I still need to write documentation for every single algorithm and trick used, but I have such documentation partially written already, and I just need to make a list of tutorials to explain how this kernel works.

Features:
  • Can boot from floppy (FAT12) or from a CD-ROM emulating a floppy with El Torito; you could add your own booting method if you know how

  • It is compiled as 32-bit protected mode.

  • Does not use paging.

  • Can read the root directory of a floppy (only used by the application loader code by now).

  • Can read and load raw binaries with a custom header at run time, which allows to make many small tests dynamically without rebooting.

  • Binaries can "import" kernel functions.

  • Has a keyboard driver.

  • Has a command line that accepts commands such as programs that use command line parameters (at a lower level than C's main).

  • The keyboard input for the command line can change LED state, and can use Shift to switch between uppercase/lowercase and symbols or numbers.

  • First attempts to introduce all kinds of standards, such as calling conventions to make code more readily compatible for using standard compilers and languages such as GCC interchangeably with pure assembly.

As ýou can see, it makes for sort of a pre-alpha DOS-like operating system with modern capabilities and resources at its reach. It is ideal for a first learning aid for dynamic loading of programs (with static memory), a basic methodology of making use of kernel library functions, interpreting a command line.

And more importantly, it is a DOS-like system that is tiny, minimally useable, easy to understand, without features that aren't strictly required for it to work, and because of it, can allow a developer to also create simple test applications, and eventually escalate this kernel/system with more complete features, leaving footsteps of development with extremely well-defined complexity levels, up to a full-featured system, that is much more explained than virtually any other (non-educationally yet real-world, oriented) operating system in existence.

Obviously there is a lot to do yet, so much more. But this should be a good start, and in many senses, more beneficial than just using other low-level test system such as MS-DOS or FreeDOS, because it is easier to understand, and from here we can improve a lot if we are smart.


Attachments:
File comment: Kernel source code and FAT12 boot sector source code.
LowEST_Kern_2012-07-03.zip [121.85 KiB]
Downloaded 1717 times

_________________
Image ~
Image
Mon Dec 24, 2012 10:41 pm
Profile
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 1 post ] 


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by Vjacheslav Trushkin and tweaked by the BF Team.