linux参数传递总结

linux参数传递总结

ID:44230014

大小:83.58 KB

页数:5页

时间:2019-10-19

linux参数传递总结_第1页
linux参数传递总结_第2页
linux参数传递总结_第3页
linux参数传递总结_第4页
linux参数传递总结_第5页
资源描述:

《linux参数传递总结》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、这节说明内核命令的处理先看一下有bootloader传递给内核的参数root=/dev/nfsnfsroot=192.16&1.130:/opt/linux-top-pub/ui」ef/tnmk/bld_7266_h_64x2/Footfsrwnoinitrdinit=/initip=192.168.1.188:192.168.1.180:192.168.1.1:255.255.255.0:target:eth0:offconsole=ttySO,115200这些参数在内核中是怎么处理它的呢?1.Linux在整个内核中定义了大量的命令行参数。在Linux源码中的…/Documenta

2、tion子目录中有一个名为kernel-parameters.txt文件,该文件包含了Linux内核命令行参数列表,它们按字母顺序依次列出2.先在回忆一下.setup宏,这个就上要功能就是凡是有用到这个宏的代码在编译连接的时候就会统一放在一个代码段屮去,这样就变成了一个初始化的列表3./*4.*Setupalistofconsoles.Calledfrominit/main.c5.*/6・staticint_initconsole_setup(char*str)7.{8・charname[sizeof(console_cmdline[0]•name)];9・char*s,*optio

3、ns;10・intidx;11・12./*13・*Decodestrintoname,index,options.14.*/15.16・return1;17.}18.19・_setup(l,console=n,console_setup);你可以将-setup宏看作是内核命令行控制台参数在内核中的注册函数。当字符串信息console=出现在内核命令行吋,就通过—setup広的第2个参数调用函数console_setup()0但是在并不知道控制台功能的情况下,这个模块之外的配置代码是如何获収该信息呢?事实上,其实现机制巧妙而复杂,并且依赖于目标链接器所创建的列表。1.#definese

4、tup_param(strzunique_idzfn,early)2.staticchar—setup_str_##unique_id[]—initdata=str;3.staticstructobs_kernel_paramsetup_##unique_id4.attribute_used—5.attribute—((section_{".init.setup11)))6•attribute—((aligned((sizeof(long)))))6.={setup_str_##imiquG_idFfn,early}9.#define._setup_null_param(

5、str,unique_id)10.・_setup_param(str,unique_id,NULL,0)11.12.#define._setup(str,fn)13-._setup_param(str,fn,fn,0)staticint_initchecksetup(charJine){structkernel_param*p;p=&_setup_start;do{intn=strlen(p・>str);if(!stmcmp(line,p->str,n)){if(p->setup_func(line+n))return1;}P++;}while(pv&_setup_end);retu

6、rn0;}这里的意思是从_setup_start开始处到_setup_end处中査找一个数据结构,这个数据结构中冇str与setup_func这两个数据成员变量.只要与这里面的str与输入的参数字符串相匹配,就会调用个这个字符串后而所指的内容,对于你这里所说的—setup(nconsole=n,console_setup);就是你在启动linux内核的时候如果有这么一个参数输入console=ttyS1,那内核就会把默认的tty定位为ttyS1,这个在consol_setup函数的字符串处理中完成,因为它最后是确定prefered^console的参数.代码清单5-6内核命令行处理1

7、.1externstructobs_kernel_paramsetup_start[],setup_end[];2.23.3staticintinitobsolete_checksetup(char*line)4.4{5.5structobs_kernel_param*p;6•67.7p=setup_start;8.8do{9.9intn=strlen(p->str);10.10if(!strncmp(line,p->str,n)){12.12/*Alre

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。