A simple operating system for 32-bits x86 PCs.
- 32-bits x86 support
- Legacy BIOS and UEFI booting with GRUB2
- SMP
- PAE paging (see pae branch)
- ELF file loading
- Loadable kernel modules
- Parallel ATA IDE Controller and Disk driver
- QEMU Bochs display driver
- PCI Bus support
- PCI Express ECAM support
- PCI MSI and MSI-X interrupt support
- PS/2 keyboard and mose driver
- USB Bus support
- USB Hub driver
- UHCI USB controller driver
- VirtIO block device and GPU device driver
- PC platform RTC and UART driver
- Virtual filesystem
- FAT32 filesystem support
- Master Boot Record partition table support
- Hardware abstraction layer abstracts block device, display device and HID device
- Reboot and shutdown
- Dynamic linking
- C++ global constructor and destructor
- C Standard Library
- C++ Standard Library including STL
- C++ object-oriented GUI widget toolkit
- POSIX emulation library
- Window manager
- Graphical desktop envoironment
- Various user space programs
A build of gcc and binutils with i686-elf target triplet is required. dosfstools and mtools are also required for creating disk image. QEMU with target i686 or x86-64 is required for emulation
Run make to create disk image and kernel image, run make qemu to start qemu emulation.
/bootDisk image boot sector/extUtility for building out-of-tree kernel modules/kernelOperating System Kernel/kernel/arch/x86x86 architecture specific code/kernel/commonkernel common used code/kernel/coreKernel core/kernel/driversKernel built-in device drivers/kernel/filesystemKernel build-in filesystem drivers/kernel/halKernel hardware abstraction layer/kernel/procKernel process management/libraryUser space libraries/library/crtC Runtime (crt0 and crt1)/library/ldDynamic linker/library/libcC Standard Library/library/libcppC++ Standard Library/library/libcpuCPU abstraction library/library/libguiC++ GUI widget toolkit library/library/libposixPOSIX emulation library/library/libsysSystem call library/library/libwmWindow manager library/module/eduQEMU EDU device driver/module/helloHello World kernel module example/module/modlibKernel module support library/module/virtgpuVirtIO GPU driver/programs/aboutGraphical About program/programs/catA program to display context of a text file/programs/dateA command line utility to display date and time/programs/desktopGraphical desktop environment/programs/devmgrDevice manager/programs/dirA program to list files in a directory/programs/initInit program/programs/kmodA tool to load kernel modules/programs/lscpuAn utility to display CPU infomation/programs/lspciAn utility to list PCI (Express) devices/programs/mkdirA program for creating directories/programs/rebootA program to reboot computer/programs/rmA program to delete files/programs/shShell/programs/shutdownA program to shut down computer/programs/termemuGraphical terminal emulator/programs/wmGraphical window manager/shareNon-code data/toolsTools used in the compiling process
