6 ms·
In the time since that comment was written (just under 5 years), Linux replaced most graphics drivers with ones based on in-kernel modesetting and the DRI2 inte
by mjg59 13y ago
In the time since that comment was written (just under 5 years), Linux replaced most graphics drivers with ones based on in-kernel modesetting and the DRI2 interface. This was done without breaking applications. So, the assertion that changing the video driver model would be disruptive is kind of disproven by reality. I guess Linux has a liberal bias.
That's not to say that NT doesn't have benefits. Linux is still catching up with implementing some features that Windows has had for some time (and multiple GPU support is actually a great example of that), but so far there's no real evidence that these disparities are because of architectural differences.
Really, a worthwhile comparative analysis requires someone who has a deep understanding of the kernels they're comparing. I'm pretty familiar with Linux but know almost nothing about NT, so I'm a bad choice. But "Take the recent Linux arguments about the HardLocks code that is giving Linux trouble with multi-processor granularity"? That's not someone who knows Linux, otherwise they'd be using words that I recognise. "You call BSD a kernel, it technically is a set of APIs"? That's not someone who knows BSD either. This isn't an in-depth analysis of benefits that one kernel has over another. It's a handwavy justification of some NT design decisions without any reasoned comparison to Linux design decisions in the same area.
I'd love to read an in-depth comparison of the benefits of NT over Linux. This isn't it. Is there one?
- shritesh 13y agoThis might be wrong, but from what I've heard, multiple GPU (nVidia Optimus) issue has more to do with GPL than the Kernel itself. I had saved this quote but I forgot the source. > ...won't let closed source drivers use shared memory with open source code or somesuch out of their belief that it would violate the GPL.
- sounds 13y agoI believe you're referring to: http://linux.slashdot.org/story/12/10/11/1918251/alan-cox-to-nvidia-you-cant-use-dma-buf http://linux.slashdot.org/story/12/10/11/1918251/alan-cox-to... http://www.phoronix.com/scan.php?page=news_item&px=MTIwOTI http://www.phoronix.com/scan.php?page=news_item&px=MTIwO... Footnote: I don't believe I first read it on slashdot. That was just the first hit when I googled and it seems to summarize the debate fairly well.
- Toshio 13y ago> "This isn't it. Is there one?" I don't think there can be one. Even if one existed, its value would be questionable since the rest of us are unable to prove or disprove the claims therein, seen as we don't have access to the nt kernel code. We're stuck with uninformed rants by microsoft's evangelists, unfortunately.
- deleted 13y ago[deleted]
- coldtea 13y agoWasn't NT kernel code widely leaked at some point?
- ch_123 13y agoA large portion (but not all) of the Windows 2000 source code was leaked a few years back.
- gsnedders 13y agoThe XP Professional x64/2003 Server SP1 kernel is available to those involved in teaching/research at higher education institutions. The license (https://www.facultyresourcecenter.com/curriculum/Eula4.aspx?c1=en-us&c2=0 https://www.facultyresourcecenter.com/curriculum/Eula4.aspx?...) would appear to permit such a comparison.
- qznc 13y agoThe article describes the elegance of NT compared to Linux. It claims that this elegance has some benefits, but it is probably unfeasible to verify that. Object-oriented? Linux is partially object-oriented (e.g. file systems). Modularity? Linux does have modules and you can put substantial amounts of functionality in them. If you need or want to is another question. Client-Server? The discussion of micro- vs monolithic kernel is not completely settled, but so far Linux does pretty well despite theoretical and academic arguments against its architecture. Elegance is nice, but at the end of the day it is the features and the performance which matter to the user. NT claims better flexibility, however it is Linux, which can be used from Cloud to Cluster to Desktop to Mobile to Small-embedded devices.
- pjmlp 13y agoBecause it costs nothing, which is very important to those companies.
- azakai 13y agoSo do BSDs.
- pjmlp 13y agoTrue, but somehow *BSD seem to have lost the enterprise train, as IBM and others decided to invest on Linux distributions instead.
- hga 13y agoMany think that's because BSD and UC Berkeley took the bullet for open source, USL v. BSDi, http://en.wikipedia.org/wiki/USL_v._BSDi http://en.wikipedia.org/wiki/USL_v._BSDi Even though it got settled in a couple of years, the agreement was then secret and BSD was still under a legal cloud. And legitimately so, the settlement was eventually made public and had this gem: "7. Further Participation in Litigation. The University agrees that it will not actively assist or support BSDI's defenses or counterclaims in the Federal Action or the efforts of any other party who asserts in any action the right to copy, use, or disclose to non-licensees of USL any of the material contained in the Restricted Files or the invalidity of USL's proprietary rights in the UNIX System. However, nothing in this provision shall prohibit the University from responding to any discovery permitted a third party under federal or state law or from defending any claim that may be asserted against the University or the Individual Regents." (http://www.groklaw.net/article.php?story=20041126130302760 http://www.groklaw.net/article.php?story=20041126130302760). (In retrospect it turns out SCO was never a real threat, for they didn't have the copyright to UNIX(TM), only the duty to collect fees for a 5% vig, and they knew before the lawsuits that they didn't have it (!!!).)
- quotemstr 13y agoWhen I first started at Microsoft, I once told a coworker something like, "Hey, I've heard NT revolutionarily elegant, but so far, I've just seen features that, while fairly nicely implemented, are universal across operating systems." He replied by reminding me that other operating systems have caught up, while NT was pretty close to its present design even in the early 90s --- it was like a modern operating system had travelled through time back to 1992. It was revolutionary. (I spoke to someone else who was utterly amazed that NT allowed driver development without requiring that the whole kernel be relinked from object files.)
- slacka 13y ago> In the time since that comment was written (just under 5 years), Linux replaced most graphics drivers with ones based on in-kernel modesetting and the DRI2 interface. This was done without breaking applications. So, the assertion that changing the video driver model would be disruptive is kind of disproven by reality. mjg59, I could not disagree more. Without working drivers what good are working apps? I can run my Radeon x1900 under Windows 7/8 with Windows Vista drivers. Runs StarCraft2 and newer FPS games just fine. The Linux kernel devs are so determined to break binary compatibility, I haven't been able to run with ATI's proprietary binary drivers for years. While AMD was a good open source citizen and released the specs, the open source drivers for my card are useless for anything other than 2D. That's about as disruptive as it gets.
- hga 13y ago"The Linux kernel devs are so determined to break binary compatibility...." Well, of course. As long as no one else can use their drivers, they won't get a serious competitor in open source land. Pity about the rot in official drivers, though (e.g. for me, the latest is USB 1.x sound dongles in debian lenny -> squeeze). Which suggests to me that if I wanted to write a OS that could become really popular I should use Windows device drivers in a microkernel approach where each lives in its own address space and process. Hmmm.
- blinkingled 13y ago>other operating systems have caught up, while NT was pretty close to its present design even in the early 90s The one thing you will find almost as a theme with Linux design is that there is minimum of "future" it. That applies to most of the Linux user space as well. This is a good thing and a bad thing. For example multi-gpu systems with multiple outputs were not taken into consideration when both the Kernel and Xorg parts were designed. They took the most common usecase of single GPU, probably made some assumptions around it and coded something that works for that usecase. Microsoft, on the other hand (almost out of necessity) had to actually design the NT Kernel while making no assumptions - multi GPUs may not have existed when XP was released but none the less MS had to design for the eventual reality when some OEM will stuff 2 GPUs and will have to write drivers for it without Microsoft being able to change the XP kernel design or even implementation in any way. I am sure the same can be said about scalability - when massively multicore CPUs weren't around NT kernel was mostly up for task of supporting them, whereas Linux adopted with lot of scalability related work that followed after the fact. (Remember the early NT vs Linux benchmarks?) Designing for future is bad because it comes with certain baggage and to an extent added upfront costs. It is good for future compatibility, code maturity and obviously saves rewrite efforts - you don't have to rip off all the code and start over and take care not to break existing software etc. There is less code churn in Windows world I am sure than there is in the Linux world where people are constantly adopting to new realities. This creates an environment ripe for new bugs, instability and only with the amount of volunteer effort the cost factor can be lesser than prohibitively expensive.
- quotemstr 13y agoWhile I'm not aware of an "in-depth comparison" of the two systems, if you read the Microsoft Press "Windows Internals" book and some of the important books on Unix architecture, you should be able to draw your own conclusions fairly easily.
- ksk 13y agoFeature wise, there isn't much difference anymore. Thats because Linux is not a community driven effort with volunteers sending patches. IIRC tehre was an article about how 75% of the code being contributed was by paid developers. That has caused most feature gaps to be minimized. The primary difference that remains is that Linux has "evolved" where as NT was "designed". The reason for this is that modern linux has had to work around several shortcomings of the UNIX model. (for e.g. non-async I/O, suid crap, non pre-emptive kernel syscalls etc) So, what that means is that NT (in design) has specific interface boundaries in the kernel. For e.g. the device driver design has specific interfaces for the I/O Manager, the Power Manager , PnP manager etc. and communication is achieved via I/O request packets in a highly structured way. Linux is much more monolithic in this way (even though both get the job done in the end) I don't have access to the source so I can't say how much this modularity exists in practice. But atleast in theory it means that major changes to the kernel become much more easier.
- drill_sarge 13y ago>Thats because Linux is not a community driven effort with volunteers sending patches. Of course it is. Find something broken and submit your fix. Try that for NT Kernel. Also it is true that a lot of GNU/Linux devs (it's not limited to the kernel) are paid by big companies. But there are a lot of volunteers who do this in their spare time and if they do a good job they may be hired by someone who pays them to do it full time. thats how I got my job.
- ksk 13y agoMy point was that commercial investment has resulted in minimizing any gap that existed between the two. If the majority of the work on Linux was done by unpaid volunteers working in their free time then Linux would have remained an obscure hobbyist OS. So yes, Linux is not community driven. Its totally commercial-interest driven. There is nothing wrong with that.
- wnight 13y agoThe company I work at employs a few open source devs and we usually hire people who are already doing things we want, but we just want more of, or to have our use case a bit better supported. We don't really get to dictate what they code,we just pick people who are already, to scratch their own itch, coding what we need. So yes, there is a lot of paid work, but it's got a very individual character to it compared to my job where theoretically I could be coding anything a customer had convinced sales we needed.
- McUsr 13y ago"You call BSD a kernel, it technically is a set of APIs" If you read that in context of the Mac Os X operating system, then it would be true, as there is a BSD "layer" or "part" in the XNU kernel. So if it had been written in that aspect/context, it would have been correct.
- micampe 13y agoOn your first paragraph: Linux (the kernel, who cares about applications if the driver doesn't work?) has the luxury of not caring about binary compatibility. Windows can't do that.