Martin Taylor and Bill Hilf - Linux at Microsoft, Part I
- Posted: May 03, 2005 at 12:25 PM
- 91,498 Views
- 38 Comments
Loading User Information from Channel 9
Something went wrong getting user information from Channel 9
Loading User Information from MSDN
Something went wrong getting user information from MSDN
Loading Visual Studio Achievements
Something went wrong getting the Visual Studio Achievements
Right click “Save as…”
Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation,
please create a new thread in our Forums,
or
Contact Us and let us know.
Follow the Discussion
Oops, something didn't work.
What does this mean?
Following an item on Channel 9 allows you to watch for new content and comments that you are interested in. You need to be signed in to Channel 9 to use this feature.What does this mean?
Following an item on Channel 9 allows you to watch for new content and comments that you are interested in and view them all on your notifications page.sign up for email notifications?
Over the last few years, Microsoft stock is like an index of technology stocks: it is investing in everything technology money can buy---including tera-byte-level, big-iron data management. In spite of all this large-scale stuff, I still think that Microsoft is the superior small-scale data management company. Did I miss a television commercial?
MySQL and OpenOffice.org face years of lagging behind the luxuries we enjoy with SQL Server, .NET and the Office System. However, I use MySQL almost every day using .NET assemblies to feed it data from SQL Server. Why? Because I run a Web site through a Web host that uses MySQL, Apache and Linux. Why do I use this Web host? Because Microsoft-equivalent tools have only recently started to match the convenience of MySQL, Apache and Linux (it's all about remote administration).
So my point is that I use proprietary and open source tools every day with one eye on the proprietary people trying to lock me into one less area of interoperability---in spite of using open standards (WordProeccingML comes to mind here).
You see, Beer, you've got your if-then conditional in there just like they did. (I'm only kidding.)
Instead of talking Linux vs. Windows, how about some thoughts on their ideas of embracing the benefits of the open source movement. I thought they made a good point that a major benefit of open source is the community it has around it. Maybe it's not as much about being able to see/use the source code as it is about having an active community of users and devs provide input and ingenuity during the development lifecycle.
Maybe I came off a little unclear, my point was not to infer that one is better than another, rather I was trying to explain some fundamental architectural differences between a Windows OS and a Linux OS - the separation of the X server, window manager and OS is one of the key examples of this difference. There are pros and cons with these implementations of a graphical system (as well as to other graphical systems such as MacOS, and many others historically). It's largely dependent on what works best for the problem you are trying to solve.
We think Windows provides a strong story here because there is a rich environment to develop against, with consistent and predictable support across a large amount of pcs and devices.
Keep your comments coming - also, check out the part II where we go into some further detail on the work in my lab. -Bill
Channel9 is a great example of this. You should also check out http://www.microsoft.com/resources/sharedsource/default.mspx
We are active in - and continue to develop - ideas around community.
Let me ask you: what are the key characteristics of a community development project that you find appealing? -Bill
Translation:
Beer wants it to be open source.
Then why write about 9 paragraphs over essentially that? You obviously care to *some* degree.
You just have to understand you arent going to make everyone happy and Beer28 happens to be one of them. I have coded for both systems and I happen to think compared to Linux, Windows wins, as a platform and as a development environment. Of course I do have to keep Java around some, have to support those Legacy applications.
I have submitted 48 kernel patches to the kernel.org team in my time, you know how many got worked into the main tree? NONE, 0 and do you want to know why? They have their own friends and colleagues that they use their stuff. Joe Blow, rjdohnert and beer28 unless we are on the A-List none of our patches get in. I asked on the kernel.org mailing list way back, how to get my patches into a mainstream Linux distribution. I was told to start my own distribution. Its like Apple, only committers get patches in, everyone else = 2 bad. I was told Apple only used 2% of user submitted OpenDarwin code in 10.4, my guess is that a commiter took it, probably credited himself and got it in. So much for community efforts.
The kernel of an operating system like Red Hat or Windows XP is primarily a software interface to hardware; a software-based machine virtualizer.
Everything that happens on your PC, for example, does so either directly or indirectly through the kernel.
As you would infer from such a proclamation, this means the kernel must be as efficient, stable, performant, secure, reliable, predictable as humanly possible. It follows that you will want to restrict the number of humans writing the kernel of an operating system to a select group of highly skilled (and narrowly focused) software engineers who are very well-versed in both the art of machine level programming and the craftmanship of enabling a machine to be programmable.
C
(Note: the author of this post has no idea what really happened in regards to the kernel bug fix story and is merely using your example to show his point. Please don't bash me into the ground with mighty semantic issues.)
You're absolutely right. With the power of open source, a major bug was found and fixed!
The story doesn't end there.
So the kernel team fixed the bug. What happens now? How does the bug really get fixed? How does it propagate to every server and desktop out there? Is there an update system in place? What about for this distro over here? What about the guy who hasn't patched since 3 minor versions ago since the new kernel 'broke his box that one time'? Are you just going to rely on the maintainers of all those distros to update and then get the updates to their users? Are you also going to rely on sysadmins to go out and read the news and see that there's a new patch they need to apply and spend the next week figuring out why their 15 year old app now barfs on the new kernel? Seems like a mighty big buck you're passing around there.
The way I see it, that's the big difference between closed source and open source. Open source is pretty much all do-it-yourself. Some people have made kits, but you still gotta get your hands dirty and mangle the kit into your workspace and remember what manglings you did to get it there (which can be pretty fun if you're not in a hurry or in a bad mood). But with closed source there's a company to take care of all that for you. If something isn't working, They have to fix it for you since you gave them money for their software (despite how it often happens in the real world, that's the general idea). But then again, you have to wait for them to do it. You don't have the code so you can't do it yourself. Then there's companies that bridge this gap and maintain open source things and make money only on support, but it's late and I don't quite feel like typing much more.
Yes, the fact that 'millions of eyes are looking over the code' does mean that more bugs get caught and fixed. But I think the open source community still has a long way to go in terms of doing all the other work needed after you hit compile, run your tests, and check in for the night.
I'm not saying that Microsoft is the ultimate example of exemplary coding and bugfix deployment technology (though Windows Update is very nice) either.
And waaaaay back a bunch of posts, you said something about how X had network support and Windows Messaging didn't and you seemed to imply that it was sort of a handicap of Windows Messaging. Well, correct me if I'm horribly wrong, but doesn't X transfer screen bits across the wire? Isn't that a little slow? And doesn't having this feature built-in tempt users to just use it instead of doing it the harder way and getting better performance? Just a thought - both ways have their advantages and disadvantages.
Oh-my-god ...
---
BTW. I just bought "Windows Internals" fourth edition. I'm really disapointed.
Is there any Windows Kernel book which goes more "deeper" ... ?
---
And downloading is very very slow .. only 8 KB/s
Not the entire world by a long stretch. The world of people who are developers capable of dealing with Kernel level code, and who happen to take an interest in Linux. That is a substantialy smaller number than 6 billion.
Thats kind of a fine line: where do cross from making it harder for other OS's to use functionality, or to enhance functionality for desired OSes. Kinda like how Java tends to make things a common denominator across OS's, without catering to the special features unique to a specific operating system. (Although, wasn't there a WIndows-style Motif at some point? been a while for Java for me..).
Personally, I like the little enhancements.. Encourage me to use your system. Woo me..
And it exists too
Haven't seen the interview yet but I hope that you have gentoo in your labs.
Question does MS have their C,C++ on the linux platform? I bet there are some gentoo'ers (like me) that would like their platform to compile a bit faster
So far I'm running OpenOffice on it (yes, the bad practice of using a server partly as a desktop but it a test setup, so no worries
Any suggestions? For example, I use Acrobat Reader, which is free, but for full points I'd like to score an open source version.
CVS vs Ms SoursaSafe, Open source vs Microsoft (yes Microsoft) ... differents point of view, but at the end all the people that wrote a few lines have the correct answer. Everybody knows the correct solution. But, as a developer, I've problems with .Net scaling a bit solution (more Ram more Ram !!), the same solution in Java trying to work in diferents Application Servers (move to Oracle AppServer to JBoss without recode --> No Way !!!). My point is I like the Open Source iniciative a lot (is free, is fun, and is very powerfull, under a good review), but to have big company behind my back to inform me about new bugs, new fixs, and keep me informed is a good thing too. I want to thanks everybody for your opinions, they have make me found a new way to see the day-by-day problems.
Byes from Spain
El Bruno
PD: sorry 4 my poor english.
PDF Creator
http://sector7g.wurzel6.de/pdfcreator/index_en.htm
Why bother, just compile from source
Toward gentoo domination and beyond...
I think your right the bar for kernel level code is very high, as it should be.
I know lots of people have managed to add patches to the linux kernel, in fact, its soon almost as a badge of honour to have a patch accepted by a contributor, it says a lot about you programming skills.
The video was interesting, but i felt it raised questions that we've moved on from, as a community, like writing apps for various distos, as lots of companies have sucessfuly written solutions that work on all distros. Look at adobe reader, java. There is usually some set up but its distro independant. Or just staticly compile packages.
Also with package management, most distros use either apt or yum so keeping up to date or installing new packages is as easy as typing yum update, or yum install <package a>.
Tom
But you are missing a key concept here in the model differences, which is the amount of formal, methodical and deep testing (backwards and upwards) that goes into how Microsoft validates and releases an update and how an update is released via any of the technologies you list above. -Bill
I consider myself a developer (that's why I love C9 btw). I have used both rpm and deb based distro's and I probably don't have anything major against them. Except that after x number of months packages stop getting released as often and or time (dev's need packages yersterday), or packages get built on other glibc or some other library and you start upgrading, sometimes even uncompatible packages and you quickly end up with a unusable system. Then you have to start from scratch. In a way binary based linux is much more vulnerable to dll hell. In the past I'd be using a GNU/Linux distro for about 4-6 months,then format and repeat with distro x+1. I ran a gentoo distro for a year and a half flawlessly with all init things going OK something that was a real problem with RedHat (mileage may vary depending on hardware
Package systems are good solutions but aren't free of problems, often are less then flexible (ex. trees compiled for certain architectures and/or not taking all advantages of your hardware). Plus you have to have developers that take care of each tree (think about commercial vendors that have to support >1 distros, it's a nightmare). And I'm not bashing rpm in any way don't misunderstand me, I liked it when I installed my first RH5, I liked it when I discovered src.rpm's but it's still a feat to keep a system stable.
Good or bad linux does one thing well, it's the GNU toolchain. Almost every linux program gets built with it. If you nail the toolchain you can nail most other problems. I have not seen any other linux distro (or did not care to see at the time) except gentoo that has such a tight coupling between their tools and development process, a remarkable example in software engineering. Perhaps you could in extremis distcc binary packages, but then again, the computation cost, the various architectures, use flags, etc would probably make it unmantainable even if automated.
This is a strange discussion to be having on a MS forum
My personal wish that I suggested on the MSH newsgroups, why not have MSH on linux as well
That doesn’t mean its good at all, or that is better than Microsoft’s approach. It’s just a way to do it, and to tell you the truth; I’m happier most of the time with Microsoft’s approach. Many times I had to deal with the problems caused by some distribution having old buggy versions of different applications in some servers. So I rather go to a centralized place to get my updates, a place that I know it’s up to date, where the updates a formally tested, than to have updates for all my apps that aren’t formally tested. There are many more problems with doing such system that the Linux world hasn’t resolved yet. But of course there are many benefits too so it’s a question of what’s best for each. For Microsoft it’s better to have formally tested applications only in Windows Update. I think Linux world in general can’t afford to do formal testing (unless IBM, Novell or whatever put money into that) but they used that problem as an advantage and made systems such as urpmi up2date, etc. where updates are available for a huge number of applications.
To make my point clear, I think the problem is that for Microsoft to do what you ask they have to give up many things that they are not willing to do. In the same way, for the Linux community to do what Microsoft does successfully, they have to give up things that they are not willing to give up. What needs to be realized is by both, Linux and Windows trolls is that they are not the same, that they probably will never be the same, and that each one is good at some things and bad at others. Choosing Linux simply because Microsoft “is a monopoly that just cares about money” is just wrong, and choosing Windows just because “the Linux people are a bunch of communists” is wrong too. What’s best is to choose in a per situation basis, in that way you know that you will always use the OS and tools that you think are the best based on what you have to achieve.
About my question of lowering prices: I was thinking on products like Windows XP or Office that should be lowered in price. Some people think it's one argument to switch to Linux or OpenOffice.
Can we have streams of low bit-rates?
Internet connectivity is still expensive in our region (Pakistan)
Streams being published last months of 110kbps streams were fine!
"Updated 2005-04-01"
... hope you know what that means
I can't change the workflow unfortunately.
To expand on that, there seem to be a few misconceptions up here about how Linux things are done (which makes sense, since this is MSDN; people ought to be more familiar with the MS way).
- Linux distros typically provide "package management" for a whole range of applications that are not developed by the distributors themselves. This means they provide installers, up-to-date patches (frequently to the extent that they patch unpatched/unmaintained applications, which conceivably can lead to a sort of mini fork, as Pablo said), testing, and dependency management (the latter being a bit more important in the Linux world, perhaps, but it does cut down on what I've heard called "DLL hell" on Windows).
- Distros--the reliable ones, at any rate--put their code through serious testing before shipping it, including backporting patches to avoid forcing upgrades, and so forth. Distros like Debian are renowned for their stability and reliable upgrade paths.
- Packages soon being unmaintained and abandoned shortly after they are released, as one poster above mentioned, is not a problem I am familiar with. In fact, the upgrade path is often *easier* with Linux, insofar as upgrades are free.
- Microsoft has more testing resources than most, if not all, Linux distributors. QA is probably better as a result. However, since (good) Linux distributions manage the whole range of user applications as well as just the OS, they provide a level of QA that Microsoft (at least officially) doesn't, by explicitly working with upstream providors to work out kinks.
I agree that one is not better than the other. But kneejerk reactions bug the hell out of me.
I tried find your patches which you sent but didn't find any. I really want to see those ... Can you give us link where we can find those?
Obviously you have no any understanding how Linux kernel is developed.
I wanted to comment on the small discussion on Linux users purchasing commercial applications for Linux. I would gladly pay for Microsoft or Sofware Developer X applications that would work WELL on linux.
Remembering that many of the people that use Linux also support Windows in all its flavors exist in really high numbers. Being an Network\System administrator I use the right tools for what I need to get done. Windows offers me flexibilty and interoperability. Linux offers me stability and the same flexibility in a different way. Most of the applications that we run are windows applications so I understand that Windows will always be the market leader with respect to Operating Systems.
Chad
Interesting stuff. I come from a Linux background, and must admit that Linux is not as good as some people think it is, whereas Windows is much better than some may think. Linux has a lot of problems in terms of "openness" and lack of standardization. Windows NT on the other hand as a platform is great, with roots going back to the "virtually unhackable" and highly scalable VMS (DEC, Dave Cutler & Co). There's advantages and disadvantages to both sides. I think Linux is great as a "learning lab", hence used in universities, on supercomputers etc., where it's all about testing, tweaking, recompiling the kernel and configuring the hell out of it, whereas Windows (and other UNIX commercial systems, for that matter) is a lot more stable and plays a more important role in business and enterprise environments. It's difficult to draw a line, but I think there's a lot to learn on both sides (Linux should become a little more standardized, Windows could in turn become a little more open and versatile).
Remove this comment
Remove this thread
close