Поскольку требования к памяти быстро растут, сегодня все больше систем требует 64-битных машин для доступа к еще большему объему оперативной памяти.
FWIK в защищенном режиме 386, указатель памяти состоит из двух частей: базовый адрес (32-разрядный), указанный селектором сегмента, и адрес смещения (32-разрядный), добавленный к базовому адресу.
Чтобы перекомпилировать все программы в 64-битной среде, нужно проделать большую работу, например, для программ на C / C ++, машинно-зависимый тип int (32-битный в 32-битноммашина, и 64-битная на 64-битной машине) вызовет проблемы, если она не используется правильно.Даже без проблем перестраивается, так как требования к памяти постоянно растут, например, когда-нибудь мы будем использовать 128-битные машины, и нужно ли нам заново перестраивать все программы, чтобы соответствовать новому размеру слова?
Если мы просто расширим базовый адрес до 64-битного, сделав таким образом сегмент, например, окно 4 ГБ во всей ОЗУ, нам даже не понадобится 64-битная ОС, не так ли?Большинству приложений / процессов не потребуется доступ к памяти 4G + на стороне сервера, например, если файловый сервер использует 20 ГБ ОЗУ для целей кэширования, он может быть разделен на 10 процессов с каждым доступом 2 ГБ, таким образом, 32-разрядный указательдовольно.И поместите каждый в другой сегмент, чтобы покрыть 20 ГБ памяти.
Расширение предела сегмента прозрачно для программ верхнего уровня, что нужно сделать только для процессора и ОС, если мы можем позволить Linux поддерживать выделение памяти на разных 64-битных сегментах (хотя в настоящее время сегментбазовый адрес еще 32-разрядный), мы можем легко использовать 1 ТБ ОЗУ на 32-разрядной машине, не так ли?
Я прав?