# ProperOS 3 Next **Repository Path**: properos/properos3next ## Basic Information - **Project Name**: ProperOS 3 Next - **Description**: No description available - **Primary Language**: Unknown - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-05 - **Last Updated**: 2026-06-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ProperOS 3 Next **完整的下一代操作系统**,模仿Debian风格,支持多架构编译(amd64/arm64),使用自定义ProLoader引导程序,集成了apt包管理系统。 ## 系统特性 ### 内核 - 自主开发的微内核架构 - 高效的内存管理 - 多任务调度器 - 系统调用接口 ### 应用兼容 - **HarmonyOS兼容层** - 支持.hap应用安装和运行 - **Linux兼容层** - 支持ELF二进制文件执行 ### 桌面环境 - 集成KDE Plasma桌面 - 支持桌面、平板、手机三种模式 - 主题和配置管理 ### 移动支持 - 触摸输入支持 - 屏幕自动旋转 - 加速度计集成 - 移动/桌面模式切换 ### 虚拟化 - QEMU/KVM支持 - VirtualBox支持 - WSL2集成 - 虚拟机快照管理 ## 项目结构 ``` ProperOS_3_Next/ ├── kernel/ # 内核源码 │ ├── kernel.c/h # 内核主模块 │ ├── memory.c/h # 内存管理 │ ├── scheduler.c/h # 调度器 │ └── syscall.c/h # 系统调用 ├── compatibility/ # 兼容层 │ ├── harmony/ # 鸿蒙兼容 │ └── linux/ # Linux兼容 ├── desktop/ # 桌面环境 │ └── kde/ # KDE集成 ├── mobile/ # 移动模式 ├── virtualization/ # 虚拟化 ├── bootloader/ # 引导程序 │ └── proloader/ # ProLoader (Go语言开发) │ ├── main.go # 主程序 │ ├── go.mod # Go模块 │ └── proloader.conf # 配置文件 ├── system/ # Debian风格系统目录 │ ├── bin/ # 用户命令 │ ├── sbin/ # 系统管理命令 │ ├── etc/ # 系统配置 │ │ ├── apt/ # apt包管理器配置 │ │ ├── init.d/ # 初始化脚本 │ │ └── properos-release # 系统版本信息 │ ├── var/ # 可变数据 │ └── usr/ # 用户程序 ├── build/ # 构建输出 │ ├── amd64/ # AMD64架构构建 │ └── arm64/ # ARM64架构构建 ├── dists/ # Debian风格包仓库 ├── pool/ # 包池 └── build.sh # WSL构建脚本 ``` ## 构建 (使用WSL) ### 依赖 - WSL (Windows Subsystem for Linux) - GCC - Go 1.21+ - NASM - QEMU - GRUB - Docker (可选) ### WSL环境设置 ```bash # 在WSL中安装依赖 sudo apt update sudo apt install build-essential nasm qemu-system-x86 \ golang-go grub-pc-bin xorriso docker.io # 克隆项目后进行构建 cd ProperOS_3_Next ``` ### 编译命令 ```bash # AMD64架构编译 ./build.sh amd64 # ARM64架构编译 (需要交叉编译工具链) ./build.sh arm64 # 所有架构编译 ./build.sh all # 仅构建引导程序 ./build.sh bootloader # 清理构建 ./build.sh clean ``` ### ProLoader构建 ```bash cd bootloader/proloader go mod download go build -o proloader . ``` ### 运行测试 ```bash # 使用QEMU运行 qemu-system-x86_64 -kernel build/amd64/properos.elf \ -initrd build/amd64/initrd.img-3.0.0-properos \ -append "console=ttyS0" -nographic ``` ## 包管理系统 (模仿Debian) ### apt命令 ```bash # 更新包列表 sudo properos-apt update # 升级系统 sudo properos-apt upgrade # 安装包 sudo properos-apt install package-name # 移除包 sudo properos-apt remove package-name # 搜索包 properos-apt search package-name # 查看包信息 properos-apt show package-name # 列出已安装包 properos-apt list --installed # 清理缓存 sudo properos-apt clean # 自动移除不需要的包 sudo properos-apt autoremove ``` ### dpkg命令 ```bash # 安装.deb包 sudo dpkg -i package.deb # 移除包 sudo dpkg -r package-name # 完全清除包 sudo dpkg -P package-name # 查看包状态 dpkg -s package-name # 列出已安装包 dpkg -l ``` ### 源配置 编辑 `/etc/apt/sources.list`: ``` deb https://packages.properos.org/properos/ properos main contrib non-free deb https://packages.properos.org/properos-security/ properos-security main deb https://packages.properos.org/properos-updates/ properos-updates main ``` ## ProLoader引导程序 ProLoader是一个使用Go语言开发的现代化引导程序,支持: - **图形界面**:使用Framebuffer实现 - **键盘导航**:↑↓选择,Enter启动,Esc电源菜单 - **自动启动**:可配置超时时间 - **多架构支持**:AMD64和ARM64 - **主题定制**:支持自定义配色方案 ### ProLoader配置 编辑 `bootloader/proloader/proloader.conf`: ```json { "default": "ProperOS 3 Next", "timeout": 10, "accent_color": "#00b4d8", "entries": [ { "title": "ProperOS 3 Next", "linux": "/boot/vmlinuz-3.0.0-properos", "initrd": "/boot/initrd.img-3.0.0-properos", "options": "quiet splash", "arch": "amd64", "version": "3.0.0" } ] } ``` ## 系统初始化 ### 启动流程 1. **ProLoader** → 加载内核和initramfs 2. **initramfs** → 探测硬件,加载模块 3. **/sbin/init** → 系统初始化 4. **/etc/init.d/rcS** → 运行级别脚本 5. **/sbin/properos-gdm** → 显示管理器 6. **KDE Plasma** → 桌面环境 ### 初始化脚本 ```bash # 查看运行级别 runlevel # 切换运行级别 init 3 # 文本模式 init 5 # 图形模式 # 手动启动服务 /etc/init.d/service-name start # 查看服务状态 systemctl status service-name ``` ## 使用说明 ### 安装鸿蒙应用 ```c #include "compatibility/harmony/harmony_compat.h" harmony_app_install("/path/to/app.hap"); harmony_app_launch("com.example.app"); ``` ### 运行Linux程序 ```c #include "compatibility/linux/linux_compat.h" char* argv[] = { "/bin/ls", "-l", NULL }; char* envp[] = { "HOME=/root", NULL }; linux_execve(argv[0], argv, envp); ``` ### 切换到手机模式 ```c #include "mobile/mobile_mode.h" mobile_set_mode(MODE_MOBILE); kde_start_session(KDE_SESSION_PLASMA_MOBILE); ``` ### 管理虚拟机 ```c #include "virtualization/vm_manager.h" vm_instance_t vm = { .name = "Ubuntu", .type = VM_TYPE_QEMU, .vcpus = 2, .memory = 2048 }; vm_create(&vm); vm_start(vm.uuid); ``` ## 系统架构 ``` ┌─────────────────────────────────────────┐ │ KDE Plasma / 应用程序 │ ├─────────────────────────────────────────┤ │ Harmony兼容层 │ Linux兼容层 │ ├─────────────────────────────────────────┤ │ 移动支持 │ 虚拟化管理 │ ├─────────────────────────────────────────┤ │ ProperOS 内核 │ │ ┌──────────┬──────────┬──────────┐ │ │ │ 内存管理 │ 调度器 │ 系统调用 │ │ │ └──────────┴──────────┴──────────┘ │ └─────────────────────────────────────────┘ ``` ## 故障排除 ### 常见问题 #### 问题:`make: *** No targets specified and no makefile found. Stop.` **解决方案:** 确保 `kernel/` 目录下有 Makefile。我们已经创建了它。如果没有,请重新下载项目。 #### 问题:链接错误 - linker.ld 找不到 **解决方案:** ```bash # 确保 linker.ld 在项目根目录 ls -la linker.ld # 如果需要,重新创建它 ``` #### 问题:缺少交叉编译工具链 **解决方案:** ```bash # 在 WSL 中安装 sudo apt update sudo apt install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu \ binutils-aarch64-linux-gnu qemu-user-static ``` ### 快速测试 如果你想快速测试项目而不进行完整的内核编译,可以使用: ```bash # 给脚本添加执行权限 chmod +x quick-test.sh build.sh # 运行快速测试 ./quick-test.sh ``` ### 分步构建 如果完整构建有问题,可以分步进行: ```bash # 1. 只构建内核(不链接) cd kernel make ARCH=x86_64 # 2. 只构建引导程序 cd ../bootloader/proloader go mod download CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o proloader-amd64 . # 3. 手动准备系统文件 cp proloader-amd64 ../../build/amd64/ cp ../kernel/properos.elf ../../build/amd64/ 2>/dev/null || true ``` ### 使用主 Makefile 替代 build.sh 项目根目录也提供了一个 Makefile,可以尝试使用: ```bash # 测试构建系统 make test # 构建全部 make ARCH=amd64 all # 只构建引导程序 make bootloader ``` ## 贡献 欢迎提交Issue和Pull Request!