<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/1.5.1-alpha" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Comments on: Split the kernel up</title>
	<link>http://cogscanthink.blogsome.com/2005/12/20/split-the-kernel-up/</link>
	<description>I'm a mere, tiny, insignificant cog in a whole clockwork of stupidity. I'm the tiny cog that wants to break free. Seriously.</description>
	<pubDate>Tue, 29 Dec 2009 20:07:25 +0000</pubDate>
	<generator>http://wordpress.org/?v=1.5.1-alpha</generator>

	<item>
		<title>by: will</title>
		<link>http://cogscanthink.blogsome.com/2005/12/20/split-the-kernel-up/#comment-2035</link>
		<pubDate>Wed, 01 Aug 2007 00:01:11 +0100</pubDate>
		<guid>http://cogscanthink.blogsome.com/2005/12/20/split-the-kernel-up/#comment-2035</guid>
					<description>I strongly disagree that &quot;microkernel linux&quot; would be much better.

You say that the problem with linux is that it tries to be a jack-of-all-trades. Presumably, this means you must sacrifice server performance to gain desktop performance.

If performance is such an issue, then why are you willing to overlook the performance costs of a microkernel in the first place? You're confusing the argument -- the added stability does NOT address the same problem as branching up the kernel into embedded / server / microkernel.

If anything, linux is an argument AGAINST microkernels. It shows that it's possible to scale to production-quality without show-stopping stability issues and *still* retain performance. Moreover, the overwhelming majority of kernel bugs reside in device drivers. This can be addressed with the new userspace linux api (as mentioned above by someone else).

[As an aside, just because device drivers are in userspace doesn't guarantee they can't cause havoc. Consider, for example, DMA transfers that bypass virtual memory.]

Lastly, ACPI and inotify have both been merged into the mainstream kernel. I don't know that Linus was ever blocking 3D drivers from mainstream. Although ck's SD scheduler never made it, CFS took ideas from SD, and has been incorporated into the mainstream kernel. So as long as the needed patches eventually make it in, is this really an issue?</description>
		<content:encoded><![CDATA[	<p>I strongly disagree that &#8220;microkernel linux&#8221; would be much better.</p>
	<p>You say that the problem with linux is that it tries to be a jack-of-all-trades. Presumably, this means you must sacrifice server performance to gain desktop performance.</p>
	<p>If performance is such an issue, then why are you willing to overlook the performance costs of a microkernel in the first place? You&#8217;re confusing the argument &#8212; the added stability does NOT address the same problem as branching up the kernel into embedded / server / microkernel.</p>
	<p>If anything, linux is an argument AGAINST microkernels. It shows that it&#8217;s possible to scale to production-quality without show-stopping stability issues and *still* retain performance. Moreover, the overwhelming majority of kernel bugs reside in device drivers. This can be addressed with the new userspace linux api (as mentioned above by someone else).</p>
	<p>[As an aside, just because device drivers are in userspace doesn&#8217;t guarantee they can&#8217;t cause havoc. Consider, for example, DMA transfers that bypass virtual memory.]</p>
	<p>Lastly, ACPI and inotify have both been merged into the mainstream kernel. I don&#8217;t know that Linus was ever blocking 3D drivers from mainstream. Although ck&#8217;s SD scheduler never made it, CFS took ideas from SD, and has been incorporated into the mainstream kernel. So as long as the needed patches eventually make it in, is this really an issue?
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: rautela</title>
		<link>http://cogscanthink.blogsome.com/2005/12/20/split-the-kernel-up/#comment-2008</link>
		<pubDate>Fri, 27 Jul 2007 04:06:20 +0100</pubDate>
		<guid>http://cogscanthink.blogsome.com/2005/12/20/split-the-kernel-up/#comment-2008</guid>
					<description>What kind of suggestion is that??

Thom do you ever follow lkml? 
I doubt it.

Essentially the vanilla kernel is the core for all the stuff you mentioned.
It need to be stable and running.

Once it is up and running, you can always tweak it to your choice(s).

Distros give you heavily patched kernel for desktop performance, isn't it.
They are at liberty to make changes, build a new kernel and release.

Maybe sometime in the future Linus may include it in the official tree too.
If not, it will still reach to the users through distro.

e.g DRBD worked out of the kernel for years,now it is being consider a rc for future releases. Does this makes sense? 
I guess it does.

There is a lot more in life than blogging.
Try hacking the kernel than pointing fingers at developers.

Thanks!!!</description>
		<content:encoded><![CDATA[	<p>What kind of suggestion is that??</p>
	<p>Thom do you ever follow lkml?<br />
I doubt it.</p>
	<p>Essentially the vanilla kernel is the core for all the stuff you mentioned.<br />
It need to be stable and running.</p>
	<p>Once it is up and running, you can always tweak it to your choice(s).</p>
	<p>Distros give you heavily patched kernel for desktop performance, isn&#8217;t it.<br />
They are at liberty to make changes, build a new kernel and release.</p>
	<p>Maybe sometime in the future Linus may include it in the official tree too.<br />
If not, it will still reach to the users through distro.</p>
	<p>e.g DRBD worked out of the kernel for years,now it is being consider a rc for future releases. Does this makes sense?<br />
I guess it does.</p>
	<p>There is a lot more in life than blogging.<br />
Try hacking the kernel than pointing fingers at developers.</p>
	<p>Thanks!!!
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: God</title>
		<link>http://cogscanthink.blogsome.com/2005/12/20/split-the-kernel-up/#comment-2001</link>
		<pubDate>Thu, 26 Jul 2007 19:06:47 +0100</pubDate>
		<guid>http://cogscanthink.blogsome.com/2005/12/20/split-the-kernel-up/#comment-2001</guid>
					<description>I disagree strongly on the uKernel part. The few uKernels out there are raving disasters; impossibly hard to debug (just ask RMS) and to slow to bear. The successful uKernel (which happends to be commericial) is only good at real-time issues; server performance would suck beyond this world due to how the scheduler prioritize I/O and cpu.

With the userspace driver API comming up in Linux, the uKernel &quot;advantage&quot; of every driver living in userspace is also mute.</description>
		<content:encoded><![CDATA[	<p>I disagree strongly on the uKernel part. The few uKernels out there are raving disasters; impossibly hard to debug (just ask RMS) and to slow to bear. The successful uKernel (which happends to be commericial) is only good at real-time issues; server performance would suck beyond this world due to how the scheduler prioritize I/O and cpu.</p>
	<p>With the userspace driver API comming up in Linux, the uKernel &#8220;advantage&#8221; of every driver living in userspace is also mute.
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Trent Townsend</title>
		<link>http://cogscanthink.blogsome.com/2005/12/20/split-the-kernel-up/#comment-371</link>
		<pubDate>Wed, 21 Dec 2005 22:40:22 +0000</pubDate>
		<guid>http://cogscanthink.blogsome.com/2005/12/20/split-the-kernel-up/#comment-371</guid>
					<description>&quot;&lt;i&gt;The problem lies in the complexity of the kernel. The more stuff you add to the kernel ( = the more code), the larger the chance of a bug (as more code = more chances of bugs).&lt;/i&gt;&quot;

Yes, that's the thing about microkernels that I've always found appealing. 

&quot;&lt;i&gt;By keeping the kernel smaller, you can decrease the chance of bugs occuring. Now, a *desktop* user can be bothered by a *server* bug. If you split the kernels up the way I described, you reduce the amount of code in each kernel, and thus decrease the chance of bugs.&lt;/i&gt;&quot;

Perhaps I'm misunderstanding your POV here. If you're saying that a microkernel with modules A B C would be for a server, and the same microkernel with modules X Y Z for a desktop, and the same microkernel with module N for embedded, then yeah, I can agree with you 100%. But to have three completely different kernels? Yuck. 

&quot;&lt;i&gt;It’s so simple, I’m actually wondering why Linus hasn’t thought of it himself, yet. &lt;/i&gt;&quot;

He's a much better coder than I plan to ever be (sooo boring!), but he's a terrible software architect from what I see. </description>
		<content:encoded><![CDATA[	<p>&#8220;<i>The problem lies in the complexity of the kernel. The more stuff you add to the kernel ( = the more code), the larger the chance of a bug (as more code = more chances of bugs).</i>&#8221;</p>
	<p>Yes, that&#8217;s the thing about microkernels that I&#8217;ve always found appealing. </p>
	<p>&#8220;<i>By keeping the kernel smaller, you can decrease the chance of bugs occuring. Now, a *desktop* user can be bothered by a *server* bug. If you split the kernels up the way I described, you reduce the amount of code in each kernel, and thus decrease the chance of bugs.</i>&#8221;</p>
	<p>Perhaps I&#8217;m misunderstanding your POV here. If you&#8217;re saying that a microkernel with modules A B C would be for a server, and the same microkernel with modules X Y Z for a desktop, and the same microkernel with module N for embedded, then yeah, I can agree with you 100%. But to have three completely different kernels? Yuck. </p>
	<p>&#8220;<i>It’s so simple, I’m actually wondering why Linus hasn’t thought of it himself, yet. </i>&#8221;</p>
	<p>He&#8217;s a much better coder than I plan to ever be (sooo boring!), but he&#8217;s a terrible software architect from what I see.
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Administrator</title>
		<link>http://cogscanthink.blogsome.com/2005/12/20/split-the-kernel-up/#comment-370</link>
		<pubDate>Wed, 21 Dec 2005 22:31:32 +0000</pubDate>
		<guid>http://cogscanthink.blogsome.com/2005/12/20/split-the-kernel-up/#comment-370</guid>
					<description>The problem lies in the complexity of the kernel. The more stuff you add to the kernel ( = the more code), the larger the chance of a bug (as more code = more chances of bugs).

By keeping the kernel smaller, you can decrease the chance of bugs occuring. Now, a *desktop* user can be bothered by a *server* bug. If you split the kernels up the way I described, you reduce the amount of code in each kernel, and thus decrease the chance of bugs.

It's so simple, I'm actually wondering why Linus hasn't thought of it himself, yet.</description>
		<content:encoded><![CDATA[	<p>The problem lies in the complexity of the kernel. The more stuff you add to the kernel ( = the more code), the larger the chance of a bug (as more code = more chances of bugs).</p>
	<p>By keeping the kernel smaller, you can decrease the chance of bugs occuring. Now, a *desktop* user can be bothered by a *server* bug. If you split the kernels up the way I described, you reduce the amount of code in each kernel, and thus decrease the chance of bugs.</p>
	<p>It&#8217;s so simple, I&#8217;m actually wondering why Linus hasn&#8217;t thought of it himself, yet.
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Trent Townsend</title>
		<link>http://cogscanthink.blogsome.com/2005/12/20/split-the-kernel-up/#comment-369</link>
		<pubDate>Wed, 21 Dec 2005 22:26:14 +0000</pubDate>
		<guid>http://cogscanthink.blogsome.com/2005/12/20/split-the-kernel-up/#comment-369</guid>
					<description>&quot;&lt;i&gt;but these things do impact the server performance becaus they optimize some parts of the code using resources from other parts. &lt;/i&gt;&quot;

You've been at this longer than I have, so I'm going to trust your judgement here in the case of Linux. 

I suppose it all boils down to limitations of the architecture, and the stubborness of it's maintainers ;^)

But I remain unconvinced that a kernel cannot be designed to work well at any given task, so long as it has both well thought out and stable KPIs, and is designed such that various components are truely hot-swapable (like in the case of schedulers, drivers etc.). </description>
		<content:encoded><![CDATA[	<p>&#8220;<i>but these things do impact the server performance becaus they optimize some parts of the code using resources from other parts. </i>&#8221;</p>
	<p>You&#8217;ve been at this longer than I have, so I&#8217;m going to trust your judgement here in the case of Linux. </p>
	<p>I suppose it all boils down to limitations of the architecture, and the stubborness of it&#8217;s maintainers ;^)</p>
	<p>But I remain unconvinced that a kernel cannot be designed to work well at any given task, so long as it has both well thought out and stable KPIs, and is designed such that various components are truely hot-swapable (like in the case of schedulers, drivers etc.).
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Eugenia</title>
		<link>http://cogscanthink.blogsome.com/2005/12/20/split-the-kernel-up/#comment-368</link>
		<pubDate>Wed, 21 Dec 2005 22:09:45 +0000</pubDate>
		<guid>http://cogscanthink.blogsome.com/2005/12/20/split-the-kernel-up/#comment-368</guid>
					<description>I can't remember the actual name of the patch. It was very popular issue discussed back in 2001-3. It was Robert Love's attempt for better multimedia/desktop performance, but these things do impact the server performance becaus they optimize some parts of the code using resources from other parts. It's the same thing why BeOS was so good at multimedia but it sucked as a server. Can't remember the details now, it's been too long.</description>
		<content:encoded><![CDATA[	<p>I can&#8217;t remember the actual name of the patch. It was very popular issue discussed back in 2001-3. It was Robert Love&#8217;s attempt for better multimedia/desktop performance, but these things do impact the server performance becaus they optimize some parts of the code using resources from other parts. It&#8217;s the same thing why BeOS was so good at multimedia but it sucked as a server. Can&#8217;t remember the details now, it&#8217;s been too long.
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Trent Townsend</title>
		<link>http://cogscanthink.blogsome.com/2005/12/20/split-the-kernel-up/#comment-367</link>
		<pubDate>Wed, 21 Dec 2005 22:05:38 +0000</pubDate>
		<guid>http://cogscanthink.blogsome.com/2005/12/20/split-the-kernel-up/#comment-367</guid>
					<description>&quot;&lt;i&gt;Actually there are cases where this is needed. For example, Linus has consistently refused to include on his mainline kernel some changes from Robert Love that fix multimedia and audio performance (for desktop/workstation usage) because it messes up with the server performance.&lt;/i&gt;&quot;

I don't follow the LKML nearly as often as I do the various BSD lists, so could you perhaps fill me in a bit? Are these patches scheduler related? If so, could they not do what various other groups are doing, and implement swapable schedulers? IIRC, both NetBSD and DragonFly for example are working on the ability to do so on the fly, and IIRC, Solaris has had this ability for ages. 

I don't know enough about inotify to ask anything inteligent about why it isn't good for a server. </description>
		<content:encoded><![CDATA[	<p>&#8220;<i>Actually there are cases where this is needed. For example, Linus has consistently refused to include on his mainline kernel some changes from Robert Love that fix multimedia and audio performance (for desktop/workstation usage) because it messes up with the server performance.</i>&#8221;</p>
	<p>I don&#8217;t follow the LKML nearly as often as I do the various BSD lists, so could you perhaps fill me in a bit? Are these patches scheduler related? If so, could they not do what various other groups are doing, and implement swapable schedulers? IIRC, both NetBSD and DragonFly for example are working on the ability to do so on the fly, and IIRC, Solaris has had this ability for ages. </p>
	<p>I don&#8217;t know enough about inotify to ask anything inteligent about why it isn&#8217;t good for a server.
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Eugenia</title>
		<link>http://cogscanthink.blogsome.com/2005/12/20/split-the-kernel-up/#comment-366</link>
		<pubDate>Wed, 21 Dec 2005 21:44:25 +0000</pubDate>
		<guid>http://cogscanthink.blogsome.com/2005/12/20/split-the-kernel-up/#comment-366</guid>
					<description>&amp;gt;I’m not sure that this is really needed.

Actually there are cases where this is needed. For example, Linus has consistently refused to include on his mainline kernel some changes from Robert Love that fix multimedia and audio performance (for desktop/workstation usage) because it messes up with the server performance. Additionally, other stuff like ACPI, 3D GL drivers, inotify etc are things that a desktop needs but a server or an embedded one doesn't really need.

It might be a good idea to split it up, and it might not be a good idea at the same time. But the bottomline is that neither the desktop or the embedded version of Linux get as much love and attention as the server-friendly patches do. It makes sense to focus on the server more as it makes more money and it's the strong point of Linux. But there are gains to be made on other market areas too and Linus does not put lots of weight on them, despite OSDL's efforts to help the desktop via a number of ways.

Linus just doesn't care much about the desktop. If he did, he wouldn't break API and binary driver compatibility so easily.</description>
		<content:encoded><![CDATA[	<p>&gt;I’m not sure that this is really needed.</p>
	<p>Actually there are cases where this is needed. For example, Linus has consistently refused to include on his mainline kernel some changes from Robert Love that fix multimedia and audio performance (for desktop/workstation usage) because it messes up with the server performance. Additionally, other stuff like ACPI, 3D GL drivers, inotify etc are things that a desktop needs but a server or an embedded one doesn&#8217;t really need.</p>
	<p>It might be a good idea to split it up, and it might not be a good idea at the same time. But the bottomline is that neither the desktop or the embedded version of Linux get as much love and attention as the server-friendly patches do. It makes sense to focus on the server more as it makes more money and it&#8217;s the strong point of Linux. But there are gains to be made on other market areas too and Linus does not put lots of weight on them, despite OSDL&#8217;s efforts to help the desktop via a number of ways.</p>
	<p>Linus just doesn&#8217;t care much about the desktop. If he did, he wouldn&#8217;t break API and binary driver compatibility so easily.
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Trent Townsend</title>
		<link>http://cogscanthink.blogsome.com/2005/12/20/split-the-kernel-up/#comment-365</link>
		<pubDate>Wed, 21 Dec 2005 21:23:27 +0000</pubDate>
		<guid>http://cogscanthink.blogsome.com/2005/12/20/split-the-kernel-up/#comment-365</guid>
					<description>&quot;&lt;i&gt;I advice him to split the main branch up into three separate branches: kernel-2.6-embedded, kernel-2.6-server, and kernel 2.6-desktop. Then, optimize the fcuk out of each of those branches.&lt;/i&gt;&quot;

I'm not sure that this is really needed. Personally I think that one of the biggest issues with say &quot;desktop Linux&quot; is the countless DEs, and packaging formats, and the lack of consistency between the various Linux distributions, as opposed to being a fault of trying to make a kernel that can work well in all three of the situations you've cited (embedded, desktop, server). 

That's not to say I don't have issues with Linux or some of the decisions that were made by it's developers. Breaking driver compatibility between point versions IMO is a terrible failing on the part of the developers; leaving the users to mess around with binary drivers, spending hours to make something work. If the developers had just been a little more thoughtful when they designed the driver interfaces, we'd not have this problem. 

I do like the idea of microkernels, I always have. The idea of everything living in one address space has always seemed to me like &quot;building a castle on a swamp&quot; and in many cases, I've been burned because of it. Buggy drivers happen, and as much as the fan boys would like to have us all believe, Linux isn't immune to them. 

Unfortunately, Linus is a stubborn creature, and I seriously doubt that he would ever allow his tree to become based on a true microkernel. He's even dead set against maintaining driver compatibility. 

</description>
		<content:encoded><![CDATA[	<p>&#8220;<i>I advice him to split the main branch up into three separate branches: kernel-2.6-embedded, kernel-2.6-server, and kernel 2.6-desktop. Then, optimize the fcuk out of each of those branches.</i>&#8221;</p>
	<p>I&#8217;m not sure that this is really needed. Personally I think that one of the biggest issues with say &#8220;desktop Linux&#8221; is the countless DEs, and packaging formats, and the lack of consistency between the various Linux distributions, as opposed to being a fault of trying to make a kernel that can work well in all three of the situations you&#8217;ve cited (embedded, desktop, server). </p>
	<p>That&#8217;s not to say I don&#8217;t have issues with Linux or some of the decisions that were made by it&#8217;s developers. Breaking driver compatibility between point versions IMO is a terrible failing on the part of the developers; leaving the users to mess around with binary drivers, spending hours to make something work. If the developers had just been a little more thoughtful when they designed the driver interfaces, we&#8217;d not have this problem. </p>
	<p>I do like the idea of microkernels, I always have. The idea of everything living in one address space has always seemed to me like &#8220;building a castle on a swamp&#8221; and in many cases, I&#8217;ve been burned because of it. Buggy drivers happen, and as much as the fan boys would like to have us all believe, Linux isn&#8217;t immune to them. </p>
	<p>Unfortunately, Linus is a stubborn creature, and I seriously doubt that he would ever allow his tree to become based on a true microkernel. He&#8217;s even dead set against maintaining driver compatibility.
</p>
]]></content:encoded>
				</item>
</channel>
</rss>
