{"id":5081,"date":"2024-05-01T03:00:00","date_gmt":"2024-05-01T07:00:00","guid":{"rendered":"https:\/\/www.both.org\/?p=5081"},"modified":"2024-04-26T21:02:05","modified_gmt":"2024-04-27T01:02:05","slug":"ms-dos-4-00-released-as-open-source-software","status":"publish","type":"post","link":"https:\/\/www.both.org\/?p=5081","title":{"rendered":"MS-DOS 4.00 released as open source software"},"content":{"rendered":"<div class=\"pld-like-dislike-wrap pld-template-1\">\r\n    <div class=\"pld-like-wrap  pld-common-wrap\">\r\n    <a href=\"javascript:void(0)\" class=\"pld-like-trigger pld-like-dislike-trigger  \" title=\"\" data-post-id=\"5081\" data-trigger-type=\"like\" data-restriction=\"cookie\" data-already-liked=\"0\">\r\n                        <i class=\"fas fa-thumbs-up\"><\/i>\r\n                <\/a>\r\n    <span class=\"pld-like-count-wrap pld-count-wrap\">1    <\/span>\r\n<\/div><\/div>\n<p>One open source project that I work on is <a href=\"https:\/\/www.freedos.org\/\">the FreeDOS Project<\/a>, an open source implementation of the classic DOS operating system. If you don\u2019t know DOS (short for <em>Disk Operating System<\/em>) it was the original operating system that shipped in 1981 with the IBM Personal Computer, the IBM PC 5151. Microsoft\u2019s MS-DOS has always been a command line operating system, and retained the limitations of the early 1980s, never losing its 16-bit architecture. I grew up on DOS, and I wasn\u2019t too happy in 1994 when Microsoft announced the next version of Windows would eliminate DOS. So on June 29, 1994, I announced what would become the FreeDOS Project. And all these years later, FreeDOS still has a dedicated developer and user community.<\/p>\n\n\n\n<p>With this background, I was very interested in 2018 when Microsoft released the source code to MS-DOS 1.25 and 2.0 under an open source license, via their repository <a href=\"https:\/\/github.com\/Microsoft\/MS-DOS\">on GitHub<\/a>. Microsoft had already started to shake its long standing reputation of opposing open source software, and made headway into participating in open source software communities. But releasing these older versions of MS-DOS under the MIT license (also called the \u201cExpat\u201d license, and compatible with the GNU General Public License) was a huge step forward in the open source communities that I felt most strongly connected<\/p>\n\n\n\n<p>And again in 2024, Microsoft has again released an older version of MS-DOS under the MIT license. Thanks to Scott Hanselman at Microsoft, and others at Microsoft and IBM, you can now find MS-DOS 4.00 in the MS-DOS GitHub project. Note that this release doesn\u2019t build completely because of <a href=\"https:\/\/www.os2museum.com\/wp\/how-not-to-release-historic-source-code\/\">file conversion issues<\/a> when the source code was uploaded to GitHub, but I\u2019m sure we\u2019ll see a working build soon.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"why-it-matters\">Why it matters<\/h2>\n\n\n\n<p>It\u2019s important to recognize the huge step forward that Microsoft has taken in releasing these versions of MS-DOS as open source software. MS-DOS and other DOS operating systems are not just historical curiosities; they are milestones in computing. The personal computer revolution may have started in the late 1970s with popular home computers like the TRS-80 (1977) and the Apple II (1977), but it was the IBM PC and DOS that ushered in the modern era of computers on every office desk and in every home.<\/p>\n\n\n\n<p>DOS was the dominant operating system throughout the 1980s and into the 1990s. DOS supported countless applications that served as \u201cdaily drivers\u201d for businesses and individuals at the time, including databases, word processors, spreadsheets, utilities, tools, specialty printing, games &#8211; and a seemingly endless list of other programs.<\/p>\n\n\n\n<p>It\u2019s because of this vast history that it\u2019s important to preserve DOS. Merely keeping a binary-only copy of DOS isn\u2019t enough. DOS was a milestone in computing; by releasing the source code, Microsoft has \u201copened the doors\u201d to how MS-DOS worked on the inside.<\/p>\n\n\n\n<p>DOS has always been a simple operating system with few \u201cmoving parts.\u201d Booting a computer running DOS requires starting the kernel, which reads its configuration from the <code>CONFIG.SYS<\/code> text file. Then, DOS loads the user shell, typically called <code>COMMAND.COM<\/code>, which runs the <code>AUTOEXEC.BAT<\/code> file to set the initial environment. This simplicity allowed many people who were new to computers to understand how their computer worked.<\/p>\n\n\n\n<p>With the source code, a new generation can dig into how MS-DOS worked. And not just <em>how<\/em> it worked, but <em>why<\/em> it did things in a particular way. We can see not just <em>that MS-DOS does something a certain way<\/em>, but the source code allows us to understand <em>why<\/em> it works the way it does.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"practical-limitations\">Practical limitations<\/h2>\n\n\n\n<p>This new release of MS-DOS 4.00 as open source software is a significant step forward, but there\u2019s also a practical limitation. You might assume \u201cNow that Microsoft has released the source code to MS-DOS, surely FreeDOS can use it to improve FreeDOS.\u201d The answer is yes and no.<\/p>\n\n\n\n<p>FreeDOS started from an independent source code base, completely separate from MS-DOS. We implemented DOS functions and behaviors based on publicly available documentation such as <a href=\"https:\/\/www.cs.cmu.edu\/~ralf\/files.html\">Ralf Brown\u2019s Interrupt List<\/a>, so FreeDOS is already very compatible with MS-DOS.<\/p>\n\n\n\n<p>However, the FreeDOS code base is mostly C with some Assembly. The MS-DOS source code is the other way; MS-DOS is mostly written in Assembly with some C. You can\u2019t simply \u201ccopy and paste\u201d between MS-DOS and FreeDOS, because the code assumptions and overall architectures are quite different.<\/p>\n\n\n\n<p>So the MS-DOS source code is very interesting, but more as a reference. For example, FreeDOS developers can now examine the MS-DOS 4.00 source code to see how it implemented certain specific behaviors, and use that understanding to enhance any missing compatibility in FreeDOS.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"a-big-step-forward\">A big step forward<\/h2>\n\n\n\n<p>I don\u2019t want to focus on the limitations of this release, however. It\u2019s important to recognize the huge step that Microsoft has taken in releasing these classic operating systems as open source software &#8211; and doing so using a license that is friendly to other developers and compatible with the GNU General Public License. Congratulations to Scott Hanselman and everyone at Microsoft and IBM for their work to release MS-DOS 4.00 as open source.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Why it\u2019s important that Microsoft released this old version of MS-DOS.<\/p>\n","protected":false},"author":33,"featured_media":2813,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"categories":[340,106,158],"tags":[267,316,108],"class_list":["post-5081","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-freedos","category-history","category-open-source","tag-freedos","tag-history","tag-open-source"],"modified_by":"David Both","_links":{"self":[{"href":"https:\/\/www.both.org\/index.php?rest_route=\/wp\/v2\/posts\/5081","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.both.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.both.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.both.org\/index.php?rest_route=\/wp\/v2\/users\/33"}],"replies":[{"embeddable":true,"href":"https:\/\/www.both.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5081"}],"version-history":[{"count":1,"href":"https:\/\/www.both.org\/index.php?rest_route=\/wp\/v2\/posts\/5081\/revisions"}],"predecessor-version":[{"id":5082,"href":"https:\/\/www.both.org\/index.php?rest_route=\/wp\/v2\/posts\/5081\/revisions\/5082"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.both.org\/index.php?rest_route=\/wp\/v2\/media\/2813"}],"wp:attachment":[{"href":"https:\/\/www.both.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5081"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.both.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5081"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.both.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5081"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}