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.
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.
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.
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 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:
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.
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?
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.
> '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.
Young people, even children, certainly get cancer, but an individual's odds of getting cancer go up the longer they live. The article even states:
"The global cancer burden is increasing and quite markedly, due predominately to the ageing of the populations and population growth."
In other words, there are more people, and they're living longer. Therefore, more people are getting cancer. You can try to look at this as good news. We've (mostly) stamped out diseases like polio, leprosy, and tuberculosis. Now we have to worry about cancer, and unfortunately that's not an easy one to tackle (not that the other ones were either though).
I have (had?) salivary gland cancer. Diagnosed before 30 at a IVa stage. I had surgery, radio and chemo. After that, the 5-years survival rate is 1 in 10. And if you do make it, your quality if life is significantly impacted and you're permanently disfigured - radical neck surgery ain't pretty.
I have a background in academia and despite the fact that I like to tell myself that I am some unique snowflake and that I'll make it, I know where I stand. No doctor told me, but I went to PubMed myself.
Am I pleased to know that? Not sure. And it kind of bothers me the fact that all my daily careful efforts will all boil down pretty soon to an event that is as dumb as the outcome of rolling a dice.
You should never submit any work to a conference or journal you do not know and follow beforehand.
To be more explicit: a good rule of thumb is that if you are not familiar with the publications of at least some of the committee or, if you were asked to suggest reviewers for you research out of the scientific committee members, you'd be hard pressed to name a few, you should not submit anything.
Your students should know that. If none explained something similar to the above, then you should have.
As you get older, I find I only follow 1-2 quality publications. I often get invited to dubious / shady conferences and I just hit the spam button. All of my peers do the same.
Why shouldn't you submit to such a conference? Because you don't know if it's legit or not?
I don't think the students care if it's legit or not. They care about getting papers published so they can graduate. And apparently their schools don't care if the conferences are legit or not either. So everyone is happy, we all win!
the only actual beneficiary i can think of is the people charging students to publish without even having to deal with the overhead of hiring someone to read the damn thing
I was being somewhat sarcastic, but I'd suggest that students and professors get some self-interested benefit from the system, or it wouldn't have come to exist.
The schools get to make it look like they are producing high-quality students with publications, without the professors actually having to do much work to make this true.
The students get to graduate, and get a publication credit, regardless of the quality of their work, so long as they can pay.
heh i know u were. i get what youre saying here but my issue with that is it just leads to like watered-down pseudo-journals of questionable reputation.
it almost feels like a better alternative would be for the students to run their own informal conferences & publish through an open publishing network (a lot of these are emerging in academia to subvert all the licensing BS from the journals)
My grand mother in the second half of the 80s and in the early 90s taught CS - mostly algorithms and math related issues in CS - with a lot of programming in Pascal (Borlad Turbo Pascal) in a Jewish high school in... Italy.
She had a huge influence on me and I will forever be proud of her.