























































































Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Focused on embedded Linux basics, this exam covers system architecture, bootloaders, kernel modules, device trees, root filesystem construction, cross-toolchains, debugging tools, and performance considerations. Candidates practice assembling embedded distributions, configuring hardware interfaces, resolving boot failures, and integrating custom applications.
Typology: Exams
1 / 95
This page cannot be seen from the preview
Don't miss anything!
























































































Question 1 Which Linux distribution is most commonly used as a base for Buildroot when creating minimal embedded root filesystems? A) Fedora B) Debian C) Yocto D) Ubuntu Answer: C Explanation: Buildroot can use Yocto’s metadata, but it ships its own minimal set of packages; Yocto is the reference distribution for many embedded projects. Question 2 When configuring a virtual machine for embedded development, which of the following settings is most important for accurate peripheral emulation? A) Number of CPU cores B) Amount of RAM C) Network bridge mode D) USB controller type Answer: D Explanation: USB controller type determines how USB peripherals (e.g., JTAG adapters) are presented to the guest OS. Question 3 The “Signed-off-by” line in a contribution patch is primarily used to satisfy which of the following? A) GPL compliance B) DCO (Developer Certificate of Origin)
C) CLA (Contributor License Agreement) D) OpenSSL licensing Answer: B Explanation: The Signed‑off‑by line certifies that the contributor agrees to the DCO. Question 4 In an embedded Linux project, staying close to mainline kernel sources is recommended because: A) Mainline kernels have smaller footprints. B) Mainline receives security patches and hardware support updates. C) Mainline kernels are always real‑time. D) Mainline kernels eliminate the need for device trees. Answer: B Explanation: Mainline receives continuous security fixes and new driver support, reducing maintenance effort. Question 5 Which characteristic distinguishes an embedded Linux system from a general‑purpose Linux desktop? A) Use of a monolithic kernel B) Presence of a graphical desktop environment C) Fixed resource constraints (CPU, memory, storage) D) Support for POSIX APIs Answer: C Explanation: Embedded systems are designed for limited resources, unlike general‑purpose desktops.
Answer: C Explanation: Right‑sizing focuses on reducing resources; dynamic loading from the internet increases complexity and size. Question 9 In the compiler triplet “arm‑none‑eabi”, the “none” component refers to: A) The CPU architecture B) The vendor identifier C) The operating system D) The Application Binary Interface Answer: B Explanation: The middle field of the triplet is the vendor; “none” indicates a generic vendor. Question 10 Which tool is specifically designed to automate the building of cross‑compilers from source? A) crosstool‑ng B) gcc‑cross C) buildroot‑cross D) yocto‑compiler Answer: A Explanation: crosstool‑ng automates configuration, compilation, and installation of cross‑toolchains. Question 11 When using Buildroot, which configuration file stores the list of selected packages? A) .config
B) .brc C) Config.in D) .buildrc Answer: A Explanation: Buildroot’s .config holds all user selections, similar to the kernel’s .config. Question 12 Yocto Project’s “bitbake” command performs which of the following actions? A) Compiles the Linux kernel only B) Generates a bootloader image C) Executes the task graph defined by recipes to build images D) Installs packages on the host system Answer: C Explanation: Bitbake parses recipes and runs tasks to produce target images. Question 13 Clang/LLVM is sometimes preferred over GCC for embedded builds because: A) It produces smaller binaries by default. B) It has better support for static analysis and sanitizers. C) It does not require a separate linker. D) It only supports ARM architectures. Answer: B Explanation: LLVM’s tooling includes powerful static analysis, which helps catch bugs early. Question 14
Explanation: bootcmd is executed automatically after the boot delay. Question 17 When booting a board over Ethernet using TFTP, which component is responsible for loading the kernel image into RAM? A) U‑Boot’s tftpboot command B) The kernel’s initramfs C) The device tree parser D) The bootloader’s NFS client Answer: A Explanation: tftpboot fetches the kernel via TFTP and places it in RAM. Question 18 Which of the following best describes a monolithic kernel? A) All drivers run in user space. B) Core services and device drivers execute in kernel space. C) The kernel is split into micro‑services communicating via messages. D) Kernel modules cannot be loaded at runtime. Answer: B Explanation: In a monolithic kernel, core services and drivers share the same address space. Question 19 The primary purpose of the Linux kernel’s “process scheduler” is to: A) Manage virtual memory paging B) Allocate CPU time slices to runnable tasks
C) Load device drivers during boot D) Provide networking stack services Answer: B Explanation: The scheduler decides which process runs on the CPU and for how long. Question 20 Which directory in the kernel source tree contains architecture‑specific code for ARM? A) arch/arm/ B) drivers/arm/ C) include/arm/ D) lib/arm/ Answer: A Explanation: arch/arm holds all ARM‑specific kernel implementation files. Question 21 During kernel configuration, which menu option enables the ability to load modules at runtime? A) Enable loadable kernel modules (LKMs) B) Static kernel compilation only C) Kernel preemption model D) Kernel debugging support Answer: A Explanation: Selecting “Enable loadable kernel modules” allows the kernel to accept .ko files after boot. Question 22
Question 25 Which file extension denotes a compiled Device Tree Blob? A) .dts B) .dtb C) .dtc D) .dtx Answer: B Explanation: .dtb is the binary representation loaded by the bootloader. Question 26 In a Device Tree source file, the “compatible” property is used to: A) Define the CPU architecture B) Specify which driver(s) can bind to the node C) Set the memory address of the device D) Indicate the firmware version Answer: B Explanation: The compatible string matches driver bindings in the kernel. Question 27 Which command in U‑Boot loads a Device Tree Blob from an SD card? A) load mmc 0:1 ${fdtaddr} /boot/myboard.dtb B) tftpboot ${fdtaddr} myboard.dtb C) fatload mmc 0:1 ${loadaddr} zImage D) bootm ${loadaddr} - ${fdtaddr}
Answer: A Explanation: load mmc reads a file from the SD card into RAM at the address stored in fdtaddr. Question 28 When a driver uses the Device Tree to obtain GPIO numbers, which kernel API is commonly called? A) of_get_gpio() B) gpio_request_one() C) devm_gpio_request_one() D) of_find_node_by_name() Answer: C Explanation: devm_gpio_request_one() simplifies acquisition of GPIOs described in DT. Question 29 A Linux kernel module that declares “MODULE_LICENSE("GPL”)” informs the kernel that: A) The module can use GPL‑only symbols. B) The module is proprietary. C) The module cannot be unloaded. D) The module is a built‑in driver. Answer: A Explanation: Declaring GPL license grants access to GPL‑only exported symbols. Question 30 Which of the following kernel macros is used to export a symbol for use by other modules? A) EXPORT_SYMBOL_GPL()
Question 33 BusyBox combines many utilities into a single binary. Which build option determines which applets are compiled in? A) CONFIG_BUSYBOX_APPS B) make menuconfig → BusyBox Settings → Applet selection C) BUSYBOX_FEATURES D) BUSYBOX_CONFIG_FILE Answer: B Explanation: The BusyBox configuration menu allows enabling or disabling individual applets. Question 34 When choosing a C library for an embedded system, musl is preferred over glibc because: A) musl provides a larger set of POSIX extensions. B) musl has a smaller footprint and deterministic behavior. C) musl supports dynamic linking only. D) musl requires no kernel headers. Answer: B Explanation: musl is lightweight and designed for static linking, making it suitable for constrained devices. Question 35 Which init system starts the first process with PID 1 on most modern embedded Linux builds? A) Systemd B) SysV init (init) C) BusyBox init D) OpenRC
Answer: C Explanation: BusyBox init is often used in minimal embedded images and runs as PID 1. Question 36 In the context of device managers, “mdev” is associated with which component? A) systemd‑udevd B) BusyBox C) udev D) devtmpfs Answer: B Explanation: BusyBox provides mdev, a lightweight device manager for embedded systems. Question 37 Which filesystem type is best suited for read‑only root filesystems that need high compression? A) ext B) JFFS C) SquashFS D) UBIFS Answer: C Explanation: SquashFS provides high compression and is read‑only, ideal for immutable roots. Question 38 When using U‑Boot to boot a kernel with a separate initramfs, which command format is correct? A) bootm ${loadaddr} ${ramdiskaddr} ${fdtaddr}
Explanation: Alt‑SysRq‑B performs an immediate reboot without syncing, but Alt‑SysRq‑S (sync)
B) - e cycles:k C) - a A) - e cpu-clock:u Answer: A Explanation: The “:u” suffix restricts events to user‑space. Question 44 When debugging a kernel with kgdb over a serial connection, which kernel command line parameter must be present? A) kgdboc=ttyS0, B) debug=serial C) console=ttyS0, D) kgdb=on Answer: A Explanation: kgdboc specifies the serial device and baud rate for kgdb. Question 45 The “debugfs” filesystem is typically mounted at which mount point? A) /debug B) /sys/kernel/debug C) /proc/debug D) /dev/debugfs Answer: B Explanation: debugfs is mounted under /sys/kernel/debug to expose kernel debugging files.
Answer: A Explanation: The “-comp” flag selects the compression method (e.g., xz, gzip, lz4). Question 49 Dual‑bank firmware update strategies primarily aim to: A) Reduce boot time B) Provide a fallback in case the new image is corrupted C) Increase storage capacity D) Enable simultaneous execution of two kernels Answer: B Explanation: Dual‑bank keeps a known‑good image while the new one is written, allowing rollback. Question 50 Which of the following tools is part of the Yocto Project and can generate OTA (over‑the‑air) update packages? A) swupdate B) bitbake‑image‑upgrade C) woof D) meta‑updater (image‑tools) Answer: D Explanation: Yocto’s meta‑updater layer provides tools for creating OTA update bundles. Question 51 In Buildroot, the “BR2_PACKAGE_BUSYBOX_CONFIG” option is used to: A) Enable BusyBox in the final image
B) Specify a custom BusyBox .config file C) Set the BusyBox version to compile D) Disable all BusyBox applets Answer: B Explanation: This variable points to a custom BusyBox configuration file. Question 52 When compiling the Linux kernel for an ARM Cortex‑A53 target, which make target is typically used? A) make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- defconfig B) make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- defconfig C) make ARCH=arm CROSS_COMPILE=arm-none-eabi- allmodconfig D) make ARCH=arm64 CROSS_COMPILE=arm-linux-gnueabihf- menuconfig Answer: B Explanation: Cortex‑A53 is a 64‑bit ARM core, requiring ARCH=arm64 and an aarch cross‑compiler. Question 53 Which kernel config option enables the “CONFIG_PREEMPT_RT” patch set? A) CONFIG_PREEMPT_NONE B) CONFIG_PREEMPT_VOLUNTARY C) CONFIG_PREEMPT_RT_FULL D) CONFIG_PREEMPT_DESKTOP Answer: C Explanation: CONFIG_PREEMPT_RT_FULL selects the full PREEMPT_RT real‑time patch set.