Glossary

From postmarketOS
Jump to: navigation, search

If you found a technical term related to this project that you had to research to understand, please add it here (alphabetically sorted).

See also:



Alpine Linux

The minimal Linux distribution which postmarketOS is based upon. Actually, pmOS only adds a few packages on top of it, and provides the installer and development environment - that is the plan, to keep following upstream as closely as possible. Alpine developers do not see their distribution as "GNU/Linux". That being said, it works a lot like a typical Desktop Linux distribution. You have your package manager, the typical shell commands, you can install typical Linux software, and so on.

android-msm

The Google-modified Linux version 3.4 kernel as base for all Qualcomm devices.

apk

One of the following:

  • Android app format
  • Alpine Linux package (also ends in .apk, but totally incompatible!), which are actually gzipped tar files
  • Alpine Linux package manager (apk)

boot.img

Android specific format, that usually consists of the Linux kernel (in modern versions with a dtb appended) and the initramfs. This file gets flashed to the boot or recovery partition of the Android device.

Variations:

  • Some old Samsung devices: boot.img is just a kernel with a baked in initramfs (more)
  • qcdt: boot.img has a dtb appended (instead of appending it to the kernel, more)

dtb

The binary device tree, this is a file containing a description of the hardware in the device, since phones don't have discoverable busses like x86 platforms. These are created from dts files in the kernel repository and produce a file called zImage-dtb for some Android kernels (older Android kernels do not generate a dtb file at all and have hardcoded the information directly in the kernel source). In mainline kernels, dtb files for all supported boards are created at once.

dri

Direct Rendering Infrastructure, the modern Linux kernel API for drawing to the screen.

drm/kvm

This is a slightly more complicated API than fbdev (and it replaces all fbdev functionality), it still provides a framebuffer but also has options to integrate hardware acceleration for 2D and 3D. All opensource fbdev drivers should be portable to a drm driver.

FDE

Full Disk Encryption, by default the rootfs created by pmbootstrap is fully encrypted with luks, preventing the phone data from being retrieved without the password if the device is turned off. This can optionally be disabled with --no-fde for debugging purposes.

fdt

Flat device tree. This is just another name for dtb[1]. unpackbootimg generates files ending in .fdt.

fbdev/framebuffer

Linux framebuffer a (more or less?) deprecated API from the Linux kernel that allows drawing to the screen. Newer drivers use the DRI API instead (see above). Android devices usually have drivers for framebuffer, instead of DRI.

IDA

The proprietary software Interactive Disassembler is state of the art in the reverse engineering scene. It can be used to reverse engineer all kinds of blobs where the source code is not available, such as closed-source firmware. Disassembling is hard, and there's a high learning curve involved. It also features a decompiler, which produces (non-working) C code for better understanding.

lk (little kernel)

lk is the kernel which fastboot runs on. At least all new-ish Qualcomm devices use lk and new-ish mediatek devices too

OpenRC

OpenRC is a dependency-based init for Unix-like systems. It is the default init system of Alpine Linux.

Weston

Weston is the reference implementation of a Wayland compositor. It has various backends that lets it run on Linux kernel modesetting and evdev input as well as under X11.

We have chosen Weston as a demo because we didn't want to use X11, as this is slowly dying. Also there's libweston, which might come in handy later (you can write your own desktop environment and inherit the hardware compatibility from weston). Weston is nice as a demo and useful at this moment of the development, but not usable as phone interface, so we'll need different desktop environments packaged sooner or later. See issue #62