Вот тут у меня вопрос делитанский, так что сразу не бейте сапогами...
если в лине три сис вызова - fork(), vfork(), clone() все три есть не что иное как библиотечные функции реализованный в glibc.В ядре linux есть их ответная часть sys_fork() - 0x3 sys_clone() - 0x78 sys_vfork() - 0x121. Есть несколько вопросов:
Ковыряние в исходниках libc показало что на fork() самом деле вызывает clone()
movl $120, %eax
call *_dl_sysinfo
правда самой инструкции совершающей вызов (типа прерывание int $0x80 или новомодный syscall так и не удалось обнаружить :( Никто не в курсе как происходит вызов ядра в этой мудреной библиотеке? Че такое *_dl_sysinfo я не нашел хотя по логике вещей за ней прячется вход в ядро)
У меня сложилось такое впечатление что vfork() привязан к тойже fork() и следовательно к clone() и как следствие во всех трех случаях вызываются sys_clone(). Вопрос - нахрена в ядре вызовы sys_fork() sys_vfork()? Они для совместимости или используются постоянно из рядовых с программ? если да то где они вызываются в libc?