# KyOS **Repository Path**: gh0712/kyos ## Basic Information - **Project Name**: KyOS - **Description**: KyOS是基于个人兴趣而开发的操作系统内核雏形 - **Primary Language**: C - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-02-27 - **Last Updated**: 2021-11-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # KyOS #### 介绍 KyOS是基于个人兴趣而开发的操作系统内核雏形 #### 软件架构 软件架构说明 #### 安装使用 1,软件需求 操作系统:CenOS7(Linux) 编译工具:gcc 硬件架构:x86_64 2,编译Bochs虚拟机(([bochs虚拟机源码官网](http://bochs.sourceforge.net))) 2.1. 将bochs_for_kyos/bochs-2.6.9.tar.gz解压,解压目录为:bochs_for_kyos/bochs-2.6.9 2.2. 执行命令:cd bochs_for_kyos/bochs-2.6.9/ 进入目录:bochs_for_kyos/bochs-2.6.9/ 2.3. 执行 ./configuration.sh 命令生成Makefile 2.4. 执行 make 开始编译 2.5 执行 make install 安装 编译完成之后,把KyOS全部源码放入bochs源码目录, 例如,放入KyOS之后的目录为:bochs_for_kyos/bochs-2.6.9/KyOS 3,编译KyOS 编译bootloader 执行,进入kernel/boot目录:./compile_boot.sh 编译KyOS Kernel 进入kernel目录下面执行:./compile_cmd.sh 编译usercode 进入kernel/usercode目录执行:./compile_user.sh 从第4部分之后有两种方式: 方式一: KyOS源码中提供了已经制作好的硬盘镜像,直接使用已经制作好的硬盘镜像 执行Step 7 中的命令即可看到效果 方式二: 继续按照第4部分步骤制作自己的硬盘镜像然后启动看效果 4,制作硬盘镜像 Step1: 创建硬盘镜像,大小4G( **硬盘大小可以自定义** ) 使用bochs虚拟机的bximage(编译完成之后,install/bin/bximage) 命令:../install/bin/bximage 然后按照提示输入相应值即可完成创建; **(从Step2步骤以后执行的所有命令都需要root权限)** Step2: 挂载loop设备 losetup -f losetup /dev/loop0 4G.img Step3: 分区 fdisk /dev/loop0 各分区示意图(目前KyOS只能识别分区一和分区二): ![输入图片说明](https://images.gitee.com/uploads/images/2021/0228/193643_02e12869_8728203.png "屏幕截图.png") Step4: 将两个分区格式化为FAT32文件系统(目前KyOS只支持FAT32文件系统),命令如下: kpartx -av /dev/loop0 mkfs.vfat -F 32 /dev/mapper/loop0p1 mkfs.vfat -F 32 /dev/mapper/loop0p2 Step5: 卸载loop设备,命令如下: kpartx -dv /dev/loop0 losetup -d /dev/loop0 Step6: 烧写系统 在KyOS根目录(bochs_for_kyos/bochs-2.6.9/KyOS)执行 source mkfs_mount_copy_loader_4G.img 命令(用source 命令执行脚本), 烧写KyOS及相应程序和资源到硬盘 Step7: 启动系统 执行 source start_bochs.sh 命令 (用 source 命令执行脚本) 执行成功的截图: ![输入图片说明](https://images.gitee.com/uploads/images/2021/0228/193802_ffcc836a_8728203.png "屏幕截图.png") ![输入图片说明](https://images.gitee.com/uploads/images/2021/0228/193846_d8d2b127_8728203.png "屏幕截图.png") 5,源码模块 1,简易boot loader , 目录 : boot 2,KyOS Kernel: head.S,内存管理,进程调度,简易块设备系统,硬盘控制器/中断控制器/键盘控制器/鼠标控制器驱动,FAT32文件系统,多核启动等 3,用户空间init进程 , 目录:userspace 4,bmp图片简易解码器 5,相关图片资源 6,源码编译及启动脚本 6,不足之处 KyOS 目前的实现是一个Kernel雏形,有很多不完善的地方,例如:日志不完善,内核同步机制未实现, 编译脚本需要模块化等。 7,后续计划 逐渐完善KyOS内核,并适配更多的PC平台,移植常用软件等 #### 使用说明 1. xxxx 2. xxxx 3. xxxx #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)