Hot answers tagged

30

Native support Since Ubuntu 11.04 and Debian wheezy (7.0), Debian and Ubuntu have multiarch support: you can mix x86_32 (i386) and x86_64 (amd64) packages on the same system in a straightforward way. This is known as multiarch support See warl0ck's answer for more details. In older releases, Debian and Ubuntu ship with a number of 32-bit libraries on amd64....


26

Because AMD was the first one to release 64-bit x86 (x86-64) CPUs. the AMD64 architecture was positioned by AMD from the beginning as an evolutionary way to add 64-bit computing capabilities to the existing x86 architecture, as opposed to Intel's approach of creating an entirely new 64-bit architecture with IA-64. The first AMD64-based processor, ...


26

There are several gradations, since you can run a 32-bit or mixed operating system on a 64-bit-capable CPU. See 64-bit kernel, but all 32-bit ELF executable running processes, how is this? for a detailed discussion (written for x86, but most of it applies to arm as well). You can find the processor model in /proc/cpuinfo. For example: $ cat /proc/cpuinfo ...


19

Since Ubuntu 11.04 (natty) and Debian 7.0 (wheezy) introduced multiarch support, 32-bit and 64-bit libraries can coexist on one system. To install a 32-bit library libXX, first add the necessary 32bit architecture to your system: For Ubuntu: sudo dpkg --foreign-architecture i386 And for Debian: sudo dpkg --add-architecture i386 Then install the 32bit ...


15

The short answer: Variables do not take double the space in 64-bit vs 32-bit software. The potential memory gain from switching to a 32-bit OS will not be worth the effort. The long answer: Numbers can be larger yes, but that doesn't mean they will be. Also this applies to numbers, not strings, and strings are (generally) what consume the most amount of ...


14

AMD intially implemented x86-64, before Intel. For this reason, most distros (and other OSs such as OpenBSD) did a first release when it was still AMD only, or renaming to x86-64 wasn't considered worth the effort. I think one of the another contributing factors to this naming confusion was a conflict between Intel and AMD over naming. Intel had an identity ...


13

From Wikipedia: “In 2004, the initial 32-bit x86 instruction set of the Pentium 4 microprocessors was extended by the 64-bit x86-64 set.” Your /proc/cpuinfo output shows flags: … lm …. The flag lm stands for “long mode“ which means 64-Bit extension. Thus, you have indeed a 64-bit processor.


13

From the output you've given, you are trying to compile a 32-bit build of apache on a 64 bit system. This is from the intput to configure here: --host=x86_32-unknown-linux-gnu host_alias=x86_32-unknown-linux-gnu CFLAGS=-m32 LDFLAGS=-m32 Also see the output lines confirming this: configure:3629: checking build system type configure:3643: result: x86_64-...


12

Type grep lm /proc/cpuinfo (lm stands for long mode) Or just try booting with a 64-bit OS: if you do not have 64-bit support, it will say so and not boot. lm: Long Mode (x86-64: amd64, also known as Intel 64, i.e. 64-bit capable)


11

32-bit x86 CPUs (since the Pentuim Pro) support up to 64 GiB RAM (using PAE). (The "CONFIG_HIGHMEM64G" kernel option needs to be set to actually use it). Each application can only see 4 GiB at a time (and some of that 4GiB must be used for other things, the exact amount depending on the "Memory split" kernel setting) 64-bit operating systems have some other ...


11

The 64bit kernel can be installed on Debian 32bit. You can see that the amd64 kernel is available for 32bit Debian on it's package page. This can be used as an alternative to using a PAE enabled kernel to support more than 4G of total RAM. Note that 32bit binaries still can not access more than roughly 3G of RAM per process.


10

All processors that support the x64 instruction set (also known as x86_64 or amd64) also support the x86 instruction set (also known as i386 or i686, which are strictly speaking specific versions of x86). The same goes for ARM A64 (the new 64-bit instruction set appearing in ARMv8) and A32 (the name for the “classic” 32-bit instruction set), for SPARC64 and ...


9

Most open-source software has been working in 64-bit for quite a while. For proprietary software, many 64-bit applications are already available, but sometimes they don't work as well as they do in 32-bit. Flash, proprietary codecs etc... should work. Maybe if you have any hardware which requires proprietary drivers - and even then, most of those drivers (...


8

With regard to eclipse not being able to find adb, etc, this because without the 32-bit shared libraries needed to run them on the system, they are not executable. With regard to 32-bit libraries, the situation is fairly simple: you just need to install the appropriate 32-bit libs. On the 64-bit fedora 17 install I have here, the primary 64-bit libraries ...


7

If your laptop has more than 3.5GB of RAM installed, you will want to install a 64 bit edition in order to take advantage of the full amount of RAM. General use of x64 operating systems is becoming more and more widespread. I run a x64 bit version of Linux on my desktop and have no issues. If you install a x64 bit version, however, there are some caveats: ...


7

I assume that you're wondering about amd64 vs i386, the 64-bit and 32-bit architectures on PCs (there's also a choice of word size on Sparc64). According to the official platform description: The only major shortcoming at this time is that the kernel debugger ddb is somewhat poor. Another mentioned limitation is that if your processor lacks the NX bit ...


7

Practically no. Note though that 64 and 32 bit application don't share libraries, so running one instance of 32 bit application may cause loading of many shared libraries "again".


7

I don't know about Mint, but I don't think many distributions support that kind of upgrade. Technically it shouldn't be impossible, but there are some pitfalls that will leave you with an unusable system. It's probably easier to do a new install.


6

TL;DR: It is doable, but complicated. I have outlined an alternative at the bottom. Now the long description, and take it with a grain of salt, as I may not have taken the best route: It is possible, and here is what I did for the last two nights: There is a wiki entry describing the old-school way without multiarch support. It is helpful for fixing broken ...


6

The other answers here show that while this is theoretically possible, it is very complex and probably not worth the effort. You can, however, do a clean install and make the process relatively painless if you keep your $HOME the same. The general process will be Make a backup of your list of installed packages and the list of automatically-installed ...


6

You have to install the 32 bit glibc: # yum install glibc.i686 This removes the misleading 'no such file or directory' message when trying to execute a 32 bit binary. With that the 64 bit Fedora system is capable of executing 32 bit binaries. This also removes the misleading 'not a dynamic executable' message of ldd when calling ldd on a 32 bit dynamic ...


6

All your ram is accessible even with a 32bit kernel. The main difference is probably that any application cannot address more than 3gb of memory. I don't know if you really use such applications (usually databases, or graphics applications), otherwise you may ignore the problem. Please note that 64bits applications requires more memory (because registers and ...


5

I choose 32-bit over 64-bit installs for systems with less than 4gig of ram. 64-bit DOES use more memory, due to the nature of it's pointers, this ranges between roughly 10 and 50 megabytes extra for a vanilla LAMP install. On a system with limited ram, for example 256meg, this can be a sizeable chunk. Technically, with PAE the same applies upto 64gig, ...


5

In most distributions there is a PAE version of the Kernel. This kind of Kernel will let you address up to 64GB RAM with a 32-bit distribution. You will find problems with some applications not available in 64 bits, like flash. And with other applications you will have to install x64 and i386 libraries duplicating the amount of necessary space. Another ...


5

You need two things to cross-compile: a compiler that can generate code for the target architecture, and the static libraries (*.a) for the target architecture. Install at least the libc6-dev-i386 packages, and possibly other lib32.*-dev packages. The libc6-dev-i386 also pulls in the components of gcc needed for cross-compilation in the gcc-multilib package ...


5

Both VMware and VirtualBox can run a 64-bit virtual machine on a 32-bit host system, if you have a 64-bit processor. For VirtualBox, your processor must have hardware virtualization support (either AMD-V or VT-x, shown as svm and vmx in the flags: line of /proc/cpuinfo under Linux); most x86-64 processors except for the earlier ones, and in particular I ...


5

Gilles points out that I was mistaken about VirtualBox and VMware supporting 64-bit guests on 32-bit hosts. VirtualBox is available in the Ubuntu repositories in the virtualbox-ose package. VirtualBox's documentation provides the following advice regarding running 64-bit operating systems: VirtualBox supports 64-bit guest operating systems, even on ...


5

The main benefit to 64-bit systems is the increased memory address space which is limited to 4GB with 32-bit systems. This question on the Superuser SE might be helpful: 32-bit vs. 64-bit systems. Also, here's an informal exploration of 32-vs-64 bit OSes on LifeHacker (though it focuses on Windows, much of it applies I think)


5

You can't do that directly on Linux on x86_64 with a 32bit kernel. You need a 64bit kernel to be able to run 64bit code. (Note: kernel. You can have 32bit userland running on a 64bit kernel, and install support for 64bit binaries. How easy this is depends on the distribution. Example here for Debian.) Some virtualization software is able to do that (with ...


5

As richard points out, armv7 variants are all 32-bit, so there is no redundant label armv7-32, etc. On a linux system, you can easily, although not truly definitively, check by examining a common executable: > which bash /bin/bash > file /bin/bash /bin/bash: ELF 32-bit LSB executable, ARM, version 1 (SYSV) ... I say "not definitively" because it is ...



Only top voted, non community-wiki answers of a minimum length are eligible