Slashdot Mirror


Microsoft Reports OSS Unix Beats Windows XP

Mortimer.CA writes "In a weblog entry, Paul Murphy mentions a Microsoft report (40 page PDF) that in many instances FreeBSD 5.3 and Linux perform better than Windows XP SP2. The report is about MS' Singularity kernel (which does perform better than the OSS kernels by many of the metrics they use), and some future directions in OS design (as well as examination of the way things have been done in the past)." From the post: "What's noteworthy about it is that Microsoft compared Singularity to FreeBSD and Linux as well as Windows/XP - and almost every result shows Windows losing to the two Unix variants. For example, they show the number of CPU cycles needed to "create and start a process" as 1,032,000 for FreeBSD, 719,000 for Linux, and 5,376,000 for Windows/XP."

73 of 442 comments (clear)

  1. 44 pages and the main question is still unanswered by TripMaster+Monkey · · Score: 4, Insightful

    Here's an interesting snippet I found while perusing the PDF...thought I'd share.
    On the other hand, this paper does not validate our goal of increased dependence. Measuring that aspect of a system is significantly more challenging than performance. We do not yet have results for Singularity.
    Interesting...Singularity is ostensibly supposed to be about stability, but the 44-page paper has no data on this. Kinda like saying, "Our new bulletproof vest is 40% lighter than our leading competitors, and twice as flexible. How well does it stop bullets, you ask? Sorry...we do not yet have results for that benchmark.".

    Wake me when a paper comes out about Microsoft's new stability-oriented OS that actually addresses that particular aspect of the product.
    --
    ____

    ~ |rip/\/\aster /\/\onkey

  2. Too Telling by teknopagan · · Score: 5, Funny

    Isn't it telling that the idea of Microsoft telling the truth is considered front page news on /.?

    --
    The Russian Mafia will mod you down just to see if the Moderate button works.
    1. Re:Too Telling by websaber · · Score: 3, Interesting

      This is the real big threat to the open source community. Once Microsoft becomes honest whith themselves they might start making real progress on the engineering side of their product. Marketing will get you so far when you have no more competition but good engineering can make it stick.

      --
      "A good friend will bail you out of jail. A true friend will be sitting next to you saying, 'damn....that was fun!'"
    2. Re:Too Telling by PickyH3D · · Score: 2, Insightful
      I think it's more telling that the paper shows Linux or FreeBSD as performing better in a few tests, which is the reason it was able to appear on the front page.

      I'm happy though that MS may be taking Singularity seriously. Maybe we will see their OS in 2011-2015 based on it? Unless some sort of major shift in its purpose occurs, then I would definitely jump ship from whatever I am on then, to that and I will definitely port/develop my software for the OS.

    3. Re:Too Telling by Deviate_X · · Score: 5, Interesting

      I don't know what those 5m vs 1m cycles are doing. But what I do know that fundamentally Windows was designed with high-performance threading/wait operations and high-performance asynchronous operations, whereas Unix and its derivates rely on high performance process-creation, blocking I/O for sever applications.

      I.e. Apache 1.3x series performs poorly on windows because it was a straight copy of the Unix edition - using processes rather than threads.

    4. Re:Too Telling by arkanes · · Score: 2, Insightful

      Nothing that people didn't already know there - take a look at the numbers for thread operations and note how they're much, much faster than the Linux/BSD numbers. Creating a process on Windows has always been very expensive, and threads have always been fast. It's why Windows applications use threads where equivilent Unix ones fork.

    5. Re:Too Telling by DavidTC · · Score: 4, Informative
      No. Linux's thread creation beats MS's thread creation.

      It just doesn't beat it by as the absurd amount as its process creation beats MS's process creation.

      Think of it this way:

      Linux threads: great
      Linux processes: great
      Windows threads: good
      Windows processes: horrible

      --
      If corporations are people, aren't stockholders guilty of slavery?
    6. Re:Too Telling by GooberToo · · Score: 4, Informative

      I don't have something I can point you at right, however, the information is true. Linux used to have horrible overhead imposed by thread creation. As a result of both the NGTL and NPLT projects, the time needed to create a thread on Linux is tiny...tiny...tiny...some of the well known results from the projects were published... Here's a quote:

      "One test mentioned in Ulrich's email - running 100,000 concurrent threads on an IA-32 - generated some interesting discussion. Ingo Molnar explained that with the current stock 2.5 kernel such a test requires roughly 1GB RAM, and the act of starting and stopping all 100,000 threads in parallel takes only 2 seconds. In comparison, with the 2.5.31 kernel (prior to Ingo's recent threading work), such a test would have taken around 15 minutes."

      http://kerneltrap.org/node/422
      As you can see, the stellar increase in thread performance has been unbelievable. Keep in mind, prior to this effort, Linux's thread creation was no where near the performance delta gained from these projects. Ergo, one can easily deduce that Linux far exceeds (less time) Win's thread creation latencies.

    7. Re:Too Telling by PickyH3D · · Score: 2, Interesting
      Why is that a threat?

      A great product is a great product regardless of who makes it. I thought OSS was a big deal because it emphasised great engineering with openness. So, if you can't handle the heat, then stay out of the kitchen.

  3. 5 Steps of Grieving by ciroknight · · Score: 4, Funny

    hmm funny, the last step is Acceptance. Too bad it seems Microsoft skipped the "bargaining" step.

    --
    "Victory means exit strategy, and it's important for the President to explain to us what the exit strategy is." G.W.Bush
  4. Singularity is truly an intriguing system. by CyricZ · · Score: 5, Insightful

    Singularity is a very interesting system. But that's not surprising, when you consider some of the brains behind it: Galen Hunt, Wolfram Schulte, Ulfar Erlingsson, Rebecca Isaacs, and many others who are well-known for their research.

    In twenty or so years we may look back at Microsoft Research with the same admiration we have for Bell Labs.

    --
    Cyric Zndovzny at your service.
    1. Re:Singularity is truly an intriguing system. by Guysmiley777 · · Score: 5, Funny

      In twenty or so years we may look back at Microsoft Research with the same admiration we have for Bell Labs.

      I just shot soda out of my nose. You owe me a keyboard.

      --
      Coding with assembly is like playing with Legos. Coding an application in assembly is like building a car with Legos.
    2. Re:Singularity is truly an intriguing system. by CyricZ · · Score: 4, Interesting

      Now that you're done being sarcastic, go look into some of the research that is being done at Microsoft Research. Like it or not, it is top of the line work. They're at the cutting edge, and they're well financed.

      --
      Cyric Zndovzny at your service.
    3. Re:Singularity is truly an intriguing system. by yurnotsoeviltwin · · Score: 5, Insightful

      You definitely have a good point there. Everyone around here bashes Microsoft obviously, and for good reason. Their business practices can get a bit on the shady side sometimes, though they problably aren't deserving of quite the amount of hate they get around these parts. But their programming and research, particularly research, isn't that shabby, and certainly isn't "evil." Remember, M$ doesn't just sell operating systems, it makes them too, and to do that you have to have brains. I think some people around here need to give at least the engineers and researchers in Microsoft a little more respect.

    4. Re:Singularity is truly an intriguing system. by geomon · · Score: 4, Interesting

      Like it or not, it is top of the line work. They're at the cutting edge, and they're well financed.

      Okay, but how many of their innovations (Christ Microsoft loves that word!) actually make it to the outside world?

      I think your comparison to Bell Labs is good, however, in that much of what Bell Labs created required others to make into real products. AT&T/Ma Bell sat on every innovation until it nearly suffocated due to lack of capital investment.

      --
      "Rocky Rococo, at your cervix!"
    5. Re:Singularity is truly an intriguing system. by LaughingCoder · · Score: 3, Insightful

      Sad that your comment is modded as funny. In fact what you say is insightful and probably will turn out to be true. It amazes me how most people in this forum refuse to give Microsoft credit for anything they do or have done, but they are more than willing to heap blame upon them. I believe that *overall* Microsoft has in fact been a positive force in the industry. This doesn't mean everything they have done worked out for the "common good", but I think the scale tips in that direction. And don't forget that they continue to spend lots of R&D dollars both on product development and pure research. You would think a technical audience like /. would appreciate that. To me it smacks mostly of envy and jealousy. Can't we all just get along?

      --
      The more you regulate a company, the worse its products become.
    6. Re:Singularity is truly an intriguing system. by LowneWulf · · Score: 4, Insightful

      I've seen talks and papers that have come out of Microsoft research, and while it may look good as a website summary, the quality of the actual projects and results varies wildly. They may talk big, but in the end, I've only ever seen a couple of projects out of MSR that were even worth talking about, and the research labs of places like IBM, HP, and even Sun do many far more interesting things.

      One other big problem from MSR - on the occasional project that's actually good, they somehow manage to kill it, or at least never tech transfer it into products. I cry when I think of some of the awesome dev technologies MSR was working on a few years ago that never made it out.

    7. Re:Singularity is truly an intriguing system. by norton_I · · Score: 2, Insightful

      Why do you think that is pointless? While it is not the same style of "basic" research as some of their other work (which is, as the original poster said, top notch), it is certainly valuable, at least from the abstract you posted. They also do some cool stuff with compiler optimization, distributed/parallel computing, and all sorts of more respectable forms of research.

      I don't know your background, but I have never met anyone with a substantial CS background to say anything bad about MS research, including a number of OSS zealots (such as myself). I suspect that most people who make fun of them are simply not in a position to judge their work.

  5. Re:44 pages and the main question is still unanswe by man_of_mr_e · · Score: 4, Insightful

    Well, that's sort of to be expected. Stability is not as easy to measure as other things, since you need benchmarks over a long period of time. Further, since it's still a research OS, it's likely in constant flux and doesn't have the same kind of stability hardening of a retail OS.

  6. Microsoft Research is not Microsoft. by Kickasso · · Score: 4, Insightful

    Microsoft is not Microsoft Research. Microsoft Research folks use and make free software, and in general are not ideologically bound to the parent organisation.

  7. Re:What's the point of CreateProcess benchmarks? by CyricZ · · Score: 4, Insightful

    It's not so much about its ability to start thousands of processes. What is important is that it takes Windows XP five times as long as FreeBSD to create a single process, and seven times as long as Linux. That's a significant difference.

    --
    Cyric Zndovzny at your service.
  8. You're SO fired! by Kevin+Burtch · · Score: 4, Funny

    I bet the person who put that report on MS's site has been drooling over the severance package... ;-)

    --
    - Preferences: Solaris 10 (servers), Ubuntu (desktops), Solaris 11 (personal servers) -
  9. Re:44 pages and the main question is still unanswe by teknopagan · · Score: 5, Funny

    I just have to bow before the guy who can read a 44 page pdf and post an intelligible, coherent comment on it in less than two minutes. I just have to ask - where do you get that kind of caffeine?

    Amazing.

    --
    The Russian Mafia will mod you down just to see if the Moderate button works.
  10. Give me a fucking break by Wonko42 · · Score: 5, Insightful
    I've been seeing this damn report hailed all over the Internet for the last few days as Microsoft saying Unix is better than Windows, but apparently nobody has actually read the report.

    For one thing, Windows is not slower than Unix in most of the tests. It's slower than Unix in some of the tests and faster in others. For another, these benchmark results are for low-level things like spawning processes and threads. Any programmer who knows anything about Unix and Windows will tell you that threads are cheaper in Windows and processes are cheaper in Unix, because that's how they were designed. So of course Windows is going to be slower than Unix at creating processes, and of course Unix is going to be slower than Windows at creating threads.

    The only thing worth reporting about this thing is the performance of Singularity, which looks like it's shaping up to be an excellent modern kernel.

    1. Re:Give me a fucking break by sammy+baby · · Score: 2, Informative

      Are you saying that Paul Murphy's statement that, "almost every result [in the published report] shows Windows losing to the two Unix variants." is inaccurate?

      (I'm not being sarcastic: I haven't yet had time to read the full report, and would genuinely like to know.)

    2. Re:Give me a fucking break by Wonko42 · · Score: 4, Insightful

      Yes. It's the "almost every" that I have an issue with, because it's a blatant exaggeration. I've also seen that phrasing used in several news articles about the report. But when I looked at the actual report, I saw plenty of tests where Windows actually beat Unix. I didn't bother counting, but I'd estimate that the two came out pretty evenly matched, with Unix maybe slightly ahead. In any case, no matter which one beat the other more times, these are very low-level tests. Nobody's going to notice these differences unless they're running a high-traffic server or doing some really heavy-duty computing.

  11. Memory Usage? by ackthpt · · Score: 3, Funny
    XP sucks memory.

    The future: Longhorn will suck far more memory than XP.

    They must be in cahoots with the memory makers, alert Rambus!

    --

    A feeling of having made the same mistake before: Deja Foobar
  12. Re:premature optimization by Anonymous Coward · · Score: 2, Funny

    see which takes longer

    Is "searching the manpages" included in the benchmark time?

    *Ducks*

  13. Processes v. threads by Anonymous Coward · · Score: 3, Insightful

    NT (and its latter incarnations like XP and so forth) are desgined to use threads rather than process for multi-processing/concurrency, I understood. Is Win XP less efficient in multi-threading than BSD/Linux? The history of threads in UNIX seems more later bolt-on - UNIX was designed with multi-process model, I think.

    No I didn't RTFA.

    1. Re:Processes v. threads by Todd+Knarr · · Score: 4, Insightful

      Exactly. NT got it's process model from VMS, and process creation was a very heavyweight operation. Unix, by contrast, had a very lightweight process creation operation. Hence NT needed threads to provide a faster alternative to processes, while Unix (whose processes were almost as cheap to create as NT threads) didn't really need threads for anything other than a marketing checklist (about the only thing Unix threads get you that processes don't is fully-shared address space, and I'd argue that's often more a problem than an advantage).

    2. Re:Processes v. threads by TummyX · · Score: 2, Interesting


      You're misreading. It's not 90% of the problems out there, it's 90% of the code in a given program that's synchronous.


      I really doubt that.


      Take, for example, the process of reading data from a single input source and processing it. With no other input sources to look at, and no processing that doesn't require the data you're trying to read, exactly what can the code do while the read's completing?


      That's not a typical modern server or end user application.


      You incur the overhead of creating a thread, and then the parent simply blocks until the child thread completes. Less overhead to simply do the read in the same thread as a simple function call


      Who was suggesting that we should call functions in a seperate thread when the operation is synchronous? My example was an example of how silly it was for you to state that a shared address space between async operations weren't needed.


      You incur the overhead of creating a thread, and then the parent simply blocks until the child thread completes.


      I would think someone with your experience would know about something as basic as thread-pooling.


      Most of a program is like that: the caller can't proceed until the function it's called returns it's results, so running the called function in a seperate thread doesn't actually result in any parallelization


      That most programs today aren't GUI applications where the UI should not be *blocked* whilst some request is processed? Even something as basic as IO can easily be made asynchronous as there is almost always some post processing to be done after a file or part of a file is loaded into memory that can be done whilst the next block is read.


      Most of a program is like that: the caller can't proceed until the function it's called returns it's results, so running the called function in a seperate thread doesn't actually result in any parallelization


      Sounds like you need to be more creative in how you design your applications. Most modern applications aren't top-down flow chart style processes.

  14. Strangely enough, 5,376,000 by Anonymous Coward · · Score: 3, Funny

    is also the number of cycles needed to crash a process.

  15. Wohoo! by AlXtreme · · Score: 2, Funny

    Finally a proper microkernel OS design by Microsoft! prof Tanenbaum would be proud!

    Come on, who cares about statistics? I'm glad they're actually doing something useful: CS research!

    Oh wait, this is /.: Die M$ XP, DIE! *pinky to mouth*

    --
    This sig is intentionally left blank
  16. Typical by Bogtha · · Score: 5, Interesting

    This is pretty typical. Microsoft's biggest competitor is their old software, so their new offerings have to look good against it.

    Remember Windows 95's marketing? "32-bit memory protection makes it uncrashable!" Remember Windows 98's marketing? "Even more stable than 95!" Remember Windows 2000's marketing? "Based on an NT core, it's more stable than the crash-prone Windows 9x!"

    Its revisionist history. The only way to get a somewhat accurate picture is if you compare their current claims with what they've said about new technology in the past.

    --
    Bogtha Bogtha Bogtha
  17. Article misses the point by ichin4 · · Score: 4, Informative

    This article takes a very interesting report on a reference implementation of some innovative ideas in OS design and reduces it to a couple of entirely peripheral, seat-of-the-pants benchmarks that support the "OSS rulez!" thesis.

    Even people like me, who have only a basic knowledge of OS architecture, can tell you that processes are lightweight in Unix and heavyweight in Windows. The lightweight objects in Windows are threads, which is why Windows makes so much use of threads, while Unix spawns processes left and right.

  18. Typical slashdot post exaggerations by chris09876 · · Score: 4, Insightful

    The scenario stated in the slashdot post does show a situation where linux performs better than Windows. ...but after looking through the "performance" section of the whitepaper, it's pretty much the only case where linux is better. Windows appears to beat linux on quite a few other tests (such as memory use of a 'hello world' program, the executable size, and even some of the 'cost of basic operations' tests)

    1. Re:Typical slashdot post exaggerations by 51mon · · Score: 2, Informative

      > Windows appears to beat linux on quite a few other tests (such as memory use of a 'hello world' program, the executable size, and even some of the 'cost of basic operations' tests)

      The executable thing is a figment of comparing apples and oranges, the Unix code was statically linked, which is basically including all sorts of stuff that you wouldn't in the real world.

      Good dynamic linking is something the Unix (and clones) have done for a while (read long before Windows even started on this route), and was why we could run fully featured, X Windows based, Office suites (and Window managers) for umpteen users simultaneously on 125MHz PA-RISC machines with 100 or so MB of memory, and still have memory spare. And you still see this edge if you compare terminal services like deployments.

      The cost of operations is less on pretty much everything but thread stuff, but then the cost of creating a process is so low in Linux, threads are more of a convenience for programmers than a structural component, as others have discussed. Although I think there are advantages to good thread handling, cost of creation can usually be mitigated by maintaining pools of threads (as can the cost of process creation in Windows for certain tasks), certainly the typical environments where one uses threads for performance reasons (think Apache2).

      The tests basically tell those who understand computers, that they understand them correctly. Windows is faster at creating threads, the Unix crowd is better at pretty much everything else. It is what you'd expect comparing server class OSes against a desktop system. No one really cares if XP can't fork a process efficiently, if you only run a new application every half an hour, but if you fork (or prefork) for every incoming email request, you better do it efficiently.

      I don't quite follow the sequential I/O for small block sizes, the default blocksize in the Unix world for the traditional filesystems is typically 8Kb, and no one ever opts for smaller (well some of the new filesystems do), particularly if they expect a lot of sequential I/O when they opt for bigger, so faster sequential I/O for block sizes less than this is I suspect of no relevance in the real world. Probably just indicates code in the Unix systems that assumes a larger block size, and is thus redundant. Kind of like discovering that a human brick layer out performs your wall building machine, if you break all the brick in to pieces before you start, interesting, but mostly shows your wall building machine expected bricks to be, well, brick sized.

  19. This isn't Microsoft by The+Pim · · Score: 5, Interesting

    This is Microsoft Research. They have the same independence as university researchers--that is how Microsoft lures them away from academia. These guys are making honest comparisons to Linux and FreeBSD, because that is what they do as good researchers. Microsoft is enlightened enough not to interfere.

    --

    The evaluation of an action as 'practical' . . . depends on what it is that one wishes to practice.
  20. Re:44 pages and the main question is still unanswe by trondd · · Score: 5, Interesting

    You clearly don't know much about what makes an operating system stable... Stability depends partly on how much error checking the compiler is capable of doing, partly on how people write software (design) and partly on how well the operating system is designed to separate processes and different parts from each other. Singulary addresses all of these issues: Its mainly writen in a "safe" language which is strongly typed and does lots of compiletime check and it is a microkernel operating system which (at least in theory) prevents your cheezy usb webcam driver from crashing the kernel. Most other unix wannabe systems are writen in the ancient language C :), and run monolithic kernels.

    But singularity isn't all new, it just implements old ideas: Occam and QNX!

    But in my opinion, Singularity just might be the most interessting os to emerge in the last years. It will be interesting to see how long it will take the free software world to come up with something similar :) (btw, I am a long term happy gnu/linux user, and have no plan of switching...)

  21. Waking up? by headkase · · Score: 2, Interesting

    Instead of paying rapt attention to what Microsoft is doing what I would like to see the OSS community do is consciously form more organizations that would as an express purpose chip away at Microsoft's software base. What I mean by this is make sure your program runs on Windows for now. Get people using OSS and used to the idea so that the next time average-joe needs some software he'll search for an OSS program first. Then once that mindshare has been established begin to work towards the more core functions like the OS itself. Who knows, Microsoft might at some point simply open up the source of Windows to counter a loss of control to OSS if they see that their customers are truly ready to abandon ship. And to build that feeling in customers give them options - if all their useful software is OSS then they can swap out the lower levels (like Linux for Windows) without feeling any transition pain at all because their software applications didn't change at all only the plumbing did.
    Ballmer's right, it is all about developers. OSS developers can introduce OSS values into the Windows "ecosystem" for lack of a better word and see what happens.

    --
    Shh.
  22. Re:What's the point of CreateProcess benchmarks? by ichin4 · · Score: 3, Informative

    Processes in Unix are lightweight objects, and the OS spawns them left and right. Processes in Windows are heavyweight objects, and the OS creates only a handfull of them. The lightweight objects in windows are threads, and you'll notice that Windows thread creation is faster than Unix thread creation. These are just different OS design philosophies.

  23. not caffeine... by conJunk · · Score: 5, Funny

    he gets it right here

  24. Win/XP, MacOS/X, WhatThe/Heck? by danaris · · Score: 4, Funny

    Entirely OT, I know, but...

    Why is it that some people seem to think that all OS names, when they have a qualifier of some kind attached to the generic term, need a slash to separate them? Just because GNU/Linux is written that way does not mean it's some kind of law, people...

    It's Windows XP. That's WINDOWS {SPACE} XP. And Mac OS X. Spaces. No slashes.

    ...

    I don't know why I even bother...

    Dan Aris

    --
    Fun. Free. Online. RPG. BattleMaster.
  25. Wow is this ever misleading by tqbf · · Score: 4, Insightful

    Here's the table from the paper, ranked best-worst, W=windows, F=freebsd, L=linux, S=singularity:

    Read Cycle Counter: W: 2, F: 6, L: 6, W: 2, S: 8

    ABI Call: S:87, L:437, W:627, F:878

    Thread Yield: S:394, W:753, L:906, F: 911

    2-Thread ping-pong: S:1207, W:1658, L: 4041, F: 4707

    2-Message ping-pong: S:1452, L: 5797, W: 6244, F: 13304

    Process Creation: S: 300000, L: 719000, F: 1032000, W: 5376000

    The only stat in this table that Windows trails on is process creation. And anybody who has ever ported Unix code to Win32 knows exactly why: Windows is thread-oriented, and Windows systems don't tend to use helper programs or demand-forking to get work done. Which might be why Windows beats Unix in the thread benchmarks, but not in the IPC benchmarks. On the more general benchmarks, like cycles to issue a system call, Windows falls smack in the middle --- and, again, Windows has a slightly different take on what is and isn't a system call.

    Drawing comparisons between Singularity and normal operating systems here is silly. Singularity doesn't have processes in the conventional sense; since there's no hardware dependencies on "process" creation in Singularity, IPC and forking are much faster.

    Which is why this benchmark is reasonable inside the Singularity tech report (they're trying to demonstrate that there's a major performance benefit in rethinking boundaries between programs), but totally unreasonably outside that context: these are micro-benchmarks, like the ones CISC and RISC people throw at each other, and don't describe the amount of time it takes to complete a high-level task. Time to execute a system call is meaningful only in the context of how many system calls it takes to complete the task you're measuring.

  26. Re:44 pages and the main question is still unanswe by man_of_mr_e · · Score: 4, Informative

    While technically, reboots are not required for anything other than kernel patches, there are lots of situations where it's easier to reboot than to restart every application (which might as well be a reboot anyways). For example, glibc updates will require almost every application to be restarted, or you risk exposing vulnerabilities.

  27. Re:dependance or dependability? by cloudmaster · · Score: 3, Interesting

    It's a Microsoft OS, and you're saying that they made a mistake when mentioning that one of their goals is increased dependence? Hell yes that's their goal. Vendor lock-in, forced upgrade cycles, dependence - all the same thing, and all the goal of any winning software company. :)

  28. Re:Colonel Realtime by Caspian · · Score: 2, Informative

    Because a gigahertz is a BILLION hertz, not a MILLION.

    --
    With spending like this, exactly what are "conservatives" conserving?
  29. Depends by jd · · Score: 2, Insightful
    There's been a lot of work on improving the threading under Unix variants. M:N threading models, zero-copy where data structures are identical, etc. It is entirely possible, if not probable, that some cases of threading will actually be faster under some u*ix-like OS' than Windows. Because there has also been a lot of work on security models under u*ix-like OS' (role-based memory encapsulation, etc) which are inherently slooooow, there will certainly be u*ix-like OS' which are slower at starting new processes under those OS' (where you will have maximal security checks) than Windows.


    In other words, write the benchtest for the sorts of sub-category of cases that side with you, and you can make any benchmarks show what you want them to show. That's one reason they should always be viewed with a pinch of salt and a dash of vinegar, then served in newspaper.

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
  30. Re:44 pages and the main question is still unanswe by fatboy · · Score: 2, Informative

    init 1
    init 3
    No reboot required

    --
    --fatboy
  31. Umm... yeah, sure... but... by Colin+Smith · · Score: 2, Funny

    I bet you don't get a dancing paperclip with Linux, do you?

    --
    Deleted
  32. Re:44 pages and the main question is still unanswe by Tony+Hoyle · · Score: 3, Insightful

    Same difference... you've still shutdown all your network services which to the users means you've had downtime. It's a reboot in all but name.

  33. Re:44 pages and the main question is still unanswe by macshit · · Score: 3, Informative

    really... how exactly do you replace a running libc?

    Typical distros that support pervasive no-reboot updating (like Debian) don't exactly replace a "running" libc (or any other library), they simply update the on-disk copy. So any programs run after that will get the new libc, but any programs that were started before the update will of course be using the old libc.

    Usually this works very well; I suppose for a mega serious security update you might want to restart all your daemons too or something.

    --
    We live, as we dream -- alone....
  34. supporting quote by The+Pim · · Score: 4, Interesting
    Quote from a Microsoft researcher:
    It's very nice working for an outfit that lets you do full-time research, doing pretty much what you want to do. Microsoft generally has fairly bad press, but I think that this is something that Microsoft should really brag about, because they pay lots of people to do essentially very freely directed research. They don't correct our papers, they let us go to whatever conferences we want to. I'm publishing at a higher rate than I did at the university.
    (Simon Peyton Jones, 2001)
    --

    The evaluation of an action as 'practical' . . . depends on what it is that one wishes to practice.
  35. Re:Where is your fantastic research? by CaymanIslandCarpedie · · Score: 2, Informative
    --
    "reality has a well-known liberal bias" - Steven Colbert
  36. Re:Linux is NOT a Unix Variant by Laebshade · · Score: 2, Informative

    It's funny that you should mention that Linux is not Unix, as I'd dare say that Linux = Linux is not Unix, or LinUx. :P

  37. Did you actually read it? by cyclopropene · · Score: 5, Insightful
    Interesting...Singularity is ostensibly supposed to be about stability, but the 44-page paper has no data on this. Kinda like saying, "Our new bulletproof vest is 40% lighter than our leading competitors, and twice as flexible. How well does it stop bullets, you ask? Sorry...we do not yet have results for that benchmark.".

    You didn't really read it, did you? From TFA(bstract).

    ...Singularity demonstrates the practicality of new technologies and architectural decisions, which should lead to the construction of more robust and dependable systems.

    The point of the paper is NOT to demonstrate a fully working uber-dependable system, but to validate the practicality of the architecture that is under development, and the new technologies being included. That's why they have the section on performance, with the preface (right above your quote, btw):

    If Singularity's goal is more dependable systems, why does this report include performance measurements? The answer is simple: these numbers demonstrate that [the] architecture that we proposed not only does not incur a performance penalty, but is often as fast as or faster than more conventional architecture[s]. In other words, it is a practical basis on which to build a system.

    That's the point of the paper. I understand, however, that you might have been in too much of a rush to get first post that you didn't understand the point of the paper...

    --
    Shouldn't you be doing something useful?
  38. Re:44 pages and the main question is still unanswe by DavidTC · · Score: 5, Informative
    Not really.

    For example, apache and sshd, and various FTPds, can be restarted without anyone possibly noticing, because they simply leave any running children open. You connected before a certain time, you got the old copy, you connected after it, you got the new one.

    And, of course, many protocols work fine if you go away for five seconds, like SMB. The client program will just say 'oops, connection hiccup' and reconnect silently, and the end user never notices. Same with IMAP clients. They go 'Hey, the server closed my connection, I better open it again'.

    Restarting services on a Linux box is 99% transparent to end users, even ones that are currently directly doing something with the server.

    Rebooting is not transparent, even if all the connections are reaqquired automatically, simply because work stopped for the two minute reboot.

    --
    If corporations are people, aren't stockholders guilty of slavery?
  39. ZDNet must be very desperate... by someone1234 · · Score: 2, Insightful

    Hmm, Murphy is a known M$ shill, they must be very desperate to get clicks if he resorts to this kind of admission. Or there is some very dark reason i couldn't even fathom.

    --
    Patents Drive Free Software as Hurricanes Drive Construction Industry
  40. Re:44 pages and the main question is still unanswe by NickFortune · · Score: 4, Informative
    Same difference... you've still shutdown all your network services which to the users means you've had downtime. It's a reboot in all but name.

    mmm... I can see that in a few specific cases, like if you have a lot of users who log on over ssh. Less so for webservers and remote filesystems where you bounce the runlevels fast enough, the interruption will probably never be noticed.

    Of course, the context where the Curse Of A Thousand Reboots really bites is for the home computer. I mean, I only have one user on this machine. Rarely I'll have two, never any more than that. So if I cycle runlevels, no-one is going to be put out bar me - and I'm the one doing it.

    In General, I find that the people inconvienced by a compulsory reboot are not networked users.

    Of course, even if you have remote users, your downtime is going to be a lot less if you don't have to go through POST, bios initialisation, device scanning and all the rest of it. And of course you only have to do it once, becaue you're controlling the process, so you don't get fifteen reboots in a row because windows brute forces everything.

    So, I think "all but name" is overstating the case. By rather a lot, actually.

    --
    Don't let THEM immanentize the Eschaton!
  41. Re:That explains a lot by pthisis · · Score: 4, Insightful

    Yawn, same old stuff - read the rest, Windows is better at thread switching. That makes up for the slow process creation. Windows programmers know that processs creation is slow, and thread creation is quick.

    As a result, you get tons of unstable Windows applications because to get any reasonable concurrency you have to throw out the years of hard work that OS designers put into having protected memory.

    Threads vs. processes isn't "two different ways of doing the same thing". Barring a massive implementation boondoggle, you make that choice based on whether you want memory protection or not. These numbers highlight a massive boondoggle, which takes the correct choice away from the application author in many cases.

    --
    rage, rage against the dying of the light
  42. This is not true by RedLaggedTeut · · Score: 4, Informative

    Actually results are mixed; and they even seem to indicate that Linux seems to excel at nothing but quick process startup (which is cool if you do lots of shell scripting, maybe compiling too)

    According to the benchmarks published there

        - at most OS jobs like threading/process creation, Singularity is at least twice as fast as linux, Linux is very fast at process creation, while XP is good at threads

        - in File Operations FreeBSD and Linux beat XP and Singularity at random reads

        - in File Operations XP beats Linux and Singularity at sequential reads, with the exception of FreeBSD being fastest if blocksize is high(and very bad for small blocksize)

        - linux executable sizes are larger than these of the other OSes, (whatever that means, more good coding, or less bad code SCNR)

    Please bear in mind that a benchmark does not tell whether the "slower" OS actually invested more time in doing some smart stuff that pays off in some other way. In particular, I would not be surprised if an experimental OS like Singularity did less.

    partial repost from http://slashdot.org/comments.pl?sid=167223&cid=139 45599

    --
    I'm still trying to figure out what people mean by 'social skills' here.
  43. Re:5,376,000 cycles for Windows/XP by Jozer99 · · Score: 2, Informative

    My always on XP SP2 machine has not had any spyware in 3 months. Its the dumb users who get infected. There are less dumb people using Linux (due to the learning curve), therefore less problems with unwanted computer activity. An XP machine properly set up with firewall, spyware, and virus scanners/blockers, and used responsibly (no Kazaa) will get a serious virus about as often as a *nix user will get rooted.

  44. Win32 vs Posix processes by Foolhardy · · Score: 4, Informative
    First of all, the Windows processes created in this example are Win32 processes, which have a lot more baggage than the posixy processes that FreeBSD, Linux and Windows's Posix subsystem use. I'd like to see added to that list the number of cycles to create a native Windows process and a SFU process (they're going to be a lot shorter), and also a WINE process under Linux.

    Some of the things that Win32 processes do that SFU and native processes don't:
    • The Application Compatibility Database, a user mode service has to be contacted to see if the new program needs to have any compatibility shims added. Half of the compatibility that XP has comes from modifying programs as they start, or giving them special treatment. This stage alone causes so much overhead that Windows Server 2003 has a special group policy that lets you turn it off to make starting processes faster.
    • The Software Restriction Policies database, a set of registry entries that have allow/deny rules for starting processes based on hash, filename or certificate. To make any actual comparisons, the entire binary has to be hashed and checked for certificates before the program even starts.
    • Registering with the Win32 subsystem server (csrss). This involves several out-of-process function calls.
    • Load the current locale, including NLS files.
    • If enabled, contact the Themes service.
    Except for talking to the Themes service, all those steps are done for every new Win32 process, even if it doesn't have a GUI.
  45. Re:44 pages and the main question is still unanswe by Shotgun · · Score: 3, Insightful

    Insightful? How about "apologetic bull"?

    My job is in QA. Your statement says that my job is impossible. Here are a few ways you can test stability:

    1) See if the OS comes back online after a power cycle
    2) Insert and remove device drivers
    3) Send mangled data across the various data busses
    4) Run programs that try to allocate all the memory
    5) Run programs that try to hog all the CPU
    6) Run a program that fills the hardisk/erases the hardisk/refills the hardisk
    7) Do all the above all at the same time

    The OS is a control point, and should be able to handle all of this and more GRACEFULLY.

    (Gracefully being an undefined weasle word indicating that it should fail in a somewhat predictable manner that won't completely piss off the vast majority of administrators.)

    --
    Aah, change is good. -- Rafiki
    Yeah, but it ain't easy. -- Simba
  46. Re:OS in C# ??? by be-fan · · Score: 2, Interesting

    The fact that the virtual machine is a bit slower isn't the point. The point is that because the virtual machine ensures memory protection, Singularity doesn't need to use hardware memory protection for the kernel. Doing a single system call costs hundreds of clock cycles on a modern CPU, because of the userspace/kernelspace switch. It also necessitates all sorts of complex (and slow) IPC mechanisms that go through the kernel (and invoke the aforementioned switch), all because we're still programming in an antiquated 1970's era language that let's programs randomly write into memory.

    Modern CPUs quite be quite a bit faster if they didn't have to support C. Take a look sometime at all the die space an Athlon64 uses for stuff like TLB, etc. Also look how it needs to increase L1 cache latency by 50% (from 2 cycles to 3), just to support the TLB lookup. All of this stuff would be unnecessary if C programs couldn't overwrite whatever memory they wanted.

    --
    A deep unwavering belief is a sure sign you're missing something...
  47. Re:44 pages and the main question is still unanswe by muixA · · Score: 2, Informative

    Perhaps everyone knows this, but...

    The reason you can replace something like libc on a running Unix system, is the result of the way the Unix FS works. If you open a file, in this case libc, the kernel sets a reference count on that inode. If you subsequently unlink() (delete) that file, the kernel doesn't actually remove it until the reference count goes to 0. This means already running processes will be unaffected by this change, while new opens would fail.

    In the case of a libc upgrade, one unlinks the old file, and replaces it with the new one. New apps start and link against the new libcxx.so. Old apps work as expected.

    Windows doesn't work this way, at least not what i've seen
    --
    Mu

  48. Re:What's the point of CreateProcess benchmarks? by pthisis · · Score: 2, Informative

    I didn't mean to say that there aren't some negative consequences to the choice of making threads performant and processes less so. There are, and your post correctly identifies one of them. But I think it's wrong to say that that design decision is therefore across-the-board wrong.

    There are 2 seperate issues here
    1. Are threads faster than process? Yes, on both Unix and Windows.
    2. Are process so slow as to be essentially unusable for concurrency? On Windows, yes for a relatively large problem domain.

    (2) is wrong. You force the programmer to give up memory protection in order to use an unrelated feature (concurrency).

    There are times when a threaded architecture is appropriate, and that is harder to do in Unix (which is why Apache 1.x spawns processes, even though the 2.x codebase shows that threads are a better idea).

    No, Apache used processes because they were a better idea. That's why most sites running 2.x on Unix continue to run it in multi-process mode even though multithreaded mode is available.

    Not only does the multiprocess model avoid synchronization issues (see, e.g., http://www.zeuscat.com/andrew/work/aprbench/ for benchmarks showing that pre-fork is faster) but it avoids all the security/stability issues that come along with multithreading.

    Would you rather have an obscure bug in some module you're using kill the current connection (and if it's repeatable, make that one page unloadable) or take down the whole web server? Do you want to limit the scope of security breaches?

    Now, thread switches on their own are faster than process switches. With careful crafting you could design a threaded server that avoids synchronization issues and have it be faster than the multiproc version by that margin--but that's a very tiny margin that will likely be lost in the noise in any real-world server, and you're talking about increasing development cost dramatically for a return that's marginal at best. You'd be far better served putting that development effort into a state-machine based solution like thttpd or phhttpd if that level of performance is a concern.

    That said, threads do have their place. Some problems are best solved with a shared-memory solution where the memory you need to share can't be easily isolated into a few SHM segments. And when that's the case, threads are the right tool for the job.

    But the point is that if you don't have a reasonably performant process implementation then you remove the more commonly useful tool and force programmers to accept one feature (memory sharing) that could be very bad in order to use the one they really want (concurrency)--when those two features are really unrelated.

    This problem isn't limited to Windows, either; Java similarly suffers from having no good way for programmers to use a multiprocess design.

    It is, IMO, the single biggest technical problem with Windows.

    --
    rage, rage against the dying of the light
  49. Re:But how...? by pthisis · · Score: 2, Insightful

    Threads certainly have a place, I never said otherwise. The problem is that the Windows system forces you to accept shared memory to get concurrency, and those two are unrelated. The number of problems that want concurrency and memory protection is large, and eliminating that option is a MAJOR problem.

    Having done a fair amount of GUI programming myself, I find a multiprocess solution is often correct (e.g. in something like Photoshop image filters, where you want shared access to one memory segment but don't need to share huge numbers of different memory segments where you can't easily compartmentalize them). For some jobs, though, multiple threads is better. Use the right tool for the job.

    --
    rage, rage against the dying of the light
  50. Re:44 pages and the main question is still unanswe by man_of_mr_e · · Score: 3, Informative

    I didn't say your job was impossible, but your job is only testing a small subset of reliability. Reliability is also whether or not the OS stays up for a year at a time, or whether it has long term memory leaks. Reliability also has to do with weird race conditions that only show up after several programs interact for a significant amount of time, etc...

    What you're testing is simple stuff, stuff that's easy to identify. There's a whole other class of reliability testing that's far more long term.

  51. Process concurrency is hardly the panacea by kylef · · Score: 2, Interesting
    As a result, you get tons of unstable Windows applications because to get any reasonable concurrency you have to throw out the years of hard work that OS designers put into having protected memory.

    Throw out years of hard work? Give me a break! It almost seems that you are blaming the poor quality of modern threaded applications on Windows! That's rich!

    Concurrency is difficult to use correctly no matter what technology you use. Inter-process shared/mapped memory is just as susceptible to race conditions as cross-thread shared memory, and inter-process synchronization logic can deadlock just as easily as thread synchronization logic. And the results are the same: once a process is deadlocked, or corrupts its data due to a race condition, what difference does it make if it's running in its own address space? The software has failed catastrophically either way!

    We are ALL well aware that poorly written multi-threaded software is unreliable and that threads can easily trash other threads' data if not written correctly. And yet, for performance-critical applications, programmers still prefer to use threads. Why? It's simple: Because, for MANY applications, the benefits in performance outweigh the risks.

    Finally, I'd like to point out one more thing. You claim that to get "reasonable concurrency" on Windows you are FORCED to use threads. I completely disagree. While process startup latency is relatively high on Windows, Windows offers a rich set of interprocess communication mechanisms, and context switching is quite fast. And if your program is so performance-critical that process startup latency is your biggest bottleneck, then switching to thread synchronization seems perfectly reasonable.

  52. every Win32 process gets GUI crap at start-up by r00t · · Score: 2, Insightful
    I know this is going to be hard to believe, but...

    UNIX creates a process with fork, which takes no arguments. UNIX runs a new executable with execve, which takes 3 arguments. So in just two system calls with 3 arguments, you launch an app.

    Windows has a CreateProcess() function with 10 arguments, many of which are pointers to structs. I call your attention to the absurd "LPSTARTUPINFO lpStartupInfo " argument, which supplies info about the windows style and current desktop.

  53. Re:Off topic: glibc updating. by Arandir · · Score: 2, Insightful

    That's because GNU really has no clue about compatibility. Take a look at any non-GNU libc, and you won't have that problem.

    --
    A Government Is a Body of People, Usually Notably Ungoverned
  54. Windows is faster in Ubuntu by Ticklemonster · · Score: 3, Interesting
    I am a recent convert to Ubuntu, but I do Unreal Tournament mapping which can't be done in Ubuntu, so I had a dilemma. I was about to learn how to dual boot when I found out about VMware player, and setting up a virtual machine to run XP. I set it up, and honestly, XP runs faster this way than it ever did on a regular install. No, I can't install stuff like video drivers I need, but the drivers that install with XP work well enough to run the unreal editor. I wonder if someone could test XP in VMware in Ubuntu against XP on a hard drive and see what kind of difference there is. I sure seems like XP is way faster than it ever was.

    Shame to have to set up like this just to run unreal editor, though. Oh, for you gamers out there, UT runs so much smoother and faster in Ubuntu, it's not funny. UT2k4 (has linux installer on the 1st cd) runs way better in Ubuntu also. You might want to check it out if you have a spare hard drive you can play around with.

    --
    Karma: Bad is the liberal way of saying this guy won't drink the kool aid here on slash dot. I wear my Karma with pride