HuOS: A hybrid kernel designed by me. Overview First -- Prototype 首先借用GRUB实现一个最简单的内核 Second -- Pre-Design HuOS混合内核架构的整体设计思路:首先它是一个宏内核,但是同时具备有微内核的特点,模块化设计,支持动态可加载和卸载。 Third -- Theoretical Background Hardware X86 CPU执行程序的三种模式 程序中地址转换的方式 Cache与内存 Synchronization Primitives 并发操作中,解决数据同步的四种方法 Linux下的自旋锁和信号量的实现 Forth -- Design(Boot Initialization) Code 建立计算机 建造二级引导器 探查和收集信息 实现板级初始化并运行第一个C函数 Linux初始化----GRUB与VMLinuz结构 Linux初始化----从_start到第一个进程 Fifth -- Design(Memory) Code 划分与组织内存 内存页面初始化 内存页的分配与释放(内存管理) Code 如何管理内存对象 如何表示虚拟内存 如何分配和释放虚拟内存 如何使用伙伴系统分配内存 如何使用SLAB系统分配内存 Sixth -- Process Code 什么是进程 Code 多进程调度 进程的等待与唤醒机制 Linux如何实现进程与进程调度 Red_Black_Tree Seventh -- Device I/O Code Device type&driver Register Device in Kernel Code Process_Kernel_IO_Pack Code Linux_Get_Dev_Info Eighth -- File System Code RepositoryStructure_OrganizationFiles Code Filesys_formatting_operations Code Sixmajor_operations_of_the_file_system Code Linux_How_the_virtual_file_system_manages_files Ninth -- Network URL_to_network_card_observe_network_data_flow_globally Code Kernel_to_Application_Network_Data_Flows_in_Kernel Explain_macro_network_architecture_of_OS Linux_socket_and_network_programming_interface Linux_socket_interface Tenth -- Interface Code Build a bridge of communication Code System APIs Elevnth -- Virtualization KVM Container ARM_M1 Aarch64 Twelfth -- Summarize & Skill