Pardon me, but your other post said that processes were slower (and bulkier) on Unix than threads (on Windows), but that Unix programmers would consider that a fair trade-off for protection, etc. I should also point out that the only thing faster about processes in Unix (keeping in mind that Unix processes that share an address space are usually called THREADS) than Windows is forking; other than that there's no difference in speed. Yay for regurgitated tag lines without any actually knowledge of what you're talking about!
"It's simply that processes are as cheap as threads and offer more protection."
That sticks out like a sore thumb in that post, in that it's rarely true. The only time that processes will not be significantly more expensive in storage resources is when two (or more) processes share (not get a duplicate copy - SHARE) an address space and set of kernel objects. While I've heard of that before in the Unix world, my understanding is that it's not the normal case. Then again, if both of these conditions are met, they're usually called threads on Unix, not processes (and they are indeed closer to threads than to processes).
...besides the fact that "NT" refers to the kernel, which is still used in Windows Server 2003 (lay off the crude jokes, will ya?), people DO still produce NT 4 machines. They still have NT 4 machines up and running (and replace them with new NT 4 machines, if the old ones die) at my dad's work (a chemical testing laboratory - NT 4 is popular among machines connected to laboratory instruments: mass spectrometers, chromatographs, etc., there)
"There are no threads in Linux.
All tasks are processes.
Processes can share any or none of a vast set of resources.
When processes share a certain set of resources, they have the same
characteristics as threads under other OSes (except the huge performance
improvements, Linux processes are already as fast as threads on other OSes). "
Yeah, I'll buy that. If two processes share the entire address space and kernel objects there's basically no difference between them and threads in the same process. There'd be no extra overhead (or at least not significantly more than two threads would take - having two separate address spaces and copies of everything is hugely expensive), and you could still use things like spinlocks, so it wouldn't be slower, either.
Whoa. NT multiprocessor support has increased over the years (originally NT was designed for up to 32 CPUs). Didn't know that people were actually running Windows on huge SMP machines like that.
Now to you last paragraph, windows is was NOT designed to be SMP, and if it was it sucked ass at it. linux has had SMP support for a long long time. And the fact windows is 4CPUs at most, and linux is running on 64+ CPU machines all the time, and on huge clusters of 1000s of boxes shows me that linux was designed pretty well.
And as always linux is ahead of the curve overall then windows (in the kernal) at all times. and runs on more system.
Correct me if I'm wrong, but the Linux kernel was funneled until fairly recently (like 2.4 or something), was it not? OS X was dual funneled until 10.4, IIRC. As far as I'm aware, NT has never had any kind of funnels, and the kernel has always (back at 1993, or whenever it was that 3.1 came out) been reentrant and SMP-capable. Could you perhaps be a bit more specific than "sucked ass at it"?
Oh, and it's not really important, but NT was originally intended (and designed) to support up to 32 processors, although I've not heard of any NT machines with more than 8.
Efficiency is the main reason. Two threads in a single process (I'm going to talk about Windows threads, here, because Windows was designed based on the clear distinction between threads and processes; an OS like you described Linux, where there isn't a clear distinction between processes and threads, wouldn't really suffer from the same limitations) mean 1 virtual address space rather than 2, 1 process object rather than 2, 1 physical copy of all variables, rather than 2, etc. (I could also mention only one loading of all the modules in the process, but that isn't really an issue for Unix, with its concept of forking).
As well as that difference in overhead, there's the difference in execution speed, where the two threads need to communication moderately frequently (such as where one thread/process is a client of another thread/process, the latter performing some discrete task while the former goes about its other business). With two threads sharing the same address space, you can lock a spin lock (assuming there are multiple physical processors), add an entry to a queue of requests, and leave the spin lock in a tiny fraction of the time it would take you to go into kernel mode, copy any message data between processes, add a message to a message queue IPC object, and return to user mode (not to mention the server thread will have to do almost the same thing to retrieve the message from kernel mode).
To me, Unix really seems like it was designed for a computer with a single CPU (and it probably was; but even current Unix implementations don't seem to have adapted very well to the new capabilities of computers, in this respect), whereas NT was designed to run on SMP systems with many threads and/or processes running truly simultaneously.
The word you're looking for is "user", not "threaded". From my experience, Windows coders are much more knowledgeable about threads than Unix programmers. Back when I was just learning some POSIX programming (I've been doing Windows programming forever) I'd ask even halfway experienced Unix programmers how to create a second thread in my program's process, and the usual response was "why on earth would you ever need to do that?"
Enjoy getting your computer eaten alive in... what was it, 4 minutes? Believe it or not, there are people who have run XP online since release without getting a single virus or spyware. Heck, a friend of mine has run XP for 115 days (+/- 5 days; I can't remember the exact number) consecutively without needing to reboot/shut down; that's probably a fair bit longer than you could run an online 95 computer without having to reformat.
Yes. I wrote a fairly successful program to modify game data during run time (without modifying the data on disk). So one guy (who happens to make some of the most successful mods for these games) messages me and asks if I can make a patch file format that the game can read, but people can't rip stuff (graphics, sounds, scripts, etc.) from. I told him no. As long as the game can read from it on the client's computer, there was no way to prevent people from reading from it in other ways; it's that simple. DRM is nothing more than an exercise in inconvenience: if they make it complicated enough, maybe hackers will be too lazy to expend the effort to reverse-engineer it. I won't put my money on it, though.
[i] Mod: -5, Bush troll.
Additional Mod: -3 Probably Microsoft troll.[/i]
Score:4, informative (also insightful)
Today's Slashdot moderator IQ rating: roughly equivalent to that of a slightly-smarter-than-average walnut.
Agreed. I think what makes Linux so popular with the nerds (a.k.a. most of the Slashdot community) is what makes it so unpopular with everyone else: too many choices. I may be a nerd, too, but I just want my computer to work. Give me something that works, and works uniformly, and I'll be happy, even if I might be able to work more efficiently with some custom build that's built for me and nobody else.
I can't imagine how that managed to get a positive mod rating on Slashdot, but that was hilarious. And I should note that only on Slashdot does 50%+20%+10%=100%
I see that Solaris 10 is a licensed Unix 2003 product. Is OpenSolaris, as well? Wouldn't that be a really bad thing for Linux, if it were? I mean, why use a free Unix clone when you can use a free, professionally built Unix system?
Is Microsoft saying, in effect, that if Beijing ever decides to crack down on democratic movements Microsoft will be happy to provide dictionaries and spellcheckers with the proscribed thoughtcrimes removed?
Sure. Word already complains about non-politically correct pronouns (at least on the stricter grammar settings)
Pardon me, but your other post said that processes were slower (and bulkier) on Unix than threads (on Windows), but that Unix programmers would consider that a fair trade-off for protection, etc. I should also point out that the only thing faster about processes in Unix (keeping in mind that Unix processes that share an address space are usually called THREADS) than Windows is forking; other than that there's no difference in speed. Yay for regurgitated tag lines without any actually knowledge of what you're talking about!
"It's simply that processes are as cheap as threads and offer more protection." That sticks out like a sore thumb in that post, in that it's rarely true. The only time that processes will not be significantly more expensive in storage resources is when two (or more) processes share (not get a duplicate copy - SHARE) an address space and set of kernel objects. While I've heard of that before in the Unix world, my understanding is that it's not the normal case. Then again, if both of these conditions are met, they're usually called threads on Unix, not processes (and they are indeed closer to threads than to processes).
...besides the fact that "NT" refers to the kernel, which is still used in Windows Server 2003 (lay off the crude jokes, will ya?), people DO still produce NT 4 machines. They still have NT 4 machines up and running (and replace them with new NT 4 machines, if the old ones die) at my dad's work (a chemical testing laboratory - NT 4 is popular among machines connected to laboratory instruments: mass spectrometers, chromatographs, etc., there)
"There are no threads in Linux. All tasks are processes. Processes can share any or none of a vast set of resources.
When processes share a certain set of resources, they have the same characteristics as threads under other OSes (except the huge performance improvements, Linux processes are already as fast as threads on other OSes). "
Yeah, I'll buy that. If two processes share the entire address space and kernel objects there's basically no difference between them and threads in the same process. There'd be no extra overhead (or at least not significantly more than two threads would take - having two separate address spaces and copies of everything is hugely expensive), and you could still use things like spinlocks, so it wouldn't be slower, either.
Whoa. NT multiprocessor support has increased over the years (originally NT was designed for up to 32 CPUs). Didn't know that people were actually running Windows on huge SMP machines like that.
Now to you last paragraph, windows is was NOT designed to be SMP, and if it was it sucked ass at it. linux has had SMP support for a long long time. And the fact windows is 4CPUs at most, and linux is running on 64+ CPU machines all the time, and on huge clusters of 1000s of boxes shows me that linux was designed pretty well.
And as always linux is ahead of the curve overall then windows (in the kernal) at all times. and runs on more system.
Correct me if I'm wrong, but the Linux kernel was funneled until fairly recently (like 2.4 or something), was it not? OS X was dual funneled until 10.4, IIRC. As far as I'm aware, NT has never had any kind of funnels, and the kernel has always (back at 1993, or whenever it was that 3.1 came out) been reentrant and SMP-capable. Could you perhaps be a bit more specific than "sucked ass at it"?
Oh, and it's not really important, but NT was originally intended (and designed) to support up to 32 processors, although I've not heard of any NT machines with more than 8.
Efficiency is the main reason. Two threads in a single process (I'm going to talk about Windows threads, here, because Windows was designed based on the clear distinction between threads and processes; an OS like you described Linux, where there isn't a clear distinction between processes and threads, wouldn't really suffer from the same limitations) mean 1 virtual address space rather than 2, 1 process object rather than 2, 1 physical copy of all variables, rather than 2, etc. (I could also mention only one loading of all the modules in the process, but that isn't really an issue for Unix, with its concept of forking).
As well as that difference in overhead, there's the difference in execution speed, where the two threads need to communication moderately frequently (such as where one thread/process is a client of another thread/process, the latter performing some discrete task while the former goes about its other business). With two threads sharing the same address space, you can lock a spin lock (assuming there are multiple physical processors), add an entry to a queue of requests, and leave the spin lock in a tiny fraction of the time it would take you to go into kernel mode, copy any message data between processes, add a message to a message queue IPC object, and return to user mode (not to mention the server thread will have to do almost the same thing to retrieve the message from kernel mode).
To me, Unix really seems like it was designed for a computer with a single CPU (and it probably was; but even current Unix implementations don't seem to have adapted very well to the new capabilities of computers, in this respect), whereas NT was designed to run on SMP systems with many threads and/or processes running truly simultaneously.
The word you're looking for is "user", not "threaded". From my experience, Windows coders are much more knowledgeable about threads than Unix programmers. Back when I was just learning some POSIX programming (I've been doing Windows programming forever) I'd ask even halfway experienced Unix programmers how to create a second thread in my program's process, and the usual response was "why on earth would you ever need to do that?"
Enjoy getting your computer eaten alive in... what was it, 4 minutes? Believe it or not, there are people who have run XP online since release without getting a single virus or spyware. Heck, a friend of mine has run XP for 115 days (+/- 5 days; I can't remember the exact number) consecutively without needing to reboot/shut down; that's probably a fair bit longer than you could run an online 95 computer without having to reformat.
"it is little wonder that the vast majority of businesses are sticking with Windows."
Sticking that on Slashdot is like waving a red sheet in front of a bull.
Okay, hands up: who're the mods that didn't realize parent was a joke and modded it insightful?
Yes. I wrote a fairly successful program to modify game data during run time (without modifying the data on disk). So one guy (who happens to make some of the most successful mods for these games) messages me and asks if I can make a patch file format that the game can read, but people can't rip stuff (graphics, sounds, scripts, etc.) from. I told him no. As long as the game can read from it on the client's computer, there was no way to prevent people from reading from it in other ways; it's that simple. DRM is nothing more than an exercise in inconvenience: if they make it complicated enough, maybe hackers will be too lazy to expend the effort to reverse-engineer it. I won't put my money on it, though.
Somebody needs to patent that retarded joke and start suing every idiot that uses it.
[i] Mod: -5, Bush troll. Additional Mod: -3 Probably Microsoft troll.[/i] Score:4, informative (also insightful) Today's Slashdot moderator IQ rating: roughly equivalent to that of a slightly-smarter-than-average walnut.
The first dozen or so comments will be crying "FUD!"
And that was zymano with a brief ad hominem attack. We now return you to your regularly scheduled debate!
Agreed. I think what makes Linux so popular with the nerds (a.k.a. most of the Slashdot community) is what makes it so unpopular with everyone else: too many choices. I may be a nerd, too, but I just want my computer to work. Give me something that works, and works uniformly, and I'll be happy, even if I might be able to work more efficiently with some custom build that's built for me and nobody else.
I find it remarkable that this little corner of the thread hasn't burned to ashes already.
You'd think they could at LEAST read TODAY's news before posting stuff.
Oh Gord, how I wish...
I can't imagine how that managed to get a positive mod rating on Slashdot, but that was hilarious. And I should note that only on Slashdot does 50%+20%+10%=100%
I see that Solaris 10 is a licensed Unix 2003 product. Is OpenSolaris, as well? Wouldn't that be a really bad thing for Linux, if it were? I mean, why use a free Unix clone when you can use a free, professionally built Unix system?
Sure. Word already complains about non-politically correct pronouns (at least on the stricter grammar settings)
STOP IT! All that's left of that horse is a half-dozen bloody ribs!
Holy shit. If MS incorporates that quote into their Get the Facts campaign, no business will ever use OSS again.