64-bit
- Что такое 64-битные системы, история развития
- Архитектура 64-битных систем
- Модель данных, размеры типов, выравнивание
- Курс по разработке 64-битных приложений
- Разные статьи
- Сборка приложений
- Прочее
- Приглашаю
Я собрал здесь ссылки на большое количество информации, которая может понадобиться программистам при освоении 64-битного мира. В основном речь идёт о языках Си/Си++, но уверен, разработчики на других языках также найдут здесь много интересного и полезного.
Что такое 64-битные системы, история развития
- 32-bit and 64-bit explained.
- John R. Mashey. The Long Road to 64 Bits.
- Wikipedia. 64-bit computing.
Архитектура 64-битных систем
- Sachin R Sangoi. The 64 bit OS Architecture.
- Андрей Карпов. Архитектура AMD64 (EM64T).
- Wikipedia. Itanium (IA-64).
- Wikipedia. x86-64 (x64, AMD64, Intel64).
- Jeremy Gordon. Writing 64-bit programs.
- Eric Palmer. CPUID for x64 Platforms and Microsoft Visual Studio* .NET 2005.
- Stack frame layout on x86-64.
- Mike Becker. Accessing 32-bit DLLs from 64-bit code.
- The history of calling conventions, part 5: amd64.
- Андрей Карпов. Причины, по которым 64-битные программы требуют больше стековой памяти.
- База знаний. Какими преимуществами обладают 64-разрядные процессоры по сравнению с 32-разрядными?
- База знаний. Почему 64-битные приложения работают быстрее 32-битных?
Модель данных, размеры типов, выравнивание
- Модель данных.
- 64-Bit Programming Models: Why LP64?
- Why did the Win64 team choose the LLP64 model?
- Kang Su Gatlin. Windows Data Alignment on IPF, x86, and x64.
- Андрей Карпов. Что такое size_t и ptrdiff_t.
- Dan Saks. Why size_t matters.
Курс по разработке 64-битных приложений
- Что такое 64-битные системы.
- Поддержка 32-битных приложений.
- Перенос кода на 64-битные системы. За и против.
- Создание 64-битной конфигурации.
- Сборка 64-битного приложения.
- Ошибки в 64-битном коде.
- Проблемы выявления 64-битных ошибок.
- Статический анализ для выявления 64-битных ошибок.
- Паттерн 01. Магические числа.
- Паттерн 02. Функции с переменным количеством аргументов.
- Паттерн 03. Операции сдвига.
- Паттерн 04. Виртуальные функции.
- Паттерн 05. Адресная арифметика.
- Паттерн 06. Изменение типа массива.
- Паттерн 07. Упаковка указателей.
- Паттерн 08. Memsize-типы в объединениях.
- Паттерн 09. Смешанная арифметика.
- Паттерн 10. Хранение в double целочисленных значений.
- Паттерн 11. Сериализация и обмен данными.
- Паттерн 12. Исключения.
- Паттерн 13. Выравнивание данных.
- Паттерн 14. Перегруженные функции.
- Паттерн 15. Рост размеров структур.
- Фантомные ошибки.
- Практическое знакомство с паттернами 64-битных ошибок.
- Оптимизация 64-битных программ.
- Особенности создания инсталляторов для 64-битного окружения.
- Оценка стоимости процесса 64-битной миграции Си/Си++ приложений.
Разные статьи
- Андрей Карпов. Коллекция примеров 64-битных ошибок в реальных программах.
- 64-bit ODBC.
- Migrating 32-bit Managed Code to 64-bit.
- Checklist for 64-bit Microsoft Windows Drivers.
- Андрей Карпов. 64-битный конь, который умеет считать.
- Андрей Карпов. Проблемы тестирования 64-битных приложений.
- Андрей Карпов. 64-битные программы и вычисления с плавающей точкой.
Сборка приложений
- Андрей Карпов. 7 шагов по переносу программы на 64-битную систему.
- Bojan Komazec. 32-bit and 64-bit versions of Windows C++ application.
- Daniel Pistelli. Moving to Windows Vista x64.
- База знаний. Предупреждения компилятора C4311 и C4312, выдаваемые при использовании ключа /Wp64
- База знаний. Как скомпилировать 64-битное приложение, используя Visual C++ Express 2005/2008/2010?
- База знаний. Распространенная ошибка при компиляции 64-битного приложения: error C2440, OnTimer
- База знаний. Непонятные ошибки при компиляции 64-битной версии, error C2664
- База знаний. Распространенная ошибка при компиляции 64-битного приложения: error C4235, Assembler
- База знаний. Как используя ifdef узнать, что объявлен тип DWORD_PTR?
- База знаний. Почему Visual С++ больше не поддерживает встроенный ассемблер для Intel 64 и IA-64?
- База знаний. Warning C4267 в выражении unsigned n = str.find(substr)
- База знаний. Как с помощью #ifdef узнать, что собирается 64-битный проект в Visual Studio
- База знаний. Использование макросов _WIN64/WIN64
Прочее
- Андрей Карпов. Красивая 64-битная ошибка на языке Си.
- База знаний. Как правильно распечатать значение типа __int64, size_t и ptrdiff_t
- База знаний. Можно ли использовать более 2 гигабайт памяти в 32-битной программе, запущенной в 64-битной Windows?
- База знаний. Как корректно привести указатель к int в 64-битной программе?
- База знаний. Как 32-битной программе узнать, что она запущена в 64-битной Windows?
- База знаний. Функции класса ntohl/htonl и работа с 64-битными значениями
- База знаний. Отличие %p от %x
- База знаний. Почему происходит замещение значения переменной среды ProgramFiles на ProgramFiles(x86) ?
- База знаний. Можно заставить тип size_t быть 32-битным в 64-битной программе?
- База знаний. Является ли size_t стандартным типом в языке Си++? В языке Си?
- База знаний. Почему Windows помещает 64-битные модули в System32?
- База знаний. WOW6432Node и API-функции RegOpenKeyEx / RegEnumKeyEx
- База знаний. Почему WoW64 использует перенаправление реестра и файловой системы?
- База знаний. Путаница с WPARAM и UINT, а также LPARAM с LONG
- База знаний. Сколько памяти будет доступно приложению в Win32 и в Win64
- База знаний. Что можно использовать вместо инструкции "int 3" в 64-битной программе?
- База знаний. Можно ли в 64-битной программе использовать 32-битные указатели?
- База знаний. Как узнать в 32-битной программе, какие 64-битные процессы запущены?
- База знаний. Что использовать вместо rundll32.exe для запуска 64-битных DLL
- База знаний. Почему создание 64-битной версии программы может быть не простым делом?
- База знаний. Как в Win64 узнать, сколько процессорных ядер в системе?
- База знаний. Почему 64-битные операционные системы используют для адресации только 48-битные адреса
- База знаний. Что такое макрос POINTER_32 ?
- База знаний. От чего зависит размер указателя в C++ на различных платформах?
Приглашаю
- Приглашаю последовать за нами в твиттере @Code_Analysis или на Reddit Viva64. Тематика: Си/Си++, 64-битные системы, тестирование, алгоритмы и вообще разное интересное о программировании.
- Приглашаю скачать анализатор PVS-Studio и сделать надежными ваши 64-битные приложения.
0