Заменил вызов стандартного LIBC!pthread_create на системный вызов clone с флагами CLONE_VM и CLONE_FILES. Получил вполне рабочий тред без использования сишной либы, НО тред получился "тормознее" (примерно в 2 раза), чем был раньше с pthread_create. Порывшись в доках, обнаружил, что в ядре 2.4 появилась поддержка групп тредов. Если задать клону флаг CLONE_THREAD, то новый процесс (косящий под тред) впишется в одну с основным процессом группу и процессорное время они якобы будут делить более эффективно. Но с этим новым флагом клон вообще не создаётся: сискол возвращает отрицательное значение. Вопрос(ы): Действительно ли тормоза могут быть связаны с этой относительно новой фичей - группами? Чтоб заюзать CLONE_THREAD нужны какие-то дополнительные танцы с бубном? Может, pthread_create как-то поднимает приоритет новым тредам (как и зачем?)
Видимо, я вчера просто неправильно замерял скорость. Сегодня после мелких исправлений с выравниванием стека и секций всё заработало практически в 2 раза быстрее, чем старый сишный билд. Тему можно считать закрытой.
Quantum можешь еще использовать kernel_thread() (правда этот вызов доступен только из другого потока ядра, и он сводится к clone с флагом CLONE_VM).