32 vs 64 bit discussion; should we recommend 64 bit now?

Registered by Bryan Quigley on 2013-08-20

Let's discuss recommending 64 bit by default in 13.10 Desktop on the Ubuntu website. If we have time we can also discuss the long term plan for 32 bit and how we want to get there.

See Pad for details/agenda: http://pad.ubuntu.com/uds-1308-client-s-32v64-bit

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
None
Direction:
Needs approval
Assignee:
None
Definition:
Discussion
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

* 1
What others are doing
Ubuntu server 13.04 only shows 64 bit image on website. Requires you find 32 bit images yourself.
Fedora only shows 64 bit images on main page. Must navigate to more options to find 32 bit images. (I believe this is new in Fedora 19, but not positive)

Most other distros show both 32 bit/ 64 bit images and say to make a choice with no preference given.
Debian shows multiarch installer as the default.

The high-volume OEMs ship only the 64-bit edition of Ubuntu

Issues with 32 bit recommended (current)
+ Doesn't work on new hardware

   - (sounds FALSE / FUD) without changing the BIOS to disable UEFI. Is that not true? (I don't actually have a EUFI/Windows 8 compatible machine) - I do, this is false. All of them fallback to BIOS boot, fastpath boot may get in the way but if usb/CDs boot, ubuntu installer will boot & install and work.
Why then do say this on the website, "If you have a PC with the Windows 8 logo or UEFI firmware, choose the 64-bit download. Read more ›" Usability, people don't know they have a 64bit machine. But that is a good threshold they do.
I still don't think that is true: see the read more or this bug: https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1025555
I helped writing that warning on the website =) I am aware of the history. "Doesn't work" is too broad. Yes, 32bit installer doesn't boot in SecureBoot/UEFI mode, but it doesn't work on all 64bit machines, so far there haven't been any 64bit-only & without legacy mode available (as default or fallback)

+ If machine is 64 bit doesn't perform as well as it could
     - if one has <<4GB of RAM, it's actually best to run 32-bit user space, even to the point of installing 64bit UEFI & SB & kernel, but keep the OS 32-bit. For more than 4GB is where x32 comes in, in keeping 32 user space, yet have access to 64bit addressable memory.
     http://www.phoronix.com/scan.php?page=article&item=ubuntu_x86_1304&num=4

Current Status
win8+uefi warning to recommend 64bit download
32bit default in the drop down
64bit with extra text "(for newer machines)"

Issues with 64 bit recommended (proposed)
Doesn't work on old hardware
Doesn't work well on hardware with 1 GB ram or less
Gives littled advantage with <= 4GB

* 2 Key proposal
a. Leave it as is: 32 bit recommended with warning if you have a newer machine "If you have a PC with the Windows 8 logo or UEFI firmware, choose the 64-bit download"
b. Switch it to 64 bit recommended with warning if you have an older machine "If you have a 6+ year old PC, a 4+ year old netbook, or 1 GB of ram choose the 32 bit version.”

Additional Ideas (can be added to either key idea or done together)
c. Try to autodetect via browser strings if user is 64 bit.
        Issues: Many users will still browse with 32 bit version though.. We can only detect 64 bit for sure.
        has been proposed before, but people may not be downloading on the machine they will install.
d. Provide a default and instructions to determine which they need.

Discussion start on Ubuntu desktop: https://lists.ubuntu.com/archives/ubuntu-desktop/2013-August/004291.html
Survey results from Planet Ubuntu: http://bryanquigley.com/crazy-ideas/survey-results

ARM is still mostly a 32 bit ecosystem, transition to 64 bit is just starting. How will ARM platform be handled in the agressive roadmap listed below?
ARM is totally seperate. I'm only speaking to x86(_64) here.
Arm has dedicated download page, with an image per target device eg:
http://www.ubuntu.com/download/arm This is about intel 32v64 discussion of the default desktop cd download page.

(time permitting)
* 3 32 bit future

Most aggressive roadmap (library compatibility for running 32 bit applications would need to be maintained indefinitely and is not part of this):
13.10 - switch to 64 bit recommended (above proposal)
14.04 - 64 bit recommended
14.10 - Remove 32 bit from website (like in Ubuntu server - still generate images though)
15.04 -
15.10 -
16.04 - Last 32 bit LTS release, supported desktop/server until 2021.
16.10 - drop 32 bit desktop image generation

This doesn't make sense, 64bit insalls by default enable 32bit multiarch repository and a lot of proprietary software is 32bit only, and will not likely to move: Matlab, Flash, Lotus Notes, Webex, Banking applications, etc. Thus even if we don't have 32bit desktop images, 32bit archive is still used by every single 64bit Ubuntu installation. Wine.
 - Have these all been tested in a multi-arch enviornment?

Now you could replace 16.04 with any other LTS release (aka 18.04 or 20.04). One idea being that we should deemphasize the 32 bit version for at least a few releases before removing it entirely. Remember even this most aggressive time frame gives 7+ more years of 32 bit support.

Point of switch: when 64bit image (sb/uefi+bios) is more compatible than 32bit (bios-only), as neither is compatible across all computers.
If you have <<2gb than 32bit is better

* Will a hybrid 32 UEFI image break any machines? considering that older 32 bit machines don't work anyway (non-PAE)
* better wording to direct to non-default.
* adm64+mac merge?!

Getting information about machine distribution:
 * /proc/cpuinfo, 'lm' flag, tells you if it's 64-bit capable. Analyze this from errors.u.c?
 * make sure we check this against "running Unity", to exclude e.g. lubuntu

what image types will we ship ?

ACTIONS:
[bdmurray] work out how to query this from errors (once it's published)
[xnox] check if that's inline with whoopsie trust levels (error reporting, etc.)
[xnox] sru whoopsie/apport to give us info
[xnox] ... efi (/sys/firmware/efi present)
[xnox] ... SB (/sys/firmware/efi/efivars/db-d719b2cb-3d3a-4596-a3bc-dad00e67656f)
    is that actual SB key, or just the UUID of your db?!
[xnox] ... bios
[xnox] ... 32bit vs 64bit
[xnox] ... running unity
   Could we make this detect (any) desktop version?
   We can use DESKTOP_SESSION and/or XDG_CURRENT_DESKTOP. Examples:
$ env | grep DESKTOP_SESSION
DESKTOP_SESSION=GNOME

DESKTOP_SESSION=xubuntu
XDG_CURRENT_DESKTOP=XFCE

DESKTOP_SESSION=ubuntu-2d
XDG_CURRENT_DESKTOP=Unity

[slangasek] recommend 64-bit by default to the web team for 13.10

kill 32bit images at the end of the universe, that is EOL before 2038-01-19. So the 32.04 LTS is last call.

* sidenote for xnox - procenv

(?)

Work Items

Work items:
[bdmurray] work out how to query this from errors (once it's published): TODO
[xnox] check if that's inline with whoopsie trust levels (error reporting, etc.): TODO
[xnox] sru whoopsie/apport to give us info: TODO
[xnox] ... efi (/sys/firmware/efi present): TODO
[xnox] ... SB (/sys/firmware/efi/efivars/db-d719b2cb-3d3a-4596-a3bc-dad00e67656f): TODO
[xnox] ... bios: TODO
[xnox] ... 32bit vs 64bit: TODO
[xnox] ... running unity: TODO
[vorlon] recommend 64-bit by default to the web team for 13.10: DONE

This blueprint contains Public information 
Everyone can see this information.