After starting a PC-type computer, the BIOS initializes hardware components and performs self-tests. It then loads the boot loader from the hard disk or optical drive into memory. The boot loader loads and decompresses the kernel into memory. The kernel then initializes system services defined for the current run level in scripts located in directories configured by the init program and /etc/inittab file. This allows Linux systems to start processes and configure services required for the selected run level.