The above mentions that v1.0 has "early" support for threads, which can use a bit of an update. They are fully functional and in use in late v1.3.x kernels. For example the internal bdflush daemon used to be started by a non-returning syscall in all the v1.2.x kernels, but as of around v1.3.4x or so, I made it into an internal thread, and dispensed with the reliance on the user space syscall to launch the thing. This is now what is seen as "kflushd" or process #2 on all recent kernels. Since then, other threads such as "kflushd" and multiple "nfsiod" processes have taken advantage of the same functionality.