Should Ubuntu promote 64-bit images by default?

Registered by Steve Langasek on 2011-10-26

It's expected this cycle that Multiarch will provide superior 32-bit compatibility for any packages that previously required ia32-libs, as well as a scalable way to add compatibility for other libraries going forward, removing one of the main pain points for running 64-bit by default. Adobe has just released a supported 64-bit version of flashplugin, removing one of the main causes for users to need 32-bit compatibility on Linux anyway.

At the same time, the availability of UEFI only on our 64-bit images gives another compelling argument for running 64-bit instead of 32-bit, offering features like a fast UEFI boot instead of a slow BIOS POST and possibly secure boot capabilities (or possibly, the need to use UEFI to be bootable at all on certain secureboot-enabled hardware).

Should we switch to promoting 64-bit ISOs by default for 12.04 (on the website, in pressings, etc)? What other blockers remain?

Blueprint information

Status:
Not started
Approver:
Colin Watson
Priority:
Medium
Drafter:
Steve Langasek
Direction:
Approved
Assignee:
None
Definition:
Review
Series goal:
Accepted for precise
Implementation:
Unknown
Milestone target:
None

Whiteboard

https://bugs.launchpad.net/ubuntu-website-content/+bug/585940
Usability of 32-bit and 64-bit on same image
 - Too big, better things to do with space
Wouldn't be dropping 32-bit images entirely, just promoting 64-bit
Colin previously said we needed multiarch. We have it now
Memory overhead of 64-bit
 - 1G machine seems to struggle with 64-bit (power and performance); can handle 32-bit
 - Does "race-to-sleep" help? Don't believe so
Users of older computers might not realize they need 32-bit
 - Wouldn't be eliminating 32-bit
 - Bootup has reasonable error if you try 64-bit on a 32-bit only machine
 - Need to provide guidance
 - Better security tools in hardware than PAE
Maybe dropping non-PAE kernel? (non-PAE has no NX bit)
 - PAE by default is an alternative, as is 64-bit
 - May not be need for PAE kernel if 64-bit available
amd64+mac issue
 - Maverick had multi-catalog ISOs (multiple el torito images) for EFI
 - Some hardware (Macs in particular) can not boot multi-catalog ISO
   - (Mac prints "1", "2" with no keyboard driver)
 - amd64+mac is identical to amd64, but BIOS only
 - Matthew Garrett has evil solution using overlaying of MBR, GPT, and APM at beginning of CD image
   - But been working on syslinux, not xorriso
   - Need code in xorriso
Wubi -
 - Should that be 64-bit? On 32-bit Windows install?
 - Now download just the installer, not image, which could detect relevant things on the system
 - Windows x86_64 has different constraints than Linux
 - Detection of CPU type exposed in Windows Experience Index, so accessible to userspace
   - In registry
Can we guess target system from browser user-agent?
 - May want to let Wubi handle this case
Impact of decision:
 - Default of arch dropdown on http://www.ubuntu.com/download/ubuntu/download
 - What images get pressed
 - Etc.
OEM enabling 32-bit by default
HW certification 32-bit currently
 - But these decisions driven by tradition, lack of multiarch
Cross-grading out of scope
Need to discuss with copywriters about text for helping people with 32-bit hardware
 - Probably on the CD, on the physical CD sleeves and such
 - Downloading unusable 700M CD sucks
- Ubiquity has "upgrade" mode (save /home partition, use apt-clone)
Need data about how many people forced to use non-default option
User agent strings for UA-based detection: http://www.useragentstring.com/pages/Internet%20Explorer/
 - 64-bit generally includes "x86_64" on Linux; "WOW64" on Windows
 - Doesn't tell us 32-bit OS on 32-bit-only CPU
 - Need UI guidance if downloaded image selected based on machine *downloading* the image
 - May be resistance to non-static page
Loco teams would be good for canvassing requirement for 32-bit
Or OEM?
Can't draw conclusions from download numbers
Tablets going to be 32-bit - not relevant for ubuntu-desktop
Netbooks don't have CD drives
 - Will use usb-creator
LP bug reports?
Ubuntu Friendly?
Reach out to ubuntu-announce?
How much proprietary software will not work with multiarch?
 - People use 32-bit for binary software
 - Lotus Notes does not work on 64-bit - needs more multiarched libraries

Booting a 12.04 amd64 CD in a VM configured for 32-bit prints this message:
  This kernel requires an x86-64 CPU, but only detected an i686 CPU.
  Unable to boot - please use a kernel appropriate for your CPU.

Work items for precise-alpha-1:
[scottritchie] Figure out how to announce intentions to move to 64-bit by default, get feedback on whether it's acceptable: DONE
[vorlon] ensure the announcement and request for input also asks for information about 32-bit binary software that people need compatibility with via multiarch: DONE

Work items for ubuntu-12.04-beta-1:
[colin-king] measure power penalties from using 64-bit instead of 32-bit on a range of hardware: see http://zinc.canonical.com/~cking/power-benchmarking/blueprint-foundations-p-64bit-by-default/hpmini-and-x220-tests/results-3: DONE
[colin-king] measure performance penalty from using 64-bit instead of 32-bit on low-memory (1GB) systems: see http://zinc.canonical.com/~cking/power-benchmarking/blueprint-foundations-p-64bit-by-default/low-memory-systems/readme.txt: DONE
[ubuntu-installer] Make sure Ubiquity's "upgrade" mode works with "cross-grades" (64-bit cd put into 32-bit install): DONE
[ubuntu-installer] integrate as much support as possible into the standard image from amd64+mac, so that users can be pointed to the standard amd64 image: POSTPONED
[ubuntu-installer] make sure the message presented when booting a 64-bit image on a non-64-bit-capable machine is clear to users
[apulido] Generate report from Ubuntu Friendly's data source on prevalence of 32-bit CPUs

Work items for ubuntu-12.04-beta-2:
[vorlon] Revisit the text printed on the CDs to clarify the 64/32 distinction: TODO
[vorlon] Cezz would need to update this http://shop.canonical.com/product_info.php?products_id=915 if we want 64-bit instead: TODO

(?)

Work Items