# Linux Kernel: bzImage
git clone --depth 1 https://github.com/torvalds/linux.git
cd linux
make tinyconfig
# </> for Search
make menuconfig
make -j 8
make kernelrelease
docker cp CONTAINER_ID:/root/linux/arch/x86/boot/bzImage ./
- 64-bit kernel
- General setup - Initial RAM filesystem and RAM disk - Support initial ramdisk/ramfs compressed using gzip
- General setup - Configure standard kernel features - Enable support for printk
- General setup - Configure standard kernel features - Enable futex support
- Executable file formats - Kernel support for ELF binaries
- Executable file formats - Kernel support for scripts starting with #!
- Networking support - Networking options - Unix domain sockets
- Networking support - Networking options - TCP/IP networking
- Device Drivers - PCI support
- Device Drivers - Genric Driver Options - Maintain a devtmpfs filesystem to mount at /dev - Automount devtmpfs at /dev, after the kernel mounted the rootfs
- Device Drivers - Character devices - Enable TTY
- Device Drivers - Character devices - Serial drivers - 8250/16550 and compatible serial support - Console on 8250/16550 and compatible serial port
- Device Drivers - Network device support - Ethernet driver support - Intel devices - Intel(R) PRO/1000 Gigabit Ethernet support
- File systems - pseudo filesystems - /proc file system support
- File systems - pseudo filesystems - sysfs file system support
Based on Building a tiny Linux kernel
TTYenables Console8250enableconsole=ttyS0on Windows Terminalprintkenables kernel output on bootfutexrequired by elinksinitial ramdisk gzipenables init.cpio.gzELFenables /bin/sh#! scriptsenables init with /bin/shIntel PRO/1000 & PCIdrivers for e1000 (default QEMU network device) through the PCI bussysfsmakes eth0 visable in /sysUnix Socket & TCP/IPenables networking software/procenables ps