Rocode
Rocode

Reputation: 118

Writing hard disk and keyboard driver

I am a complete newbie to operating system and aiming to write my own kernel. I understand that i will have to write my own device drivers as well. How do i start with writing my driver? The tasks of project are as follows.

1.Defining GDT in assembly language

2.Creating boot sector

3.Interrupt handling

4.Screen Driver

5.Keyboard driver

6.Hard disk driver

7.File system

8.I/O programming

9.Physical memory management

Also is it possible to do this in 3 months ( team of 2 )

Upvotes: 0

Views: 2639

Answers (2)

Pradheep
Pradheep

Reputation: 3819

You can try looking into contributing to minix (http://www.minix3.org/)

There are a loads of things that are needed to be done .Have a look at (http://wiki.minix3.org/Wishlist).

Upvotes: 1

superdesk
superdesk

Reputation: 1172

As you know (or about to find out) OSes are extremely complicated and interconnected. For example, how are you going to have a working Keyboard driver before you have implemented interrupt handling?

It sounds like your question actually is: "How do I start writing my own OS?" You start by reading "Required Knowledge," "Beginner Mistakes," and "Getting Started" on osdev.

Good luck, and it is going to take a long time... especially if you are learning as you go (which is okay, since your goal is learning and not to make a commercial OS).

Edit: Modifying the Linux kernel is a good way to learn about the internals of an OS. It will let you focus on individual aspects (such as just writing a keyboard driver) and your work environment will be sane. Depending on what you want to do, you will be able to further ease development by creating a kernel module instead directly modifying the kernel.

  1. Define your project and its scope
  2. Set up your work environment (my suggestion, run Ubuntu Server in QEMU)
  3. Learn how to either boot a custom kernel or use the module system
  4. Get to work!

Upvotes: 3

Related Questions