LinuxCommandLibrary
GitHubF-DroidGoogle Play Store

i386

run a program with the 32-bit x86 (i386) personality — alias of setarch i386

TLDR

This command is an alias of setarch i386. See:
$ tldr setarch
copy
Run a shell under the i386 personality
$ i386
copy
Run a command under the i386 personality
$ i386 [command] [args]
copy
Report an i386 uname to a child process
$ i386 uname -m
copy
Disable address-space layout randomization in the child
$ i386 -R [command]
copy

SYNOPSIS

i386 [options] [program [arguments]]

DESCRIPTION

i386 is a convenience name for `setarch i386` — it tweaks the Linux personality of the child process so that `uname -m` reports `i386` and address-layout quirks match a 32-bit x86 system. It does not install 32-bit libraries or run non-native binaries; it only changes how the kernel reports architecture and optionally disables ASLR, READIMPLIESEXEC, and similar flags.Without arguments, `i386` starts `$SHELL` under the modified personality. Any flags accepted by `setarch` (`-R` disable ASLR, `-F` FDPICFUNCPTRS, `-Z` MMAPPAGEZERO, `-L` ADDRCOMPATLAYOUT, `-X` READIMPLIESEXEC, `-B` ADDRNO_RANDOMIZE, etc.) work the same here.

CAVEATS

Only changes the reported architecture and personality flags — it does not let 64-bit kernels run 32-bit binaries on their own; you still need 32-bit multiarch/multilib support. Some distributions no longer ship the `i386` symlink; use `setarch i386` directly if the shortcut is missing.

SEE ALSO

setarch(8), linux32(8), uname(1), personality(2)

Copied to clipboard
Kai