Kernel Infrastructure

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
jamesb.au

Kernel Infrastructure

Post by jamesb.au »

Now that I am heavily into kernel development and feeling the pain of not having a dietlibc or somesuch that is ported to work with my kernel (was thinking about replacing the unified.S syscall stuff to make it work, as well as the other kernel dependent stuff...) I am increasingly thinking along the lines of halting kernel dev and working flat out on some serious, as generic as possible kernel infrastructure for Intel and workalike CPUs on IBM and compatible systems.

What I mean by "as generic as possible" is a ported dietlibc or something, with unnecessary cruft yanked out (all the non Intel stuff, very Linux specific stuff, and so on) so that new osdevers can link their kernel with it and get a nice standard C lib to work with. I am also thinking about some keyboard, mouse, video and disk/floppy/CDROM support stuff in there too, but I am not sure how that would work yet. Could be some pmode interrupt vectors that can be installed which point to the ISRs where they are linked up in a kernel. Maybe they can be loaded as modules along with the kernel a-la GRUB.

You might be thinking now, why don't I just use OSKIt? Well yes, but my main interest is in small, real-time kernels. OSKit isn't suitable for this as-is (perhaps there are compilation options to exclude the stuff you don't want, but I haven't seen a decent OSKit tutorial - not reference manual - yet.)

I'd like a very small, lean and mean standard libc workalike written entirely in ASM and some support ISRs to build new, small, RTOSes on.

Any ideas anyone? What would you do, assuming you have the luxury of some time to work on a kernel support project like this?
Jamethiel

Re:Kernel Infrastructure

Post by Jamethiel »

Might I recommend taking a look at NetBSD's libsa, from their kernel source tree? It's a minimal C library used for some of the pre-booted-kernel utilities like bootloaders. It has options for fun stuff like the basic UFS filesystem drivers and whatnot (and integrates with zlib for loading compressed kernel images). Only complaint I have with it is that sprintf should return an integer type, not void.
Post Reply