My ultimate goals include making an operating system, not specifically a kernel, so it occurred to me that I could modify an open sourced kernel for my purposes. Another factor in this realization is the fact that I am currently taking a college course on modifying the Linux kernel specifically.
My reasoning here is basically that I care much more about the higher-levels of how an operating system works, and it seems that it would be so easy to just modify an existing kernel to suit my needs. Many operating systems out there have taken this approach of using a kernel that is already out there. I know that there are several BSD licensed or non-licensed kernels out there (I'm aiming for something a bit more "convenient" that a full GPLed OS). I'm mostly looking at the Mach microkernel.
I know it would still be a good idea for me to learn as much as I can about the architecture(s) I will be targeting and even implement some baby kernels of my own regardless of the fact that I wouldn't be messing with those lower details so much if I was to ultimately go with this approach, but I wanted to know what you guys think of this... shortcut. Input, please.
Modifying an Existing Kernel?
- Colonel Kernel
- Member
- Posts: 1437
- Joined: Tue Oct 17, 2006 6:06 pm
- Location: Vancouver, BC, Canada
- Contact:
Re:Modifying an Existing Kernel?
It depends on what aspects of OS design you want to explore. If you want to build the World's Greatest File System or something like that, then go ahead and work with an existing kernel. There are lots of research OSes out there built on the L4 microkernel, for example.
On the other hand, if you want to explore something really exotic like OSes built on managed code, then you're probably better off writing your own kernel.
I'm sort of the opposite of you -- I'm more interested in kernel design and implementation specifically, rather than all the other trappings of OS-hood. That said, even my "baby kernel" has been a work in progress for over 18 months and doesn't even have memory management yet... That's what happens when you have a full-time job and a social life I guess...
On the other hand, if you want to explore something really exotic like OSes built on managed code, then you're probably better off writing your own kernel.
I'm sort of the opposite of you -- I'm more interested in kernel design and implementation specifically, rather than all the other trappings of OS-hood. That said, even my "baby kernel" has been a work in progress for over 18 months and doesn't even have memory management yet... That's what happens when you have a full-time job and a social life I guess...
Top three reasons why my OS project died:
- Too much overtime at work
- Got married
- My brain got stuck in an infinite loop while trying to design the memory manager
Re:Modifying an Existing Kernel?
I forgot about the L4 kernels completely. How did I do that? Thanks for reminding me!
Most of the modifications I think are higher level things, though there are many that I plan to make. I might even end up refactoring whatever kernel I choose a good bit to make it work cleanly.
I have seen LFS before, but it doesn't suit my needs. Firstly, the Linux kernel is not the kind of kernel I need; I really need a more "pure" microkernel for a few of my ideas. Secondly, Linux is GPL, and, as I stated before, I am not really looking for a GPL solution; it may be "free," but it's not unrestricted. Thirdly, most of the modifications I plan to make would make a new set of system calls that would render most existing programs unusable before modifying them, so the other offerings of LFS would be useless to me.
Most of the modifications I think are higher level things, though there are many that I plan to make. I might even end up refactoring whatever kernel I choose a good bit to make it work cleanly.
I have seen LFS before, but it doesn't suit my needs. Firstly, the Linux kernel is not the kind of kernel I need; I really need a more "pure" microkernel for a few of my ideas. Secondly, Linux is GPL, and, as I stated before, I am not really looking for a GPL solution; it may be "free," but it's not unrestricted. Thirdly, most of the modifications I plan to make would make a new set of system calls that would render most existing programs unusable before modifying them, so the other offerings of LFS would be useless to me.
Re:Modifying an Existing Kernel?
Linux is under the GPL. "GNU" refers to the user-space toolset (make, binutils, gcc, sed, grep, ...) - which is also GPL, but also available on Windows, *BSD etc.Osbios wrote: Linux is full GNU...
Every good solution is obvious once you've found it.
Re:Modifying an Existing Kernel?
are you sure linux is under GPL? i know it didn't use to be (linus had some big problems with the GPL -- including control issues as the GPL is incompatable with the linux kernel development system)Solar wrote:Linux is under the GPL. "GNU" refers to the user-space toolset (make, binutils, gcc, sed, grep, ...) - which is also GPL, but also available on Windows, *BSD etc.Osbios wrote: Linux is full GNU...
but i've heard several places recently that it is, so mabey that has changed?
Re:Modifying an Existing Kernel?
Linux kernel is licensed under GPL v2. It was licensed under another license in it's first incarnations ( versions 0.10 - 0.90 or something similar )