6 ms·
Now, while legally, you are perfectly right, Windows is as close as ever, it's not actually that hard to look under the hood. I work as a Windows device driver
by ekr 12y ago
Now, while legally, you are perfectly right, Windows is as close as ever, it's not actually that hard to look under the hood.
I work as a Windows device driver developer, and sometimes I need to reverse engineer some of the internals, and the source code from WRK is easily available on the internet : (http://gate.upm.ro/os/LABs/Windows_OS_Internals_Curriculum_Resource_Kit-ACADEMIC/WindowsResearchKernel-WRK/WRK-v1.2/base/ntos/ http://gate.upm.ro/os/LABs/Windows_OS_Internals_Curriculum_R...). These are sources from 2005-2006 timeframe, but they are tremendously helpful when debugging. If you compare the disassembled version of an exported function from the Win 8.1 ntoskrnl, in most cases it's almost identical to the sources in those links. Of course, there are a few parts of the system which suffered changes, but nonetheless, it can still be very useful.
I would also recommend it for studying operating systems, but obviously, along side something else. Let's say after starting with XV6, or Pintos, Minix, then moving on to NetBSD, Linux, only after that having a look under the hood of Windows, to see a slightly different approach.
There is also the 'Windows Internals' book, but I never found it too useful. Describing concepts without any source code, and without a view to the implementation is not very helpful for me.
But I completely agree with you, personally, I would never use Windows if I wanted to play with it, I only use linux and bsd at home.
- trentnelson 12y ago> http://gate.upm.ro/os/LABs/Windows_OS_Internals_Curriculum_Resource_Kit-ACADEMIC/WindowsResearchKernel-WRK/WRK-v1.2/base/ntos/ http://gate.upm.ro/os/LABs/Windows_OS_Internals_Curriculum_R... Oh my. Aaaaand, mirrored. There's also this, which seems about the same level of should-this-actually-be-publicly-available: https://github.com/njdragonfly/WinNT4 https://github.com/njdragonfly/WinNT4
- slipstream- 12y agoWait, someone put the (partially-)leaked NT4 src on github of all places? DMCA takedown from MS in 3...2..1...
- rey12rey 12y agoIt's been there since 2011
- trentnelson 12y agoI know right, at least make your repo private ;-) (I was more surprised that this source dump doesn't seem to line up with the "Windows 2000" source leak that can be found if you look hard enough. Very peculiar.)
- deleted 12y ago[deleted]
- Mahn 12y ago> and the source code from WRK is easily available on the internet : (http://gate.upm.ro/os/LABs/Windows_OS_Internals_Curriculum_R... http://gate.upm.ro/os/LABs/Windows_OS_Internals_Curriculum_R...). These are sources from 2005-2006 timeframe, but they are tremendously helpful when debugging What's the story behind this? Did Microsoft willingly open source parts of its Windows kernel?
- ekr 12y agoNo, Microsoft has this Windows Research Kernel they offer to universities and other organizations under a certain strict agreement. This particular site probably has no idea of what access control, or directory access rights mean, so it's easily accessible for anyone.
- rbanffy 12y agoI would regard this as poisonous in terms of IP. If you read that code and then contribute to an open source project (or even your own) and Microsoft finds out and tags you as foe, you'll be in a very bad position.
- anom9999 12y ago> I would also recommend it for studying operating systems Perhaps not if you plan of contributing code to any open source OS. Practices like this can leave projects exposed to intellectual property violations. This is why reverse engineering usually requires more people, each who isn't privy to the previous persons source material.
- rburhum 12y agoSo basically, you can set the example for kids to not give a crap about IP and that it is OK to study/do whatever they want with something they find online. Nevermind that because they have not signed the MS agreement it is basically stolen property. I see somebody mirrored it already.
- gue5t 12y agoThat benefit doesn't seem like enough to offset the fact that they'll be running an OS which is very difficult or impossible to actually modify for use. Any changes made would amount to a fork with one of the worst possible merge workflows; for beginners an open-source environment is much easier to start modifying, and for the more experienced it's much more productive to modify an environment that has a responsive upstream. Really, we shouldn't encourage kids to waste their time on operating systems whose developers are hacker-hostile.
- tracker1 12y agoThat assumes you can't do anything useful ON an operating system without changing the underlying system. I've never changed linux or osx either, but I find I can do a lot of useful things on them. It hasn't been as common for a while, but I remember using a litestep ui in the win2k era... actually like the Windows 7 desktop/menu/toolbar interface a lot. Beyond the UI on top of the underlying OS... I'd say that most software development is business processes, which can be handled in pretty much any operating system and higher level language on modern hardware/software that costs a lot less than the time used to develop said software. Yes, performance matters. Yes, there is a need for open platforms. However, good enough gets the job done most of the time. I mention this as someone who really doesn't want to deal with the underlying hardware any more than I need to. I have no interest in writing or debugging drivers or system libraries. I do like writing useful, and sometimes not so useful things on top of other tools. If I can do that in node.js, c#, go or other languages that makes me happy. It also makes me frustrated when I need to do something in Windows that's far easier in Linux.
- fsloth 12y ago"That benefit doesn't seem like enough to offset the fact that they'll be running an OS which is very difficult or impossible to actually modify for use. " That's a bit harsh. The point of OS is to provide a computational platform for higher level computational stuff like arts and science. It would be a dark world if everyone just tinkered with OS kernels (while it sure is nice some people do).