>>Хм, так это не флэйм, а разьяснение истины для заблудших (меня то
>>есть). То есть вы хотите сказать что делая fork запускается еще
>>один thread по той же самой физической памяти (сегменту кода)? Хм..
>>может мы о разном говорим или я что то не так
>>изьяснил. В общем пошло это с одного из семинаров где мне
>>довелось присутствовать, так вот докладчик сказал что "у Линукса нет разницы
>>между понятиями "thread and process" якобы для него это все process.
>>В то время как в Solaris - это разные вещи. threads
>>могут разделять один сегмент кода, а процессы - каждый имеет свой.
>>
>>Разьясните плиз - а то так и помру неучем, так ли это?
>>И если нет то запустив in.telnetd как демон я получу разделение
>>сегмента кода?
Скорее всего, товарисч хотел донести до вас следующую мысль - в Linux треады эмулируются через отдельные процессы, с которыми и работает ядро. В Solaris для ядра нет понятия процессов - там есть тн. LWP, с котрыми собсно и происходит работа. При создании нового процесса (fork) и при создании новой thread (thr_create) в Solaris происходят разные операции...
Сразу скажу, так это или нет для Linux - не знаю, глубоко не ковырял.
Но то, что в Solaris thr_create на порядок эффективнее fork - это проверено неоднократно; слишком много дополнительных операций fork делает:)
>>
>>Заранее спасибо!
>>
>>/SergeyK
>
>
>Если под "разделением кода" имеется ввиду его совместное использование, то вроде я
>все понял правильно. Вообще если подразумевать, что thread должен иметь
>PID родителя, в то в Linux-е thread (я имею ввиду библиотеку
>libpthread, единственную с которой работал) конечно тоже является процессом.
В Solaris thread как раз и не является процессом:)))
>Только насчет разделения кода скорее всего вы неправильно поняли докладчика. Для
>подробностей читайте man и doc, а здесь я коротенько:
>
>при запуске fork создается новый процесс, со своим адресным пространством, но
>использующий тот же сегмент кода.
>
>thread (libpthread) - у него только PID и stack
>свой, все остальное общее с родителем.
>
>С telnet я не разбирался, по моему in.telnetd и сделан чтоб
>запускаться из inetd, так что вряд ли он может использоваться
>как демон и сомневаюсь что BSD чем то здесь поможет (хотя
>кто знает...). Вобщем смотрите ответ N1 (SandySandy) - он более
>по теме.
В данном случае треады и fork тут ни при чем; in.telnetd в Solaris и FreeBSD не является
многопотоковым приложением - весь вопрос в том, насколько хорошо VMS использует
один и тот же elf-файл...
Я думаю, что вам имеет смысл понять что именно "тормозит" и попытаться оптимизировать
вашу систему; по-моему это лучше, чем метаться между разными OС:))