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!"
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!"
"Please don't send Pull Requests..." (Score:5, 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 :)
Re: (Score:2)
Oh, darn . . . too late . . . my Pull Request was going to make it able run Linux . . .
Re:"Please don't send Pull Requests..." (Score:5, Insightful)
The last standalone version of ms-DOS was 6.22. Id rather use DOSbox than msdos 2
Important caveat (Score:3)
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.
Re:Important caveat (Score:5, 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.
Re:Important caveat (Score:4, 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 [wikipedia.org]?
The CP/M FCB is documented here [seasip.info]
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 [stanislavs.org]
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?
Re: (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 [archive.org]
Re: (Score:2)
Thanks for the link and the author's assertion!
Re:On the bright side... (Score:5, 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 [freedos.org] 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. [gnu.org] 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
Re: (Score:2)
MS-DOS got interesting? Clearly I missed the memo.
Re: (Score:2)
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.
The toys from that time period. No networks (Score:5, 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.
Re: (Score:3)
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.
Re: (Score:2)
Erm, unless you installed the free(ish) Trumpet Winsock. Get your point about IPX, though that was mostly LAN only.
Re: (Score:2)
Even MS's wolverine TCP stack was available for 3.11 in '94.
Re: (Score:2)
>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 .
Re: (Score:1)
all OS's are interesting, this is Slashdot homie, port 443, you lose your way somewhere ?
Re: Important caveat (Score:1)
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)
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.
Re: (Score:3)
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: (Score:3)
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 t
Re: (Score:2)
Re:Important caveat (Score:5, 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. [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
Re: (Score:2)
Note: I'm the founder and coordinator of FreeDOS
On a related note - thank you for FreeDOS!
Re: (Score:1)
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.
Re: (Score:2)
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
Re: (Score:2)
> 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 (
Re: (Score:2)
I would suggest that it didn't get good until 5.0, when it finally introduced long file names.
MS-DOS and Intel x86 cpus were a setback (Score:5, Insightful)
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.
Re: (Score:2)
It probably succeeded because it had two key ingredients: IBM was behind it at the start; Microsoft was incentivized by IBMs initial non-exclusive license..... You don't see that too often.
Nothing probable about it - those were the reasons. Before the IBM PC, personal computers were generally "unacceptable" in corporates. We had a Commodore Pet in my branch that we more-or-less concealed from the IT department (an IBM shop). Then IBM PCs were introduced because nominally they were only supposed to be used as terminals (3270 emulators) to the company mainframe (that's how I first used one), and because the IBM logo was on them. They came with PC-DOS of course.
As for the non-exclusive licence,
Re: (Score:2)
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
Re: (Score:2)
Re: (Score:2)
I.e., it had a clever disk device driver.
Re: (Score:2)
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.
Re: (Score:2)
They wanted an 8-bit data bus for easier access to peripherals...
Re: (Score:2)
I believe Intel had shortages of the 8086, and the 8 bit bus kept costs down.
Re: (Score:2)
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.
Re: (Score:2)
Android is Linux, C, and Java, with software architectures from the 1980's, and ARM is proprietary and low end.
Re: (Score:2)
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.
Re: (Score:2)
The Apple IIgs had a new CPU, plus up to 8M of RAM, a 15 voice sound card, and color graphics.
Re: (Score:2)
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.
why not later versions? (Score:2)
Are there legal problems with open sourcing 3.3? Is there any third party code? Maybe that could be removed prior to open sourcing.
Re: (Score:1)
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:
Re: (Score:2)
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:
Re: (Score:1)
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...
Re: (Score:3)
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 [archiveos.org].
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."
NTFS (Score:1)
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.
Re: (Score:3)
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.
Re: (Score:2)
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.
Re: (Score:2)
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.
Re: NTFS (Score:1)
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.
Ahh, memories (Score:2)
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.
OK (Score:2)
Re: (Score:1)
OK now I'm waiting (Score:2)
for open source windows 98.
or Clippy.
Release ALL versions of DOS (Score:2)
I love how MS is too stupid to use branches/tags (Score:2)
Why on earth are the two versions of sources in different subdirectories?
They should be branches/tags.
Re: (Score:2)
They could have easily done it before pushing the repo to git, while they were importing the source into their local repo.
Limited to PC and XT era (Score:1)
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
What have they smoked? (Score:1)
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...
Re: (Score:2)
Agreed. A crippled, broken, program loader is not an OS, and certainly not a foundation for a real OS.
Re: (Score:3)
It's only later when GNU realized the Linux OS got all the glory that a serious argument was m
Re: (Score:2)
Re: (Score:2)
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.
Re: (Score:2)
Huh, why? (Score:2)