1.2.4 信创操作系统
2020年,龙芯基于近20年的CPU研发和生态建设经验推出了LoongArch架构,包括基础架构部分和向量指令、虚拟化、二进制翻译等扩展部分,涉及近2000条指令。LoongArch架构具有较好的自主性、先进性与兼容性。从整个架构的顶层规划,到各部分的功能定义,再到每条指令的编码、名称、含义,都进行了自主设计。LoongArch架构摒弃了传统指令系统中部分不适应当前软硬件设计技术发展趋势的陈旧内容,吸纳了近年来指令系统设计领域中诸多先进的技术发展成果。同原有兼容指令系统相比,LoongArch构架不仅在硬件方面更易于实现高性能、低功耗设计,而且在软件方面更易于实现编译优化和操作系统、虚拟机的开发。LoongArch架构在设计时充分考虑了兼容生态需求,融合了国际主流指令系统的主要功能特性,同时依托龙芯团队在二进制翻译方面10余年的技术积累、创新经验,能够实现多种国际主流指令系统的高效二进制翻译。龙芯从2020年起研发的CPU均支持LoongArch架构。
如今,LoongArch架构已得到国际开源软件界的广泛认可与支持,成为与x86、ARM并列的顶层开源生态系统,获得大量开源社区的支持。指令系统是软件生态的起点,只有从指令系统的根源上实现自主,才能打破软件生态发展受制于人的瓶颈。LoongArch架构的推出,是龙芯长期坚持自主研发理念的重要成果体现,是全面转向生态建设历史关头的重大技术跨越。
Loongnix操作系统是龙芯开源社区推出的一款基于Linux内核,并针对LoongArch架构进行优化和定制的操作系统。其作为龙芯软件生态建设的成果验证和展示环境,集成了内核、工具链、龙芯浏览器、Java虚拟机、音视频库、图形库、云计算、打印机驱动等操作系统基础设施方面的最新研发成果,可直接应用于日常办公、生产、生活等应用环境。编者编写此书时Loongnix最新的桌面版本为Loongnix-20.3.loongarch64,该版本支持的GNU编译器套件(GNU Compiler Collection,GCC)的最高版本为8.3.0。此版本的GCC已经可以比较完整地支持C++17的特性。Loongnix支持的GNU调试器(The GNU Project Debugger,GDB)的最高版本为8.1.50。目前支持的GCC和GDB版本都不是最新的,但完全可满足C语言开发需求。
Loongnix实行“以开源社区版为基础支持商业版和定制版发展”的生态模式,即龙芯发布开源的社区版操作系统Loongnix,以此作为技术和产品源头,一方面支持品牌操作系统厂商研发其商业版产品,另一方面支持云厂商、原始设备制造商(Original Equipment Manufacturer,OEM)等企业根据需求研发其定制版产品。
Loongnix包括Loongnix-Server、Loongnix-Client和Loongnix-Cloud这3个产品系列,分别面向服务器、个人计算机和云计算领域。
Loongnix的发展采用了“遵循统一系统架构和规范API”的技术路线。其中“系统架构”是操作系统和整机硬件间的界面,“API”是操作系统与应用软件间的界面。基于《龙芯CPU统一系统架构规范》,龙芯发布支持高级配置和电源管理接口(Advanced Configuration and Power Management Interface,ACPI)标准的统一可扩展固体接口(Unified Extensible Firmware Interface,UEFI)固件和系统,实现操作系统跨主板整机兼容和CPU代际兼容,达到“任意一套龙芯操作系统都可以安装在不同厂商、不同时期的龙芯整机”的目标。龙芯为此建立了专业团队,研发和维护Java虚拟机、浏览器、图形库等重要应用程序接口(Application Program Interface,API),通过规范API建立操作系统平台对API环境支持的版本识别度,在技术创新的同时保持API兼容。
在云计算方面,龙芯平台完全支持OpenStack/KVM、Docker/Kubernetes等典型云计算方案,已经发布了Loongnix和Alpine等龙芯平台操作系统容器镜像,用户可以直接下载使用。