 For example, take the UIO framework, which is intended for devices that are accessed through memory-mapped device registers, as is the norm for devices attached to Physical Cell ID (PCI) and similar buses. A simple in-kernel device driver can be written using the User Mode Input/Output (UIO) framework that allows a user-space program to map that register back into its own memory, and to respond to interrupts from Chapter 5 System software the device. This does not provide generic access to any PCI device, but does make it easy to get user-space access to a device of interest, so that the bulk of the driver can be devel- oped, debugged, and maintained outside of the kernel. os frameworks like Data Plane Development Kit (DPDK) supported proprietary UIO (and in case of virtualized environ- ments: VFIO) frameworks primarily focused on high-speed networking processing. The DPDK is an Open source software project managed by the Linux Foundation. It provides a set of data plane libraries and network interface controller polling-mode drivers for offload- ing packet and other processing from the operating system kernel to processes running in user space. DPDK has been embraced across the software ecosystem as the preferred abstraction layer for user-space software development, in combination with PREEMPT_RT as described above due to portability across platforms and Instruction Set Architectures. Within DPDK, the Wireless Baseband library provides a common programming frame- work that abstracts HW accelerators based on FPGA and/or Fixed Function Accelerators that assist with 3GPP Physical Layer processing. Furthermore, it decouples the application from the compute-intensive wireless functions by abstracting their optimized libraries to appear as virtual BBDEV devices, where BBDEV is defined as the Wireless Baseband Device Library (https://doc.dpdk.org/guides/prog_guide/bbdev.html). The functional scope of the BBDEV library are those functions in relation to the 3GPP Layer 1 signal processing (channel coding, modulation, .