银河麒麟(Kylin OS)作为我国自主研发的主流服务器 / 桌面操作系统,基于 Linux 内核进行深度优化与定制,在安全性、国产化适配性上有着显著的特点。近期通过系统性学习和实操,我不仅熟悉了它的基础操作,更对国产化操作系统的生态建设与开发适配有了直观的认知,现将学习心得整理如下。
一、初识银河麒麟:系统特性与环境搭建
初次接触银河麒麟,首先感受到的是它与传统 Linux 发行版(如 Ubuntu、CentOS)的异同。从界面来看,桌面版银河麒麟(Kylin Desktop)提供了符合国人使用习惯的 UI 设计,而服务器版则延续了 Linux 的命令行操作逻辑;从内核层面,它基于 Linux 内核并融入了自主研发的安全模块,强化了系统的权限管理和数据防护。
在环境搭建阶段,我选择了银河麒麟桌面版 V10 进行安装,其安装流程与常规 Linux 系统类似,但需注意国产化硬件适配(如飞腾、鲲鹏、龙芯等架构的处理器)。安装完成后,首先需要熟悉系统的包管理工具 —— 银河麒麟使用kylin-package-manager(麒麟软件包管理器),同时兼容dpkg和apt命令(因基于 Debian 系)。
代码示例:系统基础信息查看与包管理操作:
# 1. 查看银河麒麟系统版本信息(核心命令) cat /etc/os-release # 输出示例:会显示NAME="Kylin Linux Advanced Server",VERSION="V10 (Tercel)"等信息 # 2. 查看内核版本(银河麒麟的内核会有定制化标识) uname -r # 输出示例:5.4.18-85-generic-kylin # 3. 使用apt命令安装常用工具(兼容Debian系操作) sudo apt update # 更新软件源 sudo apt install gcc make python3-pip -y # 安装编译工具和Python包管理工具 # 4. 查看已安装的国产化软件包(如麒麟自研的办公软件) dpkg -l | grep kylin
代码说明:上述命令是银河麒麟系统中最基础的操作,/etc/os-release文件存储了系统的核心版本信息,uname -r可查看定制化的内核版本;而apt命令的兼容则降低了 Linux 用户的学习成本,同时dpkg -l能快速筛选出系统自带的麒麟定制软件包。
二、实操体验:国产化软件适配与开发
银河麒麟的核心优势在于国产化软硬件生态适配,无论是办公软件(如 WPS、永中 Office),还是开发工具(如 VS Code、PyCharm),亦或是数据库(如达梦、人大金仓),都能在系统中流畅运行。我重点体验了基于银河麒麟的 Python 开发和 C 语言程序编译,发现其开发环境的搭建与常规 Linux 系统基本一致,但需注意部分第三方库的国产化适配问题。
代码示例 1:Python 程序在银河麒麟上的运行与打包
# 文件名:kylin_demo.py # 功能:实现简单的系统信息展示(结合银河麒麟的特性) import platform import os def get_kylin_info(): """获取银河麒麟系统的关键信息""" # 1. 获取系统名称和版本 system_name = platform.system() system_version = platform.version() # 2. 获取内核版本 kernel_version = os.popen('uname -r').read().strip() # 3. 判断是否为银河麒麟系统(通过os-release中的标识) is_kylin = False with open('/etc/os-release', 'r', encoding='utf-8') as f: os_info = f.read() if 'kylin' in os_info.lower() or 'Kylin' in os_info: is_kylin = True return { 'system_name': system_name, 'system_version': system_version, 'kernel_version': kernel_version, 'is_kylin': is_kylin } if __name__ == '__main__': # 调用函数获取信息并打印 kylin_info = get_kylin_info() print("===== 银河麒麟系统信息展示 =====") print(f"是否为银河麒麟系统:{'是' if kylin_info['is_kylin'] else '否'}") print(f"系统名称:{kylin_info['system_name']}") print(f"系统版本:{kylin_info['system_version']}") print(f"内核版本:{kylin_info['kernel_version']}") # 额外:输出一句国产化寄语 if kylin_info['is_kylin']: print("\n✨ 国产化操作系统,助力信息安全!")
代码运行与打包步骤:
# 1. 运行Python程序 python3 kylin_demo.py # 2. 使用pyinstaller打包为可执行文件(需先安装pyinstaller) pip3 install pyinstaller pyinstaller -F kylin_demo.py # -F表示打包为单个可执行文件 # 打包后会在dist目录下生成kylin_demo可执行文件,直接运行即可 ./dist/kylin_demo
代码说明:该 Python 程序通过platform库和系统命令,获取银河麒麟的核心信息,并判断当前系统是否为银河麒麟;同时展示了在银河麒麟上使用pip安装第三方库、用pyinstaller打包程序的流程,这些操作与常规 Linux 系统一致,但需注意pyinstaller在国产化架构(如鲲鹏 ARM64)上的适配性(实测银河麒麟已完美支持)。
代码示例 2:C 语言程序在银河麒麟上的编译与运行
// 文件名:kylin_c_demo.c // 功能:简单的C语言程序,输出银河麒麟学习心得 #include <stdio.h> #include <unistd.h> int main() { // 获取当前系统的主机名 char hostname[256]; gethostname(hostname, sizeof(hostname)); printf("===== 银河麒麟C语言程序演示 =====\n"); printf("当前主机名:%s\n", hostname); printf("在银河麒麟系统上编译运行C程序,体验国产化开发环境!\n"); printf("国产化操作系统,是信息产业自主可控的重要基石!\n"); return 0; }
编译与运行步骤:
# 1. 使用gcc编译C程序(银河麒麟已预装gcc) gcc kylin_c_demo.c -o kylin_c_demo # 2. 运行编译后的可执行文件 ./kylin_c_demo
代码说明:该 C 程序通过gethostname函数获取主机名,输出国产化相关的寄语;在银河麒麟上使用gcc编译的流程与常规 Linux 系统完全一致,体现了其开发环境的兼容性。
三、核心知识点学习过程:银河麒麟的 systemd 系统服务管理
在学习银河麒麟的过程中,systemd 系统服务管理是我重点攻克的核心知识点。作为银河麒麟(基于 Linux)的系统服务管理器,systemd 替代了传统的 init.d 脚本,负责系统启动、服务启停和进程管理,是运维和开发的必备技能。以下是我的完整学习过程:
第一步:提出问题,明确学习目标
在使用银河麒麟时,我发现自己编写的 Python 程序无法在系统启动时自动运行,且手动启停程序效率低下。由此提出问题:如何在银河麒麟中通过 systemd 管理自定义服务,实现开机自启、异常重启和状态监控?
第二步:查阅资料,掌握基础概念
通过银河麒麟官方文档和 Linux 系统资料,我梳理出核心概念:
- 服务单元文件:systemd 的核心配置文件,后缀为
.service,存储在/etc/systemd/system/(自定义服务)或/usr/lib/systemd/system/(系统默认服务)目录。 - 服务状态:
active (running)(运行中)、inactive (dead)(停止)、failed(失败)等。 - 核心命令:
systemctl start/stop/restart/enable/disable/status(启停 / 重启 / 开机自启 / 关闭自启 / 查看状态)。
第三步:实践验证,编写自定义服务
以之前的kylin_demo.py程序为例,我编写了 systemd 服务单元文件,实现其开机自启和进程管理。
步骤 1:准备程序环境
# 1. 将打包后的可执行文件移动到/usr/local/bin目录(系统级可执行目录) sudo mv dist/kylin_demo /usr/local/bin/ # 2. 赋予执行权限 sudo chmod +x /usr/local/bin/kylin_demo # 3. 测试程序是否能正常运行 /usr/local/bin/kylin_demo
步骤 2:编写 systemd 服务单元文件
# 文件名:kylin-demo.service # 存储路径:/etc/systemd/system/kylin-demo.service [Unit] Description=Kylin Demo Service # 服务描述 After=network.target # 表示该服务在网络服务启动后再启动 [Service] Type=simple # 服务类型(simple为默认,适用于前台运行的程序) ExecStart=/usr/local/bin/kylin_demo # 服务启动命令 Restart=on-failure # 程序失败时自动重启 RestartSec=3s # 重启间隔3秒 User=root # 运行服务的用户(可根据需求改为普通用户,如kylin) [Install] WantedBy=multi-user.target # 表示在多用户模式下开机自启
步骤 3:使用 systemctl 命令管理服务
# 1. 重新加载systemd配置(新增/修改服务文件后必须执行) sudo systemctl daemon-reload # 2. 启动服务 sudo systemctl start kylin-demo.service # 3. 查看服务状态 sudo systemctl status kylin-demo.service # 正常输出示例: # ● kylin-demo.service - Kylin Demo Service # Loaded: loaded (/etc/systemd/system/kylin-demo.service; disabled; vendor preset: enabled) # Active: active (running) since Thu 2025-12-11 10:00:00 CST; 5s ago # Main PID: 12345 (kylin_demo) # Tasks: 1 (limit: 4915) # Memory: 5.0M # CGroup: /system.slice/kylin-demo.service # └─12345 /usr/local/bin/kylin_demo # 4. 设置开机自启 sudo systemctl enable kylin-demo.service # 5. 停止服务(如需) # sudo systemctl stop kylin-demo.service # 6. 重启服务(如需) # sudo systemctl restart kylin-demo.service # 7. 关闭开机自启(如需) # sudo systemctl disable kylin-demo.service
步骤 4:验证开机自启功能
# 重启系统 sudo reboot # 重启后查看服务状态 sudo systemctl status kylin-demo.service # 若显示active (running),则开机自启配置成功
第四步:遇到问题与解决
在实践中,我遇到了服务启动失败(状态为 failed) 的问题,通过以下步骤排查解决:
- 查看日志:使用
journalctl -u kylin-demo.service -e命令查看服务日志,发现是程序路径错误(将/usr/local/bin/kylin_demo写成了/usr/bin/kylin_demo)。 - 修正路径:修改服务单元文件中的
ExecStart路径,重新加载配置并启动服务,问题解决。
第五步:总结优化
通过本次学习,我不仅掌握了 systemd 的基本使用,还总结出银河麒麟中服务管理的优化技巧:
- 自定义服务尽量使用普通用户运行(而非 root),提升系统安全性。
- 对于后台运行的程序,可将
Type改为forking,并配合PIDFile配置进程 PID 文件。 - 利用
journalctl命令监控服务日志,快速定位问题。
四、思考与感悟:国产化操作系统的价值与未来
学习银河麒麟的过程,不仅是掌握一款操作系统的使用,更是对信息安全与自主可控的深刻理解。银河麒麟作为国产化操作系统的代表,解决了传统操作系统 “卡脖子” 的问题,在政府、金融、能源等关键领域发挥着不可替代的作用。同时,它兼容 Linux 生态,降低了用户和开发者的迁移成本,这也是其能够快速推广的重要原因。
当然,银河麒麟在生态建设上仍有提升空间,比如部分小众第三方库的适配、开发者社区的活跃度等,但随着国产化进程的推进,这些问题必然会逐步解决。作为开发者,学习和使用银河麒麟,既是顺应时代趋势,也是为国产化生态建设贡献力量。
总结
- 银河麒麟基于 Linux 内核定制,兼容 Debian 系的
apt/dpkg命令,基础操作与常规 Linux 系统相似,但在安全性和国产化适配上有显著优势。 - 在银河麒麟上进行 Python、C 语言开发时,开发流程与常规 Linux 系统基本一致,主流开发工具和库均已完成适配,可直接使用。
- 银河麒麟的 systemd 服务管理是核心运维技能,通过编写
.service单元文件并配合systemctl命令,可实现自定义服务的启停、开机自启和状态监控,排查问题时可借助journalctl查看日志。

2603

被折叠的 条评论
为什么被折叠?



