On Thu, Jan 24, 2008 at 05:03:39PM +0300, Максим Иванов wrote: > Всегда интересовал вопрос: как ведут себя 32-х битные приложения > запущенные на 64-х битной ОС? Зависит от того, что именно они делают - обычные приложения ведут себя нормально, но некоторые (в основном обращающиеся к специфическим устройствам) могут не работать, если для используемых ими нестандартных ioctl не предусмотрено преобразование параметров в соответствующих драйверах в ядре. > Точнее сколько памяти они могут использовать? Как я полагаю > одно конкретное приложение не увидет больше 3 Гб памяти, На самом деле в случае запуска 32-разрядных приложений на x86_64 адресное пространство для них расширяется почти до 4 ГБ (в отличие от 32-разрядного ядра, для 64-разрядного не требуется резервирование части адресного пространства процессов в первых 4 ГБ для собственных нужд - занимается только небольшое количество памяти под VDSO). > но 100 запущенных 32-х битных приложений в сумме ограничены каким > лимитом? 3Гб или количеством ОЗУ в сервере? Количеством ОЗУ (плюс, как обычно, swap :) Кстати, при переходе на x86_64 убирается ещё одна неприятная вещь - разграничение lowmem/highmem в ядре (на i386 ядро может использовать для большинства своих структур чуть меньше 900М RAM, независимо от фактического объёма памяти).