Seems further clarification is needed here.
Just because you did a google search for the term "kernel thread" and read this thread on SO where some blow-hard, died-in-the-wool *nix freak misinterpreted (whether deliberately, or just through the blindness of zealotry), the question asked, and chose to waffle on about what should properly be termed 'system threads' or 'kernel mode threads'; that doesn't make my correct usage of the term 'kernel threads' require clarification.
The term 'kernel threads' has been used to denote 'units of execution scheduled by the kernel scheduler', since at least 1985 where it was used in the specification for what was then called CP/DOS, and went on to become OS/2. I know, because I was charged with writing the first (IBM) test suite for them 1986; at a time when the only thread-safe IO were Beep( freq, duration ) and kbhit(). So the first version of my test program used single keystrokes to Create Suspend Resume Kill threads 1 to 9. And when running each thread identified itself by beeping at a different frequency.
I'm fairly sure that the term "threads of execution" was fairly common-place in IBM OS/390 internals discussion prior to the CP/DOS specs; but I was only ever on the periphery of such discussions.
The term 'kernel threading' as counter to 'user threading' falls out of the distinction between cooperative multitasking systems like Windows 3.1 and preemptive multitasking systems like OS/2 & Windows NT.
The fact that *nix zealots try to recast the language and origins of threading -- which only came to *nix circa. 1994/5 -- because they hate the idea *nix didn't invent every programming concept, is neither cause nor reason for qualifying the use of the proper terms in the proper context.
Just as (for example) the word 'thread' means different things depending upon context: sewing circles; conversation; structured fora; and is used in all of them without qualification, so the term 'kernel threads' can be overloaded in different contexts and does not need qualification.
|