CN101464835A - 操作系统的物理内存存取的方法 - Google Patents
操作系统的物理内存存取的方法 Download PDFInfo
- Publication number
- CN101464835A CN101464835A CNA2007103018492A CN200710301849A CN101464835A CN 101464835 A CN101464835 A CN 101464835A CN A2007103018492 A CNA2007103018492 A CN A2007103018492A CN 200710301849 A CN200710301849 A CN 200710301849A CN 101464835 A CN101464835 A CN 101464835A
- Authority
- CN
- China
- Prior art keywords
- physical
- operating system
- internal memory
- access
- address
- 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.)
- Pending
Links
Images
Landscapes
- Memory System (AREA)
Abstract
本发明公开了一种操作系统的物理内存(Physical Memory)存取的方法,主要应用操作系统在执行程序时,通过内存实体地址(Physical Address)与线性地址(Linear Address)的映像,使得在对使用者区间(User Space)作存取时而对应到核心区间(Kernel Space)进行存取物理内存的目的。
Description
技术领域
本发明涉及一种操作系统的物理内存存取的方法,特别是涉及一种应用于Linux操作系统的非易失性内存存取的方法。
背景技术
对于嵌入式系统(Embedded System)的操作系统(Operation System,OS),目前所使用的产品很多,诸如Palm OS、Windows CE、Linux等。其中由于Linux操作系统具有免费授权的特性,因此目前大量地应用于嵌入式系统中。
Linux执行程序时可以分作两个部份,第一个为核心区间(Kernel Space),另一个为使用者区间(User Space)。有关硬件相关的存取控制都是在核心区间执行,而一般使用者写的程序都是在使用者区间执行。使用者区间和核心区间是两个不同的区域,两个并无法直接使用对方的资源,需要通过一些系统的呼叫才能进行,系统呼叫会对呼叫者的权限和操作做检查,以保护核心程序(Kernel)的运行。当要存取硬件时,会通过系统呼叫(System Call)的方式从使用者模式(User Mode)跳到核心区间去执行,如通过驱动程序(driver)存取硬件信息。
而在嵌入式系统中静态储存数据的硬件,通常为闪存(Flash)、非易失性内存(Non-Volatile Random Access Memory,NVRAM)或电子擦除式只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)。一般都将写好的程序放入Flash,而相关的设定就放在NVRAM或EEPROM中。因在Linux的核心区间,可以方便的存取NVRAM,但在进入使用者区间时就无法直接存取NVRAM。如图1所示,在使用者区间200要存取有关核心区间100中的硬件信息,需要通过驱动程序(driver)来达成。因此当OS加载完成后已在使用者区间的情况下,若必须设定NVRAM的值,要将值写入到NVRAM需要通过驱动程序(driver)来完成。这样一来所花的时间要比较长,另外也需要较复杂的程序。
发明内容
本发明的目的在于提供一种操作系统的物理内存存取的方法,主要应用Linux操作系统在执行程序时,所分别使用的核心区间(Kernel Space)及使用者区间(User Space)的两个内存区块,通过两者之间内存地址的映像,使得在对使用者区间操作存取时,即对应于核心区间进行存取,而达到快速存取物理内存的目的。
为了实现上述目的,本发明提供了一种不需通过驱动程序(driver)的方式,即能快速存取操作系统的非易失性物理内存(NVRAM)的方法。如图2所示,为本发明的操作系统的存取核心区间(Kernel Space)的示意图。应用本发明的技术,使得在操作系统(OS)进入使用者区间200的情况下,若是需要存取核心区间100中的数据,不必通过驱动程序即能够存取到NVRAM的数据,节省系统的资源,加快存取的速度。
因为嵌入式系统硬件架构较为单纯,所以在一些硬件配置部份可以由开发者自行决定,故NVRAM装置可以对应到某一块内存中。因此将NVRAM所在的地址设定在0xXXXXXXXX的实体地址,而Linux就可以利用此地址存取。然后再设定此地址再对应到核心区间内存地址(如0xYYYYYYYY)。所以当存取到0xYYYYYYYY就如同存取到该NVRAM一样,因为是在核心区间中,所以到了使用者区间就没有办法再对0xYYYYYYYY做存取,可使NVRAM受到保护。因使用者区间和核心区间是两块不同的区域。
本发明所提出的操作系统的物理内存存取的方法,即利用特殊的内存映像函式(mmap),而将核心区间100的地址对应到使用者区间200。当对使用者区间200的这块内存进行存取时,事实上就是对核心区间100的那一块内存进行存取。因此,即可通过这样的方式存取嵌入式系统的非易失性内存(NVRAM)。
下面结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
附图说明
图1为公知技术通过驱动程序(driver)存取核心区间(Kernel Space)中硬件信息的示意图;
图2为本发明的操作系统的存取核心区间(Kernel Space)的示意图;
图3为本发明的操作系统存取物理内存的方法的步骤流程图;
图4为本发明的物理内存的实体地址及核心区间与使用者区间中的线性地址的映像示意图。
其中,附图标记:
100:核心区间(Kernel Space)
200:使用者区间(User Space)
300~380:方法步骤
实施方式
本发明为一种操作系统的物理内存存取的方法,通过内存地址的映像,使得在对使用者区间操作存取时,即对应于核心区间进行存取,而达到快速存取物理内存的目的。以下配合图示并应用本发明方法技术的较佳实施例,详细说明本发明方法的步骤流程。
配合参考图3,为本发明的操作系统的存取物理内存的方法的步骤流程图。如图所示,首先,借助操作系统的一核心程序(Kernel)对映一核心区间(Kernel Space)的一线性地址(Linear Address)到一物理内存(PhysicalAddress)的一实体地址(步骤300),其中该实体地址指该物理内存的实际地址,而该线性地址则必须通过该核心程序的转换而对映到该实体地址。接着,加载一开机程序(步骤310),该开机程序(Boot_Code)为可支持多重开机功能的开机管理程序(Bootloader),用以读取操作系统的核心程序(Kernel)并控制核心程序(Kernel)的加载。在加载开机程序时,同时判断是否为第一次开机(步骤320)。在步骤320中,若该为第一次开机,则通过该开机程序加载一核心程序(Kernel)(步骤340),以进入核心模式(Kernel Mode)中,以供操作系统抓取相关硬件配置。当核心程序设定完硬件配置之后,接下来就进入使用者模式(User Mode)(步骤350),此即于使用者区间(User Space)中执行的处理程序,以设定操作系统的其它相关环境参数。然后,在使用者模式中,通过执行的一内存映像函式(mmap)将该使用者区间中的一线性地址映像至该核心区间的该线性地址(步骤360)。如此,使用者模式中的应用程序才能借助线性地址转换成相对的该实体地址来存取该物理内存(步骤370)。最后,即完成开机设定(步骤380),并结束本流程。此外在步骤320中若该操作系统的不是第一次开机,则开机程序即依照先前的系统环境设定,直接完成开机(步骤330),并结束本流程。
接着,配合参考图4,为本发明的物理内存的实体地址及核心区间与使用者区间中的线性地址的映像示意图。如图所示,上述步骤360的该内存映像(mmap)将该核心区间100中的该线性地址映像(mapping)至该使用者区间200中的该线性地址,用来将某个文件内容映像(mapping)到内存中,故对该内存区域的存取,即是直接对该文件内容的读写。因此,当对使用者区间200的内存进行存取时,事实上就是由核心区间100的线性地址,所对应到的物理内存中那一块内存进行存取。如此,就不必再通过认何驱动程序(driver),即可达到快速存取物理内存的目的。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (10)
1、一种操作系统的物理内存存取的方法,其特征在于,至少包含步骤:
借助一操作系统的一核心程序对映一核心区间的一线性地址到一物理内存的一实体地址;
通过该操作系统执行的一内存映像函式将该使用者区间中的一线性地址映像至该核心区间的该线性地址;以及
借助该使用者区间中的该线性地址转换成相对的该实体地址来存取该物理内存。
2、根据权利要求1所述的操作系统的物理内存存取的方法,其特征在于,该操作系统为一Linux操作系统。
3、根据权利要求1所述的操作系统的物理内存存取的方法,其特征在于,该操作系统执行程序时分别使用该核心区间及该使用者区间。
4、根据权利要求1所述的操作系统的物理内存存取的方法,其特征在于,该物理内存提供该核心程序储存核心程序代码及核心数据的内存区间。
5、根据权利要求4所述的操作系统的物理内存存取的方法,其特征在于,该物理内存为一非易失性内存。
6、根据权利要求1所述的操作系统的物理内存存取的方法,其特征在于,该实体地址指该物理内存的实际地址。
7、根据权利要求1所述的操作系统的物理内存存取的方法,其特征在于,该线性地址通过该核心程序的转换,而对映到该实体地址。
8、根据权利要求1所述的操作系统的物理内存存取的方法,其特征在于,该核心程序于该核心区间中执行设定相关的硬件配置。
9、根据权利要求1所述的操作系统的物理内存存取的方法,其特征在于,该内存映像函式在该使用者区间中被执行。
10、根据权利要求1所述的操作系统的物理内存存取的方法,其特征在于,该内存映像函式,提供将该核心区间的该线性地址映像至该使用者区间的该线性地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007103018492A CN101464835A (zh) | 2007-12-18 | 2007-12-18 | 操作系统的物理内存存取的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007103018492A CN101464835A (zh) | 2007-12-18 | 2007-12-18 | 操作系统的物理内存存取的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101464835A true CN101464835A (zh) | 2009-06-24 |
Family
ID=40805424
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007103018492A Pending CN101464835A (zh) | 2007-12-18 | 2007-12-18 | 操作系统的物理内存存取的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101464835A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077120A (zh) * | 2012-12-31 | 2013-05-01 | 东软集团股份有限公司 | 程序共享内存的地址转换方法和装置 |
CN109683983A (zh) * | 2018-12-11 | 2019-04-26 | 青岛海信电器股份有限公司 | 一种镜像文件的生成及加载方法、设备 |
CN109901956A (zh) * | 2017-12-08 | 2019-06-18 | 英业达科技有限公司 | 内存整体测试的系统及其方法 |
-
2007
- 2007-12-18 CN CNA2007103018492A patent/CN101464835A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077120A (zh) * | 2012-12-31 | 2013-05-01 | 东软集团股份有限公司 | 程序共享内存的地址转换方法和装置 |
CN103077120B (zh) * | 2012-12-31 | 2016-01-27 | 东软集团股份有限公司 | 程序共享内存的地址转换方法和装置 |
CN109901956A (zh) * | 2017-12-08 | 2019-06-18 | 英业达科技有限公司 | 内存整体测试的系统及其方法 |
CN109683983A (zh) * | 2018-12-11 | 2019-04-26 | 青岛海信电器股份有限公司 | 一种镜像文件的生成及加载方法、设备 |
CN109683983B (zh) * | 2018-12-11 | 2021-09-24 | 海信视像科技股份有限公司 | 一种镜像文件的生成及加载方法、设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2638466B1 (en) | Software updating process for an embedded device | |
US20110283051A1 (en) | Moving executable code from a first region of a non-volatile memory to a second region of the non-volatile memory | |
US11455401B2 (en) | Data-processing device and data-protection method thereof | |
US20050038983A1 (en) | Novel flash memory arrangement | |
KR101059633B1 (ko) | 멀티태스킹 가상 머신을 위한 힙 구성 | |
US20030145191A1 (en) | Computer system and method of controlling the same | |
CN109086086B (zh) | 一种非空间共享的多核cpu的启动方法及装置 | |
CN101645046A (zh) | 一次性可编程存储器仿真 | |
US9542113B2 (en) | Apparatuses for securing program code stored in a non-volatile memory | |
US20070271609A1 (en) | Security system of flash memory and method thereof | |
CN109408122A (zh) | 一种设备启动方法、电子设备和计算机存储介质 | |
CN101464835A (zh) | 操作系统的物理内存存取的方法 | |
US20090193185A1 (en) | Method for accessing the physical memory of an operating system | |
US6779732B2 (en) | Method and apparatus for linking converted applet files | |
CN111694580B (zh) | 存储设备升级及初始化的方法、装置、电子设备 | |
US8024362B2 (en) | System and method for erasing and writing desktop management interface data under a linux system | |
US5974249A (en) | Zero footprint method and apparatus for expanding allocated memory space of a process using a virtual memory area | |
KR100640389B1 (ko) | Nand플래시 메모리를 구비한 장치에서 어플리케이션을실행하는 방법 및 그 장치 | |
CN113760193B (zh) | 用于资源受限制装置的数据读写方法、装置及指令集 | |
CN115421902A (zh) | 一种芯片中应用程序的管理方法和装置 | |
JPH09146774A (ja) | パーソナルコンピュータシステム | |
CN101840520A (zh) | 一种智能卡及访问智能卡闪存的方法 | |
US7447893B2 (en) | Method and system for updating boot block BIOS program | |
US20040236878A1 (en) | Method of write-protecting a MAC address | |
CN114546454A (zh) | bootloader升级方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20090624 |