1.11. 64-разрядные архитектуры
1.11. 64-разрядные архитектуры
С середины до конца 90-х годов развивается тенденция к переходу на 64-разрядные архитектуры и 64-разрядное программное обеспечение. Одной из причин является более значительная по размеру адресация внутри процесса (например, 64-разрядные указатели), которая необходима в случае использования больших объемов памяти (более 232 байт). Обычная модель программирования для существующих 32-разрядных систем Unix называется ILP32. Ее название указывает на то, что целые числа (I), длинные целые числа (L) и указатели (P) занимают 32 бита. Модель, которая получает все большее распространение для 64-разрядных систем Unix, называется LP64. Ее название говорит о том, что 64 бита требуется только для длинных целых чисел (L) и указателей (P). В табл. 1.5 приводится сравнение этих двух моделей.
Таблица 1.5. Сравнение количества битов для хранения различных типов, данных в моделях ILP32 и LP64
Тип данных Модель ILP32 Модель LP64 Char 8 8 Short 16 16 Int 32 32 Long 32 64 Указатель 32 64С точки зрения программирования модель LP64 означает, что мы не можем рассматривать указатель как целое число. Мы также должны учитывать влияние модели LP64 на существующие API.
В ANSI С введен тип данных size_t, который используется, например в качестве аргумента функции malloc (количество байтов, которое данная функция выделяет в памяти для размещения какого-либо объекта), а также как третий аргумент для функций read и write (число считываемых или записываемых байтов). В 32-разрядной системе значение типа size_t является 32-разрядным, но в 64-разрядной системе оно должно быть 64-разрядным, чтобы использовать преимущество большей модели адресации. Это означает, что в 64-разрядной системе, возможно, size_t будет иметь тип unsigned long (целое число без знака, занимающее 32 разряда). Проблемой сетевого интерфейса API является то, что в некоторых проектах по POSIX.1g было определено, что аргументы функции, содержащие размер структур адресов сокета, должны иметь тип size_t (например, третий аргумент в функциях bind и connect). Некоторые поля структуры XTI также имели тип данных long (например, структуры t_info и t_opthdr). Если бы стандарты остались неизменными, в обоих случаях 32-разрядные значения должны были бы смениться 64-разрядными при переходе с модели ILP32 на LP64. В обоих случаях нет никакой необходимости в 64-разрядных типах данных: длина структуры адресов сокета занимает максимум несколько сотен байтов, а использование типа данных long для полей структуры XTI было просто ошибкой.
Решение состоит в том, чтобы использовать типы данных, разработанные специально для борьбы с подобными проблемами. Интерфейс API сокетов использует тип данных socklen_t для записи длины структур адресов сокетов, a XTI использует типы данных t_scalar_t и t_uscalar_t. Причина, по которой эти 32-разрядные значения не заменяются на 64-разрядные, заключается в том, что таким образом упрощается двоичная совместимость с новыми 64-разрядными системами для приложений, скомпилированных под 32-разрядные системы.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Обзор 64-разрядной архитектуры
Обзор 64-разрядной архитектуры С точки зрения программиста основная трудность при переходе от 32-разрядной модели к 64-разрядной заключается в том, что размер указателей и таких системных типов данных, как size_t и time_t, теперь может составлять 64 бита. Поэтому виртуальное
4.1. Особенности архитектуры
4.1. Особенности архитектуры Если раньше система реального времени рассматривалась нами как один процесс (с точки зрения ресурсов), то распределенные СРВ представляют уже набор взаимодействующих процессов. Специфика заключается в том, что отлаживаемое приложение может
API-ориентированные архитектуры
API-ориентированные архитектуры Учитывая недостатки процессоро-ориентированных архитектур, многие ISV, производители оборудования и организации по стандартизации совместно разрабатывали архитектуры, в основе которых лежит интерфейс прикладных программ API[ 8 ] (application
Расширения архитектуры PowerPC
Расширения архитектуры PowerPC Так как первое поколение процессоров PowerPC создавалось специально под AS/400 и не было PowerPC в полном смысле, мы решили дать этим процессорам новое название s PowerPC Optimized for the AS/400 Advanced Series, но так как это труднопроизносимо, решено было остановиться на
Обзор архитектуры MI
Обзор архитектуры MI Определение архитектуры MI не привязано к аппаратуре. Это не физический, а логический интерфейс системы. Как уже говорилось в главе 1, архитектура MI предлагает полный набор API для OS/400 и всех приложений. Этот набор полон по определению; то есть ни система,
От традиционной архитектуры к архитектуре убеждения
От традиционной архитектуры к архитектуре убеждения Лоррейн Джонстон в своей книге Learning from Traditional Architects пишет: В исторических хрониках архитекторами называли мастеров, сооружавших оригинальные постройки… В течение XVIII и XIX веков их роль изменилась, архитекторы уже не
От информационной архитектуры к архитектуре убеждения
От информационной архитектуры к архитектуре убеждения Но ведь вы не только стремитесь помочь людям найти нужные сведения и обеспечить удобство взаимодействия с сайтом, – вы еще хотите, чтобы они предприняли действия. Вы ждете, что они купят товар, подпишутся на услугу
Подходящая метафора для архитектуры убеждения
Подходящая метафора для архитектуры убеждения Не так давно было выпущено несколько книг, в которых можно выбрать концовку на свой вкус (например, «Игра в классики»[7] Хулио Кортасара). Автор предлагает «перейти на страницу 121», если считаете, что произойдет А, на страницу 84,
1.2 Понятие архитектуры клиент-сервер.
1.2 Понятие архитектуры клиент-сервер. В подавляющем большинстве случаев локальная сеть используется для коллективного доступа к базам данных. Существует два подхода к организации коллективного доступа данным. Первый подход заключается в том , что файлы данных
ОО-изменение архитектуры (re-architecturing)
ОО-изменение архитектуры (re-architecturing) Понятие внешней программы хорошо соответствует остальной части подхода. Основной вклад метода - архитектурный: объектная технология говорит, как разработать структуру систем, чтобы обеспечить расширяемость, надежность и повторное
Основные понятия архитектуры PKI
Основные понятия архитектуры PKI Архитектура PKI описывает структуру отношений доверия между удостоверяющими центрами и другими субъектами инфраструктуры. По архитектуре PKI делятся на разные типы в зависимости от следующих характеристик:* количества удостоверяющих
Выбор архитектуры PKI
Выбор архитектуры PKI Любой тип архитектуры PKI имеет свои слабые и сильные стороны. Не существует архитектуры, совершенной для всех сред. Выбор оптимальной архитектуры осуществляется с учетом специфики деятельности, потребностей и возможностей организации [70].Одиночный
Стивенс Уильям Ричард
Просмотр ограничен
Смотрите доступные для ознакомления главы 👉