In my knowing, a thread is an execution flow of a process and all the threads of a process share some common structures. Furthermore, in modern PC the CPU executes only threads, not processes.
What I don't undertand is the meaning of term process and thread in Linux. Linux really distinguish between process and thread? And which is the role of the task_struct structure?
I've read that Linux schedules task_struct for execution, so I thought that task_struct represent a thread and not a process, but looking inside the definition of task_struct I saw that there is a reference to the children of task_struct. A thread can really have a child?