A question about the difference between Linux and Windows Kernels
GeneralThis forum is for non-technical general discussion which can include both Linux and non-Linux topics. Have fun!
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
A question about the difference between Linux and Windows Kernels
HI,
I've been using Linux for some time and am no where near an expert. However, there is a question I've been meaning to ask for quite some time.
Using Linux , you get to know that the Linux kernel is modular i.e. modules are only loaded into the kernel when needed. My question is: Is this how Windows works too, or is it the case that everything is loaded into Windows from the boot?
Also, another question that is related to this (I think) is again concerning the difference between the two systems: In windows, if you don't have a driver for a new piece of hardware, you just install it. It's quite easy. However, in Linux, if the kernel wasn't compiled with support for the hardware in question, then as far as I can see, there is no way to get the hardware working unless you recompile the kernel. Isn't this a massive drawback of the Linux system? In short, how does Windows allow you to install new drivers without having to recompile the kernel?
Sorry if these questions seem dumb, it's just that they have been bothering me for some time.
Asking how the Windows kernel works, well.. probably no one really knows except the developers in which I'm sure they have NDA to not discuss or share this information since the software and code is proprietary.
On a side note, this is being moved as its more suitable in General..
well you pretty much answered yourself there... the windows kernel acts in a modular way because you install your soundcard modules and network modules seperately and they then get loaded... very similar really. the Win32 kernel is not a microkernel though, like Gnu/Hurd is, some is in it, some is outside of it.
as for the compatability issue.. well that's basically the start of another very tired debate. you ever wondered why say... via have a version of their drivers for 95/98/me and one for 2k/xp ? pretty similar reasons, it;s just that the flexibilty to think those issues might occur in the first place are not present in windows. stick with a standard distro and you'll get a rebuilt RPM that you should be able to install just as easy as in windows.
Okay... in linux, you can load, and unload Drivers (kernel modules) as you see fit.
in windows you cannot. it is done dureing boot time, which is why in windows you need to re-boot if you make a change to a driver / hardware, or install a new driver.
as for the part about the drawback in the linux system.. NO
it is exactly the same in windows !!!!
the thing is... there are many many many many different linux kernel versoions in use out there. each distro uses different compile options, new kernel versions come out every 5 minutes. some users compile there own kernels.
so its practically impossible to make a driver for every possible kernel, which is why unless you have a very common kernel. (e.g. redhat 9 default) you need to compile yourself.
in ms windows, there are far fewer kernels...
to my knoledge there are 3.
windows 9x/ME
Windows NT/2k
Windows XP
which is why when u download a driver from the internet under windows, you have to select windows 9x/ME windows NT/2k or windows XP
it is not a draw back of the linux kernel, its just a side effect of having such regular upgrades available.... which i think is a good thing. and well worth the extra few minutes in installing drivers.
Originally posted by acid_kewpie well you pretty much answered yourself there... the windows kernel acts in a modular way because you install your soundcard modules and network modules seperately and they then get loaded... very similar really. the Win32 kernel is not a microkernel though, like Gnu/Hurd is, some is in it, some is outside of it.
as for the compatability issue.. well that's basically the start of another very tired debate. you ever wondered why say... via have a version of their drivers for 95/98/me and one for 2k/xp ? pretty similar reasons, it;s just that the flexibilty to think those issues might occur in the first place are not present in windows. stick with a standard distro and you'll get a rebuilt RPM that you should be able to install just as easy as in windows.
Maybe that's why you have to reboot after installing most drivers though, its smart enough to auto compile the kernel..
Dude, I have a 56k at best. Think I can be downloading 700 mg files? Hell, it takes me an hour to get a 5 mb file. At school I could try, but it would take hours upon hours of searching. I wish someone would host it, but that would cost a fortune
Let me remind everyone if you did see the source code or obtained it, do not post it here or the such. We don't associate in such matters as its against our rules.
Would be a hellova post considering it is 700 mb tricky.
Besides, I think the MAIN diffy between the linux and windows kernels is the fact that linux users KNOW that a kernel exists, if not what it does. The average windows user has no clue what a kernel is, and doesnt even know his OS has one.
Hey ludwig W... You don't need to recompile your kernel for each driver you want to be loaded. What you need is the source code of your actual kernel 'cause then the driver module can be compiled against your kernel. Not the whole kernel itself gets compiled. Only if you want it to be a kernel built-in feature, 'cause then you'll need to patch your kernel source and recompile it. Problem most of drivers come within the kernel tree, so it's preferable to have it as a native kernel moduleor built-in feature then to download a third party module... (although it IS better to use the nVidia's module then the kernel module for nvidia gfx boards). Think this might clarify the matter
Originally posted by Pauli Besides, I think the MAIN diffy between the linux and windows kernels is the fact that linux users KNOW that a kernel exists, if not what it does. The average windows user has no clue what a kernel is, and doesnt even know his OS has one.
Most I know from doing monkey tech support for several years think they are running Internet Explorer 6.0 or OfficeXP... they can't simply tell you what OS it is, even when they see the logo each time it boots up every day...
As to looking at leaked code, why bother? There would never be any way to confirm it's authenticity short of compiling and test running a whole version, no? So why bother?
ludwig W: And looking at signature, I see kernel 20.4-8.... your kernel probably is 2.4.20.4-8
you should type uname -r to get your kernel's version
if you type uname -a you'll get a whole lot of information about your system build...
man uname for more info...
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.