{"id":44193,"date":"2015-04-21T07:00:00","date_gmt":"2015-04-21T21:00:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/oldnewthing\/2015\/04\/21\/what-was-the-starting-point-for-the-panther-win32-kernel\/"},"modified":"2019-03-13T12:14:53","modified_gmt":"2019-03-13T19:14:53","slug":"20150421-00","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/oldnewthing\/20150421-00\/?p=44193","title":{"rendered":"What was the starting point for the Panther Win32 kernel?"},"content":{"rendered":"<p>When I presented a list of <a HREF=\"http:\/\/blogs.msdn.com\/b\/oldnewthing\/archive\/2014\/05\/20\/10526823.aspx\">cat-related code names from Windows 95<\/a>, commenter dave wanted to know <a HREF=\"http:\/\/blogs.msdn.com\/b\/oldnewthing\/archive\/2014\/05\/20\/10526823.aspx#10527070\">whether the Panther kernel was derived from the 32-bit DOS kernel or the Windows\/386 kernel<\/a>. <\/p>\n<p>Neither. <\/p>\n<p>Here&#8217;s the table again, with some more columns of information: <\/p>\n<table BORDER=\"1\" STYLE=\"border-collapse: collapse\" CELLPADDING=\"3\">\n<tr>\n<th>Component<\/th>\n<th>Code Name<\/th>\n<th>Based on<\/th>\n<th>Fate<\/th>\n<\/tr>\n<tr>\n<td>16-bit DOS kernel<\/td>\n<td>Jaguar<\/td>\n<td>MS-DOS 5<\/td>\n<td>Morphed into     <a HREF=\"http:\/\/blogs.msdn.com\/b\/oldnewthing\/archive\/2007\/12\/24\/6849530.aspx\">    Windows 95 boot loader \/ compatibility layer<\/a><\/td>\n<\/tr>\n<tr>\n<td>32-bit DOS kernel<\/td>\n<td>Cougar<\/td>\n<td>Win386 kernel<\/td>\n<td>Morphed into VMM32<\/td>\n<\/tr>\n<tr>\n<td>Win32 kernel<\/td>\n<td>Panther<\/td>\n<td>Windows NT kernel<\/td>\n<td>Cancelled<\/td>\n<\/tr>\n<tr>\n<td>User interface<\/td>\n<td>Stimpy<\/td>\n<td>Windows 3.1 user interface<\/td>\n<td>Became the Windows 95 user interface<\/td>\n<\/tr>\n<\/table>\n<p>The original idea for the Jaguar and Cougar projects was to offer a 16-bit MS-DOS environment that could be &#8220;kicked up a notch&#8221; to a 32-bit protected-mode MS-DOS environment, with virtual memory and multiple virtual machines. They used the MS-DOS 5 and Win386 kernels as starting points. (Why wasn&#8217;t Jaguar based on MS-DOS 6.0? For the same reason <a HREF=\"http:\/\/blogs.msdn.com\/b\/oldnewthing\/archive\/2011\/01\/19\/10117410.aspx\">NASA didn&#8217;t use the Space Shuttle to rescue the Apollo 13 astronauts<\/a>.) This project as originally envisioned was cancelled, but the work was not lost. The projects took on new life as the Windows 95 boot loader \/ compatibility layer and as the Windows 95 virtual machine manager, respectively. <\/p>\n<p>The idea for the Panther project was to start with the existing Windows NT kernel and strip it down to run in 4<a HREF=\"http:\/\/blogs.msdn.com\/b\/oldnewthing\/archive\/2009\/06\/11\/9725386.aspx\">MB<\/a> of RAM. This project did not pan out, and it was cancelled outright. It was replaced with a Win32 kernel written from scratch with the 4MB limit in mind. <\/p>\n<p>The Stimpy project survived intact and became the Windows 95 user interface. <\/p>\n<p>I doubt the code name was the reason, but it&#8217;s interesting that the ferocious cats did not carry out their original missions, but the dim-witted cat did. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>That one started from Windows NT.<\/p>\n","protected":false},"author":1069,"featured_media":111744,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[2],"class_list":["post-44193","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oldnewthing","tag-history"],"acf":[],"blog_post_summary":"<p>That one started from Windows NT.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/44193","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/users\/1069"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/comments?post=44193"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/44193\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/media\/111744"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/media?parent=44193"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/categories?post=44193"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/tags?post=44193"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}