Slashdot Mirror


Microsoft 'Re-Open Sources' MS-DOS on GitHub (microsoft.com)

An anonymous reader quotes Microsoft's Developer blog: In March 2014, Microsoft released the source code to MS-DOS 1.25 and 2.0 via the Computer History Museum. The announcement also contains a brief history of how MS-DOS came to be for those new to the subject, and ends with many links to related articles and resources for those interested in learning more. Today, we're re-open-sourcing MS-DOS on GitHub. Why? Because it's much easier to find, read, and refer to MS-DOS source files if they're in a GitHub repo than in the original downloadable compressed archive file.... Enjoy exploring the initial foundations of a family of operating systems that helped fuel the explosion of computer technology that we all rely upon for so much of our modern lives!
While non-source modifications are welcome, "The source will be kept static," reads a note on the GitHub repo, "so please don't send Pull Requests suggesting any modifications to the source files."

"But feel free to fork this repo and experiment!"

17 of 122 comments (clear)

  1. "Please don't send Pull Requests..." by Ecuador · · Score: 4, Funny

    And, naturally, the first Pull Request with the description "just cleaning up some old cruft" (https://github.com/Microsoft/MS-DOS/pull/1) just deletes everything :)

    --
    Violence is the last refuge of the incompetent. Polar Scope Align for iOS
    1. Re:"Please don't send Pull Requests..." by voss · · Score: 4, Insightful

      The last standalone version of ms-DOS was 6.22. Id rather use DOSbox than msdos 2

  2. Important caveat by 93+Escort+Wagon · · Score: 2

    It’s only the source for the two ancient versions mentioned - 1.25 and 2.0. It’s been a while (obviously), but I don’t think MS-DOS got interesting until 3.x... and the final release was 8.0.

    Don’t think this will replace your FreeDOS, in other words.

    --
    #DeleteChrome
    1. Re:Important caveat by hey! · · Score: 2

      I find that interesting, because those versions stop just before the era that Lotus 1-2-3 became the killer app on DOS. The first version of Lotus came out at the start of 1983, and DOS 2.0 came out two months later.

      Lotus was good for Microsoft, but dangerous: people bought PCs to run Lotus; DOS was just something you needed to have. Nobody saw any value in it. Had Lotus bundled its own DOS any time in the next five years, Microsoft would have been finished. Microsoft introduced its own spreadsheet in 87, running on an extremely crude version of Windows. Windows was just a simple graphical interface running on top of DOS, and it wasn't the first such to market or the best. Microsoft was competing with its vendors, and it did *not* have the strongest products.

      There were a lot of really bad possible scenarios here which started with MS competitors getting their act together, which never happened. It was like a Gold Rush, everyone was making money hand over fist and nobody but MS was thinking very long-term.

      So MS had a killer advantage: to run its competitor's software, you had to buy a (pretty expensive) MS-DOS license. This not only gave them the greatest cash cow in the history of technology, it also gave them a terrific opportunity to mess with their competitors on a technical level. From the late 80s on there were a lot of dark rumors about them abusing that position, some of which are pretty much substantiatable (Stac Electronics), others of which have never been proven ("DOS ain't done til Lotus won't run").

      A complete archive of DOS source code through 5.0 might definitively answer questions that have been lingering about Microsoft's behavior in the late 80s early 90s.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    2. Re:Important caveat by nukenerd · · Score: 4, Informative

      did Microsoft MS-DOS rip off CP/M 86 code?

      No they didn't, because contrary to general belief Microsoft did not originally write DOS. They bought it from Seattle Computer Products [SCP] where it had been written for an 8086 by a guy called Tim Paterson. Some people believe that some ripped-off CP/M code was in it. MS also hired Paterson to port it to the IBM PC.

      What MS did rip off was SCP - by lying about what they wanted DOS for, which was specifically to sell it on to IBM, and so they got it for a low price. Later SCP threatened to sue MS for misrepresentation, and I believe it was settled out of court by MS paying some more.

    3. Re:Important caveat by Jim+Hall · · Score: 4, Informative

      It’s only the source for the two ancient versions mentioned - 1.25 and 2.0. It’s been a while (obviously), but I don’t think MS-DOS got interesting until 3.x... and the final release was 8.0.

      Don’t think this will replace your FreeDOS, in other words.

      This is a very interesting update. And interestingly, the MIT license is compatible with the GNU GPL.

      You're right, these are very old versions of MS-DOS that do not include more advanced features including CD-ROM support, networking, '386 support, etc. So from a practical side, FreeDOS would not be able to reuse this code for any modern features anyway. But for basic features, such as weird edge case compatibility, we might now be able to reference this code to improve FreeDOS.

      Note: I'm the founder and coordinator of FreeDOS

    4. Re: Important caveat by Jim+Hall · · Score: 4, Interesting

      I would like to see them release the source code for something interesting like Windows 95 and NT 4 into the public domain. Wake me when that happens. Maybe the "good parts" (I know, don't say it) could be merged into something like ReactOS and we'll have a decent Freedom Windows stable equivelent of FreeDOS.

      I'd be really interested in seeing Microsoft release the source code to MS-DOS 5 or later under a similar open source software license. Microsoft essentially rewrote MS-DOS for version 5, probably using a lot of C, and would theoretically include more modern programming techniques.

      It's nice that they re-released these older versions under a more acceptable open source software license, though.

    5. Re:Important caveat by hey! · · Score: 2

      Well, talk about BS, it wasn't a genius move to license MS-DOS to IBM; the genius was licensing it non-exclusively. Microsoft didn't have their own disk OS, they went frantically looking for a CP/M clone to license to IBM because Gates accurately foresaw that clones were coming.

      Microsoft had text based word processing and spreadsheets before windows

      You are talking about Multiplan. Multiplan and Visicalc sold well by modern standards, but this was boom time when PCs were getting shipped to companies by the truckload. Their market share of that boom was tiny. Lotus had almost the entire market, and even as late as 1988 accounted for 70% of the units sold despite being well over 2x as expensive as its competitors. Lotus was rolling in it. It's nearest competitor was Quattro Pro, and calling that "near" was a stretch. Multiplan never was a significant force in the spreadsheet market, although it made Microsoft money.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    6. Re:Important caveat by UnknownSoldier · · Score: 3, Insightful

      Short answer: No, but some of the CP/M's design was copied.

      Long answer:

      MS-DOS supports two different methods of file and record management:

      * File control blocks (FCBs) ( MS-DOS v1.x)
      * File handles (MS-DOS v2.x+)

      They copied some of the EXACT same FCB (File Control Block) layouts.

      WTF is a FCB?

      The FCB originates from CP/M and is also present in most variants of DOS, though only as a backwards compatibility measure in MS-DOS versions 2.0 and later. A full FCB is 36 bytes long; in early versions of CP/M, it was 33 bytes. This fixed size, which could not be increased without breaking application compatibility, lead to the FCB's eventual demise as the standard method of accessing files.

      The CP/M FCB is documented here


      FCB+00h DR - Drive. 0 for default, 1-16 for A-P. In DOSPLUS,
                bit 7 can be set to indicate that the operation should work with
                subdirectories rather than files.

      The format of the MS-DOS FCBS is documented here

      Funny how both are exactly 33 bytes long!


                      00 byte drive number (0 for default drive, 1=A:, 2=B:, ...)
                      01 8bytes filename, left justified with trailing blanks
                      09 3bytes filename extension, left justified w/blanks

      Also, MS-DOS supports two binary executables: .COM and .EXE same as CP/M. Again, inspired for compatibility reasons.

      Maybe the source will reveal something different?

    7. Re:Important caveat by Anonymous Coward · · Score: 2, Informative

      That's because 86-DOS started out as a way to port 8080/Z-80 CP/M applications to the 8086. CP/M compatibility was a primary goal, but the OS itself was never intended to be a CP/M clone.

      https://web.archive.org/web/20031204161621/http://www.ece.umd.edu/courses/enee759m.S2000/papers/paterson1994-kildall.pdf

  3. MS-DOS and Intel x86 cpus were a setback by presidenteloco · · Score: 4, Insightful

    To software reliability (and good design) that has taken decades to dig out of.

    The chip architecture and machine language was overcomplicated (non orthogonal instruction set, segmented memory architecture) and the OS was by far the least elegant available at the time, with bizarre irregular commands and options, and horrible limitations making programming much harder than it ought to have been, due to the chip and memory architecture.
    There were much better alternatives, from a technical perspective, at a similar low price point, like Z80, M68000, CPM, AmigaOS, etc.
    And far far technically superior things like Sun/RISC/Solaris were soon available, albeit much too pricey for common use.

    It's one of my lesser disappointments in humanity that Wintel stuff managed to dominate despite its inner hideousness.

    --

    Where are we going and why are we in a handbasket?
  4. Re:NTFS by eneville · · Score: 2

    Is NTFS useful when there's btrfs and zfs? It does what FAT couldn't and it has a lot of features that FAT didn't, but I don't regard it as useful when compared with other already open file systems.

  5. Re:On the bright side... by Jim+Hall · · Score: 4, Informative

    It reduces the chances of tainting freedos since freedos already reverse engineered dos 1.x/2.x era functionality decades ago.

    Yes, you're right. The previous source code release of MS-DOS (March 2014, from Microsoft) was under a "look but do not touch" license that said you could only read the source code, but you could not use it elsewhere, and you couldn't apply what you'd learned from the MS-DOS code in other projects. So the FreeDOS Project has been very careful and said several times that if you viewed the MS-DOS source code, you should not contribute to FreeDOS Base because we didn't want to risk tainting the FreeDOS source code. We have a note to that effect on the FreeDOS History page:

    "Please note: if you download and study the MS-DOS source code, you should not contribute code to FreeDOS afterwards. We want to avoid any suggestion that FreeDOS has been "tainted" by this proprietary code."

    This source code release uses the MIT license (aka Expat license) which is compatible with the GNU GPL. That should mean that people who read this version of the MS-DOS source code can contribute to FreeDOS. (As always, if you've somehow viewed one of the unauthorized source code releases of MS-DOS, you should still not contribute to FreeDOS Base.)

    Note: I'm the founder and coordinator of FreeDOS

  6. Re:why not later versions? by Jim+Hall · · Score: 2

    If you want the source to a newer, better version of DOS than MS-DOS 2.0, why not wish that DR DOS was open sourced? Oh wait, that happened about 20 years ago.

    Except that the DR-DOS source code (called OpenDOS) was not really open source. It was under a "look but do not touch" license.

    According to the OpenDOS license, you were allowed to view the source code of OpenDOS but were not allowed to modify it. You could not reuse any code in other projects, and you could not apply what you had learned by looking at the OpenDOS code in other projects. So DR-DOS (OpenDOS) was never really "open sourced."

  7. The toys from that time period. No networks by raymorris · · Score: 4, Interesting

    To be precise, Windows 1-3.1 didn't come with networking. The "real" computers of the era ran network operating systems such as Unix. A DISK Operating System (DOS) , as opposed to a network operating system, for a PERSONAL computer (PC) was the oddball. Toys people played with at home ran Windows. It turned out to be a brilliant strategy as personal home computers developed into useful machines.

    It worked really well for them from about 1988-1995. Then in 1995 the world wide web happened and an OS centered around the idea of only working locally eschewing the network-based model that preceded it suddenly was a big problem. Networking was back bigger than ever, and Microsoft had bet on DISK OS, rejecting the idea of the network. Microsoft execs were freaked out.

    Worse, Microsoft had just spent years developing the next big thing, an extension of Object Linking and Embedding (OLE) called COM. In any document, you could embed or link to some other file type. A Word document could link to a spreadsheet, or embed an image. It was amazing. It better be amazing - they had bet big on it.

    Then they saw "a href" and "img src". Everything Microsoft had spent the last four years doing was suddenly replaced by a friggin tag.

    Forshort time tried to stop the WWW from growing, but there was no way to stop it. Microsoft renamed COM (aka OLE) to "ActiveX" and tried to market it as an internet technology. We all know how well that went.

    1. Re:The toys from that time period. No networks by dryeo · · Score: 2

      In 1994, OS/2 Warp v3 was released, with enough of a network stack to allow dial up network access (Warp Connect followed with a full network stack) and various internet tools including WebExplorer, a web browser that was mostly implemented as a DLL with the idea that the OS and applications could easily access HTML by linking to webexwin.dll.
      MS stole the idea and even the name, slightly changed, and ran with it.

      --
      https://en.wikipedia.org/wiki/Inverted_totalitarianism
  8. Re:What have they smoked? by shaitand · · Score: 2

    I know people have played fast an loose and redefined OS and MS certainly wasn't much of an OS but nobody disputed it as an OS plus a bunch of tools at the time. The debates of what an OS is where more along the lines of whether the shell or C library really counted since you really only needed the kernel and at the time anyone using a computer had to write their programs. A program loader was actually quite fancy.

    It's only later when GNU realized the Linux OS got all the glory that a serious argument was made to include all sorts of userspace nonsense. It was around this time that GNU folks started making a fuss about statically linked code as well to improve their argument. But regardless of where you feel about those issues, they weren't a factor when Linux hit the scene let alone DOS. You can't denounce it ex post facto.