<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:osnews="http://www.osnews.com/rss2#">
	<channel>
		<title>OSNews: </title>
		<link>http://www.osnews.com/story/24405/Hobby_OS-deving_3_Designing_a_Kernel</link>
		<description>Exploring the Future of Computing</description>
		<language>en-us</language>
		<copyright>Copyright 2001-2013, David Adams</copyright>
		<webMaster>adam+nospam@osnews.com</webMaster>
		<lastBuildDate>Wed, 22 May 2013 22:14:06 GMT</lastBuildDate>
		<image>
			<url>http://www.osnews.com/images/osnews.gif</url>
			<title>OSNews.com</title>
			<link>http://www.osnews.com</link>
		</image>
		<item>
			<title>Phew, finally !</title>
			<link>http://www.osnews.com/thread?463345</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?463345</guid>
			<description>And now, let's go back to my own OS and those damn accomodation issues in Uppsala ^^ I didn't expect this article to take so long, but you should probably not expect the next one to come next week either <img src="/images/emo/smile.gif" alt=";)" /> Edited 2011-02-20 14:28 UTC</description>
			<pubDate>Sun, 20 Feb 2011 14:26:00 GMT</pubDate>
			<author>donotreply@osnews.com (Neolander)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: Phew, finally !</title>
			<link>http://www.osnews.com/thread?463346</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?463346</guid>
			<description>Thanks for yet another great article, I'm sure there's plenty of people here who have found these a great read <img src="/images/emo/smile.gif" alt=";)" /></description>
			<pubDate>Sun, 20 Feb 2011 14:29:00 GMT</pubDate>
			<author>donotreply@osnews.com (WereCatf)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>Comment by cb88</title>
			<link>http://www.osnews.com/thread?463361</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?463361</guid>
			<description>While you might be able to argue that a VM kernel could be more reliable with GC and  array bounds etc.... arguing that it is more secure is a losing battle. VMs can and have been broken out of in the past.... I would actually think they would increase the amount of code were an exploit could occur.Edited 2011-02-20 15:11 UTC</description>
			<pubDate>Sun, 20 Feb 2011 15:10:00 GMT</pubDate>
			<author>donotreply@osnews.com (cb88)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>jnode</title>
			<link>http://www.osnews.com/thread?463377</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?463377</guid>
			<description>Thanks for this article, but it appears that the JNode system got missed from the sample OS'es based on VM approach. It even has a GUI so it might be interesting thing to watch, if anyone's interested.</description>
			<pubDate>Sun, 20 Feb 2011 17:56:00 GMT</pubDate>
			<author>donotreply@osnews.com (antonone)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: Comment by cb88</title>
			<link>http://www.osnews.com/thread?463380</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?463380</guid>
			<description>Well, I thought that this article displayed too much my preference towards the microkernel approach <img src="/images/emo/wink.gif" alt=";)" />  Thanks for showing me that I did a good job balancing it after all.</description>
			<pubDate>Sun, 20 Feb 2011 18:24:00 GMT</pubDate>
			<author>donotreply@osnews.com (Neolander)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: jnode</title>
			<link>http://www.osnews.com/thread?463381</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?463381</guid>
			<description>Indeed. I'll correct this along with some English mistakes once I get access to some real internet connection (EDGE with locked ports is the new 56K).<br />
  <br />
  When looking for examples, I've been highly displeased to discover that most operating systems which were said to be VM-based (like Inferno or JavaOS) were in fact nothing but a java virtual machine running on top of a regular C/C++ kernel, and have given up a bit too quickly apparently.<br />
 <br />
 SharpOS was also an interesting project, but apparently development has ended.Edited 2011-02-20 18:45 UTC</description>
			<pubDate>Sun, 20 Feb 2011 18:36:00 GMT</pubDate>
			<author>donotreply@osnews.com (Neolander)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>kernel modules</title>
			<link>http://www.osnews.com/thread?463392</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?463392</guid>
			<description>How do loadable kernel modules enter into the micro v. monolithic kernel debate? Is it possible that a microkernel could minimize the penalty of IPC by adding these services as modules? i.e. does &quot;micro&quot; mean merely that the kernel remains small during runtime, or that the kernel's core codebase is small, but by loading modules it could grow?</description>
			<pubDate>Sun, 20 Feb 2011 20:31:00 GMT</pubDate>
			<author>donotreply@osnews.com (jack_perry)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: kernel modules</title>
			<link>http://www.osnews.com/thread?463395</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?463395</guid>
			<description>Afaik, microkernels are defined by the way they put some of the services they offer in isolated processes. Microkernels are intrinsically modular, but monolithic kernels *can* also be modular without becoming microkernels.<br />
 <br />
 Whether monolithic kernels are modular or not, most of their main advantages and drawbacks remain, since most code runs in the same address space, in kernel mode, with full access to hardware. Modularity acts independently from that.Edited 2011-02-20 20:54 UTC</description>
			<pubDate>Sun, 20 Feb 2011 20:47:00 GMT</pubDate>
			<author>donotreply@osnews.com (Neolander)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[2]: kernel modules</title>
			<link>http://www.osnews.com/thread?463407</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?463407</guid>
			<description>Okay. So you could have a monolithic kernel that is actually quite small, and loads modules dynamically into memory as needed. The drawbacks of security would remain, and might even be worsened if the administrator was dumb enough to load an unsecure module to extend the OS' capabilities.<br />
<br />
The reason I ask is that modularity could decrease code size significantly. You mention that it is common for desktop monolithic kernels to include facilities for rendering GPU-accelerated graphics and managing every single filesystem in existence, which, okay, could be bad if all these filesystems are in memory all the time, but isn't so bad if they are loaded only when needed. It likewise could provide a defense against what you cite as unmaintainable, non-portable, non modular code.<br />
<br />
It makes me wonder whether most monolithic kernels do this in practice.<br />
<br />
I guess I should say that this line of questioning is inspired by my acquaintance of Microware's OS-9, which I once heard described as neither monolithic nor micro but modular. But I don't know more than that, and even that was a distant memory.</description>
			<pubDate>Sun, 20 Feb 2011 21:45:00 GMT</pubDate>
			<author>donotreply@osnews.com (jack_perry)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[3]: kernel modules</title>
			<link>http://www.osnews.com/thread?463410</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?463410</guid>
			<description>Indeed, more modularity can be used as a way to reduce the disadvantages of the monolithic approach on &quot;large&quot; kernels, without going as far as the microkernel approach. It's an interesting in-between solution.<br />
<br />
On the other hand, there must be a policy somewhere that forces kernel devs to put new features in separate modules whenever possible. Otherwise, you get something like Linux : the kernel is modular, but outside of the realm of hardware drivers its modularity capabilities are heavily under-used (and since there's no standard, stable module interface, third-party module development does not work well... But that's another story)</description>
			<pubDate>Sun, 20 Feb 2011 21:57:00 GMT</pubDate>
			<author>donotreply@osnews.com (Neolander)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[2]: jnode</title>
			<link>http://www.osnews.com/thread?463417</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?463417</guid>
			<description>That is because in the area VM operating systems the author is either not old enough, or did not research enough the subject.<br />
<br />
Pascal MicroEngine in 1976, which used to process P-Code as instruction set.<br />
<br />
The Lisp machines the early 80s.<br />
<br />
The original Smalltalk environment at Xerox in <br />
<br />
Forth is a VM, compiler and operating system, all in one, in the early 70s.<br />
<br />
Modula-2 based system for the Lilith architecture.<br />
<br />
Some versions of Oberon operating system, use the modules in bytecode form and compile them on load.<br />
<br />
Granted this systems still do use some assembly at the core of their implementations, but so do C based OSs.</description>
			<pubDate>Sun, 20 Feb 2011 22:33:00 GMT</pubDate>
			<author>donotreply@osnews.com (moondevil)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[2]: Comment by cb88</title>
			<link>http://www.osnews.com/thread?463433</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?463433</guid>
			<description>While any vailidation of your efforts on my part was wholly unintentional... you're welcome just the same :-)<br />
  <br />
  I wish there were more information on exokernels myself.... the idea seems to have stalled back in 2000. XOK doesn't even compile with a modern compiler. Myself I am looking at going through the MIT OS developement course on my own... through the xv6 code and development of JOS which is an exokernel <a href="http://pdos.csail.mit.edu/6.828" rel="nofollow">http://pdos.csail.mit.edu/6.828</a><br />
<br />
EDIT: I found an old copy of the code apparently a newer copy is here <a href="http://pdos.csail.mit.edu/6.828/xv6/xv6-rev5.tar.gz" rel="nofollow">http://pdos.csail.mit.edu/6.828/xv6/xv6-rev5.tar.gz</a> <br />
<br />
It doesn't require any hacking up to compile it... just make qemu or make bochsEdited 2011-02-21 01:05 UTC</description>
			<pubDate>Mon, 21 Feb 2011 00:59:00 GMT</pubDate>
			<author>donotreply@osnews.com (cb88)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>Thanks!</title>
			<link>http://www.osnews.com/thread?463442</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?463442</guid>
			<description>Beautiful article!!!<br />
<br />
Some years ago I was fascinated reading about L4 and its several implementations. What I find great on microkernels is the way of implementing everything as servers (isolated processes) or implementing several &quot;personalities&quot; running on top of the microkernel; so you could, in theory, having your microkernel with several &quot;virtual machines&quot; running on top of it. Could you think on Xen or VMware ESX Server as having some microkernel-like design?</description>
			<pubDate>Mon, 21 Feb 2011 03:12:00 GMT</pubDate>
			<author>donotreply@osnews.com (ebasconp)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>Hybrid windows</title>
			<link>http://www.osnews.com/thread?463455</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?463455</guid>
			<description>Windows is more hybrid in recent years since the introduction of User-mode Driver Framework: <a href="http://en.wikipedia.org/wiki/User-Mode_Driver_Framework" rel="nofollow">http://en.wikipedia.org/wiki/User-Mode_Driver_Framework</a><br />
IIRC, Aero graphics drivers run in usermode.<br />
<br />
Another VM-based OS that's had some coverage on OSNews is Phantom OS: <a href="http://dz.ru/en/solutions/phantom/" rel="nofollow">http://dz.ru/en/solutions/phantom/</a><br />
Their goal is full persistence of all processes, data etc across shutdowns. Last blog post was October 2010 so perhaps it's not dead yet.</description>
			<pubDate>Mon, 21 Feb 2011 07:21:00 GMT</pubDate>
			<author>donotreply@osnews.com (Morph)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[3]: jnode</title>
			<link>http://www.osnews.com/thread?463456</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?463456</guid>
			<description>What was the point of coding a kernel in an interpreted language without even having the benefits of modern interpreted languages like type safety and pointer/array bounds checking, just for the sake of having the code being interpreted ? Apart for proving &quot;yeah, it's possible&quot;, sounds like a waste to me...</description>
			<pubDate>Mon, 21 Feb 2011 07:32:00 GMT</pubDate>
			<author>donotreply@osnews.com (Neolander)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[4]: jnode</title>
			<link>http://www.osnews.com/thread?463461</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?463461</guid>
			<description>Funny that all the languages I mention have those benefits.<br />
<br />
And most of the examples given by me have JIT implementations.<br />
<br />
Do you know that Sun's Java Hotspot was actually developed for Smaltalk (Self)?<br />
<br />
Age has some benefits... <img src="/images/emo/smile.gif" alt=";)" /></description>
			<pubDate>Mon, 21 Feb 2011 07:55:00 GMT</pubDate>
			<author>donotreply@osnews.com (moondevil)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[5]: jnode</title>
			<link>http://www.osnews.com/thread?463462</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?463462</guid>
			<description>So, you are telling me, without a smile, that Forth manages to be type-safe without even having a type system ? <img src="/images/emo/smile.gif" alt=";)" /> <br />
 <br />
 <div class="cquote">Age has some benefits... <img src="/images/emo/wink.gif" alt=";)" />  </div><br />
 <br />
   Indeed, especially when trying to understand computer history... These benefits go in both directions of the &quot;age&quot; axis though. I've had the chance to know the time where not every game was an FPS and to learn to program with Delphi without having COBOL and FORTRAN giving me nightmares during my childhood, so I'd say I came in this world just at the right time as far as PC evolution is concerned ^^Edited 2011-02-21 08:22 UTC</description>
			<pubDate>Mon, 21 Feb 2011 08:02:00 GMT</pubDate>
			<author>donotreply@osnews.com (Neolander)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: Hybrid windows</title>
			<link>http://www.osnews.com/thread?463463</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?463463</guid>
			<description><div class="cquote">Windows is more hybrid in recent years since the introduction of User-mode Driver Framework: <a href="http://en.wikipedia.org/wiki/User-Mode_Driver_Framework" rel="nofollow">http://en.wikipedia.org/wiki/User-Mode_Driver_Framework</a> <br />
 IIRC, Aero graphics drivers run in usermode. </div><br />
 Indeed. That thing crashes so often on my machine that if it was in kernel mode, I'd spend more time rebooting than doing something useful when I'm on Windows, like in the Win9x days...<br />
 <br />
 Don't know which part exactly of Windows' graphics stack is in user mode, though. I find it hard to believe that they could just fully move graphics driver in user space. That would break driver compatibility, which is definitely not Microsoft's thing.<br />
 <br />
 <div class="cquote">Another VM-based OS that's had some coverage on OSNews is Phantom OS: <a href="http://dz.ru/en/solutions/phantom/" rel="nofollow">http://dz.ru/en/solutions/phantom/</a><br />
 Their goal is full persistence of all processes, data etc across shutdowns. Last blog post was October 2010 so perhaps it's not dead yet. </div><br />
 Added, along with some links.Edited 2011-02-21 08:28 UTC</description>
			<pubDate>Mon, 21 Feb 2011 08:07:00 GMT</pubDate>
			<author>donotreply@osnews.com (Neolander)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[2]: Hybrid windows</title>
			<link>http://www.osnews.com/thread?463468</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?463468</guid>
			<description><div class="cquote">Indeed. That thing crashes so often on my machine that if it was in kernel mode, I'd spend more time rebooting than doing something useful when I'm on Windows, like in the Win9x days...<br />
 <br />
 Don't know which part exactly of Windows' graphics stack is in user mode, though. I find it hard to believe that they could just fully move graphics driver in user space. That would break driver compatibility, which is definitely not Microsoft's thing. </div><br />
<br />
Microsoft did break compatibility with Windows Vista by pushing more responsibility off onto the hardware vendors hence WDDM (Windows Display Driver Model) required virtual re-write of drivers hence the reason why Windows Vista launch was so problematic. Windows 7 has WDDM 1.1 which has bought back hardware acceleration for some GDI functions given in 1.0 GDI was totally software driven.<br />
<br />
As for Windows crashes; when you have multiple points of failure; crappy hardware, crappy drivers and a difficult to understand driver API then things will never work out as planned. With that being said, however, if your hardware vendor produces quality hardware and uses the latest Windows Driver Kit and takes advantage of the 'tried and tested' templates that exist then many of the issues shouldn't arise (at least in theory).</description>
			<pubDate>Mon, 21 Feb 2011 09:17:00 GMT</pubDate>
			<author>donotreply@osnews.com (kaiwai)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[3]: Hybrid windows</title>
			<link>http://www.osnews.com/thread?463481</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?463481</guid>
			<description>Well, although there are some random Aero crashes, Aero mainly crashes when running old games and other things running in full screen which do not use DirectX (or at least not the latest releases), so I bet I'm just not in the official test cases <img src="/images/emo/smile.gif" alt=";)" /> <br />
  <br />
  Also, I have an exotic GPU setup (Optimus), which further increases the likelihood of something breaking.<br />
  <br />
  I've reported that on Microsoft's bug reporting tool, but they were not very helpful in terms of telling me who else I should contact if it's not their fault.<br />
  <br />
  Anyway, I've switched back to using Linux as my main OS some months ago, so I don't care so much about that anymore. And as said before, I must admit that it breaks quite nicely, silently falling back to CPU rendering without a glitch.Edited 2011-02-21 11:40 UTC</description>
			<pubDate>Mon, 21 Feb 2011 11:38:00 GMT</pubDate>
			<author>donotreply@osnews.com (Neolander)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[6]: jnode</title>
			<link>http://www.osnews.com/thread?463484</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?463484</guid>
			<description>Ok, in what concerns Forth you are right.</description>
			<pubDate>Mon, 21 Feb 2011 11:53:00 GMT</pubDate>
			<author>donotreply@osnews.com (moondevil)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>Glass houses</title>
			<link>http://www.osnews.com/thread?463512</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?463512</guid>
			<description>The people at wiki.osdev.org/Main_Page sure are elitist considering how much of their information assumes the silly behavior of x86.<br />
<br />
I think being an obnoxious snob carries certain responsibilities, such as knowing how large a world one lives in.</description>
			<pubDate>Mon, 21 Feb 2011 18:03:00 GMT</pubDate>
			<author>donotreply@osnews.com (AFreeQuark)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: Glass houses</title>
			<link>http://www.osnews.com/thread?463513</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?463513</guid>
			<description>Could you... elaborate ?<br />
<br />
Kochise</description>
			<pubDate>Mon, 21 Feb 2011 19:57:00 GMT</pubDate>
			<author>donotreply@osnews.com (Kochise)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: Glass houses</title>
			<link>http://www.osnews.com/thread?463514</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?463514</guid>
			<description>Hi,<br />
<br />
<div class="cquote">The people at wiki.osdev.org/Main_Page sure are elitist considering how much of their information assumes the silly behavior of x86. </div><br />
<br />
This isn't intentional. Anyone who has information on other platforms is encouraged to add to wiki.osdev.org.<br />
<br />
The reality is, most hobbyist OS developers (just like normal users) have easy access to one or more &quot;PC compatible&quot; computers (required for testing, etc), and don't have easy access to anything else.<br />
<br />
<i>Note 1: &quot;testing&quot; means being able to find bugs that exist but only show symptoms in some situations, by being able to test on a (hopefully large) number of different systems.<br />
<br />
Note 2: &quot;easy access&quot; means you (and other people that volunteer to test your OS) can mess with system software without special equipment (JTAG cables, flash/EPROM burners, etc) and without worrying about bricking the system.</i><br />
<br />
Most other platforms are either rare (e.g. SPARC), obsolete (e.g. Alpha), or too expensive (e.g. Itanium). This even includes other platforms that use x86 CPUs (UEFI based systems), which are still far less widespread than &quot;PC compatibles&quot;.<br />
<br />
Then there's embedded CPUs (MIPS, ARM) which can't really be considered a platform because there's no standardisation for much more than the CPU's instruction set. For these, you can write an OS for one system and it won't really work on other systems that have the same CPU type. For example, you can write an OS for one of the ARM development boards, but you'd need to port the OS to any other ARM systems you want to support, which makes it hard to test on a wide variety of systems (especially during the early stages of development).<br />
<br />
Anway, the end result of &quot;all the above&quot; is that most hobbyist OS developers want information for &quot;PC compatible&quot; computers, and eventually become people who are able to add information about &quot;PC compatible&quot; computers to wiki.osdev.org.<br />
<br />
I'd also point out that some of the information on wiki.osdev.org applies to any platform. This includes the &quot;theory&quot; sections, some hardware information (PCI and USB), etc.<br />
<br />
- Brendan</description>
			<pubDate>Mon, 21 Feb 2011 23:45:00 GMT</pubDate>
			<author>donotreply@osnews.com (Brendan)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[2]: Glass houses</title>
			<link>http://www.osnews.com/thread?463529</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?463529</guid>
			<description>I'd rather take back my comment, actually, as it didn't really add much to the conversation.  I had poked around the FAQ and forum a bit and was dismayed by how discouraging people were sometimes being to newbies.<br />
<br />
...but if I had to point something out, there were a lot of articles on the initial boot-up of systems which talked as if the details were universal, when they were really all x86-specific.<br />
<br />
Again, though, I wish I could retract my previous comment.  The site *does* have a lot of no-doubt useful information.<br />
<br />
:)</description>
			<pubDate>Tue, 22 Feb 2011 02:00:00 GMT</pubDate>
			<author>donotreply@osnews.com (AFreeQuark)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[2]: Glass houses</title>
			<link>http://www.osnews.com/thread?463531</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?463531</guid>
			<description>Good points, all.<br />
<br />
Hopefully I will have things to add to the wiki in the near future.  <img src="/images/emo/smile.gif" alt=";)" /></description>
			<pubDate>Tue, 22 Feb 2011 02:02:00 GMT</pubDate>
			<author>donotreply@osnews.com (AFreeQuark)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>Comment by t3RRa</title>
			<link>http://www.osnews.com/thread?463556</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?463556</guid>
			<description>AFAIK because NT kernel does indeed include some features in kernel space where as pure microkernels separate all of those features into user space, but it still loads other features as services into user space, Therefore NT kernel is called a hybrid kernel. it is not actually monolithic and different from Linux's module architecture. (BeOS is also similarly a adopted a hybrid kernel architecture.) So it is not true to call it monolithic kernel architecture because everything is separated.</description>
			<pubDate>Tue, 22 Feb 2011 08:30:00 GMT</pubDate>
			<author>donotreply@osnews.com (t3RRa)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: Phew, finally !</title>
			<link>http://www.osnews.com/thread?463560</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?463560</guid>
			<description>Great choice of University. You won't be disappointed =) If you have any questions about Uppsala or the uni don't hesitate to ask me. Drop a PM.</description>
			<pubDate>Tue, 22 Feb 2011 08:49:00 GMT</pubDate>
			<author>donotreply@osnews.com (abstraction)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[2]: Phew, finally !</title>
			<link>http://www.osnews.com/thread?463586</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?463586</guid>
			<description>AFAIK, the PM feature of OSnews is discontinued (look at <a href="http://www.osnews.com/messages?op=compose&amp;uid=5" rel="nofollow">http://www.osnews.com/messages?op=compose&amp;uid=5</a> ).<br />
<br />
However, as an editor, I've got access to the mail address you used for subscribing, so I can contact you this way if you're okay with that <img src="/images/emo/smile.gif" alt=";)" /></description>
			<pubDate>Tue, 22 Feb 2011 15:14:00 GMT</pubDate>
			<author>donotreply@osnews.com (Neolander)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[3]: Phew, finally !</title>
			<link>http://www.osnews.com/thread?463602</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?463602</guid>
			<description>No problems!</description>
			<pubDate>Tue, 22 Feb 2011 22:15:00 GMT</pubDate>
			<author>donotreply@osnews.com (abstraction)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: Comment by t3RRa</title>
			<link>http://www.osnews.com/thread?463606</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?463606</guid>
			<description><i>So it is not true to call it monolithic kernel architecture <b>because everything is separated</b>.</i><br />
<br />
I meant &quot;everything is not separated&quot;. common mistake while changing and moving around..</description>
			<pubDate>Tue, 22 Feb 2011 22:50:00 GMT</pubDate>
			<author>donotreply@osnews.com (t3RRa)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>VM Based Kernel</title>
			<link>http://www.osnews.com/thread?463660</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?463660</guid>
			<description>I am absolutely delighted that my suggestion to use a type safe language to provide isolation got attention in the &quot;VM Based Kernels&quot; section.<br />
<br />
<br />
&quot;The kernel must include a full featured interpreter for the relevant language, which means that the codebase will be huge, hard to design, and that very nasty VM bugs are to be expected during implementation.&quot;<br />
<br />
Yes, a type safe VM language will require more work than simply using a traditional compiler.<br />
<br />
As for devel effort, with any luck we wouldn't have to completely re-invent the wheel and could use existing VM implementations like Java or Mono. Writing a VM from scratch would be a ton of work - even if it has merit.<br />
<br />
I think the term &quot;interpreter&quot; mis-characterizes the approach. A type safe language capable of isolation is not dependant on being interpreted, it can use JIT and pre-compilation too.<br />
<br />
<br />
&quot;Making a VM fast enough that it is suitable for running kernel-level code full of hardware access and pointer manipulation is another big programming challenge.&quot;<br />
<br />
As discussed in the earlier comments, I don't think the type safe language would imply any overhead overhead over a correctly implemented unsafe-language version. All we require are safe language constructs which map efficiently over top of the underlying hardware like (memory mapped devices, port IO, DMA).<br />
<br />
<br />
&quot;A VM running on top of bare hardware will be harder to write, and thus more buggy and exploitable, than a VM running in the user space of an operating system.&quot;<br />
<br />
This depends on how deeply integrated Java/Mono are with external dependencies (such as pthreads, or libc, or syscalls). Since I don't know the answer, I'll let the criticism stand.<br />
<br />
<br />
&quot;Currently, the Java Virtual Machine is one of the biggest sources of vulnerabilities in existence on desktop PCs.&quot;<br />
<br />
Citation?<br />
<br />
Also, remember that, unlike a web browser sandbox, the kernel/VM isn't required to protect from maliciously altered kernel modules (untrusted code). It only needs to ensure that modules written in type safe code remain isolated.<br />
<br />
As long as the compiler only produces in-spec modules, then we can reasonably get away with a VM which produces undefined results for out-of-spec modules. <br />
<br />
<br />
Features I thought about for my OS many years ago:<br />
<br />
It would be very nice to have support for clusters within the OS, such that you could take any running application and migrate it to another node while continuing to run. Similar to what VMware/KVM/Xen do, but would work with arbitrary applications.<br />
<br />
<br />
Every single kernel interface should have the ability to be virtualized such that all interfaces on PC-A could be transparently redirected/aliased on PC-B without explicit support for this within the drivers.<br />
<br />
PC-A: soundblaster, webcam<br />
PC-B: remote alias to peripheral devices from PC-A<br />
<br />
This would go hand in hand to make the application migration feature seamless.<br />
<br />
This also means that all local applications could bind to remote devices transparently without being explicitly written to do so.<br />
<br />
<br />
Other thoughts:<br />
<br />
I hope you're not planning on copying the *nix signal model, it's pretty bad for modern requirements.<br />
<br />
I also hope you opt for an asynchronous IO design within the kernel over a threaded IO design. This has been one of the weaknesses plaguing linux for years.<br />
<br />
While Posix plays an important role in compatibility and standardization, it's a major impediment to revolutionary designs. Therefore I think strict Posix compliance should be an explicit non-goal, particularly with regards to fs permissions and some of the braindead APIs.<br />
<br />
<br />
Now if only someone would employ me to work on these things... Is anyone else here woefully under employed?</description>
			<pubDate>Wed, 23 Feb 2011 08:12:00 GMT</pubDate>
			<author>donotreply@osnews.com (Alfman)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>SymbianOS missing</title>
			<link>http://www.osnews.com/thread?463731</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?463731</guid>
			<description>I think you forgot the SymbianOS. It might be worth to mention it since it has some interesting concepts, even though it is a bit unclear for how long it will exist (and for how long you can look at the source code to learn from it)</description>
			<pubDate>Wed, 23 Feb 2011 18:38:00 GMT</pubDate>
			<author>donotreply@osnews.com (maze)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: VM Based Kernel</title>
			<link>http://www.osnews.com/thread?463811</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?463811</guid>
			<description><div class="cquote"> I don't think the type safe language would imply any overhead overhead over a correctly implemented unsafe-language version. All we require are safe language constructs which map efficiently over top of the underlying hardware like (memory mapped devices, port IO, DMA). </div><br />
<br />
JNode and SqeakNOS are practical examples of VM based kernels - esp. check out Squeak and it's associated OS branch squeakNOS. It looks like development has stalled again, so it's missing COG integration (JIT compiler) and the latest I/O libraries, and the optimisation is pretty non-existant at this stage. It does run reasonably quickly however.<br />
<br />
As per the argument put forward by the Phantom OS team, you should be able to (long term) optimise this sort of OS better than a monolithic kernel thanks to zero context switching.<br />
<br />
<div class="cquote"> &quot;A VM running on top of bare hardware will be harder to write, and thus more buggy and exploitable, than a VM running in the user space of an operating system.&quot; This depends on how deeply integrated Java/Mono are with external dependencies (such as pthreads, or libc, or syscalls). Since I don't know the answer, I'll let the criticism stand. &quot;Currently, the Java Virtual Machine is one of the biggest sources of vulnerabilities in existence on desktop PCs.&quot; Citation? Also, remember that, unlike a web browser sandbox, the kernel/VM isn't required to protect from maliciously altered kernel modules (untrusted code). It only needs to ensure that modules written in type safe code remain isolated. As long as the compiler only produces in-spec modules, then we can reasonably get away with a VM which produces undefined results for out-of-spec modules.  </div><br />
<br />
In addition, the VM would take away a whole class of bugs in user-level code eg. buffer overrun bugs in flash plugins. OS-wide I think you'd have a net gain and any VM bugs would show themselves quickly (and get fixed for an open source project anyway).<br />
<br />
<div class="cquote"> Features I thought about for my OS many years ago: It would be very nice to have support for clusters within the OS, such that you could take any running application and migrate it to another node while continuing to run. Similar to what VMware/KVM/Xen do, but would work with arbitrary applications. Every single kernel interface should have the ability to be virtualized such that all interfaces on PC-A could be transparently redirected/aliased on PC-B without explicit support for this within the drivers. PC-A: soundblaster, webcam PC-B: remote alias to peripheral devices from PC-A This would go hand in hand to make the application migration feature seamless. This also means that all local applications could bind to remote devices transparently without being explicitly written to do so. Other thoughts: I hope you're not planning on copying the *nix signal model, it's pretty bad for modern requirements. I also hope you opt for an asynchronous IO design within the kernel over a threaded IO design. This has been one of the weaknesses plaguing linux for years. </div><br />
<br />
Checkout the Spoon image - it can do this and much more (versioning is handled well), major update due in March!</description>
			<pubDate>Thu, 24 Feb 2011 11:01:00 GMT</pubDate>
			<author>donotreply@osnews.com (alexisread)</author>
			<category>Comments</category>
		</item>
	</channel>
</rss>
