Skip to main content
91 votes
Accepted

Why is 'H' / 72 / 0x48 the second most common byte in executables?

That would be the 64 bit operand size prefix of amd64 machine code instructions. You'll notice it only happens on amd64 executables. If you compare on the /bin/* of http://ftp.debian.org/debian/pool/...
Stéphane Chazelas's user avatar
59 votes
Accepted

Porting Linux to another platform requirements

Even though most of the code in the Linux kernel is written in C, there are still many parts of that code that are very specific to the platform where it's running and need to account for that. One ...
filbranden's user avatar
  • 22.6k
22 votes

Modern OS on Ancient Hardware (i486SX, 8 MB of RAM)

Provided you get the possibility to cross-compile on whatever other system, the only solution I know is to… do it yourself from sources, you will need : The linux kernel. the 5.4 version should fit. ...
MC68020's user avatar
  • 8,617
17 votes

Modern OS on Ancient Hardware (i486SX, 8 MB of RAM)

FreeBSD support 80486 and onward CPUs Arch Linux 32-bit still support i486 processor for most non-graphical packages. You may need to do some tweak to use sf. Update: Read this Retrocomputing SE ...
Abdullah Ibn Fulan's user avatar
12 votes
Accepted

How to mitigate the Spectre and Meltdown vulnerabilities on Linux systems?

Alan Cox shared a link from AMD's blog: https://www.amd.com/en/corporate/speculative-execution Variant One: Bounds Check Bypass Resolved by software / OS updates to be made available by system ...
Carlos Pasqualini's user avatar
11 votes

How to mitigate the Spectre and Meltdown vulnerabilities on Linux systems?

January 27, 2018 Intel Microcode breaks some systems The Intel Microcode Update 2018-01-08 to address speculative execution branching security holes broke some systems. This effected many Ubuntu ...
WinEunuuchs2Unix's user avatar
11 votes
Accepted

What does physical address 0 in x86 Linux contain?

Whatever your firmware left it containing. On an ideal modern system, the processor never enters real mode at all, as I explained in this SU Q&A titled: What mode do modern 64-bit Intel chip PCs ...
JdeBP's user avatar
  • 71.9k
11 votes

Porting Linux to another platform requirements

In addition to porting the Linux kernel, you will need to define the application binary interface (ABI) for "user space" programs and port the lowest layers of the user space software stack. Linux is ...
zwol's user avatar
  • 7,509
11 votes
Accepted

What is the point of the kernel reserving CONFIG_X86_RESERVE_LOW memory for the BIOS?

You should see a longer help text for this config option. It offers two reasons. config X86_RESERVE_LOW int "Amount of low memory, in kilobytes, to reserve for the BIOS" default 64 range 4 ...
sourcejedi's user avatar
  • 53.5k
10 votes
Accepted

Why do Linux world use the term i386 instead of x86?

i386, or 80386, was the first 32-bit processor. When it was introduced, the word i386 is started to be using in many places, including in OSs and compilers, which made it impossible or very difficult ...
Bertram Gilfoyle's user avatar
10 votes

Is it possible to run x86 executable on ARM?

Debian has multiarch support which means that you can install and run programs built for one architecture on other architectures. However, you need to take the following into consideration: As the ...
Kapil's user avatar
  • 341
10 votes

Modern OS on Ancient Hardware (i486SX, 8 MB of RAM)

Abdullah Ibn Fulan’s answer gives pointers to BSDs and Linux distributions which support your CPU, but you’ll find that 8MiB of RAM is too little to do anything useful with a modern system. Another ...
Stephen Kitt's user avatar
9 votes
Accepted

GNU Linker differences between the different 32bit emulation modes?

The “emulation” selects different linker scripts; you’ll find the scripts themselves in /usr/lib/ldscripts on your system. The emulations you’ve listed correspond to elf32_x86_64: ELF for x64-32, aka ...
Stephen Kitt's user avatar
9 votes

Modern OS on Ancient Hardware (i486SX, 8 MB of RAM)

MC68020 suggested you build your own Linux system by cross-compiling from sources. I do not know whether this is the best solution for you but, if you are going to explore this route, I suggest you ...
Edgar Bonet's user avatar
8 votes
Accepted

82MB of "reserved memory" on 512MB (x86) system

The SWIOTLB is being enabled on your system. By default this reserves 64M RAM. It is only supposed to be needed if you have more than 4G RAM, and cannot use a hardware IOMMU, or if you are running ...
sourcejedi's user avatar
  • 53.5k
8 votes

Is it possible to run x86 executable on ARM?

Each architecture speaks its own hardware language so of course ARM CPUs can only run ARM binaries natively. If you want to run binaries for another architecture you need to use an emulator. The most ...
phuclv's user avatar
  • 2,411
8 votes

Modern OS on Ancient Hardware (i486SX, 8 MB of RAM)

Here's a nice overview of "light" Linux distros: https://en.wikipedia.org/wiki/Light-weight_Linux_distribution I've just tried Damn Small Linux and unfortunately it only works when you have ...
Artem S. Tashkinov's user avatar
8 votes
Accepted

Cannot remove architecture i386

You need to remove them simultaneously, and force their removal in spite of their “protected” status: dpkg --purge --force-remove-protected {gcc-12-base,libc6,libcrypt1,libgcc-s1}:i386
Stephen Kitt's user avatar
8 votes

Are Intel or AMD processors generally regarded as "better" for Linux

It's far from trivial unlike Marcus said. First, ADL/RPL and upcoming MTL CPUs are still poorly supported under Linux because of their heterogeneous architecture. In Windows the task scheduler can ...
Artem S. Tashkinov's user avatar
7 votes

What does physical address 0 in x86 Linux contain?

The original 8086 processor architecture (implemented as Real Mode in 80286+ processors) has no relevance for Linux, which operates in Protected Mode. There is no interrupt vector table at physical ...
Johan Myréen's user avatar
7 votes

What changes had to be made to linux kernel in order to support ryzen 5000 series processor?

Ryzen does indeed implement the x86-64 ISA, but it introduced a few changes which matter for a kernel such as Linux. Ryzen 5000 is part of Ryzen Gen 3, which uses a new “family” identifier, 19h (the ...
Stephen Kitt's user avatar
7 votes
Accepted

Why does exception in interrupt always lead to Kernel Panic?

I'm going to describe CPU behavior in a generic way. This explains general principles, but the details and terminology can vary a lot between CPU architectures. When a CPU is running code, certain bad ...
Gilles 'SO- stop being evil''s user avatar
6 votes

How to mitigate the Spectre and Meltdown vulnerabilities on Linux systems?

The fact that this is exploitable using JavaScript isn't the main point, and shouldn't be the main concern (although it is a major one because this way remote code can easily be executed on your ...
user68856's user avatar
6 votes

Why do Linux world use the term i386 instead of x86?

The original Intel 8086, 80186, and 80286 were 16-bit processors. However, the 80386 aka i386 was the first 32-bit processor in the x86 line. The most logical name to refer to the 32-bit x86 ...
Aaron Franke's user avatar
  • 1,055
6 votes
Accepted

How does the ELF loader determine the initial stack size?

I don't believe this question is really to do with ELF. As far as I know, ELF defines a way to "flat pack" a program image into files and then re-assemble it ready for first execution. The ...
Philip Couling's user avatar
6 votes
Accepted

How can I install i386/x86 shared libraries on freebsd?

You do not tell anything about your system so I'll just make the most likely guess. You are running a 64 bit system and have not installed any 32 bit libraries. The simplest method is to simply add ...
Claus Andersen's user avatar
6 votes

Differences between qemu-i386 and Linux IA32 emulation

The kernel config option CONFIG_IA32_EMULATION offers the possibility for an x86-64 kernel to support the execution of 32 bit binaries. This support essentially consists in offering entry points for ...
MC68020's user avatar
  • 8,617
5 votes

How to determine Linux kernel architecture?

There is also lscpu: display information about the CPU architecture lscpu Architektura: x86_64 Tryb(y) pracy CPU: 32-bit, 64-bit Kolejność bajtów: ...
Adam's user avatar
  • 1,019
5 votes

What do the flags in /proc/cpuinfo mean?

Inspired by the top answer by @Gilles, here is a bash script (requires bash v4 or higher, a network connection, and a recent wget) to annotate the current CPU flags: #! /bin/bash CPUFEATURES="$(...
Will's user avatar
  • 51

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