Sign up ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

I'm not sure this question can be asked here, but nevertheless.

Almost each operating systems or systems programming course is taught using UNIX only. I wonder what are the reasons for this? Why Windows does not take at least a half of those courses?

share|improve this question

closed as not constructive by Robert Harvey, Mark Trapp Dec 16 '11 at 1:30

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

Unix is much simpler, that's it. University courses should not be "practical" and "relevant" at all, they are supposed to give you nothing but an introduction into some topic. But yes, I'm also surprised that Unix dominates, probably it is just because of textbooks availability. Otherwise something like Plan9 would be more useful. – SK-logic Dec 16 '11 at 8:18
Windows is not a good OS to study in-depth for students. If you want to launch students to a point where they could actually hack on an OS, the more 'embedded' you go the better; Linux explores the modern principles well. You can also use some of the open source mini-OSs out there. – Paul Nathan Dec 16 '11 at 16:47
Windows (since 2.0) has been moving closer to the Unix model (kernel, microkernel, threads, shell interface etc) so maybe one day they will. But the main issue is that Windows deliberately shields the users from the implementation so the users don't need to know more than point, click and type. Security models? device drivers? disk devices? linkers? loaders? both OS's have them but unix exposes them to the users. Oh, and *nix will also run on any old clunker PCs in the computer labs. – james Dec 16 '11 at 21:55
@james You are underestimating university facilities. They are rich enough to have even Macs. – Roman B. Dec 16 '11 at 22:08

5 Answers 5

Windows is not a good example for teaching operating systems.

  1. Windows is not open source and there are a lot of proprietary technology, how can you teach something that is trade secret.
  2. Windows is not really POSIX standard compliant, learning OSes it is better to learn one that is at least relatively standard.
  3. Windows is further from the actual low level systems, with a lot of bells and whistles.
  4. Unix and its related class of operating systems are the most popular server operating systems. If you are modifying OSes you will most likely be working with one of these rather than windows.
  5. Windows cost a lot of money. (@Ramhound pointed out that there are trial versions so this is not a problem for a lot of schools.)
share|improve this answer
There are far more Windows installations than there are UNIX machines (at least for desktop PCs). So it's hard to dismiss Windows as "not standard". Further, there are plenty of books on the internals of Windows written by devs on the windows kernel team. But those books aren't textbooks, and UNIX is far more in line with basic OS concepts. That and #5 is a very fair point. – selbie Dec 16 '11 at 2:17
@selbie Popularity on home PCs is irrelevant. Students of an OS course are more likely to apply the concepts learnt on a realm where some Unix variant is dominant. And although there might be quite a few books on the Windows kernel, the source is closed and there's no publicly available architecture document. That's what Desmond Zhou means by "standard", the Single UNIX Specification is publicly available and Universities may base courses around it - popularity alone not a standard makes. – Yannis Dec 16 '11 at 2:55
@Desmond - While you point about Windows having a signifcant cost connected to using it, there are trial versions of Windows offered, so this has little to do with the reason its not used to teach how operating systems work. I would with the rest of your points, and would argue, those are the real reasons. In the end Windows makes signifcant changes to your classic Unix operating system. In the end the the basic principles even taught in these courses, even if there are based on the POSIX standard, can be applied to virtually any operating systme on the market. – Ramhound Dec 16 '11 at 15:20
I should add the environment that is taught, is typically not the full Unix operating system, its a port designed to a specfic task. The task of course is to introduce concepts to students, which allows them to build their own software ( i.e. shell ) that can be applied to any operating system ( more or less ). – Ramhound Dec 16 '11 at 15:23
@Ramhound, Makes sense. I assumed giving all students a copy of windows would cost a lot for the schools, but then MS must have discount/free program as you said. So yes, the real pain is actual the propretary-ness rather than cost. – Desmond Zhou Dec 16 '11 at 17:38

I had an excellent course of Windows architecture including deep explanations of processes, threads, semaphores, priorities, critical sections, deadlocks, pipes, etc. Still, Windows is closed. That means that our professor could not say "Okay guys, this thing works exactly in that way from inside". He could only say "Hmm, probably it works like this, and i'm not really sure but at least it's plausible".

Also, Andrew Tanenbaum's book "Operating Systems: Design and Implementation" is marvelous, really. And Minix is designed especially for educational purposes.

share|improve this answer
+1 for Tanenbaum's book – Javier Dec 16 '11 at 5:00

One of the classic books on the subject, Modern Operating Systems by Andrew Tanenbaum, used to focus on Tanenbaum's own pedagogical Unix OS, called MINIX. More recent editions focus on Linux (which Tanenbaum would say is based on Minix, whereas Linus Torvalds would say otherwise), though at least a third of the book describes Windows as well.

Even if Windows were open source, I think it's likely that due to Tanenbaum's influence, Linux would still be the go-to OS for OS classes.

It also conveniently offers a comparative perspective for most people, as Windows is the OS that most people have been brought up on.

share|improve this answer

Because almost all of the Windows source code is the closely guarded intellectual property of Microsoft. They do not make it available, even for educational purposes. The source code for several of the UNIX clones is publicly available.


In a comment, @JörgWMittag points out that portions of the Windows kernel code are available under an academic licence. I stand corrected!

share|improve this answer
Only few courses really look at the actual source code if at all. Most of them just use UNIX programming interface and as an environment. – Roman B. Dec 16 '11 at 0:59
Actually, the vast majority of the Windows sourcecode is available for academia. The Xen guys, for example, back when Xen was still a research project, did a port of Windows XP to the Xen Hypervisor using source code they acquired under an Academic Source License. – Jörg W Mittag Dec 16 '11 at 2:21
@JörgWMittag:...and they had to trow it away. moral: don't rely on windows source access. – Javier Dec 16 '11 at 5:01

My experience of university was that most of my professors hadn't checked back with current technology recently enough to notice that Windows had been invented.

share|improve this answer
Nice. Presumably they use Windows at home. I think it's more likely that universities have a rich tradition of Unix usage. – Robert Harvey Dec 16 '11 at 0:55
Hard to know exactly how a closed source OS is implemented... – Ed S. Dec 16 '11 at 0:55
Funny answer... – Roman B. Dec 16 '11 at 0:56
@Downvoters: Sorry, do you know my professors? Do you know that my experience is incorrect? – DeadMG Dec 16 '11 at 17:18
@DeadMG Sorry, do you know my professors? Do you know that my experience is incorrect? Of course not. But the question wasn't about your professors, it wasn't about individual experiences at all. I could have answered that my OS course was based around VAX - for a variety of solid reasons. But how would that have been a helpful answer? I don't have a clue if they still teach VAX (probably not) and my individual experience is not common enough (anymore) to help interpret the norm. Fortunately, professors that hadn't checked back with current technology are also not common enough. – Yannis Dec 16 '11 at 18:13

Not the answer you're looking for? Browse other questions tagged or ask your own question.