Skip to content

Latest commit

 

History

History
197 lines (102 loc) · 12 KB

Glossary.md

File metadata and controls

197 lines (102 loc) · 12 KB

Glossary


Apple Silicon Devices

A

AGX: The internal name for Apple's GPU series.

AIC: Apple Interrupt Controller. Apple's custom ARM interrupt controller, because the standard GIC was too standard for Apple.

ANS: NVME/storage coprocessor.

AP: Application Processor. The main CPU running most of the OS. Contrast to SEP.

Apple File System (APFS): the default file system for Mac computers using macOS 10.13 or later, features strong encryption, space sharing, snapshots, fast directory sizing, and improved file system fundamentals.

APFS Container: a physical partition on a disk that can itself contain multiple filesystems (volumes), all dynamically sharing space. APFS Snapshot: a read-only copy-on-write snapshot of an APFS volume.

APFS Volume: a logical filesystem within an APFS container, that can be mounted on a directory.

ASC: Possible generic name for Coprocessors

ARM64(AKA AArch64): A 64-bit extension of the ARM architecture family being first introduced with the Armv8-A architecture.

B

BootROM: A read-only memory embedded in a chip such as the M1, which is the first code executed upon boot. See SecureROM.

C

Chicken Bits: Otherwise known as "kill bits", configuration bits used for disabling/enabling specific features.

countryd is a system in iOS that combines multiple data such as current GPS location, country code from the Wi-Fi router, and information obtained from the SIM card to determine the country the user is in. It was silently added with iOS 16.2, but is not being actively used for anything so far. It will most likely be active in iOS 17 for Sideloading apps in the EU only.

D

DART: Device Address Resolution Table. Apple's custom IOMMU.

DCP: Display Control Processor (probably). It enables support for displaying new frames without tearing, hardware sprites e.g. mouse cursor, switching resolutions, configuring multiple outputs, and more.

DFR: Dynamic Function Row. Apple's internal name for the Touch Bar.

DFU: Device Firmware Update. A USB mode that allows flashing a device's firmware over USB. Apple devices support this in the SecureROM, to allow the user to restore devices which have otherwise been bricked.

E

EEPROM: Electrically Erasable Programmable Read Only Memory. A type of re-writable memory, commonly available in sizes of a few kilobytes at most, more robust than NOR Flash. Often used for settings and very early boot code.

F

fuOS: Custom OS, speculated to mean "fully untrusted OS".

Fallback Recovery OS: 2nd copy of recovery OS accessed by double clicking and holding power button to boot. Unlike 1TR is unable to change security state(settings). Can be distinguished from Recovery OS 1TR by Utilities missing "Start Security Utility" option under Utilities.

G

Game Mode is a tool enabled in macOS 14, it prioritizes CPU and GPU power for the running title, thereby improving gaming hardware performance across the board.

GPT: GUID Partition Table: A partition table format created for EFI/UEFI and now used on most modern systems.

GXF: probably Guarded Execution Function. Lateral exception levels used to create a low-overhead hypervisor to protect pagetables and equally important structures from XNU itself.

H

HFS+: Hierarchical Filesystem+: Apple's previous filesystem, used for external storage. Not used for internal storage on M1 Macs.

I

I²C: Inter-Integrated Circuit. A 2-wire standard for communicating at low speed between chips on a board.

iBoot: Apple's bootloader. Can refer to iBoot1, iBoot1, or any of iBSS, iBEC, or even the SecureROM itself (which are all different builds of iBoot with different capabilities).

iBoot1: The first-stage iBoot located in NOR, loaded by the SecureROM. It chainloads the second-stage iBoot (iBoot2) on the OS Preboot partition, after doing early initialization and loading OS-independent firmwares. LLB is an older name for iBoot1.

iBoot2: The second-stage iBoot located in the OS Preboot partition. This version of iBoot is specific to each installed OS, and is packaged with the bundle of runtime firmwares the OS needs to run.

iBSS: iBoot Single Stage. Replacement for the first-stage iBoot (iBoot1/LLB), loaded in the DFU boot flow when the NOR is corrupted.

iBEC: iBoot Epoch Change. Replacement for the second-stage iBoot, loaded in the DFU boot flow.

IOMMU: I/O Memory Management Unit, a more general term for Apple's DART.

IOKit: I/O Kit is Apple's device driver framework for XNU (Apple's operating system kernel).

IPI: Inter-processor interupt. An interrupt used by one processor to interrupt another.

iSC: iBoot System Container. A disk partition (usually first on the internal SSD) containing the system wide boot data. (See SW:Storage)

J

JTAG: Joint Test Action Group. Actually refers to a debugging interface released by that group, a 4/5-wire interface to debug chips and CPUs at the hardware level.

K

kASLR: kernel Address Space Location Randomization: Linux kernel feature randomizes where the kernel code is placed in memory at boot time. Disabled by specifying nokaslr boot flag.

kcOS: OS with a custom kernel cache.

Kernel cache: A bundle of the kernel and its extensions, optionally encrypted.

kmutil macOS Kernel Management utility for managing kernel extensions (kexts). L

LLB: Low Level Bootloader, an older name for iBoot1 inherited from iOS platforms.

M

Mux: Multiplexer, a device that can connect one of several things to a single connection, such as switching one set of pins between USB, UART, and SWD modes.

Mini - Custom bootloader for internal investigation. May or may not support booting from SSD.

N

NAND: Not-AND is a type of logic gate, but normally refers to a type of Flash memory, which is the one used on all modern high-capacity Flash-based storage such as SD cards and SSDs, but also comes in bare chips.

NOR: Not-OR. is a type of logic gate, but normally refers to a type of Flash memory, which is only used for low-capacity applications (up to a few megabytes at most). More robust than NAND. Usually comes in bare 8-pin chips these days.

NVRAM: Non-Volatile RAM. The name is obsolete, it just means a list of key=value parameters stored in a Mac for boot configuration. Akin to UEFI variables.

O

1TR: One True RecoveryOS. This is what RecoveryOS is called when you boot it by holding down the power button. This means you have asserted physical presence and you are running a fully Apple-trusted recovery environment, which gives you special powers, like the ability to install a custom OS. You get root access, but you can only run software signed by Apple, and if FileVault is enabled you first need to authenticate.

OpticID, is an Apple AR version of an Apple's FaceID biometric recognition and authorization technology, that uses complex algorithms to process iris data on the Vision Pro Headset.

P

PMGR: Power manager.

R

RecoveryOS: The recovery environment, which can either be a recovery image paired to an OS install (located inside an APFS subvolume) or the global recovery image installed in the last APFS container on disk. macOS 11.x uses the global image by default, while macOS 12.0 and newer uses a paired recoveryOS.

RestoreOS: The restore environment, loaded onto the device when "reviving" it through DFU mode by Apple Configurator.

ROM: is an acronym for Read-Only Memory. It refers to computer memory chips containing permanent or semi-permanent data.

RTKit: Apple's proprietary real-time operating system. Most of the accelerators (AGX, ANE, AOP, DCP, AVE, PMP) run RTKit on an internal processor. The string "RTKSTACKRTKSTACK" is characteristic of a firmware containing RTKit.

RTOS: Real-time operating system.

S

SBU: Sideband Use. Two pins on Type C connectors free to be used for random stuff, not defined by the Type C standard itself.

SecureROM: The BootROM of the M1. This is in charge of reading iBoot1 from NOR and passing control to it, or falling back to DFU mode.

SEP: Secure Enclave Processor. The M1's built-in HSM/TPM/etc device. Handles Touch ID and most crypto, as well as boot policy decisions. Harmless to Linux, but we can use its features if we want to. Contrast to AP.

SFR: System Firmware and Recovery, the collection of firmware and the recovery image shared by all OSes installed on the system, including components in NOR (like iBoot1), the iBoot System Container, the System Recovery partition, and external Flash memories and other miscellaneous locations. SFR always goes forward in version, never backwards (other than via a full wipe).

SIP: System Integrity Protection. Also called "rootless", where the macOS kernel stops even root from doing some things.

SMC: System Management Controller: a piece of hardware handling access to such things as temperature sensors, voltage/power meters, battery status, fan status, and the LCD backlight and lid switch.

SOP: Start Of Packet. Used to differentiate packet types in USB-PD. SOP for normal comms, SOP' and SOP" to talk to built-in chips in a cable, SOP'DEBUG and SOP"DEBUG for custom vendor specific things like Apple VDMs.

SPI: Serial Peripheral Interface. A 4-wire standard for communicating at low speed between chips on a board.

SPMI: System Power Management Interface from MIPI Alliance: 2-wire bi-directional interface, Multi master(up to 4), Multi slave(up to 16), 32KHz to 26MHz. Please see System Power Management Interface.

SPRR: probably Shadow Permission Remap Registers. It turns the normal page permission attributes (AP,PXN,UXN) into an index to a separate table. This new table then determines the real page permissions. Also disallows pages that writeable and executable at the same time.

SWD: Serial Wire Debug. A 2-pin interface used for debugging ARM cores, like JTAG over fewer pins. Used on Apple devices, but inaccessible (for the main CPU/SoC) in production devices due to security restrictions.

T

TBT: Thunderbolt Technology.

U

UART: Universal Asynchronous Receiver Transmitter. The hardware behind a serial port.

USC: Unified shader core. A shader core supporting all shader types (vertex, fragment, compute). AGX is a unified architecture, so this just refers to a shader core.

USB-PD: USB Power Delivery. A standard for side-band communications over USB Type C (we won't talk about the older standard for our own sanity). This is used for things like detecting what kind of cable is used, connector orientation, configuring the supply voltage, and switching to non-USB modes.

UFS-based multichip packages (uMCPs) is a process that takes advantage of the ultra-fast Universal Flash Storage (UFS) controller to provide big performance and power savings in a small footprint for slim designs. Available in 10 GB or 12 GB memory modules.

V

VBUS: USB pin delivering power. Defaults to 5V, can go as high as 20V with USB-PD.

VDM: Vendor Defined Message. Used for both USB Alternate Mode (not actually proprietary) and vendor-proprietary commands over USB-PD. Apple uses these to configure special modes on their Type C ports.

VHE: Virtual Host Extensions. Extra Registers to allow more efficient switching between OS/VMs/User-space. See ARM VHE explanation.

visionOS is Apple's iPadOS/iOS-like Operating System for their Vision Pro Headset.

X

XNU: Apple's operating system kernel for macOS, iOS, iPadOS, watchOS, tvOS and so on. "XNU" is an abbreviation for "X is not Unix".