Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Under what license?

Can we view, modify, redistribute?

No one wants to get sued for these things, or being found to violate some end user license agreement with some other Microsoft software.

On the other hand, I'd love to find out that people viewing this code contribute an improvement that no one in Microsoft saw in decades that helps them improve something today, leading them to soften their stance on Free Software and copyright.

We can dream.




> Under what license? Can we view, modify, redistribute?

Just speaking for myself, I come down pretty firmly in the "Don't know, don't care" camp for both questions.

In a world where FreeDOS exists, there just isn't any practical value to having the source code to MS-DOS 2.0 available under a truly open license. That code's only interesting as a historical exhibit. If all we can do is look at it and go, "Huh, so that's how that worked", that's fine with me.


The important question, I think, is: can the FreeDOS folks read the MS-DOS source, and then continue to work on FreeDOS?


Is this a real judicial concern or just a philosophical question? I read code on a daily basis with all kinds of different licenses and I also contribute to open and closed source on a daily. Should I go make an appointment with my lawyer tomorrow?


Some companies have license agreements that forbid reverse engineering their software if you have used it / worked on it. It may be even worse if you have actually looked at the source code of the closed source alternatives.

INAL, But if you are contributing to projects on tangential areas you should be OK.


It's safer if they don't.

Unless Microsoft licenses it under a license with the most explicit and extensive protections against patent lawsuits.


Utility patents only last 20 years. MS-DOS 2.0 was published in 1983, which is 31 years ago. So, while it's copyrighted and you can't redistribute the code or the compiled binary, you can go to town with the algorithms, should you want to.

As a bonus, the availability of this code might make prior art challenges to extant patents much easier.


Is MS-DOS even patented ? As far as I remember, software patents were not granted until fairly recently in History (usually from the 90s).


Oldest patent I see that looks like it could be for MS-DOS is #4,779,187, "Method and operating system for executing programs in a multi-mode microprocessor", which was issued in October 1988. That wouldn't apply to DOS 2.0, of course.

The bigger concern would be copyright. That might be a fairly plausible argument for why FreeDOS developers shouldn't be reading this source. Though realistically the odds that Microsoft would actually pursue such a case are remote at best.


I would call the odds "beyond remote."

The chance that you are going to get MSDOS expressive structures in FreeDOS in a way that is even arguably beyond deminimis is nil. You don't usually just move code between implementations easily, and chances are pretty good that the FreeDOS folks use fairly different approaches than the MSDOS folks. The argument is that if you read the code you might be tainted, but I don't see this as a significant argument here for software that's 30 years old.


Issue date is not the only relevant date - patents get extensions and expand in scope. I would imagine the FAT patent that Microsoft uses to get some revenue from every SD card sold comes from the dawn of personal computing.


> patents get extensions and expand in scope

Yeah, but usually you cannot get extensions THAT easily, and extensions are limited in time. I don't think you can expect extensions to last too long either (at most you can add a couple of years of exclusivity).


Most of the FAT patents of the '90's finally expired in November.

Now exFAT is much more recently encumbered.


I couldn't find the answer but did come across this interesting historical take on software patents.

http://www.nytimes.com/1994/02/24/business/microsoft-loses-c...

> The Patents and Trademark Office, which began issuing software patents only a decade ago, has been accused of having inadequate expertise in software to judge what is truly novel.

Nice to know nothing has changed in a decade.


Two decades, even.


I think they could solve all their problems by just hiring a handful of geeks and OSS enthusiast's like myself to lay down some ban hammers.

While thinking about it a little more deeply let's give them the benefit of doubt for five minutes and assume they did hire a bunch of geeks to do this. Is there any possibility the problem simply can't be solved easily? What seems complex and patentable today may in fact seem completely obvious and novel in ten years when it actually shows up in court or even just 5 years from now once it finally gets reviewed and accepted.

In searching for prior art, is it actually possible to go back in time on the wayback machine and check for these types of obvious issues with the claim?

Something to think about anyway. Disclosure: kiwi here. We did some form of reform already, havtn t noticed anything adverse thus far.

Would be interested to hear if anyone has come across problems yet.


It doesn't really matter. MS has plenty of new patents they could use to tie you up in the court system for years. Fighting that would probably bankrupt you.


The full license text is right on the download page: http://www.computerhistory.org/atchm/microsoft-research-lice...


Got a 503 on that link sadly.


It's the Microsoft Research License Agreement (MSR-LA). MSR-LA text from another project: https://research.microsoft.com/en-us/projects/pex/msr-la.txt


Alright, so reading it closely, it's kind of like the GPL in that any derivative work is licensed under the same license, but unlike the GPL, Microsoft get full rights to any modifications you make and any comments you make, including if you send them mail marked "confidential", plus you cannot sue anybody using this software for patent infringement if you discovered it via reading the source code.

Basically, if you touch this with a ten-foot-pole, the pole now belongs to Microsoft, along with your arm and anybody standing too close to you. You also lose the right to use your arm to sell things.


So, answering the question opened in another thread, if FreeDOS developers read the code, they risk making Microsoft the owner of their future contributions.


> You may not use or distribute this Software or any derivative works in any form for commercial purposes. Examples of commercial purposes would be running business operations, licensing, leasing, or selling the Software, distributing the Software for use with commercial products, using the Software in the creation or use of commercial products or any other activity which purpose is to procure a commercial gain to you or others.

If you're in academia and getting a stipend and you look at it as part of your research, Microsoft could argue that that is a commercial gain to you. If FreeDOS has ever been used to make a commercial product (this is very different from the GPL which explicitly delineates derivative works from works produced by the software!), then its developers risk breaking the terms of the license agreement if they taint their thought processes with Microsoft's code. So yes, I'd probably say you're right.


> So, answering the question opened in another thread, if FreeDOS developers read the code, they risk making Microsoft the owner of their future contributions.

This is a really serious issue, because we can be reasonably certain that Microsoft wants to release a new version of DOS in the reasonably near future and so this is a sinister plot to get a nonexclusive license to FreeDOS so they can charge licensing fees. Quite ingenious.....

[/sarcasm]


I would think Microsoft takes the FAT module of the Linux kernel very seriously. The way to store long file names as multiple directory entries is one of the patents Microsoft uses as its main mobile revenue driver (they get more money out of Android licenses than they get from Windows Phone sales).


I don't think long file names were supported in DOS 2.0


It's actually very different. I don't know why they are called the same, but yours allow distribution

    You may use, copy, reproduce, and distribute this Software for any non-commercial purpose
    you may create derivative works of such portions of the Software and distribute the modified Software for non-commercial purposes
While the one used here explicitly deny it:

    You may not distribute or publish the software or Derivative Works.


Here's a mirror of the original MS-DOS version of the license: http://webcache.googleusercontent.com/search?q=cache:TTs0lxz...


Microsoft Research License.

Yes, Yes, No.


Microsoft Research does some really cool stuff. Do they really work for the same company as the people who make Windows and Office? I can't imagine two more diametrically different organizations.


Bell Labs was founded by Ma Bell, it's hard to top that and MSR does not come close.


I think it is hard to top what AT&T did with Bell Labs. They had a government mandated monopoly with tons of money to fund basic scientific research and ended up with a few Nobel prizes in the process. I think the more apt organization for the OP however would be Xerox PARC.


are you privy to research in either of the organizations. I know its great to revere age old organizations but as we are speaking the best research is probably being conducted in a place we least expect. I am not privy to research at Ma Bell or only the published elements of Microsoft Research - so your reaction is more of an instinct than any factual basis.


Bell Lab's results are widely known. I'll just point to two: C and the Transistor, as being pretty hard to beat (there's much more).

In any case, the parent commenters point wasn't the difference in the two research lab's results, but the difference in philosophies between the labs and their respective parent companies.


Your two are good.

Another notable one is the original discovery of the cosmic microwave background, the primordial echo of the Big Bang, which is still being investigated today. That was a 1974 Nobel Prize.

A nice list is at: http://en.wikipedia.org/wiki/Bell_Labs#Discoveries_and_devel...

Basically, the GP comment is really quite wrong.


Erm, lasers, Unix, communications satellites...


I've got no idea what you're talking about, I was responding to GP's comment about diametrically opposed spirits in subsets of the same organisation.


> so your reaction is more of an instinct than any factual basis.

Do Nobel prizes and Turing awards count as instinct or are they facts?


My broad point was comparing an age old institution with Young one is not fair and more or less 100 years from now, who knows where things would be are.

Its not comparing apples to apples but again, if dissing MSR for not being Bell Labs - great then.


My point it is there can never be a Bell Labs again. Very few organizations have the resources to fund basic sciences and have all the talent they had under one roof.

Some argue that you can again, but I just don't see how it is possible. See, e.g., http://www.amazon.com/The-Idea-Factory-American-Innovation/d...


How can a license allow modification without redistribution?


It's sometimes hard to believe, but our current laws seems to allow that you can be forbidden from modifying a piece of software even for your own personal use.


Even more interesting: copyright laws seems to indicate that playing/singing a song that someone else wrote, even in the shower, may be infringement.


Um, no. You have to publish or perform it publicly to be infringing. If you sign it at home, or record yourself singing it at home, or record a copy of the original at home, you're still not infringing as long as you don't attempt to distribute it.

Unless your shower is located on a stage and you charge admission for people to listen to you sing in the shower, but I'm pretty sure that's not what you meant.


I think where it would come into legal question is a situation more like "modifying our software, running the modified version on a server, and making a profit from the service that server provides." In other words, modifying for commercial use.


Why do you have to redistribute something in order to modify it? Just modify it for your own personal use.


Since when do you need a license to modify something for your own personal use? If they've given me access to the source, I can just start editing to my heart's content...


Practically, yes, but legally, you may not have the rights to.

That's why it's explicitly listed as part of Freedom 1 of the four freedoms of software: https://www.gnu.org/philosophy/free-sw.html


DVD players.


I can't think of a single use case where I would want to hack on a 32 year old OS without distributing it.


Not quite the same, but it may be good enough for you: I guess you can distribute a patch, combined with a URL to the original download.


So you can't publish a modified version.

But can you publish a diff, which someone could use to recreate your modified version?


FWIW, the ROM community does this sometimes.

There are SueprMarioBros. edits where they only distribute the patching file and the patcher program... just not the original ROM itself. They leave that for you to find somewhere...


If it were to avoid a patent infringement then it could still be considered contributory infringement - ie you [knowingly] provided the necessary parts, methods, information that enables someone else to perform the infringement.

That's not going to be the case here as the code is too old to be patent encumbered.

Things are certainly moving towards there being a wide definition of contributory copyright infringement, eg cases against torrent file sites that don't store copyright works. It would be pretty asinine and regressive to punish someone for publishing instruction on a copyright work could be modified, IMO, but the law isn't known for always making sense.

https://ilt.eff.org/index.php/Copyright:_Infringement_Issues...


If you paid for a license to something and they provide the source with purchase, but don't want the source shared or modifications to it shared either.

In reality, if redistribution of source is forbidden, restricting unreleased modifications of source is hard to enforce.


How can a license do anything? They write the license, the government enforces it.


For novelty purposes only™

No redistribution and the license can be revoked.

(also: must be research or education, mustn't be commercial, and you are licensing derivative works to Microsoft somehow)


->Under what license?

If you create Derivative Works, you grant to Microsoft a non-exclusive, perpetual, irrevocable, royalty-free, assignable, sublicenseable license to reproduce, distribute, publicly display, modify, use, make, have made, import, and sell such Derivative Works.


To me, this isn't about useful code, it's about a terrifying journey back in time.


Not only are you not allowed to distribute it by the license, actually distributing it would get you sued for patent violation. Using anything you find in the code will probably get you sued for patent violation, too.

EDIT: I can just imagine a future lawsuit:

A: Did you read the MS-DOS source code released by Microsoft on XX? We have logs to show you downloaded it.

B: Yes, but that has nothing to do with this lawsuit!

A: Incorrect. The MS-DOS source code you viewed is under Patent ZZ. We believe you used the IP found in the MS-DOS source code to build your flying car.

Judge: Guilty!


Don't patents only last 15-20 years?


Don't patents only last 15-20 years?

Yes. Design patents last 14 years. Utility patents last 20 years.

The person you are responding to, like most people, likely uses the words copyright, trademark and patent interchangeably as if they are synonyms.


Right, any patents from 1983 and 1991 have expired. Besides which, I don't think Microsoft had any patents in 1983.

P.S. Google Patents is useless for answering this question. "Referenced by" is included in the search, so any patent from 1983 that is ever referenced by a Microsoft patent (from any year) shows up in the results.


The USPTO has a patent search for the US Patent and Trademark Office at http://patft.uspto.gov/.

As for MSFT not having any patents in 1983, this is largely the result of the policy of not patenting "abstract ideas" that was argued in the courts at the time. The United States Court of Customs and Patent Appeals and the PTO were in opposing positions regarding the patentability of inventions that were essentially algorithmic.

The key log that stopped discouraging patent applications for software was Diamond v. Diehr in 1981, which involved applying a mathematical formula to a database of information for operating rubber curing machines under computer control.[1]

The United States Court of Appeals for the Federal Circuit has largely followed this method since this decision. Between the early 70s[2] and Diehr, SCOTUS settled disputes when Customs and Patent Appeals attempted to overrule the PTO and its Board of Patent Appeals and Interferences/Patent Trial and Appeal Board.

[0] I'm lazy, you get wikipedia. [1] http://en.wikipedia.org/wiki/Diamond_v._Diehr [2] Gottschalk v. Benson, 409 U.S. 63 (1972), http://en.wikipedia.org/wiki/Gottschalk_v._Benson


Nope, none in 1983.

I did an advanced search at USPTO for "AN/microsoft and ISD/19750101->19890101" (patents assigned to Microsoft and issued between 1975 and 1989). All it found were:

4,779,187 - Method and operating system for executing programs in a multi-mode microprocessor (filed April 10, 1985, issued October 18, 1988)

4,588,074 - Holder for storing and supporting articles (filed March 21, 1985, issued May 13, 1986)

Yes, if I understand it correctly, Microsoft's first patent was "relates to article holders, and more particularly to a dual purpose holder for both storing, and supporting in open position, books, magazines, pamphlets, and similar items."

I can't figure out why 5,848,246 (Sun Microsystems, Inc.: Object-oriented system, method and article of manufacture for a client-server session manager in an interprise [sic] computing framework system) references this patent.


Thanks for doing the search.

As for:

> 4,588,074 - Holder for storing and supporting articles ... Yes, if I understand it correctly, Microsoft's first patent

At one point, Microsoft Press was a big player in the publishing market. For example, Peter Norton's book on the IBM PC was published by Microsoft Press.

I imagine they needed a way to store multi-volume sets together.


You can use the "inassignee" and "ininventor" operators to restrict the search, e.g. inassignee:microsoft.


Thanks for the tip.

I finally found the link to Advanced Search. It's off the Settings menu. I could swear it used to be right there next to the Search button ...

I guess I've just been using memorized operators on Google, and haven't actually looked for the Advanced Search link in quite a while.

It's like what Microsoft does with configuration dialogs. They design a new UI, but it doesn't do 100% of the what old UI did. So they keep the old UI, and shove it one level down. Then in another few years, they'll design yet another new UI, and I'll have to click two levels down ...


Yes any patents would have expired, although the copyright still has upwards of 100 years left.

I don't think reading some source code will put anyone at risk of frivolous lawsuits (unless they actually do infringe, in which case it would be a grain of supporting evidence).


Please up vote the point of patents lasting 15-20 years and down vote this confused claim.

Software patents are bad enough without gratuitous fear-inducing claims added.


Indeed. Judges do not rule on guilt in civil procedure. They rule on responsibility and damage. Damaging MS by looking at this very old source code and MS proving damage is not very likely.


It's like I stumbled into r/technology.


MS-DOS is maybe the ugliest operating system I ever had the displeasure of using.

There's very little to learn from operating system design point of view in there, and better sources are available under more permissive licenses -- ie open source licenses.

It looks like a PR stunt to me.


Hey look it's an unnecessary negative comment on HN!

It's not a PR stunt, it's a part of computing history (whether you like it or not). I spent a lot of time hacking around the internals of DOS and I think this might be a fascinating read. I remember pouring over Ralf Brown's Interrupt List and stepping through various DOS memory structures trying to create some impossible app. Good times.


True. Except if you are someone like DOSBox or FreeDOS and want to know how/why some quirk happens in MS-DOS that makes some program go, but not in your code, now you can figure out what's up.

In reality, getting the Windows source released so that the Wine team can do this would be much more useful. From what I understand Windows has a lot more undocumented but widely used API's that Wine tries to emulate by trial and error. Instead of having a complete emulation they break it down by which programs it can and cannot run because of these hidden API's.

This is definitely a publicity stunt, no question about it. It still provides some very minimal value and perhaps this is MS dipping their toes into the OSS water when it comes to old commercial products.


Or if you're the ghost of Gary Kildall, and you want to find out whether Tim Paterson and Bill Gates really did rip you off or not.


> Except if you are someone like DOSBox or FreeDOS

MS-DOS has been disassembled and reverse engineered to death by these teams, and there's little if anything at all left to discovered.


They have the x86 assembly code.

What they don't have are the comments.


They are not meant to teach OS/software design. Instead they are meant to teach (personal) computing history.

What you are saying is like saying that putting Ford Model T blueprints to museum is useless because we have far better sources today to study car mechanics from.


It served it's purpose for it's time. When I had an 8088 computer, MS-DOS was great enough for me, it was simple, fun to understand and work with. Like any OS it had it's quirks, but it got out of the way. Yes, minix ran on 286, so MS could have/should have, but that was then. Don't judge them too harsh.


> Yes, minix ran on 286, so MS could have/should have, but that was then. Don't judge them too harsh.

There was xenix. As inconceivable as people might find it today, people CHOSE to run simple DOS over Unix on their very resource-constrained hardware.


> Yes, minix ran on 286

Minix 1.0 ran on a 8086/8088


Given Satya Nadella's CEOship, and the sort of guy he is, I'm fully ready to believe that this is the start of a wider code release. It'd make a bit of sense that they have to work through the licensing to release MS-DOS before they release the source to any products that use MS-DOS at the core of them--like, say, Windows 95.


I doubt it.

I mean, Adobe also released the source code for an old version of Photoshop. So old that it didn't even have layers. It didn't signal anything about the release of source code for say, Flash Player.

And look at which version of Word they released -- 1.1. Not even 2.0, because 2.0 was the version where it became mainstream.

Microsoft has already released a lot of source code that's a lot more useful than DOS and WinWord. For example, the .NET Framework Reference Source.


> There's very little to learn from operating system design point of view in there

Actually there is quite a bit already for a single person to digest, if you want to understand the real details of how everything works. I learned about the DOS family by reading this book:

http://www.amazon.com/Dissecting-DOS-Code-Level-Operating-Sy...

UnixV6 and the Lions' book come close, but Unix is still far more complex than DOS because of its multitasking, multiuser heritage. Early Unices may be within the realm of an average student to grasp, but things like the BSD and Linux kernels are orders of magnitude bigger and more complex, which means that it's nearly impossible to get down to the details when studying them and the best thing one can hope for is a high-level overview of the various subsystems and how they interact. DOS is simple enough that a single person can study the whole OS at the level of individual instructions (and write an OS similar to it).


> There's very little to learn from operating system design point of view in there ...

I understand your point, but in one important sense, this release has value. Someday, a scholar is going to write the history of drive letters and their perverse effect on all of computing -- up to the present day, where they're buried under a thin patina of respectability in the newest versions of Windows.

Under Windows, including the most recent versions, you can get repeatable results for procedures that involve peripherals only if you disconnect them all, then reconnect them in the same order each and every time. Why? Drive letters.

This might be excusable on historical grounds, except that, when MS-DOS was first written, there was already an OS without drive letters -- Unix.


> Under Windows, including the most recent versions, you can get repeatable results for procedures that involve peripherals only if you disconnect them all, then reconnect them in the same order each and every time. Why? Drive letters.

So don't use drive letters.

Mount each volume in its own separate NTFS folder. Now you'll get repeatable results no matter what order you plug them in.


As someone very unfamiliar with Windows administration anymore, how would you do this without invoking 3rd party tools?

Found MS's description [1]. However, that's not useable by most office workers, and the steps are likely beyond the average home user. So it's really just a feature for power users and IT departments.

[1] http://technet.microsoft.com/en-us/library/cc753321.aspx


Who are probably the only people it matters to, so I'm not sure it's worth getting too worried about.


Eh, I use Linux and OS X at home. I only use Windows at work so it doesn't bother me (but I do get annoyed a bit when drives don't get mounted to the same letter, even when it's the next available one). That said, it would have saved me a lot of heartache a few years back dealing with some testing tools that liked to hardcode paths and threw a fit when things didn't line up correctly.


Err MSDOS was a rough CP/M clone and CP/M did have drive letters. CP/M picked up some stuff from RSX-11 (pip for example http://en.wikipedia.org/wiki/Peripheral_Interchange_Program) and that's why the Windows/MSDOS command option is usually / as it was on a pdp-11 (backwards compatibility to BEFORE unix)


'Operating system' is stretching it. 'Disk Operating System' is one of those phrases like 'ice creme' that implies 'ice cream'.

MS-DOS was a program that wrote stuff to disk for you, read the keyboard for you, listened to interrupts for things and showed useful error messages such as 'Retry, Fail or Abort?'.

There was no networking to speak of, certainly not TCP/IP as we know it, no user permission things, you couldn't run cron jobs and the list goes on. All of this normal stuff that an Operating System does was well established on UNIX boxes, VAXes and, to a certain extent, on the BBC Micro.


An OS doesn't need to have networking, permissions, or anything else. It just needs to provide a common set of services for applications programs to use.

Consider that OSs started out as libraries of functions that programs could call into, which then evolved into job managers, that is where MS-DOS fits.

It's single-tasking, single-address-space, but it already has the concept of processes, drivers, files. This is still more than some embedded OSs which are not much more than a threading library.


Really though, wasn't most of DOS just thin abstractions on BIOS interfaces? What hardware abstractions did it provide other than the filesystem, and what services other than an ABI allowing you to quit a program without rebooting?


http://en.wikipedia.org/wiki/MS-DOS_API

Given that it was a disk operating system it's no surprise that the bulk of the services are disk/filesystem-related, but it also has ones for I/O, memory, timing, and processes.


It abstracted the character-at-a-time BIOS interfaces to a line-buffered text console.

It provided a memory allocator service.


> 'Operating system' is stretching it. 'Disk Operating System' is one of those phrases like 'ice creme' that implies 'ice cream'.

And if I want to run a TOS (Tape Operating System), how should I call it? The naming is correct and comes from IBM mainframe operating systems from the 60's.


> All of this normal stuff that an Operating System does was well established ... to a certain extent, on the BBC Micro.

The BBC micro's operating system had no networking to speak of, certainly not TCP/IP as we know it, no user permission things (indeed, no concept of users at all), and no cron jobs (indeed, no OS scheduling of tasks at all). In other words, not one of the things you specifically called out as "normal stuff that an Operating System does".

(There was a networking system, called Econet, but it wasn't part of the base OS; you needed an extra ROM -- physically plugged into the circuit board, those were the days -- that implemented it.)

For the avoidance of doubt: I loved the Acorn MOS and hated MS-DOS. But it simply isn't true that the BBC Micro had those features and MS-DOS didn't. And, for what it's worth, I see nothing wrong with calling either of them an operating system.


Too bad newer developers can’t fathom what a game changer MSDOS was back in the day.

I downloaded and dorked around with the code out of respect for what it did to PC’s 30 years ago. It’s interesting, I thought the codebase would be much larger than it is.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: