Alle hardware van alle hardware van alle hardwarefabrikanten inbouwen in de kernel, en je hebt een kernel die groter is dan de grootste hardeschijven van dit moment.
Haha, overdrijven is ook een vak he.
Netwerkkaart-drivers zijn in Linux onderdeel van de kernel source tree, dus alle netwerkdrivers worden meegeleverd met de kernel. Wat zien we:
% du -sh /lib/modules/2.6.31-1-686/kernel/drivers/net
11M
% find /lib/modules/2.6.31-1-686/kernel/drivers/net -type f | wc -l
336
11MB in 336 modules. Support voor praktisch alle netwerkkaarten die er zijn, inclusief ethernet, wireless, tokenring en fibrechannel kaarten.
Sterker nog,
alle drivers die bij die 2.6.31 van mij (nouja, van Debian Unstable) zitten zijn bij elkaar 49MB. We hebben nog even te gaan voordat die 2TB harddisk vol zit. (Dit telt trouwens alleen kernel drivers, en niet userspace drivers zoals printer drivers, scanner drivers, grote delen van grafische drivers, etc)
Volgens wikipedia geeft een monolith kernel een veel meer "high level" overview van de hardware aan de software, hierdoor moet veel meer hardware support direct ingebouw worden in de kernel
Hangt er nogal vanaf wat je bedoelt met "direct ingebouwd". In een monolithische kernel draaien alle kerneltaken in dezelfde address space, en geladen modules maken dus rechtstreeks deel uit van de kernel zonder al te veel onderlinge bescherming.
Het betekent niet dat drivers al of niet dynamisch geladen kunnen worden. Een monolithische kernel met loadable modules (zoals Linux) is nog steeds monolithisch.
Het zegt ook niets over of drivers al of niet onafhankelijk van de kernel zelf ontwikkeld kunnen worden. Het is in Linux gebruikelijk om open-source kerneldrivers op te nemen in de main kernel source tree (en dat is over het algemeen een goede zaak voor onafhankelijkheid, onderhoud, en out-of-the-box support), maar dat is niet noodzakelijk.
Zie ook
deze post van mij verderop bij dit artikel over monolithische vs. micro-kernels.
(een erg slechte zaak vind ik, omdat je als hardware bouwer ineens niet zelf drivers kan releasen maar moet wachten op een nieuwe kernel en dan maar hopen dat mensen je product in die kernel bouwen / jouw branch accepteren.
Dat is natuurlijk volstrekte onzin, en heeft niets met al-dan-niet monolithisch te maken.
Fabrikanten kunnen gewoon een kernel module maken en verspreiden zonder dat hiervoor iets aan de mainline kernel hoeft te veranderen. Dat is overigens ook precies wat bijvoorbeeld ATi en NVidia doen met hun video drivers (die overigens nog closed-source zijn ook, om mijn punt extra kracht bij te zetten).
Alle energie die hier in gestoken wordt [...] Fabrikanten en mensen die graag drivers schrijven krijgen dan meer tools en power, terwijl de linux community een betere kernel krijgt voor iedereen, niet alleen voor die "paar" ATI gebruikers.
Ik snap niet waar je het over hebt. Een van de nieuwswaardige dingen in dit artikel is dat de Linux radeon driver wat verbeterd is, en het is nogal wiedes dat dat alleen nuttig is voor ATi gebruikers. Wat moeten die developers dan doen? Die driver
niet verbeteren?
[q]Microsoft heeft voor Windows 2000 geprobeerd om ook alle printer in de kernel te krijgen. Ze zijn heel snel van die beslissing terug gekomen, en nu begaat Linux dezelfde fout.[q/]
Printer drivers zijn userspace in Linux, en altijd al geweest. Het gaat bij de radeon driver (net als bij alle andere video drivers) trouwens maar om een klein deel dat - noodzakelijk - kernelspace draait, zie
deze post van mij verderop bij dit artikel voor meer uitleg.
De weg die linux nu inslaat is echt verkeerd
Nu? Er is niks veranderd hoor; videodrivers hebben een kernelspace component sinds Linux 3D acceleratie heeft, en dat is nu wat? 12 jaar geleden? Nog meer?
Nee als dit echt de insteek blijft doen mij dan maar weer alleen Windows...
Achja, als je wil beslissen op onderbuikgevoelens in plaats van de praktijk, is goed hoor