Linked by Thom Holwerda on Wed 17th Aug 2005 17:31 UTC
Sun Solaris, OpenSolaris If Sun gets very serious about Solaris 10 on x86 and the Open Solaris project that it hopes will nourish it, Linux vendors had better get very worried. That's because, in the many areas where Linux is miles ahead of Solaris, Sun stands a good chance of catching up quickly if it has the will, whereas in the many areas where Solaris is miles ahead, the Linux community will be hard pressed to narrow the gap.
Permalink for comment 20128
To read all comments associated with this story, please click here.
RE[7]: sunos ahead
by rhavyn on Fri 19th Aug 2005 18:05 UTC in reply to "RE[6]: sunos ahead"
rhavyn
Member since:
2005-07-06

Obviously you don't. Linux never really had threads they had processed which were done using clone(). Since Torvalds contention was that linux's context switch was as quick and lightweight as threads in other OSes linux didn't need threads. However the user level pthread library was bound to one process and scheduled by the library. Now with 1:1 threading each user thread becomes a linux process consuming different PIDs.

I think you should go relearn your Linux history. Torvalds did think that the Linux context switch was fast enough to not require a dedicated threading system. This is why LinuxThreads (which has been around forever) and NPTL both use the clone system call. clone() creates "threads" and "processes" (as defined by other OSes) because it lets you specify whether you want a shared address space between the new and old process or not. So both LinuxThreads and NPTL are 1:1 threading systems. They both create new "threads" with new PIDs. The difference is that NPTL brought along kernel changes which made NPTL follow the POSIX standards closer, particularly regarding signals and it provided a significant speed increase. There was (is?) a user land pth library which follows the pthreads standard, but it is cross platform, not Linux specific. And to the best of my knowledge, no large application ever really used pth.

So, to repeat myself, Linux has used a 1:1 threading model pretty much since the day the LinuxThreads library was written.

In Solaris 8 an alternate pthreads was introduced to do what the linux guys eventually did.

If by "eventually" what you mean is "in the mid 90s" then yes, you are correct.

You really shouldn't talk if you don't understand how stuff works.

That has to be my absolute favorite comment when someone posts something which is completely inaccurate. Now, if you'd like to go learn how Linux threading worked historically, go read up about LinuxThreads. And as a little helper, here is the first sentence from FAQ entry K1 (at http://pauillac.inria.fr/~xleroy/linuxthreads/faq.html):

"LinuxThreads follows the so-called "one-to-one" model: each thread is actually a separate process in the kernel."

Now, I have no idea whether or not the Solaris kernel guys even thought about Linux when they went to a 1:1 threading model. Either way, Linux's "native" thread system has been 1:1 for a long, long time.

Reply Parent Score: 1