CN103473059A - 一种支持多种体系架构的通用操作系统 - Google Patents
一种支持多种体系架构的通用操作系统 Download PDFInfo
- Publication number
- CN103473059A CN103473059A CN2013104120027A CN201310412002A CN103473059A CN 103473059 A CN103473059 A CN 103473059A CN 2013104120027 A CN2013104120027 A CN 2013104120027A CN 201310412002 A CN201310412002 A CN 201310412002A CN 103473059 A CN103473059 A CN 103473059A
- Authority
- CN
- China
- Prior art keywords
- general
- operating system
- purpose operating
- file
- bios
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种支持多种体系架构的通用操作系统,包括:通用可执行文件、通用工具链、通用加载器、通用内核以及用于加载和执行通用操作系统内核的BIOS。本发明实现一个操作系统支持不同体系架构,对系统安装就无需考虑不同体系架构需要安装不同版本的操作系统,对于使用也就无需考虑不同应用程序在不同操作系统中的兼容性问题,极大地提高了操作系统的通用性以及方便性。
Description
技术领域
本发明涉及一种通用操作系统,尤其是一种支持多种体系架构的通用操作系统。
背景技术
计算机的种类千差万别,不同体系结构的机器需要不同的操作系统。随着计算机普及度的提高,操作系统的非通用性产生了极大的不便。
操作系统由一系列文件构成,文件分为两大类:程序文件(可执行文件)和文档文件(数据文件)。可执行文件包含某种体系结构的二进制代码(指令),可以解析、打开数据文件并进行各种计算,完成各种任务。
一般来说,数据文件在各种体系结构之间是可以通用的,只要在该平台上有打开该文件的程序即可。但由于不同的的体系结构有着不同的指令集,因此可执行文件是不能通用的。比如,X86上的可执行文件可以在基于X86处理器的各种笔记本、台式机、服务器上运行,但不能在MIPS上运行;同样,MIPS版的可执行文件也不能在X86或者ARM机器上运行。因此,传统的可执行文件是“专用可执行文件”。
“通用可执行文件”是通用操作系统的基础,苹果公司在其电脑CPU从PowerPC转换到X86的时候曾开发过“通用二进制格式”(Universal Binary),可以支持两种体系结构;Linux开发者也发起过类似的项目,如FatELF。但它们都局限于应用程序,操作系统本身依旧是专用的。
发明内容
发明目的:本发明的目的是针对现有技术的不足,申请人提供一种支持多种体系架构的通用操作系统,能够实现一个操作系统支持不同体系架构。
技术方案:为了实现发明目的,本发明公开了一种支持多种体系架构的通用操作系统,包括:
A、通用可执行文件(UniEXE格式),所述通用可执行文件包括若干体系架构的代码段以及数据段
B、通用编译器,所述通用编译器将操作系统源代码编译成为多种体系结构的目标文件。
C、通用链接器,基于通用链接脚本,所述通用链接器将目标文件组装成通用操作系统的组件,所述组件包括通用内核、通用加载器、通用应用程序以及通用BIOS,所述通用BIOS能够解析通用可执行文件(以下简称UniEXE文件),加 载并执行通用内核。
D、通用加载器,所述通用操作系统包含通用加载器,可以解析UniEXE文件的头部信息并执行。
E、通用内核,所述通用内核是通用操作系统的核心部分,实现通用操作系统的中断处理、内存管理、进程管理、文件系统及设备驱动的功能,通用内核是通用的UniEXE格式可执行文件,由通用工具链生成。
进一步地,所述通用可执行文件包括通用头部、若干个ELF文件头部以及若干个区段;通用头部为一个表,表中不同表项指向相应的ELF文件头部;每个ELF文件头部用于存储一种机器类型的元数据;每个区段用于存储若干体系架构的代码段以及数据段;一个ELF文件头部对应若干个代码段和若干个数据段。
再进一步地,所述通用操作系统构造方法包括以下步骤:
a.使用通用编译器将操作系统源代码编译成为多种体系结构的目标文件;
b.基于通用链接脚本,使用通用链接器将目标文件组装成通用操作系统的组件,包括通用内核、通用加载器、通用应用程序以及通用BIOS;
c.将所述通用BIOS烧录到计算机的启动芯片,将所述通用内核、通用加载器及通用应用程序整合到安装光盘;
d.启动通用BIOS;
e.启动安装光盘;
f.将通用操作系统安装到系统硬盘。
有益效果:本发明与现有技术相比,本发明实现了一个操作系统支持不同体系架构,对于系统安装就无需考虑不同体系架构需要安装不同版本的操作系统,即无需考虑不同应用程序在不同操作系统中的兼容性问题,极大地提高了操作系统的通用性以及方便性。真正做到对于系统安装,可以“一张光盘走遍天下”。
附图说明
图1为本发明通用可执行文件格式的示意图。
图2为本发明的通用工具链的示意图。
图3为本发明的内存布局的示意图。
图4为本发明的通用操作系统构造的结构示意图。
具体实施方式
下面通过一个最佳实施例,对本技术方案进行详细说明,但是本发明的保护范围不局限于所述实施例。
一种支持多种体系架构的通用操作系统,所述通用操作系统包括以下内容:
A、通用可执行文件(UniEXE格式),所述通用可执行文件包括若干体系架构的代码段以及数据段
B、通用编译器,所述通用编译器将操作系统源代码编译成为多种体系结构的目标文件;
C、通用链接器,基于通用链接脚本,所述通用链接器将目标文件组装成通用操作系统的组件,所述组件包括通用内核、通用加载器、通用应用程序以及通用BIOS,所述通用BIOS能够解析UniEXE格式,加载并执行通用内核;
D、通用加载器,所述通用操作系统包含通用加载器,可以解析UniEXE文件的头部信息并执行;
E、通用内核,所述通用内核是通用操作系统的核心部分,实现通用操作系统的中断处理、内存管理、进程管理、文件系统及设备驱动的功能,通用内核是通用的UniEXE格式可执行文件,由通用工具链生成。
如图1所示,通用执行文件格式包括了通用头部、两个ELF头部以及两个代码段和两个数据段,其中通用头部包含了两个ELF头部的首地址;第一ELF头部包含了机器类型MIPS、MIPS代码段首地址以及MIPS数据段首地址,第二ELF头部包含了机器类型i386、i386代码段首地址以及i386数据段首地址。
以上的通用文件格式不局限于两种体系架构,需要支持某种体系架构只需在通用头部加入相应体系架构的ELF头部的首地址,并且添加对应的ELF头部以及与其相适应的代码段和数据段。这样的通用执行文件格式相比现有LINUX的ELF文件格式,加入了对于不同体系架构下不同指令集的支持,从而使得执行文件格式可以不拘泥于一种操作系统或者有限操作系统的执行。
如图2所示,通用编译器将源代码进行编译,生成针对MIPS和i386的两个目标文件,通用链接器则根据链接脚本将两个目标文件生成通用执行文件。以上的编译不局限于两个操作系统。通用编译器与现有的专用编译器相比,可以将源代码生成多种需要支持的体系架构的目标文件,而不是局限于原有的一种体系架构;而通用链接器则将众多目标文件整合生成了支持多种体系架构的通用执行文件。
如图3所示,以一个4GB物理内存的空间划分为例。i386和MIPS有着各自不同的特殊内存空间,比如MIPS寄存器映射区、MIPS的BIOS、i386的BIOS、i386的显存区以及MIPS的中断向量区,特殊空间以外的部分属于自由内存。通用链接器根据链接脚本的描述,避开各种特殊空间,将通用内核本身放置在自由内存区域。以上的内存布局不局限于两个操作系统。这样就实现了通用内核可以保证在不同体系架构下的稳定。
如图4所示,通用操作系统的构造方法如下:
1、使用通用编译器将操作系统源代码编译成为多种体系结构的目标文件;
2、基于通用链接脚本,使用通用链接器将目标文件组装成通用操作系统的组件,包括通用内核、通用加载器、通用应用程序以及通用BIOS;
3、将所述通用BIOS烧录到计算机的启动芯片,将所述通用内核、通用加载器及通用应用程序整合到安装光盘;
4、启动通用BIOS;
5、启动安装光盘;
6、将通用操作系统安装到系统硬盘。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (2)
1.一种支持多种体系架构的通用操作系统,其特征在于:所述通用操作系统包括以下内容:
A、通用可执行文件(UniEXE格式),所述通用可执行文件包括若干体系架构的代码段以及数据段;
B、通用编译器,所述通用编译器将操作系统源代码编译成为多种体系结构的目标文件;
C、通用链接器,基于通用链接脚本,所述通用链接器将目标文件组装成通用操作系统的组件,所述组件包括通用内核、通用加载器、通用应用程序以及通用BIOS,所述通用BIOS能解析UniEXE格式,加载并执行通用内核;
D、通用加载器,所述通用操作系统包含通用加载器,可以解析UniEXE文件的头部信息并执行;
E、通用内核,所述通用内核是通用操作系统的核心部分,实现通用操作系统的中断处理、内存管理、进程管理、文件系统及设备驱动的功能,通用内核是通用的UniEXE格式可执行文件,由通用工具链生成。
2.根据权利要求1所述的一种支持多种体系架构的通用操作系统,其特征在于:所述通用操作系统构造方法包括以下步骤:
a.使用通用编译器将操作系统源代码编译成为多种体系结构的目标文件;
b.基于通用链接脚本,使用通用链接器将目标文件组装成通用操作系统的组件,包括通用内核、通用加载器、通用应用程序以及通用BIOS;
c.将所述通用BIOS烧录到计算机的启动芯片,将所述通用内核、通用加载器及通用应用程序整合到安装光盘;
d.启动通用BIOS;
e.启动安装光盘;
f.将通用操作系统安装到系统硬盘。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310412002.7A CN103473059B (zh) | 2013-09-11 | 2013-09-11 | 一种支持多种体系架构的通用操作系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310412002.7A CN103473059B (zh) | 2013-09-11 | 2013-09-11 | 一种支持多种体系架构的通用操作系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103473059A true CN103473059A (zh) | 2013-12-25 |
CN103473059B CN103473059B (zh) | 2016-09-28 |
Family
ID=49797931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310412002.7A Active CN103473059B (zh) | 2013-09-11 | 2013-09-11 | 一种支持多种体系架构的通用操作系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103473059B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103970658A (zh) * | 2014-05-15 | 2014-08-06 | 龙芯中科技术有限公司 | Pmon与内核版本兼容性测试的方法和装置 |
CN107301037A (zh) * | 2016-04-15 | 2017-10-27 | 龙芯中科技术有限公司 | 操作系统内核的加载方法和装置 |
CN109117140A (zh) * | 2018-07-12 | 2019-01-01 | 郑州云海信息技术有限公司 | 一种分布式构建支持多内核应用程序的方法及系统 |
CN110083469A (zh) * | 2019-05-11 | 2019-08-02 | 肖银皓 | 一种异构硬件组织运行统一内核方法及系统 |
CN110764777A (zh) * | 2019-10-17 | 2020-02-07 | 北京东土科技股份有限公司 | 一种elf文件生成方法、elf文件、设备及存储介质 |
CN112486570A (zh) * | 2020-11-06 | 2021-03-12 | 麒麟软件有限公司 | 一种不同类型CPU的Glibc兼容方法 |
CN113821273A (zh) * | 2021-09-23 | 2021-12-21 | 武汉深之度科技有限公司 | 一种应用程序运行方法、计算设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040226020A1 (en) * | 2000-09-28 | 2004-11-11 | Ati Technologies, Inc. | Method and system for using general and appliance operating systems in a single information handling device |
CN101131653A (zh) * | 2007-09-17 | 2008-02-27 | 苏州壹世通科技有限公司 | 超级操作系统与其媒介之间的透视性沟通方法 |
CN101187882A (zh) * | 2006-11-15 | 2008-05-28 | 乐金电子(昆山)电脑有限公司 | 支持多个操作系统的计算机体系及其支持多个操作系统的方法 |
-
2013
- 2013-09-11 CN CN201310412002.7A patent/CN103473059B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040226020A1 (en) * | 2000-09-28 | 2004-11-11 | Ati Technologies, Inc. | Method and system for using general and appliance operating systems in a single information handling device |
CN101187882A (zh) * | 2006-11-15 | 2008-05-28 | 乐金电子(昆山)电脑有限公司 | 支持多个操作系统的计算机体系及其支持多个操作系统的方法 |
CN101131653A (zh) * | 2007-09-17 | 2008-02-27 | 苏州壹世通科技有限公司 | 超级操作系统与其媒介之间的透视性沟通方法 |
Non-Patent Citations (1)
Title |
---|
黄聪会 等: "兼容Windows 程序的KgdLinux 操作系统研究", 《空军工程大学学报(自然科学版)》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103970658B (zh) * | 2014-05-15 | 2016-07-06 | 龙芯中科技术有限公司 | Pmon与内核版本兼容性测试的方法和装置 |
CN103970658A (zh) * | 2014-05-15 | 2014-08-06 | 龙芯中科技术有限公司 | Pmon与内核版本兼容性测试的方法和装置 |
CN107301037B (zh) * | 2016-04-15 | 2021-03-30 | 龙芯中科技术股份有限公司 | 操作系统内核的加载方法和装置 |
CN107301037A (zh) * | 2016-04-15 | 2017-10-27 | 龙芯中科技术有限公司 | 操作系统内核的加载方法和装置 |
CN109117140A (zh) * | 2018-07-12 | 2019-01-01 | 郑州云海信息技术有限公司 | 一种分布式构建支持多内核应用程序的方法及系统 |
CN110083469B (zh) * | 2019-05-11 | 2021-06-04 | 广东财经大学 | 一种异构硬件组织运行统一内核方法及系统 |
CN110083469A (zh) * | 2019-05-11 | 2019-08-02 | 肖银皓 | 一种异构硬件组织运行统一内核方法及系统 |
CN110764777B (zh) * | 2019-10-17 | 2020-12-08 | 北京东土科技股份有限公司 | 一种elf文件生成方法、elf文件、设备及存储介质 |
CN110764777A (zh) * | 2019-10-17 | 2020-02-07 | 北京东土科技股份有限公司 | 一种elf文件生成方法、elf文件、设备及存储介质 |
CN112486570A (zh) * | 2020-11-06 | 2021-03-12 | 麒麟软件有限公司 | 一种不同类型CPU的Glibc兼容方法 |
CN112486570B (zh) * | 2020-11-06 | 2023-06-02 | 麒麟软件有限公司 | 一种不同类型CPU的Glibc兼容方法 |
CN113821273A (zh) * | 2021-09-23 | 2021-12-21 | 武汉深之度科技有限公司 | 一种应用程序运行方法、计算设备及存储介质 |
CN113821273B (zh) * | 2021-09-23 | 2023-10-13 | 武汉深之度科技有限公司 | 一种应用程序运行方法、计算设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103473059B (zh) | 2016-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103473059B (zh) | 一种支持多种体系架构的通用操作系统 | |
KR101381274B1 (ko) | 효율적인 동적 이진 변환을 위한 레지스터 매핑 방법, 시스템 및 컴퓨터 판독가능 저장 매체 | |
JP6122493B2 (ja) | 適応的に移植性を有したライブラリ | |
US9766867B2 (en) | Systems and methods for improving performance of mobile applications | |
Pai et al. | Fast and efficient automatic memory management for GPUs using compiler-assisted runtime coherence scheme | |
RU2008105764A (ru) | Архивирование данных в виртуальном прикладном окружении | |
US9558096B2 (en) | Method and apparatus for supporting performance analysis | |
CN104951274A (zh) | 用于控制流安全性的二进制转换机制的指令和逻辑 | |
CN101299192B (zh) | 一种非对齐访存的处理方法 | |
JP2014510343A (ja) | ライブラリーオペレーティングシステムによるアプリケーションの互換性 | |
CN102364433B (zh) | 在ARM处理器上实现Wine构建工具移植的方法 | |
CN102193788B (zh) | 基于动态二进制翻译的跨平台驱动程序复用方法 | |
CN111290952A (zh) | 一种动态链接库函数的跟踪方法及装置 | |
JP5966509B2 (ja) | プログラム、コード生成方法および情報処理装置 | |
CN102364442A (zh) | 将Wine从x86移植到ARM平台的方法 | |
EP2659362A2 (en) | Emulating pointers | |
US20150212836A1 (en) | Conjugate code generation for efficient dynamic optimizations | |
CN103714288A (zh) | 一种数据流跟踪方法 | |
CN103744682A (zh) | 一种分开编译异构混编程序的方法和系统 | |
CN102436398A (zh) | 一种Android移植系统 | |
KR101083271B1 (ko) | 액티브엑스 컨트롤 변환 시스템 및 방법 | |
Chen et al. | Design and implementation of high-level compute on Android systems | |
Kumar et al. | Assisting static compiler vectorization with a speculative dynamic vectorizer in an hw/sw codesigned environment | |
CN113220300A (zh) | 一种应用于Android系统x86架构上的ARM指令集转换方法 | |
US20030135535A1 (en) | Transferring data between threads in a multiprocessing computer system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |