# KylinOS **Repository Path**: CoCo-linux/KylinOS ## Basic Information - **Project Name**: KylinOS - **Description**: 这是一个具有双内核(kylin内核和Linux内核)的操作系统,并基于这两个内核实现一个名为KylinOS的嵌入式/桌面操作系统。我们在编译系统源码的时候可以根据实际需要选择合适的系统内核。我们可以借鉴Linux和其他优秀的开源内核的优点来编写Kylin内核,通过参与该项目您可以学到和巩固诸多操作系统开发方面的知识。例如,Makefile、Shell、GNU汇编、X86汇编、GNU C语言等等。 - **Primary Language**: C - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2021-09-09 - **Last Updated**: 2022-06-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## KylinOS简介   这是一个具有双内核(kylin内核和Linux内核)的操作系统,并基于这两个内核实现一个名为KylinOS的嵌入式/桌面操作系统。我们在编译系统源码的时候可以根据实际需要选择合适的系统内核。我们可以借鉴Linux和其他优秀的开源内核的优点来编写Kylin内核,通过参与该项目您可以学到和巩固诸多操作系统开发方面的知识。在开发Kylin系统内核的时候您需要掌握Makefile、Shell、GNU汇编、X86汇编、GNU C语言等技能,如果您在接触这个项目之前有嵌入式Linux开发基础,开发的过程可能会更加得心应手。另外,这也是一个学习操作系统知识很好的实践途径。 ## Logo和吉祥物 ``` _ __ _ _ ___ ____ | |/ / _| (_)_ __ / _ \/ ___| | ' / | | | | | '_ \| | | \___ \ | . \ |_| | | | | | | |_| |___) | |_|\_\__, |_|_|_| |_|\___/|____/ |___/ ``` ## KylinOS系统源码目录结构 ``` ./KylinOS ├── bin ├── build-dir ├── config ├── dl ├── include │   ├── commands.mk │   ├── kernel-config.mk │   ├── kernel-version.mk │   ├── scripts-name.mk │   └── verbose-message.mk ├── kernel │   ├── kylin-kernel │   │   ├── arch │   │   │   ├── arm │   │   │   └── Makefile │   │   ├── block │   │   ├── certs │   │   ├── crypto │   │   ├── doc │   │   ├── drivers │   │   ├── fs │   │   ├── include │   │   │   ├── asm │   │   │   └── kylin │   │   ├── init │   │   ├── ipc │   │   ├── kernel │   │   ├── lib │   │   ├── Makefile │   │   ├── mm │   │   ├── net │   │   ├── scripts │   │   ├── security │   │   ├── sound │   │   ├── tools │   │   ├── usr │   │   └── virt │   ├── linux-kernel │   │   ├── arch │   │   ├── block │   │   ├── certs │   │   ├── COPYING │   │   ├── CREDITS │   │   ├── crypto │   │   ├── doc │   │   ├── drivers │   │   ├── fs │   │   ├── include │   │   ├── init │   │   ├── ipc │   │   ├── Kbuild │   │   ├── Kconfig │   │   ├── kernel │   │   ├── lib │   │   ├── LICENSES │   │   ├── MAINTAINERS │   │   ├── Makefile │   │   ├── mm │   │   ├── net │   │   ├── README │   │   ├── samples │   │   ├── scripts │   │   ├── security │   │   ├── sound │   │   ├── tools │   │   ├── usr │   │   └── virt │   └── Makefile ├── LICENSE ├── Makefile ├── package ├── README.en.md ├── README.md ├── rules.mk ├── scripts ├── staging-dir ├── target ├── tmp ├── toolchain └── tools ``` ## 软件架构及说明   KylinOS系统的kylin内核完全由我们自己研发,该内核借鉴了Linux内核以及其他开源的、优秀的内核的优点。KylinOS系统的kylin内核和linux内核一样均为宏内核,kylin内核分为用户空间和内核空间。如果用户想访问系统资源,那么必须通过系统调用才能实现这样的需求。 ## 开发环境   目前主要使用Ubuntu-20.04系统开发。如果您在虚拟机上安装Ubuntu-20.04,那么建议你给系统分配大点内存。例如,可以分配80GB。 ## 安装教程 ### 环境配置 sudo apt-get install gcc g++ binutils patch bzip2 flex bison make autoconf gettext texinfo unzip sharutils libncurses5-dev ncurses-term zlib1g-dev gawk asciidoc libz-dev git-core uuid-dev libacl1-dev liblzo2-dev pkg-config libc6-dev curl libxml-parser-perl ocaml-nox libssl-dev python3-dev clang cmake ### 克隆KylinOS系统源码到本地   克隆代码的同时克隆全部提交信息,命令如下: git clone https://gitee.com/TorvaldsRodriguez/KylinOS.git   克隆最近一次提交的KylinOS系统源码,命令如下: git clone --depth=1 https://gitee.com/TorvaldsRodriguez/KylinOS.git ## 使用说明 ### 代码规范   开发KylinOS系统之前,为了提高代码的可读性和规范性,我们强烈要求大家参考和采用我们制定的《KylinOS系统及其内核代码规范》标准。 ### VimKylin代码编辑器   开发工具建议使用VimKylin,因为KylinVim已经集成了很多好用的、功能强大的插件。例如,可以一键按照《KylinOS系统及其内核代码规范》制定的标准来格式化我们编写的C/C++、Shell等代码。当然了,你还可以使用VSCode以及Source Insight4.0等代码编辑器。VinKylin编写代码的效果图如下图所示: VimKylin欢迎界面: ![VimKylin](https://gitee.com/TorvaldsRodriguez/KylinOS/raw/master/kernel/kylin/doc/images/VimKylin.png) 代码编辑效果: ![VimKylin](https://gitee.com/TorvaldsRodriguez/KylinOS/raw/master/kernel/kylin/doc/images/KylinOS.png) 代码补全效果: ![VimKylin](https://gitee.com/TorvaldsRodriguez/KylinOS/raw/master/kernel/kylin/doc/images/auto-completion.png) ### VimKylin项目地址 Gitee创库: https://gitee.com/TorvaldsRodriguez/VimKylin GitHub创库: https://github.com/TorvaldsRodriguez/VimKylin ## 参与和贡献 1. 欢迎fork一份源码到你的仓库 2. 新建分支 3. 提交代码 4. 新建pull request ## 目前维护人员名单   维护人员名单请参考doc/maintain/volunteer-list ## 欢迎加入我们 个人QQ:2673483151 个人邮箱:2673483151@qq.com KylinOS系统开发技术交流群:681556758 ## 2021年目标 1. 搭建好KylinOS系统的整体框架。包括普通软件包、glibc、交叉编译工具链以及kylin内核的下载、安装以及编译框架。 2. 在kylin中编写能在32位arm或x86处理器上跑起来的汇编阶段初始化代码,然后跳转至start_kylin_kernel()函数进 传统的GNU C语言开发; ## KylinOS开发团队寄语   有梦想就要去拼搏,感兴趣就去做,切记只喊口号不行动。有时候做一件事,不是因为看到了希望才坚持,而是往往坚持了才会看到希望!加油吧,小伙伴们。