В чем разница между стандартной загрузкой i386 и загрузкой amd64 Ubuntu 11.04? В настоящее время я использую i386 на машине amd, лучше ли будет работать моя система с загрузкой amd64? (моя машина работала под управлением Windows 7 64bit, но я не обратил на это внимания перед установкой Ubuntu).
architecture
обкрадывать
источник
источник
Ответы:
i386 относится к 32-разрядной версии, а amd64 (или x86_64) относится к 64-разрядной версии для процессоров Intel и AMD.
Википедия i386 запись:
Запись в Википедии x86_64:
Даже если у вас есть процессор Intel, вы должны использовать AMD64 для установки 64-битной версии на свой компьютер (он использует те же наборы инструкций).
Я настоятельно рекомендую использовать его. По большей части вы не заметите разницы, но для больших рабочих нагрузок (таких как редактирование видео, игры и т. Д.) Компьютер будет работать быстрее (у компьютера есть возможность вычислить 2 + 2 + 2 = 6 вместо необходимости выполнять 2 + 2 = 4 + 2 = 6 в примере). В мире Windows 32-битная ОС не позволит вам использовать более 3,5 ГБ ОЗУ на вашем компьютере (даже если у вас есть 8!). Вам необходимо использовать 64-битную ОС, чтобы полностью использовать всю оперативную память. Однако для Linux такого ограничения нет (спасибо, Ури).
Несмотря на это, мир изменился с 32-разрядных, и он только там поддерживает старые машины, которые не способны работать на 64-разрядных.
источник
Источник: https://superuser.com/questions/128482/ubuntu-amd64-vs-i386
источник
да, вы можете установить amd64 bit на 64-битный процессор Intel. AMD изобрела процессор набора битовых команд x86-64, так что название - это просто дань AMD.
источник
Разница между amd64 и i386 заключается в том, что amd64 является 64-разрядным, а i386 - 32-разрядным . Это ширина (в битах) регистров, доступных в ядре.
По сути, наибольшее число, которое 32-разрядное ядро процессора может обработать за один раз, составляет чуть более 4,29 миллиарда, в то время как 64-разрядное ядро может обрабатывать чуть более 18,44 миллиарда миллиардов.
Ядра современных ПК могут работать как 64-разрядный или 32-разрядный процессор, в зависимости от того, какую версию операционной системы вы установили.
64-разрядный код имеет тенденцию работать быстрее, чем 32-разрядный код, либо потому, что он может работать с большими числами на ходу, либо потому, что 64-разрядные ядра имеют больше регистров, поэтому могут хранить больше вещей без необходимости помещать их во внешнюю память. Хотя нет никакой гарантии, что 64-битный код будет работать быстрее, если код не был написан для использования дополнительных возможностей процессора.
Компиляция в 32-битной системе даст код, отличный от 64-битной системы. Вы можете доказать это, скомпилировав код ассемблера в двух системах. Предполагая, что ваш C-файл - myfile.c, попробуйте
gcc -S myfile.c
в обеих системах сравнить myfile.sХорошо написанный код для 32-разрядной системы должен компилироваться и выполняться в 64-разрядной системе, но не весь код написан хорошо. Многие программисты делают предположения о системе, которые могут быть неверными: например, ширина регистра или порядок байтов.
Без доступа к исходному коду трудно понять, в чем проблема, но
segmenation fault
указывает, что была сделана попытка получить доступ к памяти, которая не принадлежит программе. Это может, например, указывать на то, что mem_ptr является 32-битным указателем, что хорошо в 32-битной системе, но должно быть 64-битным указателем в 64-битной системе.источник
realloc(mem_ptr, 0)
Функция освобождения памяти , ранее выделяютсяmalloc
,calloc
и т.д. Если этот указатель был поврежден каким - либо образом , то вы пытаетесь освободить память вы не владеете , и это порождает ошибку сегментацииДа, вы можете использовать это .ISO. amd64 относится к архитектуре. AMD была первой, кто создал 64-битный процессор, так что я считаю, что он был назван так в то время, и название застряло. Это немного сбивает с толку, но amd64 означает 64-битный.
источник