top | item 7467365

(no title)

ct1 | 12 years ago

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.

discuss

order

wvenable|12 years ago

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.

IgorPartola|12 years ago

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.

smacktoward|12 years ago

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.

pygy_|12 years ago

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

zokier|12 years ago

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.

segmondy|12 years ago

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.

justin66|12 years ago

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

Zardoz84|12 years ago

> Yes, minix ran on 286

Minix 1.0 ran on a 8086/8088

derefr|12 years ago

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.

tanzam75|12 years ago

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.

userbinator|12 years ago

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

lutusp|12 years ago

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

tanzam75|12 years ago

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

peteri|12 years ago

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)

Theodores|12 years ago

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

userbinator|12 years ago

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.

emersonrsantos|12 years ago

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

gjm11|12 years ago

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

cl8ton|12 years ago

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.