Skip to content
Practice tests · 52 items

Systems, OS & Memory Safety practice test

How the kernel isolates processes, Unix permissions, setuid and capabilities, SELinux and AppArmor, Windows tokens and Active Directory, memory-corruption bugs and the mitigations against them, fuzzing, reverse engineering, and boot integrity: the systems layer every sandbox and agent runtime rests on. The pool for this topic holds 12 easy, 21 medium and 19 hard items. Each answer comes with its reasoning and a link to the question or concept page it was drawn from.

Configure a test
Topic
Difficulty
Questions
12 in this pool · about 7 min
Reveal answers
Sign in to startFree account required · retakes favour new items

Sample items with answers

easy · sample
What stops one process from reading another process's memory on a normal operating system?
✓Each process gets its own page tables, which only the kernel is allowed to change
The compiler inserts bounds checks around every pointer dereference, and the runtime aborts any access that leaves the program's own allocations
Memory belonging to other processes is encrypted with a per-process key by the CPU
Processes can read each other's memory, but the operating system logs every read

Isolation comes from virtual memory: the MMU translates addresses through the current process's page tables, and the kernel switches tables on every context switch. Bounds checks and encryption are not what provide it. Debugging interfaces are deliberate, access-checked exceptions.

easy · sample
A program running as root wants to open a file. In which processor mode does its own code run?
Kernel mode, because root is the highest privilege level on the system and its code is scheduled with ring 0 permissions
✓User mode; root is an identity the kernel checks, not a mode
Hypervisor mode, because root can manage virtual machines
It alternates between modes depending on the file's owner

Root's code runs in user mode like any program and asks the kernel through system calls. Root is allowed to ask for more, including loading kernel modules, which is how root reaches kernel code execution.

After the test

Choosing from options is easier than reasoning it out in front of a panel. These pages make you reason it out: