Кіріспе
x86 64 (x64, x86 64, AMD64 және Intel 64 деп те аталады) – x86 нұсқаулар жиынтығының 64 биттік нұсқасы, ол алғаш рет 1999 жылы жарияланды. Ол 64 биттік режим және үйлесімділік режимі, сонымен қатар жаңа 4 деңгейлі бетбелгілеу режимін енгізді. 64 биттік режим және жаңа пагельдеу режимі 32 биттік алдыңғы нұсқаларға қарағанда виртуалды жад пен физикалық жадтың әлдеқайда көп мөлшерін қолдайды, бұл бағдарламаларға жадта үлкен көлемде деректерді сақтауға мүмкіндік береді. x86 64 сонымен қатар жалпы мақсаттағы регистрлерді 64 битке дейін кеңейтеді және олардың санын 8-ден (кейбіреулері шектеулі немесе тұрақты функционалдылыққа ие, мысалы, стекті басқару үшін) 16-ға дейін (толық жалпы) кеңейтеді және көптеген басқа да жақсартуларды ұсынады. Аспалы нүктелік арифметика міндетті SSE2 сияқты нұсқаулар арқылы қолдайды, ал x87/MMX стильіндегі регистрлер әдетте пайдаланылмайды (бірақ 64 биттік режимде де қол жетімді); оның орнына әрқайсысы 128 бит болатын 16 векторлық регистрлер жиынтығы қолданылады. (Әрбір регистр бір немесе екі екілік дәлдікті, немесе бірден төртке дейінгі бірлік дәлдікті, немесе әр түрлі бүтін сандық форматтарды сақтай алады.) 64 биттік режимде нұсқаулар 64 биттік операндар мен 64 биттік адрестеу режимін қолдау үшін өзгертіледі. Архитектурада анықталған үйлесімділік режимі 16 биттік және 32 биттік пайдаланушы бағдарламаларын өзгертілмеген түрде, 64 биттік операциялық жүйе оларды қолдайтын болса, 64 биттік бағдарламалармен қатар жұмыс істеуге мүмкіндік береді. Толық x86 16 биттік және 32 биттік нұсқаулар жиынтығы аппараттық жасақтауда іске асырылғандықтан, бұл ескі орындалатын файлдар өнімділікпен өте аз немесе мүлдем жоғалмайды, ал жаңа немесе өзгертілген қосымшалар процессор дизайнының жаңа мүмкіндіктерін пайдалану арқылы өнімділікті жақсарта алады. Сонымен қатар, x86 64 қолдаушы процессор 8086 режимін қолданатын x86 процессорлары 80286 кезінен бастап істегендей, 8086-мен толық артқа үйлесімділік үшін нақты режимде әлі де қуатты болады. AMD-нің 2000 жылы шығарған бастапқы нұсқауы AMD, Intel және VIA-ның қолдауымен жүзеге асырылды. Opteron және Athlon 64 процессорларында AMD K8 микроархитектурасы оны бірінші болып іске асырды. Бұл Intel компаниясынан басқа компания жасаған x86 архитектурасына алғашқы маңызды толықтыру болды. Intel компаниясы да осыған көндіріп, AMD-нің ерекшеліктеріне сай келетін NetBurst бағдарламалық жасақтамасын енгізді. VIA Technologies x86 64 бағдарламасын VIA Isaiah архитектурасына VIA Nano арқылы енгізді. x86 64 архитектурасы тез арада 16 Гигабайт (Гигабайт) немесе одан да көп жадқа конфигурацияланған үстел және ноутбук персоналды компьютерлер мен серверлерге қабылданды. Ол бастапқыда x86 архитектурасын алмастыруға арналған Intel Itanium архитектурасын (бұрынғы IA 64) тиімді түрде алмастырды. x86 64 және Itanium жергілікті нұсқаулар жиынтығының деңгейінде үйлесімсіз, ал бір архитектураға компиляцияланған операциялық жүйелер мен қолданбалар екінші архитектурада орындала алмайды.
x86 64 (also known as x64, x86 64, AMD64, and Intel 64) is a 64 bit version of the x86 instruction set, first announced in 1999. It introduced two new modes of operation, 64 bit mode and compatibility mode, along with a new 4 level paging mode. With 64 bit mode and the new paging mode, it supports vastly larger amounts of virtual memory and physical memory than was possible on its 32 bit predecessors, allowing programs to store larger amounts of data in memory. x86 64 also expands general purpose registers to 64 bit, and expands the number of them from 8 (some of which had limited or fixed functionality, e. g. for stack management) to 16 (fully general), and provides numerous other enhancements. Floating point arithmetic is supported via mandatory SSE2 like instructions, and x87/MMX style registers are generally not used (but still available even in 64 bit mode); instead, a set of 16 vector registers, 128 bits each, is used. (Each register can store one or two double precision numbers or one to four single precision numbers, or various integer formats.) In 64 bit mode, instructions are modified to support 64 bit operands and 64 bit addressing mode. The compatibility mode defined in the architecture allows 16 bit and 32 bit user applications to run unmodified, coexisting with 64 bit applications if the 64 bit operating system supports them. As the full x86 16 bit and 32 bit instruction sets remain implemented in hardware without any intervening emulation, these older executables can run with little or no performance penalty, while newer or modified applications can take advantage of new features of the processor design to achieve performance improvements. Also, a processor supporting x86 64 still powers on in real mode for full backward compatibility with the 8086, as x86 processors supporting protected mode have done since the 80286. The original specification, created by AMD and released in 2000, has been implemented by AMD, Intel, and VIA. The AMD K8 microarchitecture, in the Opteron and Athlon 64 processors, was the first to implement it. This was the first significant addition to the x86 architecture designed by a company other than Intel. Intel was forced to follow suit and introduced a modified NetBurst family which was software compatible with AMD's specification. VIA Technologies introduced x86 64 in their VIA Isaiah architecture, with the VIA Nano. The x86 64 architecture was quickly adopted for desktop and laptop personal computers and servers which were commonly configured for 16 GiB (gibibytes) of memory or more. It has effectively replaced the discontinued Intel Itanium architecture (formerly IA 64), which was originally intended to replace the x86 architecture. x86 64 and Itanium are not compatible on the native instruction set level, and operating systems and applications compiled for one architecture cannot be run on the other natively.
Тарих
AMD64 (сонымен қатар AMD өзінің әдебиеттері мен құжаттамаларында «AMD 64 биттік технологиясы» және «AMD x86 64 архитектурасы» деп аталады) Intel және Hewlett Packard компаниялары жасаған IA 64 архитектурасына балама ретінде құрылды. IA 64, x86 архитектурасының 32 биттік нұсқасы IA 32-мен кері үйлесімді емес еді. AMD компаниясы AMD64-ті алғаш рет 1999 жылы жариялады, ал толық сипаттамасы 2000 жылдың тамызында қолжеткілі болды. AMD компаниясы IA 64 архитектурасын жасауға қатысуға шақырылмағандықтан және лицензия алу мүмкіндігі де күмәнді болғандықтан, AMD64 архитектурасы бастапқыда қолданыстағы x86 архитектурасына 64 биттік есептеу мүмкіндіктерін қосудың эволюциялық жолы ретінде ұсынылды, бұл ретте 32 биттік x86 кодына қолдау көрсетілді. Бұл Intel компаниясының IA 64 арқылы x86-мен толыққандай үйлесімсіз жаңа 64 биттік архитектура құру әрекетінен өзгеше болды. AMD64 негізіндегі алғашқы процессор Opteron 2003 жылдың сәуір айында шығарылды.
Қолданылу
AMD64 архитектурасын қолданатын AMD процессорларына Opteron, Athlon 64, Athlon 64 X2, Athlon 64 FX, Athlon II (ядролар санын көрсету үшін "X2", "X3" немесе "X4" қосымшасы және XLT модельдері), Turion 64, Turion 64 X2, Sempron ("Palermo" E6 нұсқасы және барлық "Manila" модельдері), Phenom (ядролар санын көрсету үшін "X3" немесе "X4" қосымшасы), Phenom II (ядролар санын көрсету үшін "X2", "X3", "X4" немесе "X6" қосымшасы), FX, Fusion/APU және Ryzen/Epyc кіреді.
Операциялық жүйенің шектері
Операциялық жүйе виртуалды адрестік кеңістікті де шектей алады. Егер қажет болса, толық мәліметтер "Операциялық жүйенің үйлесімділігі және ерекшеліктері" бөлімінде келтірілген.
Физикалық мекенжай кеңістігі туралы мәліметтер
Қазіргі AMD64 процессорлары 248 байтқа дейін физикалық адрестік кеңістікке ие RAM-ды, немесе 256 ТиБ қолдайды. Операциялық жүйе пайдаланылатын немесе қолдау көрсетілетін RAM мөлшеріне қосымша шектеулер қоюы мүмкін. Бұл мәселе бойынша толық мәліметтер осы мақаланың «Операциялық жүйе үйлесімділігі және ерекшеліктері» бөлімінде келтірілген.
Ұзақ режим
Ұзақ режим – архитектураның күтілетін негізгі жұмыс режимі; ол процессордың түпкілікті 64 биттік режимі мен 32 биттік және 16 биттік үйлесімділік режимдерінің үйлесімі. Оны 64 биттік операциялық жүйелер пайдаланады. 64 биттік операциялық жүйеде 64 биттік бағдарламалар 64 биттік режимде, ал 32 биттік және 16 биттік қорғалған режимдегі қолданбалар (олар кез келген уақытта орындалуы үшін нақты режимді немесе виртуалды 8086 режимін пайдалану қажеттілігі болмаса) үйлесімділік режимінде жұмыс істейді. Нақты режимдегі бағдарламалар және кез келген уақытта виртуалды 8086 режимін пайдаланатын бағдарламалар, егер бұл режимдер бағдарламалық қамтамасызда эмуляцияланбаса, ұзақ режимде іске қосыла алмайды. (Орегон штатының Уилламет аңғарындағы Ямхилл өзенінің атынан). Көп жыл бойы оның бар екенін жоққа шығарғаннан кейін, Intel 2004 жылдың ақпан айында IDF-да жобаның іске асырылып жатқанын жариялады. Сол кездегі Intel төрағасы Крейг Баррет бұл олардың ең жақсы сақталмаған құпияларының бірі екенін мойындады. Intel-дің осы нұсқаулар жиынтығының атауы бірнеше рет өзгерді. IDF-да қолданылған атау CT (демек, Clackamas Technology, Орегон өзенінің тағы бір кодтық атауы) болды; бірнеше апта ішінде олар оны IA 32e (IA 32 кеңейтімдері үшін) деп атауға көшті және 2004 жылдың наурыз айында «ресми» EM64T (Extended Memory 64 Technology) атауын таныстырды. 2006 жылдың соңында Intel өз іске асыруы үшін Intel 64 атауын пайдалана бастады, бұл AMD-нің AMD64 атауын пайдалануымен үйлеседі. Intel 64-ті іске асырған алғашқы процессор 2004 жылдың маусым айында Nocona деп аталған Xeon көп ұялы процессор болды. Алғашқы Prescott чиптері (2004 жылдың ақпаны) бұл мүмкіндікті қамтамасыз етпеді. Intel кейіннен Prescott өзегінің E0 қайрылымын пайдаланып, Intel 64 мүмкіндігі бар Pentium 4 процессорларын сатуды бастады, олар OEM нарығында Pentium 4, F моделі ретінде сатылды. E0 қайрылымы Intel 64-ке eXecute Disable (XD) (Intel-дің NX битіне берген атауы) қосады және сол кездегі Irwindale деп аталған Xeon кодына енгізілді. Intel-дің Intel 64 (сол кезде EM64T атауымен) негізгі десктоп процессорларында ресми түрде іске қосуы N0 қадамдық Prescott 2M болды. Intel 64-ті іске асырған алғашқы Intel мобильді процессоры Core 2 процессордың Merom нұсқасы болды, ол 2006 жылдың 27 шілдесінде шығарылды. Intel-дің бұрынғы ноутбук процессорларының ешқайсысы (Core Duo, Pentium M, Celeron M, Mobile Pentium 4) Intel 64-ті іске қоспады.
Қолданылу
Intel64 архитектурасын қолданатын Intel процессорларына Pentium 4 F сериясы/5x1 сериясы, 506 және 516, Celeron D модельдері 3x1, 3x6, 355, 347, 352, 360 және 365, сондай-ақ барлық кейінгі Celeron процессорлары, "Nocona" нұсқасынан бастап Xeon процессорларының барлық модельдері, "Merom 2M" нұсқасынан бастап Pentium Dual Core процессорларының барлық модельдері, Atom 230, 330, D410, D425, D510, D525, N450, N455, N470, N475, N550, N570, N2600 және N2800, Pentium D, Pentium Extreme Edition, Core 2, Core i9, Core i7, Core i5 және Core i3 процессорларының барлық нұсқалары, сондай-ақ Xeon Phi 7200 сериялы процессорлары жатады.
AMD64 және Intel 64 арасындағы айырмашылықтар
Екі нұсқаулық жиынтығы шамалы ғана ерекшеліктерге ие болғанымен, олардың арасында жүйелік бағдарламалауда қолданылатын, сирек пайдаланылатын машиналық нұсқаулардың (немесе жағдайлардың) мағынасында кейбір айырмашылықтар бар. Компиляторлар көбінесе кез келген ерекшеліктерден аулақ болатын орындалатын файлдарды (яғни машиналық кодты) жасайды, кем дегенде, әдеттегі қолданбалық бағдарламалар үшін. Сондықтан бұл, негізінен, компиляторларды, операциялық жүйелерді және осыған ұқсас құралдарды құрастырушыларға қызығушылық тудырады, олар жеке және арнайы жүйелік нұсқаулармен жұмыс істеуге тиіс.
Ескірген енгізілулері
2006 жылғы F қайта қарауға дейінгі AMD64 процессорлары (DDR-ден DDR2 жадына ауысу және жаңа AM2, F және S1 сокеттерімен ерекшеленеді) CMPXCHG16B нұсқаулығынан құралмады, ол 80486 процессорларының көпшілігінде кездесетін CMPXCHG8B нұсқаулығының кеңейтімі. CMPXCHG8B сияқты, CMPXCHG16B окта сөздерде (128 биттік мәндер) атомдық операцияларды орындауға мүмкіндік береді. Бұл көрсеткіш өлшемінен үлкен деректерде салыстыру және алмастыруды пайдаланатын параллель алгоритмдер үшін пайдалы, бұл құлыптамасыз және күтусіз алгоритмдерде жиі кездеседі. CMPXCHG16B болмаған жағдайда, сындық бөлім немесе балама құлыптамасыз әдістер сияқты шешімдерді қолдану қажет. Оның болмауы Windows 8.1-ге дейінгі 64-бит Windows жүйелерінде пайдаланушы режиміндегі адрестік кеңістіктің 8 ТиБ-тан аспауына әкеледі. Windows 8.1 64-бит нұсқасы осы нұсқауды қажет етеді. Алғашқы AMD64 және Intel 64 процессорлары 64-бит режимінде LAHF және SAHF нұсқаулықтарын қолдамады. AMD осы нұсқаулықтарды (сондай-ақ 64-бит режимінде) 2004 жылдың қазан айында 90 нм (D қайта қарауы) процессорларымен, Athlon 64-тен бастап енгізді. Intel 2005 жылдың қазан айында 0F47h және NetBurst-тің кейінгі қайта қарауларымен нұсқаулықтарды енгізді. Windows 8.1 64-бит нұсқасы осы мүмкіндікті қажет етеді. Бұл мүмкіндік Windows 8-дің барлық нұсқалары үшін қажет. Intel 64-тің бастапқы іске асырылуында жадтың физикалық адрестеуі 36 бит (64 ГиБ) болды, ал AMD64-тің бастапқы іске асырылуында 40 бит (1 ТиБ) физикалық адрестеу болды. Intel алғаш рет 40 биттік физикалық адрестеуді 2005 жылдың 29 наурызында ұсынылған Xeon MP (Potomac) процессорларында қолданды. Бұл айырма пайдаланушыға көрінетін ISA-ның айырмашылығы емес. 2007 жылы AMD 10h негізіндегі Opteron 48 биттік (256 ТиБ) физикалық адрестік кеңістікті алғаш ұсынды. Intel 64-тің физикалық адрестеуі 2010 жылы Nehalem EX-де 44 битке (16 ТиБ) және 2011 жылы Sandy Bridge E-де 46 битке (64 ТиБ) дейін кеңейтілді. 2021 жылы Ice Lake 3-ші буын Xeon Scalable процессорларымен Intel виртуалды адрестеуді 57 битке (128 ПиБ) және физикалық адрестеуді 52 битке (4 ПиБ) дейін арттырды, бұл 5 деңгейлі беттеуді қажет етті. Келесі жылы AMD64 4-ші буын EPYC (Женева) процессорларында осы мүмкіндікті қосты. Серверлік емес процессорлар кішкентай адрестік кеңістікті ұзақ уақыт сақтайды.
Бала асырап алу
TOP500 тізіміндегі суперкомпьютерлерде x86 архитектурасы үшін 64 биттік кеңейтулердің пайда болуы, AMD және Intel компанияларының 64 биттік x86 процессорларының бұрын осындай жүйелерде қолданылған RISC процессор архитектураларының (PA RISC, SPARC, Alpha және т.б.) және тіпті 32 биттік x86 процессорларының орнын басуына мүмкіндік берді. Intel өзі бастапқыда Itanium процессорында x86 архитектурасын үйлесімсіз 64 биттік архитектурамен алмастыруға тырысқанмен, бұл әрекет сәтсіз аяқталды. 2023 жылдың қазіргі кезенінде HPE EPYC негізіндегі Frontier суперкомпьютері көшбасшы болып табылады. Алғашқы ARM негізіндегі суперкомпьютер 2018 жылы тізімге енді. Соңғы жылдары CPU емес архитектурадағы копроцессорлар (GPGPU) да өнімділікті арттыруда маңызды рөл атқаруда. Intel Xeon Phi "Knights Corner" копроцессорлары, x86 64-тің векторлық кеңейтулермен толықтырылған бір бөлігі, Tianhe 2 суперкомпьютерінде x86 64 процессорларымен бірге қолданылады.
Операциялық жүйенің үйлесімділігі мен сипаттамалары
Келесі операциялық жүйелер мен шығарылымдар ұзақ режимде x86 64 архитектурасын қолдайды.
DragonFly BSD
2004 жылдың ақпан айында x86 64 порты үшін алдын ала инфрақұрылымдық жұмыстар басталды. Бұл жұмыс кейін тоқтап қалды. Даму 2007 жылдың шілдесінде қайта басталды және Google Summer of Code 2008 және SoC 2009 бағдарламалары аясында жалғасты. x86 64 қолдауын қамтитын алғашқы ресми нұсқасы 2.4 болды.
and continued during Google Summer of Code 2008 and SoC 2009. The first official release to contain x86 64 support was version 2.4.
FreeBSD-нің нұсқасы
FreeBSD алғаш рет 2003 жылдың маусым айында 5.1 RELEASE нұсқасында "amd64" деген атпен x86 64 қолдауын тәжірибелік архитектура ретінде қосты. 2004 жылдың қаңтарында 5.2 RELEASE нұсқасынан бастап ол стандартты тарату архитектурасы ретінде енгізілді. Осы уақыттан бері FreeBSD оны 1-деңгейлі платформа деп белгіледі. 6.0 RELEASE нұсқасы amd64-те x86 атқарылатын файлдарды іске қосумен байланысты кейбір мәселелерді шешті, және көптеген драйверлер x86 архитектурасындағыдай жұмыс істейді. Қазіргі таңда Linux 32 битті ABI үйлесімділігі сияқты, x86 қолданбаларының екілік интерфейсін (ABI) толыққанды интеграциялау жұмыстары жүргізілуде.
NetBSD-нің
x86 64 архитектурасының қолдауы алғаш рет 2001 жылдың 19 маусымында NetBSD бастапқы кодынa қосылды. NetBSD 2.0 нұсқасы 2004 жылдың 9 желтоқсанында жарық көргеннен бастап, NetBSD/amd64 толыққанды интеграцияланған және қолдау көрсетілетін порт болып табылады. 64 биттік режимде 32 биттік код әлі де қолдау көрсетіледі, 32 биттік жүйелік шақырулар (syscall) үшін netbsd 32 ядросының үйлесімділік қабаты бар. NX биті беттік дәлдікпен (32 биттік x86 үшін сегменттік дәлдік қолданылады) орындалмайтын стек пен үйіндіні қамтамасыз ету үшін пайдаланылады.
OpenBSD- тің атауы
OpenBSD 2004 жылдың 1 мамырында жарық көрген OpenBSD 3.5 нұсқасынан бастап AMD64-ті қолдайды. Аппараттық жабдықтың алғашқы шығарылымынан бұрын AMD64 қолдауының толыққанды іске асырылуы мүмкін болды, себебі AMD сол жылы жобаның хакатоны үшін бірнеше машинаны ұсынған еді. OpenBSD әзірлеушілері NX битін қолдағандықтан осы платформаны жақсы қабылдады, бұл W^X мүмкіндігін оңай енгізуге мүмкіндік берді. OpenBSD-дің AMD64 портының коды Intel 64 процессорларында да жұмыс істейді, онда AMD64 кеңейтімдерінің көшірмесі пайдаланылады, бірақ Intel алғашқы Intel 64 процессорларында NX битін қалдырмағандықтан, бұл процессорларда W^X мүмкіндігі болмайды; кейінірек Intel 64 процессорлары NX битін "XD бит" деген атаумен қосты. Симметриялық көппроцессорлық (SMP) OpenBSD-дің AMD64 портында 2004 жылдың 1 қарашасында шыққан 3.6 нұсқасынан бастап қолдау көрсетіледі.
DOS
DOS-та DOS кеңейтуісіз ұзақ режимге кіру мүмкін, бірақ BIOS немесе DOS үзілістерін шақыру үшін пайдаланушы нақты режимге қайтуы керек. DOS/4GW сияқты DOS кеңейтуі арқылы ұзақ режимге кіру де мүмкін, бірақ x86 64 архитектурасында виртуалды 8086 режимі болмағандықтан бұл күрделірек. DOS мұны білмейді, сондықтан DOS-ты тиісті виртуализация драйверімен эмуляцияда іске қоспаса, ешқандай артықшылық күтпеу керек, мысалы, жаппай сақтау интерфейсі арқылы.
Linux жүйесі
Linux 2001 жылы 2.4 нұсқасынан бастап (аппараттық қолжетімділіктен бұрын) x86 64 архитектурасын ұзақ режимде жұмыс істететін алғашқы операциялық жүйе ядросы болды. Linux сондай-ақ 32 биттік атқарылатын файлдарды іске қосу үшін кері үйлесімділікті қамтамасыз етеді. Бұл бағдарламаларды 32 биттік бағдарламаларды қолдану мүмкіндігін сақтай отырып, ұзақ режимге қайта компиляциялауға мүмкіндік береді. Қазіргі Linux дистрибутивтері x86 64 жергілікті ядроларымен және userland-терімен бірге келеді. Кейбір дистрибутивтер, мысалы Arch Linux, SUSE, Mandriva және Debian, пайдаланушыларға 64 биттік тарату ортасынан орнату кезінде 32 биттік компоненттер мен кітапханалар жиынтығын орнатуға рұқсат береді, осылайша көптеген 32 биттік қолданбаларды 64 биттік операциялық жүйемен бірге іске қосуға болады. Linux 3.4 нұсқасында енгізілген x32 ABI (Application Binary Interface) x32 ABI үшін компиляцияланған бағдарламаларға x86 64 архитектурасының 64 биттік режимінде тек 32 биттік көрсеткіштер мен деректерді пайдалану арқылы жұмыс істеуге мүмкіндік береді. Бұл бағдарламаны 4 ГБ виртуалды адрестік кеңістікпен шектейді, бірақ бағдарламаның жадты пайдалануын азайтады және кейбір жағдайларда оның жылдам жұмыс істеуіне мүмкіндік береді, немесе 5 деңгейлі беттеу қосылғанда 128 ПиБ (виртуалды) және 4 ПиБ (физикалық) дейін.
macOS
Mac OS X 10.4.7 және Mac OS X 10.4-тің жоғарырақ нұсқалары 64 биттік Intel негізіндегі машиналарда POSIX және математикалық кітапханаларды пайдаланып 64 биттік командалық жол құралдарын іске қосады, дәл сол сияқты Mac OS X 10.4 және 10.5 нұсқаларының барлығы оларды 64 биттік PowerPC машиналарында іске қосады. Mac OS X 10.4-те 64 биттік қолданбалармен ешқандай басқа кітапханалар немесе фреймворктер жұмыс істемейді. Ядро және оның барлық кеңейтімдері тек 32 биттік болып табылады. Mac OS X 10.5 64 биттік Intel негізіндегі машиналарда да, 64 биттік PowerPC машиналарында да Cocoa, Quartz, OpenGL және X11 пайдаланып 64 биттік GUI қолданбаларын қолдайды. Барлық GUI емес кітапханалар мен фреймворктер де осы платформаларда 64 биттік қолданбаларды қолдайды. Ядро және оның барлық кеңейтімдері тек 32 биттік болып табылады. Mac OS X 10.6 – 64 биттік ядроны қолдайтын macOS-тың алғашқы нұсқасы. Дегенмен, барлық 64 биттік компьютерлер 64 биттік ядроны іске қоса алмайды, ал 64 биттік ядроны іске қоса алатын барлық 64 биттік компьютерлер оны әдепкі бойынша іске қоспайды. 64 биттік ядро, 32 биттік ядро сияқты, 32 биттік қолданбаларды қолдайды; екі ядро да 64 биттік қолданбаларды қолдайды. 32 биттік қолданбалардың виртуалды адрестік кеңістігі екі ядроның астында 4 ГиБ-қа дейін шектелген. 64 биттік ядро 32 биттік ядролық кеңейтімдерді қолдамайды, ал 32 биттік ядро 64 биттік ядролық кеңейтімдерді қолдамайды. OS X 10.8 тек 64 биттік ядроны қамтиды, бірақ 32 биттік қолданбаларды қолдауды жалғастырады; алайда, 32 биттік ядролық кеңейтімдерді қолдамайды. macOS 10.15 тек 64 биттік ядроны қамтиды және енді 32 биттік қолданбаларды қолдамайды. Бұл қолдауды жою WineHQ (және коммерциялық CrossOver нұсқасы) үшін мәселе тудырды, себебі олар әлі де 32 биттік Windows қолданбаларын іске қоя білуі керек. Шешім, wine32on64 деп аталды, ол номиналды түрде 64 биттік қолданбада процессорды 32 биттік үйлесімділік режиміне кіргізіп, шығаратын түтіктерді қосу болды. macOS 32 және 64 биттік қолданба және кітапхана кодтарын бір файлға жинақтау үшін әмбебап бинарлық форматты пайдаланады; ең қолайлы нұсқа жүктеу кезінде автоматты түрде таңдалады. Mac OS X 10.6 жүйесінде әмбебап бинарлық формат ядро үшін және 32 биттік және 64 биттік ядроларды қолдайтын ядролық кеңейтімдер үшін де қолданылады.
Соларис
Solaris 10 және одан кейінгі нұсқалары x86 64 архитектурасын қолдайды. Solaris 10 үшін, SPARC архитектурасындағыдай, 32 биттік және 64 биттік ядроны қамтитын жалғыз операциялық жүйе бейнесі бар; ол "x64/x86" DVD ROM бейнесі деп аталады. Дәстүрлі түрде 64 биттік ядро жүктеледі, бұл 64 биттік және жаңа немесе ескі 32 биттік атқарылатын файлдарды іске қосуға мүмкіндік береді. 32 биттік ядроны қолмен таңдауға болады, онда тек 32 биттік атқарылатын файлдар ғана іске қосылады. isainfo командасы жүйенің 64 биттік ядрода жұмыс істейтінін анықтау үшін қолданылады. Solaris 11 үшін тек 64 биттік ядро ұсынылады. Дегенмен, 64 биттік ядро 32 және 64 биттік атқарылатын файлдарды, кітапханаларды және жүйелік шақыруларды қолдайды.
Терезелер
Microsoft Windows клиенті мен серверінің x64 нұсқалары — Windows XP Professional x64 Edition және Windows Server 2003 x64 Edition 2005 жылдың наурыз айында шығарылды. Ішкі жағынан олар шын мәнінде бірдей құрастыру (5.2.3790.1830 SP1), өйткені олар бірдей бастапқы деректер базасы мен операциялық жүйелік кодымен бөліседі, сондықтан тіпті жүйелік жаңартулар да Windows 2000 Professional және Server x86 үшін шығарылған сияқты біріктірілген пакеттерде шығарылады. Windows Vista, сондай-ақ көптеген түрлі нұсқалары бар, 2007 жылдың қаңтар айында шығарылды. Windows 7 2009 жылдың шілдесінде шығарылды. Windows Server 2008 R2 тек x64 және Itanium нұсқаларында сатылды; Windows Server-дің кейінгі нұсқалары тек x64 нұсқасын ұсынады. Windows 8.1 және Windows Server 2012 R2 алдындағы x64 үшін Windows нұсқалары келесілерді ұсынады: 8 ТиБ виртуалды адрестік кеңістік процеске, пайдаланушы режимінен де, өзек режимінен де қол жетімді, пайдаланушы режиміндегі адрестік кеңістік деп аталады. x64 бағдарламасы осылардың бәрін пайдалана алады, жүйедегі сақтау шектеріне сәйкес және ол "үлкен адресті білу" опциясымен байланысты болса, ол әдетте болады. Бұл 32 биттік Windows-та ұсынылған әдеттегі 2 ГБ пайдаланушы режиміндегі виртуалды адрестік кеңістікке қарағанда 4096 есеге өседі. Операциялық жүйе үшін 8 ТиБ ядролық режимдегі виртуалды адрестік кеңістік. Windows 8.1 және Windows Server 2012 R2 жүйесінде пайдаланушы режиміндегі және өзек режиміндегі виртуалды адрестік кеңістіктер 128 ТиБ-қа дейін кеңейтілді. x86 операциялық жүйесінде /3GiB жүктеу опциясын пайдаланудан айырмашылығы, бұл операциялық жүйеге қол жетімді ядролық режимдегі виртуалды адрестік кеңістікті азайтпайды. 32 биттік қолданбалар x64 Windows-та жұмыс істеуі мүмкін, тіпті олар x86 64-ке қайта компиляцияланбаса да. 32 және 64 биттік қолданбалар, егер олар "үлкен адреспен" байланысты болмаса, 2 ГБ виртуалды адрес кеңістігімен шектеледі. 128 ГиБ (Windows XP/Vista), 192 ГиБ (Windows 7), 512 ГиБ (Windows 8), 1 ТиБ (Windows Server 2003), 2 ТиБ (Windows Server 2008/Windows 10), 4 ТиБ (Windows Server 2012) немесе 24 ТиБ (Windows Server 2016/2019) физикалық кездейсоқ сәйкес жадтың (RAM) пайдалану мүмкіндігі. LLP64 деректер моделі: C/C++ тілінде "int" және "long" типтері 32 биттік, "long long" типтері 64 биттік, ал көрсеткіштер мен көрсеткіштерден алынған типтері 64 биттік. Ядролық режимдегі құрылғы драйверлері 64 биттік нұсқалар болуы керек; 64 биттік операциялық жүйеде 32 биттік ядролық режимдегі орындалатын файлдарды орындаудың жолы жоқ. Пайдаланушы режиміндегі құрылғы драйверлері 32 немесе 64 бит болуы мүмкін. 16 биттік Windows (Win16) және DOS бағдарламалары виртуалды 8086 режимін пайдалану мүмкіндігіне сүйенген виртуалды DOS машинасының (NTVDM) кіші жүйесін алып тастаудан кейін Windows-тың x86 64 нұсқаларында жұмыс істемейді. Ұзақ режимде жұмыс істеп тұрған кезде виртуалды 8086 режиміне кіруге болмайды. NX (No Execute) бетін қорғау функциясының толық іске асырылуы. Бұл Windows-тың соңғы 32 биттік нұсқаларында да жүзеге асырылады, егер олар PAE режимінде басталса. Windows NT отбасының x86 нұсқаларында FS сегмент дескрипторының орнына GS сегмент дескрипторы екі операциялық жүйеге анықталатын құрылымға сілтеме жасау үшін қолданылады: пайдаланушы режиміндегі Сыр Information Block (NT TIB) және ядролық режимдегі Процессорды басқару аймағы (KPCR). Мысалы, пайдаланушы режимінде GS:0 - бұл Сыр Information Block-тың бірінші мүшесінің мекенжайы. Бұл конвенцияны сақтау x86 64 портын жеңілдетті, бірақ AMD-ден FS және GS сегменттерінің функциясын ұзақ режимде сақтауды талап етті, тіпті сегментті адрестеудің өзі қазіргі заманғы операциялық жүйелерде қолданылмайды. (Broadwell-ден бастап Intel процессорларында да қол жетімді.) Кейбір компоненттер, мысалы Jet Database Engine және Data Access Objects 64 биттік архитектураларға, мысалы x86 64 және IA 64 портталмайды. Microsoft Visual Studio тек 64 бит Microsoft Windows-та ғана орындалатын x86 64 архитектурасын немесе 32 бит Microsoft Windows-та 32 бит бағдарлама ретінде орындалатын IA 32 архитектурасын мақсат етіп құрастыруға болады, немесе 64 бит Microsoft Windows-та WoW64 эмуляция режимінде. Басқарылатын қолданбалар IA 32, x86 64 немесе AnyCPU режимдерінде құрастырылуы мүмкін. Алғашқы екі режимде жасалған бағдарламалық қамтамасыз ету өздерінің IA 32 немесе x86 64 кодты аналогтары сияқты әрекет етеді; AnyCPU режимін қолданған кезде, Microsoft Windows-тың 32 биттік нұсқаларындағы қолданбалар 32 биттік қолданбалар ретінде, ал олар Microsoft Windows-тың 64 биттік нұсқаларында 64 биттік қолданба ретінде жұмыс істейді.
8 TiB of virtual address space per process, accessible from both user mode and kernel mode, referred to as the user mode address space. An x64 program can use all of this, subject to backing store limits on the system, and provided it is linked with the "large address aware" option, which is present by default. This is a 4096 fold increase over the default 2 GiB user mode virtual address space offered by 32 bit Windows. 8 TiB of kernel mode virtual address space for the operating system. Under Windows 8.1 and Windows Server 2012 R2, both user mode and kernel mode virtual address spaces have been extended to 128 TiB. Unlike the use of the /3GiB boot option on x86, this does not reduce the kernel mode virtual address space available to the operating system. 32 bit applications can, therefore, benefit from running on x64 Windows even if they are not recompiled for x86 64. Both 32 and 64 bit applications, if not linked with "large address aware", are limited to 2 GiB of virtual address space. Ability to use up to 128 GiB (Windows XP/Vista), 192 GiB (Windows 7), 512 GiB (Windows 8), 1 TiB (Windows Server 2003), 2 TiB (Windows Server 2008/Windows 10), 4 TiB (Windows Server 2012), or 24 TiB (Windows Server 2016/2019) of physical random access memory (RAM). LLP64 data model: in C/C++, "int" and "long" types are 32 bits wide, "long long" is 64 bits, while pointers and types derived from pointers are 64 bits wide. Kernel mode device drivers must be 64 bit versions; there is no way to run 32 bit kernel mode executables within the 64 bit operating system. User mode device drivers can be either 32 bit or 64 bit. 16 bit Windows (Win16) and DOS applications will not run on x86 64 versions of Windows due to the removal of the virtual DOS machine subsystem (NTVDM) which relied upon the ability to use virtual 8086 mode. Virtual 8086 mode cannot be entered while running in long mode. Full implementation of the NX (No Execute) page protection feature. This is also implemented on recent 32 bit versions of Windows when they are started in PAE mode. Instead of FS segment descriptor on x86 versions of the Windows NT family, GS segment descriptor is used to point to two operating system defined structures: Thread Information Block (NT TIB) in user mode and Processor Control Region (KPCR) in kernel mode. Thus, for example, in user mode GS:0 is the address of the first member of the Thread Information Block. Maintaining this convention made the x86 64 port easier, but required AMD to retain the function of the FS and GS segments in long mode – even though segmented addressing per se is not really used by any modern operating system. which are also supported on Intel processors as of Broadwell.) Some components like Jet Database Engine and Data Access Objects will not be ported to 64 bit architectures such as x86 64 and IA 64. Microsoft Visual Studio can compile native applications to target either the x86 64 architecture, which can run only on 64 bit Microsoft Windows, or the IA 32 architecture, which can run as a 32 bit application on 32 bit Microsoft Windows or 64 bit Microsoft Windows in WoW64 emulation mode. Managed applications can be compiled either in IA 32, x86 64 or AnyCPU modes. Software created in the first two modes behave like their IA 32 or x86 64 native code counterparts respectively; When using the AnyCPU mode, however, applications in 32 bit versions of Microsoft Windows run as 32 bit applications, while they run as a 64 bit application in 64 bit editions of Microsoft Windows.
Видео ойын консольдары
PlayStation 4 және Xbox One, сондай-ақ осы консольдардың барлық түрлері Jaguar микроархитектурасына негізделген AMD x86 64 процессорларын қолданады. Жүйелік бағдарламалық құралдар мен ойындар x86 64 кодында жазылған; ескі x86 коды қолданылмайды. Қазіргі буын, яғни PlayStation 5 және Xbox Series X мен Series S консольдері де Zen 2 микроархитектурасына негізделген AMD x86 64 процессорларын қолданады. Steam Deck компьютер саналғанымен, ол Zen 2 микроархитектурасына негізделген арнайы AMD x86 64 үдетілген өңдеу бірлігін (APU) пайдаланады.