Подскажите, а желательно тыкните носом в исходники, где создается новая сессия при входе на машину через терминал? Желательно на примере FreeBSD.
ЗЫ: книги читать можете не отсылать, много чего до дыр прочитал. Так Стивенс пишет, что getty открывает терминал и выдает приглашение ко вводу пользовательского имени, потом вызывается login, запрашивает пароль и запускает shell. Где вызывается setsid()? Эта функция разрывает связь с управляющим терминалом, и если я правильно понимаю то она должна запускаться либо в getty до открытия терминала либо init до запуска getty, однако ни там ни там примитива setsid() необнаружено в нужном месте (там где getty запускается). В login тоже не найдено этого примитива, а ведь лиером сессии становится именно login-getty-init? Может я чего пропустил или не понимаю?