linux 启动协议分析 由boot.txt翻译而来
在x86平台上,linux内核用了一个比较复杂的启动协议规范,主要由于历史原因,早期想把内核做成可启动映像,复杂的计算机内存模型和由于实模式DOS成为主流操作系统而影响的.
现在有下列启动协议存在:
旧版内核:只支持zImage和Image.
2.00:增加bzImage和initrd支持,也拥有了一种正规化的方法来实现启动装载器(* boot
loader)和内核间的通信。setup.S建造了一块可移动,但是仍旧可写的传统的安装程序加载区域。
2.01:增加了一些溢出警告
2.02:这是新的命令行协议。它降低了常规的内存使用上限(* 见以下MEMORY
LAYOUT内存布局介绍)。没有覆盖传统的安装程序区域,因此对于那些使用了来自SMM或者32位BIOS入口地址的EBDA(* Extended BIOS
Data Area,拓展BIOS数据域)的系统,这样做可以使得启动更加安全。
2.03:明确了高端的initrd地址可被 bootloader 使用.
2.04:扩展syssize
域到四个字节
2.05:使得保护模式下的 内核可被重定位,增加 relocatable_kernel
和kernel_alignment
域.
2.06:增加一个域存放 boot command line 的大小.
2.07:增加半虚拟化启动协议,在load_flags
中 增加 hardware_subarch
和 hardware_subarch_data
和 KEEP_SEGMENTS
标志.
2.08:增加CRC32校验和ELF格式的有效载荷。增加
payload_offset 和payload_length 域 用于定位有效载荷(payload)
2.09:增加一个64位的物理指针指向setup_data结构体的单链表.
2.10:增加了init_size 和 pref_address 域.
传统的用于早期的Image和bImage的Memory的映射图:
100000
图形接口卡信息和BIOS自身
0A0000 +------------------------+ 从这一下的640K称为基本内存
| Reserved for
BIOS | 未使用,被BIOS EBDA保留
09A000 +------------------------+
|
Command line |
| Stack/heap |
被实模式下的内核代码所使用
098000 +------------------------+
| kernel
setup &nb
相关文档:
Programming your application or library based on Qt has always had the promise that you can deploy your application on many different platforms. Development of those applications can, likewise, happen on many different platforms. QtCreator runs on Windows, Mac & Linux among others.
Qt很简单,易 ......
目录索引
一、与用户管理相关的
配置文件;
1、/etc
/passwd 和/etc/groups
2、超级权
限控制 sudo 的配置文件/etc/sudoers ;
3、添加用
户规则文件 /etc/login.defs 和 /etc/default/useradd
二、添加用户工具和方
法;
1、useradd
工具;
1.1、
useraadd 命令中的 -D运用
1.2、
useradd 添加用户;
......
DMAI(DaVinci Multimedia Application Interface)是DSP提供给ARM端应用程序的调用接口,DSP也是依赖于DSPLINK的。 DMAI中也提供了许多VISA (video, imaging, speech and audio)编解码的实例。DMAI提供的是一种功能的抽象,而在具体实现上,不同硬件平台,不同系统是不一个样的。另外,由于DMAI是以源代码的形式提供的,所以 ......
UNIX是历史最悠久的通用操作系统。1969年,美国贝尔实验室的K.Thompson和D.M.Ritchie在规模较小及较简单的分时操作系统MULTICS的基础上开发出UNIX, 当时是在DEC的PDP—7小型计算机上实现的,1970年正式投入运行。此后数年,UNIX一直是一个限于在AT&T内部使用的操作系统。1971年,发展出以 PDP- ......