Acho que essa parte da página clone(2)
man pode esclarecer diferença re. o PID:
CLONE_THREAD (since Linux 2.4.0-test8)
If CLONE_THREAD is set, the child is placed in the same thread group as the calling process.
Thread groups were a feature added in Linux 2.4 to support the POSIX threads notion of a set of threads that share a single PID. Internally, this shared PID is the so-called thread group identifier (TGID) for the thread group. Since Linux 2.4, calls to getpid(2) return the TGID of the caller.
A frase "os encadeamentos são implementados como processos" refere-se ao problema de encadeamentos que possuíam PIDs separados no passado. Basicamente, o Linux originalmente não tinha threads dentro de um processo, apenas processos separados (com PIDs separados) que poderiam ter alguns recursos compartilhados, como memória virtual ou descritores de arquivos. CLONE_THREAD
e a separação de ID de processo (*) e ID de encadeamento tornam o comportamento do Linux mais parecido com outros sistemas e mais como os requisitos POSIX nesse sentido. Embora tecnicamente o sistema operacional ainda não tenha implementações separadas para encadeamentos e processos.
O tratamento de sinal era outra área problemática com a implementação antiga. Isso é descrito em mais detalhes no artigo @FooF refere-se a em sua resposta .
Como observado nos comentários, o Linux 2.4 também foi lançado em 2001, o mesmo ano que o livro, então não surpreende que as notícias não tenham sido impressas.