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."
Here's an interesting snippet I found while perusing the PDF...thought I'd share.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
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.
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
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.
How can you hate microsoft or *nix? We need each other so that we can constantly get better and gauge our progress. I really hope that MS can learn to live with the OSS community; it will benefit everyone, including MS.
Is that including the spyware/worm/rootkit overhead?
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.
If you need web hosting, you could do worse than here
I guess this explains why linux boxes do so much better than windows boxes at high load, it takes the windows computer almost 8x as long to start a new process! That's something where a little bit of optimising really helps =)
There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
Microsoft is not Microsoft Research. Microsoft Research folks use and make free software, and in general are not ideologically bound to the parent organisation.
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.
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) -
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.
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.
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
From TFA...
"So why is this interesting? Because their test methods reflect Windows internals, not Unix kernel design. There are better, faster, ways of doing these things in Unix, but these guys - among the best and brightest programmers working at Microsoft- either didn't know or didn't care."
So, Windows still loses at times when using what seems to be a biased (or simply uninformed) testing method? Loelz.
Gotta love dupes http://slashdot.org/article.pl?sid=05/11/03/174423 0
another chance to get that karma up.
:x
see which takes longer
Is "searching the manpages" included in the benchmark time?
*Ducks*
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.
is also the number of cycles needed to crash a process.
It explains why apache for windows uses threads. Everyone has always known creating processes is slow on windows. Unix has always heavily optimized this since unix programs were so frequently written to fork(). Very few windows programs spawn processes at any rate that would cause you to notice a slowdown.
Finally a proper microkernel OS design by Microsoft! prof Tanenbaum would be proud!
/.: Die M$ XP, DIE! *pinky to mouth*
Come on, who cares about statistics? I'm glad they're actually doing something useful: CS research!
Oh wait, this is
This sig is intentionally left blank
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
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.
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)
I store my recipes online (the way nature intended)
I wish I has some mod points for you.
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.
It sounds like this is a *research* project. That doesn't mean that everything is perfect and optimized yet, but only that new ideas are being tested out. Stability comes far later.
"it's not about aptitude, it's the way you're viewed" - Galinda
Funny how memos like "Windows XP still hands Linux its ass in the desktop market -- any questions?" never leak out to the public.
How much of that advantage is performance based and how much is due to monopoly control?
"Rocky Rococo, at your cervix!"
Did you ever think that the reason there aren't any is that Windows can't handle it well? Seems like pretty circular reasoning.
Dewey, what part of this looks like authorities should be involved?
That is such a troll. Every OS has updates.
unix is based on processes vs threads for windows. of course it is faster!
Please sign petition to restore sanity to our banking system!!!
http://financialpetition.org/
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.
:) (btw, I am a long term happy gnu/linux user, and have no plan of switching...)
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
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.
but very few gnu/linux updates require reboots. IOW, It is rare for the kernel itself to need a patch.
It has been statistically shown that helmets increase the risk of head injury.
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.
he gets it right here
Some OSes don't require a complete reboot when you do an update. Also, some don't require a reboot but recommend one (Solaris comes to mind). In most of the *NIX world, you can just restart a few services instead of rebooting. Personally, I've never been in a situation where I can't take the server down at non-peak times for routine maintenance so it really doesn't matter to me. In fact, a lot of times rebooting is easier than finding which services were patched and restarting them.
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.
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.
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.
If you need web hosting, you could do worse than here
Didn't Mel Gibson say that in a movie once?
"Ev'ry OS has oopdates, but not ev'ry OS reeequires a reboot!"
Seriously though, very few Linux updates, for example, require a reboot. Most updates occur in user space and can be adequately applied by restarting the applicable services (if any). You just have to be aware of exactly what is being updated and what it affects.
In the (non-Windows) server world, rebooting is a big no-no.
-matthew
"THERE IS NO JUSTICE, THERE IS ONLY ME." -Death
I am reminded of the Win9x bug that caused a failure every 49 days.
If your system is not "up" long enough to trigger a bug, is it "stable"?
If "yes", then at what point does a system become "unstable"? If I have to reboot every year? Month? Week? Day? Hour? Minute?
Or is "stable" defined in terms of "unexpected crash" and discounts any "crash" that is avoided by rebooting the system?
This is one of the reasons I like Linux. Because the system doesn't require reboots except to replace the kernel, it is easier to identify apps that are unstable AND GET THEM FIXED.
Are these guys non-native speakers or what? Dependance is a bad thing, dependability is good.
sheesh.
autopr0n is like, down and stuff.
All of you OSS d*ldo heads still cannot understand the need for a OSS MS Exchange solution. Back end integration of mail/tasks/calendar and syncing with pdas from the desktop client and vica-versa and sharing calendar info with other and such is the way of the future. Still we have nothing that comes close. The germans keep putting out overly complicated java based crap like openexchange but nothing that is clean and works and en masse like the apache webserver.
Windows performed better then Free BSD on all the micro-tests but one, and better then Linux on half of them.
Oh well, this is slashdot, can't expect editors to, you know, edit anything or even bother to read what they post.
autopr0n is like, down and stuff.
i would *love* to see how someone updates a running glibc...
really... how exactly do you replace a running libc?
... hi bingo
Because a gigahertz is a BILLION hertz, not a MILLION.
With spending like this, exactly what are "conservatives" conserving?
Did it ever occur to you that he might have seen that linked somewhere else, since Slashdot is really really slow?
autopr0n is like, down and stuff.
Will it does say dependence, not dependability. Perhaps that's a typo, but since the article seemed to be about performance, I would think that's why the dependability factor is mysteriously missing. On a side note... selling crack is all about increasing dependence as well.
I'm a little confused, I don't see a link to all the wonderful, earthshacking research you've been doing. Perhaps you could give us a link?
autopr0n is like, down and stuff.
reverse psychology is the only way to get linux zealots to shut up, they did the same thing praising the Revolution, and they will soon kiss google feet
//WR
http://www.gnu.org/software/hurd/hurd.html
um, rm old libc, copy over new libc (making sure copy is a statically linked binary). viola, new libc in place. now say app A,B,C,D,E,F,G,H,I,and K are still using old libc (computers 101: an OS copies the app and associated libraries to memory, then executes, so we're still linked to an old libc stored in memory). you need to kill and restart these applications in order to reload a runtime linked library. now if your app dynamically loads libraries (libdl), a simple signal may instruct the application to reload its libraries. however unless you know the behavior of the application, you're better off restarting it. this is why when a major library is updated, it is safer to just reboot the box. i will pick security over uptime, this isn't the 80s anymore
*replace libc with any dynamically loaded library
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)
It will be interesting to see how long it will take the free software world to come up with something similar :)
Aren't there quite a few Java Operating System initiatives out there already? (both free and open source, and commercial) Basically the same idea.
From the singularity home page:
"Singularity: A research OS written in C#"
1) How can you write an OS in C#, if C# is by def. an OS dependent language?
2) Mmmh, that virtual machine stuff doesn't it make it a liiiitle bit slower?
init 1
init 3
No reboot required
--fatboy
And in reality it just makes things like disk I/O extremely slow, ala OS X. Personally, I am pretty disappointed by OS X as a server. Both in stability and speed. If that is a good example of what a microkernel can do in the real world...
-matthew
"THERE IS NO JUSTICE, THERE IS ONLY ME." -Death
I bet you don't get a dancing paperclip with Linux, do you?
Deleted
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.
He did not read the paper at all, as far as I can tell.
The entire paper detailed the steps they were taking to make dependability the core goal of Singularity. That there are few reasonable metrics more measuring something as subjective as 'dependability', is not a criticism of this paper.
Grandparent is an idiot, most likely. Submitter of the entire article is dishonest in his quoting of metrics out of context and ignoring the point of the paper.
I read probably 60% of the paper. In short, they're using better languages to write a familiar operating system with some formalisms in place of add-on hacks of old (like shm, sem, threads)
I could be wrong -- I'm hardly an OS or computer hardware expert. But the above is what my limited knowledge of those two areas would suggest.
Right. Damn orders of magnitude getting out of control here :).
--
make install -not war
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....
The real screwy number is Proc creation. I haven't timed recently, lbut I'd expect vfork() or exec() from RAM buffers to take
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?
_ up/
The cops in England? http://www.theregister.co.uk/2005/11/11/drugs_mix
The evaluation of an action as 'practical' . . . depends on what it is that one wishes to practice.
Microsoft admits that they're gettng beaten in several areas. I'm shocked. Ballmer must be getting senile.
Still waiting on Serviscope_minor to wake up to fucking reality and realize that Jessica Price isn't going to fuck him.
And 1s != 1ms. But I think I get it.
--
make install -not war
install python, wxpython, pythoncard, egenix python extensions, java, jpype, & a few other python modules in linux. do the same in windows. see which takes longer.
You could do that, but unless you install each of these things on a regular basis instead of once or twice, then it's a fairly useless "benchmark". Something can take 1 hour to install vs. 30 minutes, but if it performs 15 seconds faster on a daily basis, where you use it 4 times a day... well, you onle need to use it for 30 days before the slower install pays off in terms of "performance".
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
The benchmarks shown (you DID read the article, right?) show that the MS OS easily keeps up with modern disk speeds for IO, but I wonder how things like graphics cards and even CD/DVD-ROM drives will work. Even on modern systems, you need to enable DMA for these sorts of devices to get acceptable performance, and the Singularity model seems like it will preclude this.
I use and value FreeBSD personally, but I surely consider other advantages more prevailing than how many cpu cycles a process creation and startup requires. Little can I recollect of other people, articles etc., that mention this at all.
Please let it not be increased dependence... To be more dependent on Windows is probably the last thing we need!
You didn't really read it, did you? From TFA(bstract).
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):
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?
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?
You get hot-babe
hot-babe
Much better than a paper clip...
Well, usually you delete the existing symlink, and use a static tool (perhaps a static busybox binary) to make the new one. This is best done in single-user mode, though. I shouldn't have to tell you that when you delete a file on a Unix system, it doesn't go away until all references to it are closed, but you can still put a new file down in the same place and new open() or whatever-open() calls will open the new file.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
I'd be curious to know how people think Singularity compares to the Hurd. IIRC, the Hurd looks at a lot of these ideas and takes the opposite tack from Singularity: rather than run type-checked, managed processes in kernel space, push everything out to userspace, and broker interaction with the kernel via various server processes. Has anyone done a comparison of the merits of these two approaches?
realistically you can do any tests to say anything you want and all OS's are going to perform differently depending on the test. with an organisation as big as MS 99% are always going to say windows unequivically performs better but I Guess a few slip out sometimes.
If you have time, this is a pretty interesting video of two of the inventors of Singularity. They go into some detail on their motivations for doing the work, what they're learning from the prototype etc.
0 2
http://channel9.msdn.com/ShowPost.aspx?PostID=683
most patches are to one application only. If you are running a server then after upgrading libc you only have to restart the services exposed to the network and/or depending on the nature of the exploit log in and out.
It has been statistically shown that helmets increase the risk of head injury.
Troll? Bullshit.
I was making a funny, as in ha-ha. You guys are worse than Fark mods.
The Christian Right is Neither (Christian nor right). See: Matthew 23, Matthew 25, Ezekiel 16:48-50
I run gentoo on all of my main computers.
If you want to complain about install times, look at OO.org, where it takes me a minimum of 10 hours to install OO.org from source.
If I have nothing to hide, don't search me
But no, we choose C, a cast-anything-to-anything-no-checks-whatsoever-poi nters-run-wild language PURELY for speed reasons, and ignored all of the other issues it created.
In today's 3GHz plus dual-core world, I'd happily give up, say, 5% worth of performance in exchange for a completely stable, secure system.
Any sect, cult, or religion will legislate its creed into law if it acquires the political power to do so.
You just replace it with the new glibc, deleting the old version. The running programs will continue to use the old version. Even though it was deleted/replaced, the old version is still available to running programs using it. Only when the last program using the old version is deleted, will the last reference to the lib disappear and the file truly be deleted.
So as a previous comment mentioned, you will need to restart all applications using the affected library, if you are concerned that the security problem may affect them. In practice this means that you'll probably want to restart the server programs you're running.
DNA is the ultimate spaghetti code.
use a static tool (perhaps a static busybox binary) to make the new one.
/. just a couple of months ago.
Or "sln", which is intended for this very purpose. Interestingly enough, I learned about this right here on
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
The sad thins is that Singularity is probably more usable than Hurd is right now, after decades of Hurd development.
hello dear sirs my name is jamesh i are india (bihar) can u guide me install red had linux 9?
Perhaps if you're running a server AND using some stone-age CGI executable that's called millions of times the differences may start to pile up... but probably not. Most such things on Windows are created as services that are always running, don't need process creation to do their jobs, and use threads that are faster than Linux versions.
"Significant difference" my a**.
Any sect, cult, or religion will legislate its creed into law if it acquires the political power to do so.
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!
This kind of selective security is a serious problem in the Linux/Unix world. The assumption is that "Oh, that service isn't exposed to the internet, so I don't need to worry about it. I don't give anyone shell access".
This ignores the possibility of exposure by a different (non-root) vulnerability.
Suppose you decide not to update your kernel for a local root vulnerability. Now, suppose a new vulnerability is discovered in an internet facing daemon like Apache or SSL. Even though those services may run as an unpriviledged user, a vulnerability in those services could allow an attacker to utilize the local root vulnerability in the kernel that you neglected to patch (becuase you thought it didn't matter) to gain root access.
Simply put, there's no such thing as a security patch that doesn't apply (other than for software that isn't installed). You're fooling yourself if you think otherwise.
If you need web hosting, you could do worse than here
You start a new process linked to the new glibc for every old process then pass all the data the old processes contain to the new ones.
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.
I remember upgrading from the last libc5 Debian to the first libc6 one. The output of "who" and related commands was messed up until I rebooted because the file that contains that info had a different format between libc5 and libc6. It got messed up a bit from having both running. In this particular case it wasn't something that really mattered, but it certainly shows the potential for problems.
No kidding, yet I get marked a troll for making a FUNNY-yet-true remark, and your parents gets modded +2? WTF!
The Christian Right is Neither (Christian nor right). See: Matthew 23, Matthew 25, Ezekiel 16:48-50
> Simply put, there's no such thing as a security patch that doesn't apply (other than for software that isn't installed).
Yeah, you should apply all security patches. However after updating libc you really don't need a reboot. Restarting all relevant processes is sufficient. (e.g. if it's an exploit in how libc creates temp files, you don't need to restart a process that doesn't create temp files), stupid example I know, but that is what I meant.
It has been statistically shown that helmets increase the risk of head injury.
Which really disappoints me, because I think the HURD would be a great system to have around if it got enough developer attention to actually be released.
As a young and naive wannabe programmer, I have a question about IPC: From what little I understand of fork() and shared memory, it only allows the sharing of continuous blocks of memory. Is this correct? In my programs, I typically use threads and a glib GAsyncQueue to push pointers to memory structures between threads. For me this works rather well, because I essentially keep the threads completely separate (like processes), but I can still share a complex memory structure full of pointers. How are things like this accomplished in fork()/IPC land? Thanks.
Most people are really not going to know which processes are affected by a given fix. Most people may not even know WHY there's a new update to a file on their apt/you/portage/whatever. They're just going to apply it.
The prudent thing to do, unless you want to spend a ton of time researching the fixes, and what they effect, and what programs are using those features, is simply to reboot.
So, yeah, you don't HAVE to reboot, but I always will. I've got better things to do with my time.
If you need web hosting, you could do worse than here
>>Stability depends partly on systems are [NOT] writen in the ancient language C >>:), and run monolithic kernels.
This is truth following the theory, but as with most things on the planet, in real life it seems to be such the opposite.
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.
No, they're not just different OS design philosophies. Windows forces you to choose between reasonably well-performing concurrency and memory protection. The poor performance of Windows processes is a root cause of many security holes and stability issues. OS designers spent years working on memory protection so that you could have reasonable isolation in the system and not have a bug in one area affect the whole system. When you're forced to use threads to get good concurrency, you effectively throw out a lot of that work and
rage, rage against the dying of the light
Actually ... not so much. nss is the biggest problem, but a bunch of glibc interfaces aren't guaranteed to work across updates like this, including anything using iconv and locales. Pretty much all distros. that "support" large updates without a reboot just ignore this problem in the general case (debian has hacks that help, if all the stars align).
But then a similar problem is the real ABI of glibc changing, and programs going from working to not working because of it (this is against the theoretical ABI that "is compatible") ... all of the distros. also ignore this problem.
ustr: Managed string API with ave. 44% overhead over strdup(), for 0-20B
...why their FTP sites were on BSD for so many years. It still remains to be proven that they actually switched them to NT, not just set up their BSD servers to act like NT.
Something smells fishy here. Im sure there is an angle they are working on that we dont know yet.
Microsoft admits nothing. Why start now?
---- Booth was a patriot ----
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)
9 45599
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=13
I'm still trying to figure out what people mean by 'social skills' here.
Not all windows updates require a reboot. Why does everyone think that they do? Maybe they all still run windows 98?
I don't know if they "require" a reboot, but most updates ask to reboot. I run Win2k mostly.
-matthew
"THERE IS NO JUSTICE, THERE IS ONLY ME." -Death
That's about as useful a metric as total elapsed urination time.
What's the real delta?
As someone who works at a research lab (HP's) I dont want to pick on MS. Technology transfer is a problem for all R&D labs. The bits of the company that build things are in short-term firefighting mode and with senior management changing direction, it is hard to guess what the long term areas to research are.
Some of the stuff that MSR have done have been kind of interesting, in a CS-hard way. But that doesnt mean relevant. The other thing is that they've hired some great names, but that doesnt map into great stuff. It works in universities, because those names supervise the PhD students that do the real work...
Returning to tech transfer, the problem that MSR has is that their main pipeline for apps has been MS products, which are invariably behind schedule. And when things are behind schedule what happens to the leading edge stuff? Yes, it gets dropped. Whereas if the people in google-labs are doing research, they can try it out on a server or two in another 'beta program': the pipeline from research to product is shorter.
For me, OSS has transformed our pipeline. We can improve products without having to go through the normal inertia of the product process because if the patch is good, it goes in. Indeed, the core runtime of the I work on -deployment- is actually up online Smartfrog. This means that we can get stuff out there being used within days of being coded, and evolve it in the field. OSS and corporate R&D labs go hand in hand. This is somewhere where MSR are at a disadvantage.
Yes, what you are saying is misleading.
Linux ALSO beat Windows on: ABI call (437 vs 627) and 2-message ping-pong (5797 vs 6244). Its right there in your post. Read it.
-molo
Using your sig line to advertise for friends is lame.
Mostly he's referring to minor libc updates that happen regularly. libc5 -> libc6 was a massive change that in some cases involved a lot more than running an updater and rebooting for some distros. libc5 -> libc6 was one of those rare few and far between changes where everything gets broken. There will always be major marks in time like that.
11*43+456^2
but it is equally likely that he saw this comment over week ago,o ld=3&commentsort=0&tid=190&tid=109&mode=nested&cid =13944438
http://slashdot.org/comments.pl?sid=167223&thresh
It will be interesting to see how long it will take the free software world to come up with something similar
Well, Hurd is a microkernel, so OSS already has that covered...the Mach kernel in OSX is opensource and a microkernel. Is it written in Objective C (which would be strongly typed, right?) or is it just the GUI that is ObjC?
The BeOS had a microkernel, written in a mix of C and C++; the Haiku project is rewriting it from scratch in C++, which can be strongly typed, if you are willing to put in the effort; I'm hoping that they are.
Seems like the OSS world is ahead of the curve in a lot of ways.
my pet machine
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.I believe this topic was already covered on SlashDot recently.
Send/track messages to 100K people: www.xPressAlert.com
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
There is a difference between an OS still going under revolutionary updates, and one only undergoing evolutionary updates. Consider that Mac OS X didn't even finalize on launchd or a kernel API until Tiger.
English is easier said than done.
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
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 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).
That's not quite right. It is true that Linux provides a very innovative and interesting forking model that allows you to say at fork-time which resouces are shared between a child and parent and which are not. It's true that you use this make the fork a "thread" or a "process", depending on which resources you choose to share. (And the theads of apps that use this look, confusingly, like a bunch of processes with the same PID and working set when you run ps.) But that doesn't mean that Linux beats the pants of Window's thread creation perf, because Windows creates threads faster than Linux does forks.
T(Windows thread) < T(Linux thread) ~ T(Linux process) < T(Windows process)
One has to wonder whether any stability issues are caused by divide by zero errors.
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
1) i'd like to see how MINIX compares 2) since MINIX is under a BSD style liscence who is to say M$ didn't steal code or concepts from them, not like they haven't before. HOTMAIL, DOS etc..
$action = empty(PHP) ? backToC() : unset(PHP) ; "when the concrete cases are understood, the abstractions are readily
about the performance numbers. Those numbers are going disappear as soon as some marketing monkey from Microsoft sees this article. Now Microsoft will never release real numbers again. No good deed goes unpunished, I suppose.
If the current Linux kernel is outperforming Windows' kernel (the dominant desktop OS) then there is little incentive for people to swap (or be swapped, if you are an IBM, SGI, Red Hat, etc employee) from Linux kernel development to HURD development. At the point when a rival looks to be close then it is entirely possible that those companies will invest in a switch to HURD or something else. Mind you, the Linux kernel at 2.2 wasn't a great choice for interactive multimedia due to preemption issues, but that is much better.
Fraankly, as a Linux and Windows GUI programmer, I can't see how you can do a lot of mulit-threaded GUI work with separate processes instead of threads. Maybe I'm just too n00B.
I've made a couple of posts on my blog listing the technical pros and cons of Singularity as a real-life OS (the latter I just wrote and put up today).
You have tried to support your argument with faulty reasoning! Go directly to jail; do not pass Go, do not collect $200!
I used to think this was true... and then I ran into real world UNIX sites. It's amazing how many reboot once per week as a matter of policy!
Throw the bums out!
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.
ssh sessions survive a linux network reset, unless you've some seriously funky network hardware. Try it!
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.
If you need web hosting, you could do worse than here
Ah, yeah ! The best comment in here I have seen so far.
Noticed the same. No Andrew T. in the references.
If they did their job *somewhat* properly, they'd have to refer to Minix. And I am sure they did; they still have to be politically correct; just look at the common roots.
Could Microsoft confess that they screwed up years back with their go-on-your-own DOS ? Not economically; that made kind of sense on an 8086; but from a visionary aspect ? Except of new blood from DEC they dug themselves into program loaders and their current architecture (I haven't seen the source code, sorry, based on hearsay) is only rudimentary more intelligent.
Thanks for pointing us to Minix and an evident omission in the MS report !
I have to know how your examples (which, for your edification, are two things Microsoft bought) are examples of 'stealing' BSD licensed code.
Incidentally, it is my understanding that the BSD license means that covered code is freely available, and is, as such, unstealable.
Or have I been trolled? Probably. Still, with the general knowledge level of slashdot being what it is, you can never tell...
Slashdot - where whining about luck is the new way to make the world you want.
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.
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.
Maybe you can hold off the reboot until after midnight? It's really annoying when admins reboot the servers in the middle of the day when I'm trying to get some productive work done.
A Government Is a Body of People, Usually Notably Ungoverned
BS. I start MAYBE a dozen or so programs a day on my computer. So how significant is my difference? I would have saved what on Linux, a fraction of a half of a second? Perhaps if you're running a server AND using some stone-age CGI executable that's called millions of times the differences may start to pile up... but probably not. Most such things on Windows are created as services that are always running, don't need process creation to do their jobs, and use threads that are faster than Linux versions. Ahh... And I was wondering when the clueless would start to chime in. Your workstation != Real world servers under high load
"This calls for a very special blend of psychology and extreme violence" - Vyvyan "The Young Ones"
Man that's annoying... let's try that again :)
BS. I start MAYBE a dozen or so programs a day on my computer. So how significant is my difference? I would have saved what on Linux, a fraction of a half of a second?
Perhaps if you're running a server AND using some stone-age CGI executable that's called millions of times the differences may start to pile up... but probably not. Most such things on Windows are created as services that are always running, don't need process creation to do their jobs, and use threads that are faster than Linux versions.
Ahh... And I was wondering when the clueless would start to chime in.
Your workstation != Real world servers under high load
Read some of the above comments to see exactly why using threads are not the optimal solution for high availability server applications.
"This calls for a very special blend of psychology and extreme violence" - Vyvyan "The Young Ones"
... Brain and Pink... actually, I think they started this trend. Amazing what big corporations can learn from highly intellectually developed mice.
The kernel (XNU, a combination of Mach and BSD) is almost entirely C, drivers (I/O Kit) are in a subset of C++, userland is in C, high-level userland is in Objective-C++ (combination of Objective-C and C++, there's bound to be some plain old C for good measure).
ROMANES EUNT DOMUS
It's pretty much just the Cocoa software written in ObjC. The Mach kernel was developed independant of NeXTSTEP or OS X, so it would be very surprising to see it written in ObjC. I'm pretty sure it is written in plain c.
We hope your rules and wisdom choke you / Now we are one in everlasting peace
There are several reasons why regular (though not necessarily frequent) reboots are a good idea. Not least to make sure the machine will actually restart into a usable (and accessible) state.
If you have a 24/7 environment, and a proper architecture to support that requirement, individual machine restarts are irrelevant.
If you don't have a 24/7 environment, machine restarts can be scheduled outside of production hours - daily if need be - again making them irrelevant.
If you're a home user, chances are extremely high your PC is turned off at least once a week, if not every night. Even if it isn't, rebooting occasionally is hardly a problem.
Reboots only really matter to two types of people - a) those whose ego depends on the number returned by uptime(1) and b) those who are trying to run a 24/7 environment where they shouldn't be.
OS X isn't a microkernel. It's the same sort of "microkernel-based" thing that Windows NT is. Which is to say it's probably architecturally designed mostly like a microkernel, but since everything runs in kernel space there's no stability benefit.
The only people i've ever known to reboot servers regularly were just really bad sys admins who didn't have the time or skill to deal with persistent problems. Rather than deal with the configuration problems or software bugs, they simply choose to reboot regularly.
There is a third type of person to whom rebooting matters: one who actually cares about resolving problems If you're running a cluster of machines, maybe it isn't worth it to resolve aproblem with an individual node, but if you rely on just one or two servers performing a function, it is usually worthwhile in the long run to solve theproblem. If nothing else, going for long uptimes is a good way to test the over all health of the system. If you reboot regularly, you might not be aware of things like memory leaks which could come and bite you in the ass between reboots.
-matthew
"THERE IS NO JUSTICE, THERE IS ONLY ME." -Death
You still haven't awnsered the question, why are you implying you have to start a process for each request when creating services applicaitons? IIS is a process, that starts once, and has different proction models for incoming requests request. Is it really that much an advantage for processes to start faster on Linix, then they do on NT?
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
Systems like that are usually fairly stable, but quite slow, as the overhead of interprocess communication is high. If the information I've received is accurate (I don't have any first-hand knowledge on the matter) OS X is structured kinda like that, and that's part of the reason it's sluggish (at least it some aspects). Singularity takes a radically different (and perhaps misguided) approach to stability.
You have tried to support your argument with faulty reasoning! Go directly to jail; do not pass Go, do not collect $200!
Oops. There was a mistake in the hyperlink in that post (making it not show up). Should have been 'misguided'
You have tried to support your argument with faulty reasoning! Go directly to jail; do not pass Go, do not collect $200!
Never wondered about all dictators patting children's heads?
Karma: Excellent (My Karma? I wish...:-( )
In response to tests confirming that XP ran more slowly than open source alternatives, Bill Gates was quoted as saying: "Hmm, maybe we shouldn't charge anything for our OS. . . HA HA HA HA!!!"
Have they gotten better since last I looked?
Karma: Excellent (My Karma? I wish...:-( )
Remember Ada? Almost every government computer system was running that because it was a safe and very strongly-typed language, that was easy to check correctness. I think ground-based systems to jets ran stuff written in Ada.
What are they running today? Stuff written in C/C++ because it's just more practical.
Huh. One of the people I do work for has a IIS / ColdFusion MX / SQL Server installation that's doing about five million page views a day on a CMS-based dynamic site. Excuse me while I call the CTO up and tell him his system isn't "real world", and how his load-balanced clusters aren't "high availability". I'm sure he'll be interested in your views and experience.
Any sect, cult, or religion will legislate its creed into law if it acquires the political power to do so.
At least on Linux KEXEC might be the answer to this problem. Booting a kernel without really doing a real boot.
Coo. I've seen ssh session cope with me restarting local network connections, but I didn't think they'd survive cycling the remote sshd process. I suppose it might depend on what runlevels you have sshd running in.
Like you say, I'll have to try it and see...
Don't let THEM immanentize the Eschaton!
Coo. I've seen ssh session cope with me restarting local network connections, but I didn't think they'd survive cycling the remote sshd process. I suppose it might depend on what runlevels you have sshd running in.
Don't listen to me - that'll teach me to post late at night. I missed the context of an runlevel change - they'll survive restarting the network service, but I'm unsure about ssh... let me try...
Oh yes, it does work. I can init 3 & init 5 and my ssh session doesn't blink.
It's simple really, stability comes from donning Window's brand new chainmail +5 vs. malware. http://www.microsoft.com/athome/security/default.m spx?Ad=SAH.Abby.00044&id=A/
Under the influence of Post-Cyberpunk Gonzo Journalism
I was being conservative because I just knew people would pop up and say 'My server reboots in two minutes!'. ;)
If corporations are people, aren't stockholders guilty of slavery?
Ah yes, but can you log in and drop all iptables input chains (with a default deny rule)?
How many of us have done that remotely? (2000 miles away?)
while (sig==sig) sig=!sig;