# xbook2 **Repository Path**: tensor-core/xbook2 ## Basic Information - **Project Name**: xbook2 - **Description**: xbook2是一个基于x86处理器的32位操作系统,这次是新的尝试,使用混内核结构,添加一些新的内容进来。 - **Primary Language**: C - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 65 - **Created**: 2020-07-11 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # xbook2操作系统内核 xbook2操作系统内核是一个基于intel x86平台的32位处理器的系统内核,可运行在qemu,bochs,virtual box,vmware等虚拟机中。 宏内核的内容比较大,像文件系统,网络协议等内容都比较庞大,在内核中会占用很多空间。因此,xbook将这部分内容转移到用户态,以服务(service)的形式出现。这样的话,内核空间减小了,并且,在一定程度上也能保障内核的健壮。但是缺点就是和服务通信效率低下,这一只一来就是在微内核中老生常谈的事情,只有以后慢慢提升通信效率。 除此之外,内核的划分也比较清晰,多任务(TASK 进程/线程),虚拟内存管理(VMM),进程间通信(IPC),以及驱动(DRIVERS),主要由这及部分组成。 xbook2被设计成一个跨处理器平台的架构,有ARCH目录,可以在里面添加一个新的处理器平台。不过目前也是尽量将平台相关的分离到arch里面,并为完全分离出来,待后面多实现几个平台后,才能更好的让处理器平台和内核部分进行更优化的分离。 内核结构示意图: ``` USER MODE: +---------------------------------+ |shell | text edit | compiler | +---------------------------------+ |netsrv | filesrv | libOS | +---------------------------------+ KERNEL MODE: +---------------------------+ |task | ipc | vmm | drivers | +---------------------------+ | arch | +---------------------------+ \ / +---------------------------+ | hardware | +---------------------------+ ``` 系统功能列表: ``` 多进程,内核多线程,用户多线程 虚拟内存管理,分页内存管理,物理内存管理 管道通信,共享内存,消息队列,信号量 IDE硬盘驱动,PS/2鼠标,键盘驱动,VBE视频驱动 RTL8139网卡驱动,UART串口驱动 FATFS文件系统,LWIP网络协议,SGI图形库 PTHREAD线程库 ``` 开发环境准备(Windows/Linux): ``` 1. 用git从仓库克隆源码或者直接下载源码。 2. 配置最基础的工具集:gcc, nasm, ld, dd, rm, objdump, objcopy。 3. 配置虚拟机:qemu(默认),bochs,virtual box, vmware任选其一。 5. 进入xbook2的根目录目录,打开终端或者命令行,输入命令make build先构建环境,然后make run编译运行。 ``` 编译使用命令: ``` > make # 只编译源码 > make build # 构建环境 > make debuild # 清理环境 > make run # 编译并运行,默认使用qemu虚拟机运行 > make qemu # 使用qemu虚拟机运行 > make bochs # 使用bochs虚拟机运行 > make vbox # 使用virtual box虚拟机运行,需要配置虚拟机名字 > make clean # 清除编译产生的对象文件以及可执行文件 > make dis # 反汇编内核文件,可用于调试 > make qemudbg # 启动qemu的调试器 > make bochsdbg # 启动bochs的调试器 ``` 联系方式: 开源官网:www.book-os.org E-mail: book_os@163.com 个人邮箱:2323168280@qq.com 个人QQ: 2323168280 开发交流QQ群:913813452