7 ms·
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 th
by ct1 12y 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.
- segmondy 12y agoIt 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 12y 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 12y ago> Yes, minix ran on 286 Minix 1.0 ran on a 8086/8088
- IgorPartola 12y agoTrue. 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.
- pygy_ 12y 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.
- tanzam75 12y agoThey have the x86 assembly code. What they don't have are the comments.
- smacktoward 12y agoOr 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.
- wvenable 12y agoHey 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.
- zokier 12y agoThey 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.
- derefr 12y agoGiven 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 12y agoI 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.
- lutusp 12y 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 12y 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.
- Jtsummers 12y agoAs 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 http://technet.microsoft.com/en-us/library/cc753321.aspx
- Theodores 12y 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 12y agoAn 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.
- wtallis 12y agoReally 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?
- caf 12y agoIt abstracted the character-at-a-time BIOS interfaces to a line-buffered text console. It provided a memory allocator service.
- userbinator 12y agohttp://en.wikipedia.org/wiki/MS-DOS_API 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.
- userbinator 12y 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-System/dp/020162687X 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).