<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Cosmos Managed OS</title>
        <link>http://www.shanghai-software.com/blog/category/22.aspx</link>
        <description>Cosmos Managed OS</description>
        <language>en-AU</language>
        <copyright>Ben Kloosterman</copyright>
        <generator>Subtext Version 2.1.0.5</generator>
        <item>
            <title>"pure" Managed OS</title>
            <link>http://www.shanghai-software.com/blog/archive/2010/07/24/pure-managed-os.aspx</link>
            <description>&lt;p&gt;Sooos will not be a pure managed OS  , like Cosmos SharpOS or Mosa  , or even Singularity ( which has a small amount of C++ code)...&lt;/p&gt;
&lt;p&gt;I still feel that GC technology has some way to go  and at present the performance penalty is too bad for certain functions.   This is especially so for writes as most GCs todate implement a write barrier which can more that half write performance , that said as we go to higher core counts it may be more efficient to remove the write barrier.&lt;/p&gt;
&lt;p&gt;In particularly 3D and some mathemetical modelling which need to work over a large mutable space. &lt;/p&gt;
&lt;p&gt;However it may be possible in future and we can test a native lib wrapped in a service vs a pure service to see the impact on performance and only have critical services that suffer from GC costs running native .    Anyway Sooos will take a practical approach it will have as much code as it practical type safe and memory safe and will move other performance critical native code when there is comparable managed code. &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;img src="http://www.shanghai-software.com/blog/aggbug/66.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ben Kloosterman</dc:creator>
            <guid>http://www.shanghai-software.com/blog/archive/2010/07/24/pure-managed-os.aspx</guid>
            <pubDate>Sat, 24 Jul 2010 09:17:05 GMT</pubDate>
            <wfw:comment>http://www.shanghai-software.com/blog/comments/66.aspx</wfw:comment>
            <comments>http://www.shanghai-software.com/blog/archive/2010/07/24/pure-managed-os.aspx#feedback</comments>
            <wfw:commentRss>http://www.shanghai-software.com/blog/comments/commentRss/66.aspx</wfw:commentRss>
            <trackback:ping>http://www.shanghai-software.com/blog/services/trackbacks/66.aspx</trackback:ping>
        </item>
        <item>
            <title>Modern UNIX /Linux compile , make files and dev environment</title>
            <link>http://www.shanghai-software.com/blog/archive/2010/06/08/modern-unix-linux-compile-make-files-and-dev-environment.aspx</link>
            <description>&lt;p&gt;It is quite amazing what has been built in the UNIX space , look at Gentoo which will compile the entire system optomized for the machine .  That being said i question is it worth it ?  It seems to be that a significant time % of  Unix development is spent on the dev environment. &lt;/p&gt;
&lt;p&gt;The patches , the solving make file issues , the wrappers , the hacks , the conflicts  , what works with what etc ?  Compared to the Java and  .NET world you just drop the code /assembly on the machine and it will compile and run regardless , at worst you have to add a new assembly. . &lt;/p&gt;
&lt;p&gt;Build environments for most .NET projects tend to just be a list of files to compile and where to copy it.  This is rather interesting  , especially on windows where you far more complex installers with user dir , registries , dll registry etc though it has helped that .NET has dropped the use of  registry for a simpler configuration  environment .&lt;/p&gt;
&lt;p&gt;The reason why its much simpler this is not the compilation environment etc but mainly because of &lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;The C conditional compilation changes. &lt;/li&gt;
    &lt;li&gt;The increased use of runtime configuration options. &lt;/li&gt;
    &lt;li&gt;A reliance on a standard interface ( helped by a huge framework the interface of which doesnt change) &lt;/li&gt;
    &lt;li&gt;Denying the caller the chance to change or recompile the lib &lt;/li&gt;
    &lt;li&gt;The removal of the static compile concept. &lt;/li&gt;
    &lt;li&gt;A cross platform IR representation. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There is no reason Unix development cant adopt the same ideas  eg &lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;instead of delivering hard to compile code or  single platform binaries you can distribute everything in say LVVM IR  intermediate representation &lt;/li&gt;
    &lt;li&gt;Remove nearly all compile options and replace with runtime configuration options &lt;/li&gt;
    &lt;li&gt;Remove .configure &lt;/li&gt;
    &lt;li&gt;With the above 2 makefiles should be trivial . &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It would make Unix development  and deployment significantly easier and you could drop an assembly on any machine and it would compile optimaly for the machine. When enabling certain config option at run time you will be told if they are invalid&lt;/p&gt;
&lt;p&gt; I doubt the above will happen but it would be a massive improvement ,the best option is probably if this is done through package distribution but the big difficult is pulling the code development out of the dark age or should that be the vi age .&lt;/p&gt;&lt;img src="http://www.shanghai-software.com/blog/aggbug/63.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ben Kloosterman</dc:creator>
            <guid>http://www.shanghai-software.com/blog/archive/2010/06/08/modern-unix-linux-compile-make-files-and-dev-environment.aspx</guid>
            <pubDate>Tue, 08 Jun 2010 06:17:53 GMT</pubDate>
            <wfw:comment>http://www.shanghai-software.com/blog/comments/63.aspx</wfw:comment>
            <comments>http://www.shanghai-software.com/blog/archive/2010/06/08/modern-unix-linux-compile-make-files-and-dev-environment.aspx#feedback</comments>
            <wfw:commentRss>http://www.shanghai-software.com/blog/comments/commentRss/63.aspx</wfw:commentRss>
            <trackback:ping>http://www.shanghai-software.com/blog/services/trackbacks/63.aspx</trackback:ping>
        </item>
        <item>
            <title>OS memory protection - Is it worth it  ?</title>
            <link>http://www.shanghai-software.com/blog/archive/2010/06/08/os-memory-protection-is-it-worth-it.aspx</link>
            <description>&lt;p&gt; &lt;/p&gt;
&lt;p&gt;It strikes me as interesting the horror people  exhibit when you tell them you have disabled memory protection and hence the kernel transition.  Lets look at this in more detail. &lt;/p&gt;
&lt;p&gt;1) Most oS run with the majority of code with NO protection . In both Linux , OSX and Windows most drivers , services and the kernel exist in a single large domain representing the majority of the code base. Any error in the code can bring a machine down or cause a security issue. &lt;/p&gt;
&lt;p&gt;2) Critical software like routers often run on Embedded systems most of which dont have or use an MMU and hence dont have protection. &lt;/p&gt;
&lt;p&gt;3) Many servers run a single application. eg SQL server. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;So what is bad about running with no protection.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;1) Students &amp;amp; Developers on  Time sharing systems . Obviously this is bad... quite a few students have brought machines down even with protection you dont need to make it worse.&lt;/p&gt;
&lt;p&gt;2) Security . The whole address space is vissable which creates a security system. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;So is it needed or not ?&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;Not on normal non shared systems , on personal computers or servers . However an extra layer of security is advisable  and moving user apps to a sandbox such as Java or .NET will give protection without the cost..&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;img src="http://www.shanghai-software.com/blog/aggbug/62.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ben Kloosterman</dc:creator>
            <guid>http://www.shanghai-software.com/blog/archive/2010/06/08/os-memory-protection-is-it-worth-it.aspx</guid>
            <pubDate>Tue, 08 Jun 2010 06:13:12 GMT</pubDate>
            <wfw:comment>http://www.shanghai-software.com/blog/comments/62.aspx</wfw:comment>
            <comments>http://www.shanghai-software.com/blog/archive/2010/06/08/os-memory-protection-is-it-worth-it.aspx#feedback</comments>
            <wfw:commentRss>http://www.shanghai-software.com/blog/comments/commentRss/62.aspx</wfw:commentRss>
            <trackback:ping>http://www.shanghai-software.com/blog/services/trackbacks/62.aspx</trackback:ping>
        </item>
        <item>
            <title>Managed OS</title>
            <link>http://www.shanghai-software.com/blog/archive/2010/04/06/managed-os.aspx</link>
            <description>&lt;span style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;; mso-themecolor: dark2; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-bidi"&gt;&lt;o:p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;Just an update on what I have been up to. I don’t have a lot of time and what little I have im spending on the kernel.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;Some back ground&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;The key challenges to moderns OS are&lt;br /&gt;
1. Security  ( more specifically hacking through 3rd party services likes Flash and limiting the damage from users allowing bad apps) &lt;br /&gt;
2. Reliability&lt;br /&gt;
3. Resiliency eg recovering from a critical failure&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;And to a lesser extent&lt;br /&gt;
4. Difficulty in managing change to an OS &lt;br /&gt;
5. Handling the Asynchronous nature of the internet&lt;br /&gt;
6. Handling multi cores efficiently&lt;/font&gt;&lt;/p&gt;
&lt;font face="Arial"&gt;
&lt;p&gt;&lt;br /&gt;
SOOOS ( Service Oriented Object Operating System)  is a OS that scales from embedded to GP.  It is not a simple research OS ,  the key goals are&lt;/p&gt;
&lt;p&gt;*Scale from embedded to server ( this is easy with no MMU)&lt;br /&gt;
* Only allow managed user applications ( Java &amp;amp; .NET ) &lt;br /&gt;
* A full capability security model  with little ambient authority both improving code quality and  the main security risks. &lt;br /&gt;
* TDD to increase reliability and ease of change&lt;br /&gt;
* Deeply asynchronous message passing IPC to improve security , maintenance , multi core scaling and performance&lt;br /&gt;
* Applications and Services are broken down into small services these services are load balanced and the OS can decide how many to run.  These small services also allow greater reuse and flexibility as they are defined via an interface.  Examples of these services are Crypto and  XML parsing.  The small services also increase parallelism.&lt;br /&gt;
* Any service can be made available to other machines.&lt;br /&gt;
* Self healing  , services are monitored and terminated if they stop responding the system ensures there is always a minimum amount of services.  .&lt;br /&gt;
* Performance at least 95% of Linux or windows  , 105% is desirable. &lt;br /&gt;
* Kernelless. There is a TCB which I hope to keep under 100K lines.  &lt;/p&gt;
&lt;p&gt;doing I have continued documenting the design of my kernel ( 13 documents now) and discussing kernel designs with phil on #mosa and others.&lt;/p&gt;
&lt;p&gt;I was using Cosmos but I think it will be a while before the compiler is at a decent state and that means heavy optimizations ( my guess 5 years Cosmos , 2 year mosa) After considering the  above I was thinking for any OS to gain acceptance it needs to be fast and reliable which is difficult for us to achieve without a compiler in fact the first few non asm versions of UNIX failed ( based on B and C) until they had a good and fast compiler. &lt;/p&gt;
&lt;p&gt;I then decided to write these components on Windows using a changeable HAL when mosa or Cosmos is ready I can change the Hal its ready to this end I wrote some IPC algorithms , locking mechanisms and a MM to see what they would look like . .I also don’t believe using corelib as a syslib is “safe” yet to write your own syslib for trusted components which I was doing is time consuming.  &lt;/p&gt;
&lt;p&gt;At this point I was working on shared data structures and for this would need an efficient ( non GC ) allocator so started looking at some Linux code , they have a good  approach here with a Buddy page allocator for large amounts and SLAB/SLUB for lots of small objects ( just a large allocation say 2 Meg which hands out lots of small objects by marking them in use ) I then found a MMU_CONFIG option. &lt;/p&gt;
&lt;p&gt;This is used by uCLinux designed for embedded systems , disable the MMU . &lt;br /&gt;
Features that are present&lt;br /&gt;
- A syslib  ( uslib) &lt;br /&gt;
- Full Multi tasking &lt;br /&gt;
- Most of Linux works ,except calls to fork ( due to its use of copy on write paging)  . This means things like the nvida driver&lt;br /&gt;
- Uses the standard Linux Kernel&lt;br /&gt;
- Support for both Position independent Code and remapping code on load&lt;br /&gt;
- Support for shared code&lt;br /&gt;
- Flat file format&lt;br /&gt;
- Flat memory model&lt;br /&gt;
- Support for many architectures including 680x0  ,arm etc&lt;/p&gt;
&lt;p&gt;It than struck me If  can get this and Mono working and then disable non .NET apps I have a managed OS which is fast , reliable and immediately useable ( eg package it up and use VS to create the managed apps and you already have an awesome embedded environment (though a bit big) ) .&lt;/p&gt;
&lt;p&gt;We then add a new managed Asynch  IPC , assembly install and compile , compile time range checks  and capabilities and slowly move Linux drivers into managed user app drivers  ( even a managed wrapper  initially especially for the accelerated Nvidia and Radeon drivers) &lt;/p&gt;
&lt;p&gt;Delete what is extra . Eventually there is less and less native code. &lt;/p&gt;
&lt;p&gt;“Perfection is achieved not when you can’t add any more but when you cannot take any more away”&lt;/p&gt;
&lt;p&gt;Result we start with a Linux derivative which is fast , stable  and runs on many platforms and continually improve it  to make it more secure , reliable and resilient.  &lt;/p&gt;
&lt;p&gt;Anyway that’s what im working on ( getting x86 Linux arch with no MMU and Mono running on it) . &lt;br /&gt;
&lt;/p&gt;
&lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;img src="http://www.shanghai-software.com/blog/aggbug/55.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ben Kloosterman</dc:creator>
            <guid>http://www.shanghai-software.com/blog/archive/2010/04/06/managed-os.aspx</guid>
            <pubDate>Tue, 06 Apr 2010 03:10:21 GMT</pubDate>
            <wfw:comment>http://www.shanghai-software.com/blog/comments/55.aspx</wfw:comment>
            <comments>http://www.shanghai-software.com/blog/archive/2010/04/06/managed-os.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://www.shanghai-software.com/blog/comments/commentRss/55.aspx</wfw:commentRss>
            <trackback:ping>http://www.shanghai-software.com/blog/services/trackbacks/55.aspx</trackback:ping>
        </item>
        <item>
            <title>Next Generation Operating System Why needed and Why now.</title>
            <link>http://www.shanghai-software.com/blog/archive/2010/02/13/next-generation-operating-system-why-needed-and-why-now.aspx</link>
            <description>&lt;p&gt;I am comming more and more to the conclusion that existing Operating System do not meet our needs nor can they be changed to handle these ( look at the cost for Windows 7 to improve parralelism cite) .  This is not just Windows but also Symbian , Linux , OSX , Chrome etc.  Im also saying UNIX is reaching its use by date. &lt;/p&gt;
&lt;p&gt;Obviously the installed base is massive making change painfull but i believe it will come.  The Niche markets of Security , , CLoud computing and Mobile devices especially dont feel the impact of an existing installed base as much. &lt;/p&gt;
&lt;p&gt;While there are many smaller benefits the key benefits are &lt;/p&gt;
&lt;p&gt;1. Performance on modern hardware . This is not just execution performance  but also how applications are written for eg parallelism , while languages have made great strides in this area ( ie Hascal, F# and OCaml)  they get stuck at the iPC level on the Operating System . &lt;/p&gt;
&lt;p&gt;2. Asyncronous nature of modern communication most OS IPC is inefficient ( to what it could be ) for Asyncronous  IPC. ( it requires extra threads , wastes a return etc).&lt;/p&gt;
&lt;p&gt;3. Disk bound. All modern OS are heavily disk bound.  While traditionally this makes sense we are rapidly aproaching diskless computers with internet ( or file server)  storage . To some extent people have pushed for this but the OS nature has held as back.  This especially affects UNIX with its everything is a file concept and existing file based apps. Can anyone argue against remoter boot of Proms and USB sticks and network/internet  based access ? &lt;/p&gt;
&lt;p&gt;Computers are regularly waiting on the DIsk , primarily for page swapping , yet page swapping is almost redundant today  , the function can better be done with application swapping. Pageing results in a significant Operating system overhead in terms of performance but worse in terms of complexity , bugs and battery life / power usage. &lt;/p&gt;
&lt;p&gt;4. Reliability . Significant increases have been achived in message based micro kernels the next generation operating systems will do this without the performance cost.  Its worth noting that these message based Micro Kernel OS performance penalty has been getting worse due to the extra memory cost and memory speed has been growing slower than CPU.  &lt;/p&gt;
&lt;p&gt;5. Last but not least is security.  There are 3 main issues &lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Operating systems need to accept the user will agree to things asked and need to limit the damage. This is possible with non intruesive methods as shown by capROS , Eros and Coyotos.   These operating systems follow the POLP/POLA and applications have very low ambient authority.  Hence any breach will have limited impact. &lt;/li&gt;
    &lt;li&gt;Existing operating system applications and services , can be made to crash and expose memory and data for futher exploitation , typesafe and memorysafe OS will massively reduce this most common form of attack.. The OS itself is only vulnerable through a specific bug and without things like buffer overuns these are much rarer.  &lt;/li&gt;
    &lt;li&gt;UnIdentified applications . Apple has made strides in this area with approved apps though more for comercial reasons ( and since the approval proses is not independent people are starting to disable it ). Certificate signed .NET assemblies work pretty well as a measure of trust.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;6. Resource management .&lt;/p&gt;
&lt;p&gt;             How often do computers crawl because a backup , Virus scan or index is running ? While these threads run at low priority  there is no or little management of resources and since everything runs of the disk (see 3) things are waiting for all the time despite the fact that what they are waiting for is small. &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Most of these things require applications to be written differently but note this is also being required for specific reasons eg parralelism , Minimizing GC pauses , Cloud applications , Asyncronous applications , new languages Caml/Hescal/F# and last but not least writing applications for POLP/POLA ( Principal of Least priviledge/Authority) all require changes in the way we write application.  New generation operating systems should assist and encourage such programming.   &lt;/p&gt;
&lt;p&gt; In terms of why needed i think the recent Google attacks have shown that modern security is not effective enough.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;img src="http://www.shanghai-software.com/blog/aggbug/53.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ben Kloosterman</dc:creator>
            <guid>http://www.shanghai-software.com/blog/archive/2010/02/13/next-generation-operating-system-why-needed-and-why-now.aspx</guid>
            <pubDate>Sat, 13 Feb 2010 02:58:19 GMT</pubDate>
            <wfw:comment>http://www.shanghai-software.com/blog/comments/53.aspx</wfw:comment>
            <comments>http://www.shanghai-software.com/blog/archive/2010/02/13/next-generation-operating-system-why-needed-and-why-now.aspx#feedback</comments>
            <wfw:commentRss>http://www.shanghai-software.com/blog/comments/commentRss/53.aspx</wfw:commentRss>
            <trackback:ping>http://www.shanghai-software.com/blog/services/trackbacks/53.aspx</trackback:ping>
        </item>
        <item>
            <title>The End of Linux ...and Windows</title>
            <link>http://www.shanghai-software.com/blog/archive/2009/08/04/the-end-of-linux-.and-windows.aspx</link>
            <description>&lt;span style="font-weight: bold;"&gt;New generation of OS coming.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Operating Systems are about to enter their 4th generation with a revolutionary change.  These being &lt;br /&gt;
&lt;ul&gt;
    &lt;li&gt;Basic&lt;/li&gt;
    &lt;li&gt;TimeSharing&lt;/li&gt;
    &lt;li&gt;Hardware memory protection ( most were UNIX/MULTICS derived designs)&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;Managed OS. ( or OOOS) &lt;br /&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
While Singularity/Midori is a Manged OS it is still a traditional style OS. Not all 4th gen OS will be so traditional ,  things a operating system does like memory segmentation are not even needed. &lt;br /&gt;
&lt;br /&gt;
A better name for these OS may be an Object Oriented Operating System or even Object Oriented Framework.  Tradditional things like IPC (Asynch = events) and security can be done with language features (Interfaces ,Private members etc) especially using Capability OS techniques  with the reference being a capability. In effect  these OS are  just huge OO applications with user apps being part of it.  &lt;br /&gt;
&lt;br /&gt;
The only thing regarding scheduling that may be required is preemption especially on single threaded CPU's.  Yet this can still be done entirely in the OO framework .&lt;br /&gt;
&lt;br /&gt;
Why do this ? &lt;br /&gt;
            Better performance than existing OS due to no IPC/memory overheads.&lt;br /&gt;
            More reliable  , the OS can be easily tested and even proved.&lt;br /&gt;
            More secure. ( really more secure ,not like OSX/Linux  due to fewer attacks) &lt;br /&gt;
&lt;br /&gt;
All these things are especially needed in small internet linked devices ( including phones , Netbooks etc) , notice the latest iphone patch ? It will not be long before you will NEED a virus scanner and firewall on your phone as they will be attacked  like windows. &lt;br /&gt;
&lt;br /&gt;
I believe this is totally a revolutionary step as big as protected memory systems ( which are not needed now) were in building a stable OS remember early versions of Windows compared to NT /2000/XP . &lt;br /&gt;
&lt;br /&gt;
However research is completely lacking . Consider the nameless OS im  building with the Cosmos managed OS toolkit. &lt;br /&gt;
&lt;br /&gt;
&lt;meta content="text/html; charset=utf-8" http-equiv="Content-Type" /&gt;
&lt;meta content="Word.Document" name="ProgId" /&gt;
&lt;meta content="Microsoft Word 12" name="Generator" /&gt;
&lt;meta content="Microsoft Word 12" name="Originator" /&gt;
&lt;ul&gt;
    &lt;li&gt;
    &lt;pre&gt;&lt;link href="file:///C:\Users\ben\AppData\Local\Temp\msohtmlclip1\01\clip_filelist.xml" rel="File-List" /&gt;&lt;link href="file:///C:\Users\ben\AppData\Local\Temp\msohtmlclip1\01\clip_themedata.thmx" rel="themeData" /&gt;&lt;link href="file:///C:\Users\ben\AppData\Local\Temp\msohtmlclip1\01\clip_colorschememapping.xml" rel="colorSchemeMapping" /&gt;Managed OS - very little research&lt;/pre&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;pre&gt;Single Address space - no modern research eg Multi core .&lt;/pre&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;pre&gt;Asych IPC&lt;span style=""&gt;  &lt;/span&gt;- little modern research &lt;br /&gt;&lt;/pre&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;pre&gt;Capability Managed OS - no one has done it . &lt;/pre&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;pre&gt;OO security for Capabilities - no one has done it.&lt;/pre&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;pre&gt;Moving hardware access into user process and limit with capabilities - Very few people have done it most modern designs have user mode &lt;span style="" /&gt;drivers but the hardware access is the HAL. &lt;/pre&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;pre&gt;No Kernel calls - Minix is the only other OS I know of where IPC is used for Kernel calls .&lt;/pre&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;pre&gt;No kernel - Even&lt;span style=""&gt;  &lt;/span&gt;"Nano" kernels have primatives and hardware in the Kernel .&lt;/pre&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
&lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267"&gt;
&lt;w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal" /&gt;
&lt;w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1" /&gt;
&lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2" /&gt;
&lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3" /&gt;
&lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4" /&gt;
&lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5" /&gt;
&lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6" /&gt;
&lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7" /&gt;
&lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8" /&gt;
&lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9" /&gt;
&lt;w:LsdException Locked="false" Priority="39" Name="toc 1" /&gt;
&lt;w:LsdException Locked="false" Priority="39" Name="toc 2" /&gt;
&lt;w:LsdException Locked="false" Priority="39" Name="toc 3" /&gt;
&lt;w:LsdException Locked="false" Priority="39" Name="toc 4" /&gt;
&lt;w:LsdException Locked="false" Priority="39" Name="toc 5" /&gt;
&lt;w:LsdException Locked="false" Priority="39" Name="toc 6" /&gt;
&lt;w:LsdException Locked="false" Priority="39" Name="toc 7" /&gt;
&lt;w:LsdException Locked="false" Priority="39" Name="toc 8" /&gt;
&lt;w:LsdException Locked="false" Priority="39" Name="toc 9" /&gt;
&lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption" /&gt;
&lt;w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title" /&gt;
&lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font" /&gt;
&lt;w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle" /&gt;
&lt;w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong" /&gt;
&lt;w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis" /&gt;
&lt;w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid" /&gt;
&lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text" /&gt;
&lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing" /&gt;
&lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading" /&gt;
&lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List" /&gt;
&lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid" /&gt;
&lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1" /&gt;
&lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2" /&gt;
&lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1" /&gt;
&lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2" /&gt;
&lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1" /&gt;
&lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2" /&gt;
&lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3" /&gt;
&lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List" /&gt;
&lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading" /&gt;
&lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List" /&gt;
&lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid" /&gt;
&lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1" /&gt;
&lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision" /&gt;
&lt;w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph" /&gt;
&lt;w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote" /&gt;
&lt;w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote" /&gt;
&lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis" /&gt;
&lt;w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis" /&gt;
&lt;w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference" /&gt;
&lt;w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference" /&gt;
&lt;w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title" /&gt;
&lt;w:LsdException Locked="false" Priority="37" Name="Bibliography" /&gt;
&lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading" /&gt;
&lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;style type="text/css"&gt;&lt;!--
 /* Font Definitions */
 @font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:roman;
	mso-font-pitch:variable;
	mso-font-signature:-1610611985 1107304683 0 0 159 0;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-1610611985 1073750139 0 0 159 0;}
@font-face
	{font-family:Consolas;
	panose-1:2 11 6 9 2 2 4 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:modern;
	mso-font-pitch:fixed;
	mso-font-signature:-1610611985 1073750091 0 0 159 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"";
	margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Calibri;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;
	mso-fareast-language:EN-US;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
	{mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-link:"Plain Text Char";
	margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.5pt;
	font-family:Consolas;
	mso-fareast-font-family:Calibri;
	mso-fareast-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;
	mso-fareast-language:EN-US;}
span.PlainTextChar
	{mso-style-name:"Plain Text Char";
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-unhide:no;
	mso-style-locked:yes;
	mso-style-link:"Plain Text";
	mso-ansi-font-size:10.5pt;
	mso-bidi-font-size:10.5pt;
	font-family:Consolas;
	mso-ascii-font-family:Consolas;
	mso-hansi-font-family:Consolas;}
.MsoChpDefault
	{mso-style-type:export-only;
	mso-default-props:yes;
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Calibri;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;
	mso-fareast-language:EN-US;}
@page Section1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;
	mso-header-margin:36.0pt;
	mso-footer-margin:36.0pt;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
--&gt;&lt;/style&gt;&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-fareast-language:EN-US;}
&lt;/style&gt;
&lt;![endif]--&gt;            &lt;br /&gt;
How does this effect Linux  ? I dont believe the open source community can move significant resources fast enough for a new completely incompatible Linux ( including all C and C++ user applications) and it needs a very dedicated individual to complete a kernel .  Compare Linux ( mainly Linus initial effort ) to Gnu Herd ( an open source effort) .  Note there are small open source managed OS efforts (Cosmos and MOSA) .&lt;br /&gt;
&lt;br /&gt;
Why can Microsoft do it ?  Because they have been working on this since 2002-2003 and have released a "Research Kernel" in 2005. They can pressure driver manufacturers and most .NET and Java applications can be fully supported and MS will move key apps like Office , IIS , Sql server  to the new platform.   &lt;br /&gt;
&lt;br /&gt;
There is a real danger to open source where MS will sell a Midori OS to corporates like they did with NT and leave windows as a cheap alternative if Midori sells well.  While this may not maximize short term revenue it will  hold Microsofts dominant position and reinforce there sales for other applications eg Word for Windows 2 ( when windows was released)  ,Office 2000 and SQL server for NT /win 2000. &lt;br /&gt;
&lt;br /&gt;
Anyway Midori if the designers get it right will make its appearance in the next Major Windows Mobile version ,  it will be a great  area as a lot of backward compatibility will be provided via Compact Framework. &lt;br /&gt;&lt;img src="http://www.shanghai-software.com/blog/aggbug/46.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ben Kloosterman</dc:creator>
            <guid>http://www.shanghai-software.com/blog/archive/2009/08/04/the-end-of-linux-.and-windows.aspx</guid>
            <pubDate>Tue, 04 Aug 2009 01:58:36 GMT</pubDate>
            <wfw:comment>http://www.shanghai-software.com/blog/comments/46.aspx</wfw:comment>
            <comments>http://www.shanghai-software.com/blog/archive/2009/08/04/the-end-of-linux-.and-windows.aspx#feedback</comments>
            <wfw:commentRss>http://www.shanghai-software.com/blog/comments/commentRss/46.aspx</wfw:commentRss>
            <trackback:ping>http://www.shanghai-software.com/blog/services/trackbacks/46.aspx</trackback:ping>
        </item>
    </channel>
</rss>