linux 内存管理之基础篇
一.Linux内存管理的一些基本概念
内存空间:
绝大多数的嵌入式系统的系统内存和I/O地址空间是统一编址的,内存和I/O地址空间共享0x00000000~0xFFFFFFFF共4GB地址空间范围,这4GB的地址空间范围包括以下几种存储空间:设备空间、内部高速SRAM空间、内部mini cache空间、低端中断向量空间、高端中断向量空间、RAM内存空间(系统的内存空间)、ROM空间。
内存页(PAGE):
Linux一般以页为单位管理物理内存的,一般页的大小问4kb,对于页可以做到多小还是和处理器有关的。
内存区段(bank):
一个BANK表示一块连续的内存空间,对应于处理器的ram片选管脚链接的ram的内存空间。对于RAM在系统的起始地址和大小可以通过处理器寄存器设置的,如果处理器所链接所有RAM芯片都设置为首尾地址相连的话,Linux就可以用一个BANK来表示这片内存空间。
内存节点(node):
其实就是一个或者多个BANK组成的集合,对于上述的1个BANK的话,就是只有一个内存节点了。如果RAM的起始地址是固定的,不可设置的话,就有可能是内存空间不连续,这样就需要几个BANK了。如果对Linux配置了CONFIG_DISCONTIGMEM的话,即可以每个BANK可以对应不同的内存节点,或是多个BANK对应一个内存节点,不配置的话,全部都对应内存节点0。当多个BANK对应一个内存节点时,在上述的情况可能会有内存孔洞,这样在启动的时候就要产生页帧位码和struct page数据结构。这样会影响到系统在启动的时候获得最大连续物理内存,但是启动后就不会有任何影响,因为mem_init()会把这些页帧位码和struct page所占的空间释放掉。
内存页区(zone):
每个内存节点可分为3个内存页区,即DAM页区、Normal页区和HighMem页区。每个页区的含义如下:
DAM页区:可以进行DAM操作的RAM内存区域。
Normal页区:不可以进行DAM操作的RAM内存区域。
&
相关文档:
1. linux下启动oracle
su - oracle
sqlplus /nolog
conn /as sysdba
startup
exit
lsnrctl start
exit
2. linux下关闭oracle
su - oracle
sqlplus /nolog
conn /as sysdba
shutdown immediate
exit
lsnrctl stop
exit
可以使用lsnrctl 进去后用status查看状态,类似:
lsnrctl
status
http://hi.baidu.c ......
由bootload进入linux后由head.s进入了start_kernel了.
asmlinkage void __init start_kernel(void)
{
char * command_line;
extern struct kernel_param __start___param[], __stop___param[];
&hel ......
原文:Android and the Linux kernel community
在 Linux kernel 2.6.33 版本,Android 程式码,已经被移除。很多人开始询问我到底发生了什么事?Android 下一步又该怎么办?所以,以下就是我对这整件事情的意见……
首先,我要说,我是很喜欢 Android 手机平台。直到上周,我还是每天,使用我买的 dev ......
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
-->
一般说来,
Linux
社区版总有点儿凑合的意思,人们不敢使用,但是,也有例外的情况。比如,冠名为
Mint
的
Linux
发行版。具体情况是怎样的呢?
......
安装MySQL
好,我们可以开始正式的安装了。假设你把所有必须的源码或者包都放在了/tmp下。如果你下载的是RPM包的话,那比较简单;如果你下载的是二进制包(你没有rpm程序或者你想自定义的话),那么会稍微麻烦一点。
RPM包安装
你必须成为root用户才能使用rpm安装程序,以下是安装过程:
$ cd /tmp
$ su
# rpm -Uvh ......