Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×
Microsoft Open Source

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

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!"
This discussion has been archived. No new comments can be posted.

Microsoft 'Re-Open Sources' MS-DOS on GitHub

Comments Filter:
  • by Ecuador ( 740021 ) on Saturday September 29, 2018 @01:45PM (#57395446) Homepage

    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 :)

  • by 93 Escort Wagon ( 326346 ) on Saturday September 29, 2018 @01:46PM (#57395450)

    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.

    • MS-DOS got interesting? Clearly I missed the memo.

      • MS-DOS got interesting? Clearly I missed the memo.

        Then you must have been in a coma from 1984 through to 1998 given that the fundamental OS that ran all computers of that decade +/- ran this OS. Or maybe if you don't find OSes interesting in general people purposely don't send you memos.

        • by raymorris ( 2726007 ) on Saturday September 29, 2018 @05:21PM (#57396524) Journal

          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.

          • by dryeo ( 100693 )

            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.

        • by hawk ( 1151 )

          >Then you must have been in a coma from 1984 through to 1998 given that
          >the fundamental OS that ran all computers of that decade +/- ran this OS.

          Apple was rumored to have been planning another OS for 1984. Think of what the world might be like if *that* had happened . . . pity they died as the Apple ][ couldn't compete . . .

          >Or maybe if you don't find OSes interesting in
          >general people purposely don't send you memos.

          He shouldn't feel bad; IBM, AT&T, DEC, and Pr1me neer got the memo either .

      • by Anonymous Coward

        all OS's are interesting, this is Slashdot homie, port 443, you lose your way somewhere ?

    • by Anonymous Coward

      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.

      Microsoft pulled the binary ISOs from these operating systems (and others) from Technet/MSDN due to the Java/IE antitrust lawsuits of the 90s, so you can even get the binaries, yet you still can for M

      • Re: Important caveat (Score:5, Interesting)

        by Jim Hall ( 2985 ) on Saturday September 29, 2018 @04:25PM (#57396266) Homepage

        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.

    • by hey! ( 33014 )

      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 8

    • Re:Important caveat (Score:5, Informative)

      by Jim Hall ( 2985 ) on Saturday September 29, 2018 @04:14PM (#57396202) Homepage

      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. [gnu.org]

      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

      • Note: I'm the founder and coordinator of FreeDOS

        On a related note - thank you for FreeDOS!

        • by vbdasc ( 146051 )

          Too bad that DOS (including FreeDOS) is at last essentially dead, with the proliferation of new versions of UEFI without BIOS compatibility. Thanks for all the fish, anyway.

    • by tlhIngan ( 30335 )

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

      1.25 is interesting because it's the first release of MS-DOS, which at the time was cloning CP/M. MS-DOS 1 basically cloned all the CP/M interfaces. In fact, after 16-bit CP/M was released for 8086 processors, Microsoft released a tool that you could run on your CP/M source code and have it wo

      • by hawk ( 1151 )

        > nMS-DOS 1 basically cloned all the CP/M interfaces.

        but not everything *important*.

        Of note was the absence of the IO byte at address 3 which allowed CP/M to assign devices at a very low level. I used it once for example, to temporarily change the main output to the physical line printer to print reports with the same code as went to screen (I'd taken over a project already coded in basic).

        Or another time when I changed the serial port to be the console to feed keyboard commands and output for testing (

    • I would suggest that it didn't get good until 5.0, when it finally introduced long file names.

  • by presidenteloco ( 659168 ) on Saturday September 29, 2018 @01:52PM (#57395470)
    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.
    • There were much better alternatives, from a technical perspective, at a similar low price point, like Z80, M68000, CPM, AmigaOS, etc.

      The IBM PC came out in 1981, when the dominant personal computers were the Apple II+, the Atari, and the TRS-80. The 8088 actually was a significant improvement over the 6502 or the Z80-with-bank-switching. IBM wanted to go with CP/M but Kildall blew the negotiations and ended up with MS-DOS. For all its faults, MS-DOS was still a better disk operating system than Apple DOS.

      Th

      • For all its faults, MS-DOS was still a better disk operating system than Apple DOS.

        I don't know about that. Apple DOS was very well designed considering the fact that most of the disk control was done in software instead of hardware. Apple formatted disks had significantly more data on them than standard MFM formatted disks, and the date was more reliably stored--most Apple II disks still work today after decades of age. The one big flaw of Apple DOS was that the interface was through BASIC instead of a standalone shell, and the +D escape kludge to have programs access DOS commands was pretty clunky, but the underlying system code was very well implemented.

        • I don't know about that. Apple DOS was very well designed considering the fact that most of the disk control was done in software instead of hardware. Apple formatted disks had significantly more data on them than standard MFM formatted disks, and the date was more reliably stored--most Apple II disks still work today after decades of age.

          I.e., it had a clever disk device driver.

          The one big flaw of Apple DOS was that the interface was through BASIC instead of a standalone shell, and the +D escape kludge to

      • The 8088 actually was a significant improvement over the 6502 or the Z80-with-bank-switching.

        But inferior to the 8086 of which it was a cheaper variant. Suprising choice for IBM really.

      • by Build6 ( 164888 )

        We probably should start over at some point soon, not so much because of the x86 instruction set, but because the architecture of modern PCs is convoluted, hard to support, and insecure due to layers and layers of backwards compatibility.

        ... we already did? Android + ARM is now the dominant platform. Apple's ARM variants are already performing better than some "laptop" CPUs.

        • Android is Linux, C, and Java, with software architectures from the 1980's, and ARM is proprietary and low end.

      • For all its faults, MS-DOS was still a better disk operating system than Apple DOS.

        It's better than CP/M too. It does a hell of a lot more, not least that it has a hierarchical filesystem.

        Apple blew it when they threw their Apple IIgs line into the trash and started over, largely because of Steve Jobs and his office politics.

        There was no reason to continue the Apple II line at that point. Computing had moved forward and it was time to use a new CPU. On the other hand, making a graphical operating system with no graphics acceleration was daft. The Amiga beat the pants off of it, and if not for mismanagement, might have dominated. It's tragic it didn't, because they had a vastly better operating system than classic MacOS.

        • There was no reason to continue the Apple II line at that point. Computing had moved forward and it was time to use a new CPU.

          The Apple IIgs had a new CPU, plus up to 8M of RAM, a 15 voice sound card, and color graphics.

          • The Apple IIgs had a new CPU, plus up to 8M of RAM, a 15 voice sound card, and color graphics.

            So it was up to the level of a 286 with an Adlib card and EGA? Pardon me while I try to become excited.

  • Are there legal problems with open sourcing 3.3? Is there any third party code? Maybe that could be removed prior to open sourcing.

    • by Anonymous Coward

      Because of the comments reading "it's not done until Lotus won't run", and the many "if statements" such as:

      if (exe_name == "lotus") {
      crash_randomly();
      } else {
      run_normally();
      }

      if (new_version) {
      reallocate_isr_table_to_non_standard_position();
      add_new isr_routines();
      } else {
      }

      MSDOS 5:

      • if (exe_name == "lotus") {
        crash_randomly();
        } else {
        run_normally();
        }

        MS wasn't quite as malicious as you make them out to be. You forgot to look in the header file, which contains this line:

        #define run_normally crash_randomly

    • by Anonymous Coward

      I remember like 15 years ago the source code for MS-DOS 6.0 was leaked. If you're interested you can probably still find it somewhere...

  • by Anonymous Coward

    How about microsoft release the source code to something useful like NTFS instead of something NGAF about when FREEDOS outdoes msdos in every single way.

    • 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.

      • NTFS has one absolutely useful feature: It is one of the three filesystems which Windows will read out of the box. FAT, NTFS, and ExFAT. Microsoft will never support a filesystem that they do not hold control over.

        Windows also supports ISO9660 and UDF, but only for optical media, and ReFS if you're feeling reckless.

        • If its worth having, someone will leak it. Until then, expect to see it on github in a couple of decades. Keeping it closed is stupid logic that encourage shareholders and those deluded by the bandwagon into thinking that there is something 'special' or a 'highly secret' technical advantage with NTFS.

          I forgot how happy I was at a previous job where I didn't have to use Windows one little bit.

    • by Anonymous Coward

      And ExFAT. That's the dominant format used out of the box by most removable media and it's not even a standard. If Microsoft have really changed then they can prove it by opening up ExFAT.

  • From 80 to 85-86 I was doing 8086 assembly full time before we moved to C. Reading those source files, especially dealing with segment registers, brings back lots of (painful) memories.

    I think my favorite chip to write assembly for was the 68360. A 68000 with 4 serial controllers, or you could gang 2 of them together to make an ethernet controller. Nice, simple ISA, the controllers were easy to work with, it was nice to code for.
  • These sources (in assembler) are barely interesting to anyone aside from computer history aficionados.
    • Agree, though it's still better than the disassembled code of the binary, as the labels, constants and macros are in their original form.
  • for open source windows 98.

    or Clippy.

  • Dear Microsoft, Thanks for releasing version 2.0 of MS-DOS. But COME ON. Just release the sources for ALL of the versions of MS-DOS. I can't imagine that the last version of MS-DOS is making THAT much money for you that you couldn't release that as well!
  • Why on earth are the two versions of sources in different subdirectories?

    They should be branches/tags.

  • by Anonymous Coward

    DOS 2.0 was the first one to support directories, pipes, redirection, and most of the useful DOS stuff. It was limited to FAT12 and 5.25 inch floppies, though. It is useful to retro enthusiasts and hardware collectors, but it is limited to the XT era of computers, as anything including at least a 286 would come with 3.0, which you'd need for FAT16 or 3.5 inch floppies.

    It may still be useful. Arguably, later versions didn't change much of the internals, and focused on the included utilities and stuff instead

  • Quote: "Enjoy exploring the initial foundations of a family of operating systems that helped fuel the explosion of computer technology"

    Well... that would be BSD not MS-DOS...

    • by nyet ( 19118 )

      Agreed. A crippled, broken, program loader is not an OS, and certainly not a foundation for a real OS.

      • 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 m
    • If your are talking about a decent operating system that is an entirely different discussion but it seems like a rather strange claim that as crappy as MS-DOS was, it ran the crappy ibm computers everyone had at work and could run on the much less expensive ibm pc compatible they could run at home. That is without question the reason for the early explosion of home computer technology which allowed an explosion in people with computing skills and familiarity. I'm not sure how you could deny that fueled the
      • I guess you could argue the case that MS incorporated BSD code in the network stack during the early days of the internet reaching actual homes but I that isn't really because MS couldn't have gotten the job done otherwise, BSD code just had great terms for a greedy thief.

        I question whether they could have done it in a timely fashion.

  • I mean I guess someone at MS might be nostalgic but what is the point here? DOS 6.22+Win3.11 is also obsolete but might at least provide something useful to the freedos people or someone else who wants to revitalize some old software or something. DOS sucked compared to everything else out, I know MS pretended otherwise when they were selling it over superior alternatives but nothing in their system is built off DOS except a partial compatability layer now so why pretend? Hell Minix is just a simple OS made

BLISS is ignorance.

Working...