您的位置:首页 > 其它

ELDD 阅读笔记 --- 01

2010-07-16 11:39 645 查看
<<Essential Linux Device Drivers>>

1. Stb225 linux 启动信息 => "Determined physical RAM map:

memory: 03972000 @ 00000000 (usable)"

该打印在内存管理子系统初始化时发生,前面03972000表示内存大小,00000000表示起始地址, usable表示内存类型是BOOT_MEM_RAM。

调用函数关系如下:

linux/init/main.c: start_kernel() =>

linux/arch/mips/kernel/setup.c: setup_arch() => {

prom_init();

... ...

arch_mem_init();

}

其中,prom_init()读取uboot设置的启动linux时的环境变量 - memsize,即物理内存的大小。

该内存大小减去DSP MIPS系统需要的内存以及保留的高端内存(用于视频解码等)所得为linux实际可用的内存大小。

即(可见/linux/arch/mips/nxp/pnx833x/stb22x/board.c prom_init()):

memsize(from uboot) = memsize(for linux) + (CONFIG_DSP_MIPS_MEM_SIZE + CONFIG_RESERVED_HIGH_MEM_SIZE);

即 80000000(get from uboot) = 03972000(for control linux) + d00000(for dsp linux) + 398e000(for high memory)

而uboot中memsize的获得过程如下:

u-boot/board/stb22x/stb22x.c, initdram()通过读写检测到ram的size

u-boot在启动linux前,调用linux_set_env("memsize", "80000000") - 见u-boot/lib_mips/mips_linux.c

2. 内核命令行

Stb225环境下命令行参数通过u-boot设置,也可以通过CONFIG_CMDLINE追加配置。

而命令行的使用可以参考init/main.c,增加新的参数设置,书本P22也有典型例子。

3. BogoMIPS计算

BogoMIPS(Bogus MIPS) = loops_per_jiffy * Number of jiffies in 1 second (HZ) * Number of instructions consumed by the internal delay loop

由于loops_per_jiffy是源自于近似计算,所以该方法估算的计算机速度称为BogoMIPS.

4. socket(like a two-way communication pipe)

比如stb225注册了以下几类socket。

AF_UNIX --- Unix Domain Sockets, can be used between interprocesses

AF_INET --- Internet IP Protocol,

AF_NETLINK --- Between User processes and the kernel

AF_PACKET --- Packet family

关于unix socket,建议参考以下页面:
http://beej.us/guide/bgipc/output/html/multipage/unixsock.html (其中的例子非常好,尤其是关于socketpair()的例子,非常cool)

unix socket也是文件系统中的一个特殊文件,但是不用open和read等,而是用socket(),bind(),recv()等。

unix socket的概念源自于Internet socket,好的参考见:
http://beej.us/guide/bgnet/output/html/multipage/index.html
书名<<Beej's Guide to Network Programming>>

5. ARP: Address Resolution Protocol

地址解析协议,实现通过IP地址得知其物理地址。原理大致如下:以主机A向主机B发送数据为例,当发送数据时,主机A查找自己的ARP缓存表中查找目标 IP地址,如果找到,也就得到目标MAC地址。否则,在网络上广播询问主机B的MAC地址,得到后同时更新ARP缓存表。百度词条有生动阐述。

RARP: Reverse Address Resolution Protocol

方向地址转换协议,允许局域网的物理机器从网关服务器的 ARP 表或者缓存上请求其 IP 地址。网络管理员在局域网网关路由器里创建一个表以映射物理地址(MAC)和与其对应的 IP 地址。当设置一台新的机器时,其 RARP 客户机程序需要向路由器上的 RARP 服务器请求相应的 IP 地址。百度词条有生动阐述。

6. ldd [OPTION]... FILE ...

显示文件依赖的共享库
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: