Kernel?

Started by
6 comments, last by CtrlAltDel 22 years, 6 months ago
How challenging would it be to write a *nix Kernel? Anybody have a link to some OS information that would be needed to write one....
Advertisement
Some links:

OSRC

OS Develeopment for Dummies

SigOps: Create Your Own Operating System Adventure

Write Your Own Operating System

Linux Kernel 2.4 Internals

The OSKit Project

The UNIX System
quote:Original post by CtrlAltDel
How challenging would it be to write a *nix Kernel?
Anybody have a link to some OS information that would be needed to write one....


It would be pretty hard work. There are people hacking at the Linux kernel all day. That''s the only thing they do though as it takes alot of time. I wouldn''t recommend hacking a Unix kernel unless you really really really know what you''re doing( in other words, you''re a C/C++ expert ). And even then, I sure as hell wouldn''t want to do it...



"And that''s the bottom line cause I said so!"

Cyberdrek
Headhunter Soft
A division of DLC Multimedia

Resist Windows XP''s Invasive Production Activation Technology!

"gitty up" -- Kramer
[Cyberdrek | ]
Yeah, I can see writing a very small part of it (read: simple driver ), but I don''t know how people like Linus can actually sit down and right an entire kernel... It''s simply amazing how much needs to go in there.

Free Speech, Free Sklyarov
Fight the unconstitutional DMCA.

Commander M
I''d say, start small, and keep your expectations low in the beginning. Writing a small kernel isn''t as hard as it seems, and it can be really fun (if you like low-level programming). Making a fully UNIX compatible kernel will be a lot of work though.

Read the links I gave in my post above, and you should be able to write a small, working kernel. You can write almost everything in C or C++. Only a few things need to be implemented in assembly (like the boot loader, entering protected mode, setting up the GDT and IDT, low-level stuff like that).

To simplify things make the kernel multiboot compliant and use a multiboot compliant bootloader (such as GNU GRUB) to load it.

Also, have a look at the Intel Software Developer''s Manual, especially "Volume 3: System Programming Guide" (if your target platform is IA-32).
[qoute]I don't know how people like Linus can actually sit down and right an entire kernel... It's simply amazing how much needs to go in there

Well, according to Just For Fun, Linus says that he was taking a course in Operating Systems, so in the summer, he decided he would want to get a head start. He bought the book Operating Systems: Design and Implementation, and throught the whole summer, he read that book in his ratty white bathrobe. He used Minix, but it had terrible terminal emulation (translation: he couldn't go on the internet very well to get to the Minix newsgroup), so he decided to write his own terminal emulator. One day, instead of connecting to his internet drive, he connected to his own hard drive, and it erased Minix off his computer! By then he had to rely on Linux (at first he was thinking of calling it Freax), because he already did stuff like porting GCC to it. One time, he posted that he was looking for a set of the POSIX standards on his newsgroup, and everyone knows that anyone wanting the POSIX standerds is making a UNIX clone. Pretty soon, he had many people working on the project. Later on, he admits that if he knew what big of a project Linux would be to make, he would never had made it.

Well, there's a Linux Freak's opinion

"It''s the Big, Evil Microsoft Corporation & Wicked, Greedy, Too-Fucking-Rich Bill Gates vs. the We''re-In-It-for-the-Love-and-Free-Software-for-Everybody & the Self-Effacing (Seeming) Folk Hero Linus B. Torvalds thing."
- Linus Torvalds, describing how many portray him

Edited by - tuxx on October 23, 2001 6:25:25 PM
[email=dumass@poppet.com]dumass@poppet.com[/email]
Farthest I ever got was a simple bootloader that loaded a file (any file in the FAT12 partition, aka floppy) and ran it... .exe or .com, with keyboard support, and SVGA support... no mouse support or any other hardware support. It was not in p-mode though, so no GDT or IDT was required, and it made things much simpler (although, you couldn''t do as much either).

Billy
If you want some inspiration you can download the Linux Kernel version 0.01. It''s small, functional, and pretty easy to understand.

This topic is closed to new replies.

Advertisement