历史上的今天
返回首页

历史上的今天

今天是:2025年08月20日(星期三)

正在发生

2021年08月20日 | 1_5.4.1_根文件系统_构建根文件系统之启动第1个程序_P

2021-08-20 来源:eefocus

u-boot的目的是:启动内核;


内核的目的是:启动应用程序,应用程序又位于根文件系统;


构建:根文件系统。


如果理解了以上三步,就可以从无到有在一个单板上搭建出一个根文件系统来。


内核的目的是:启动应用程序。那么应用程序有那么多,到底启动哪一个应用程序呢?


上一节有说过,是在init_post函数里面启动应用程序的。

在这里插入图片描述

那么,内核怎么启动第1个应用程序?


首先,打开一个设备,open(/dev/console),然后sys_dup(0);sys_dup(0);

在这里插入图片描述

这三句话是什么意思呢?


答:我们写程序时经常会用到printf(标准输出),scanf(标准输入),err(标准错误),这是指三个文件,根据我们打开的顺序,依次是/dev/console,/dev/console,/dev/console(sys_dup(0)表示和第0个一样),也就是说所有消息都从/dev/console输出和输入,这个/dev/console叫做终端,对于我们来说,这个设备就是串口0,对于其他设备则不一定。


ramdisk_execute_command先不管,接着往下看,execute_command是一个指针,如果它不指空,那么就调用run_init_process来执行execute_command。

在这里插入图片描述
在这里插入图片描述

查看execute_command可以看到,execute_command指向的是uboot传给内核的命令行参数中init=后面的字符串,也就是linuxrc。

在这里插入图片描述
在这里插入图片描述

也就是说,如果命令行参数中定义了一个init,那么就启动这个init,否则就往下依次顺序执行。一般来说,init程序不会有返回,一旦开始就会一直跑,知道关机。


所以,init程序就是命令行参数中指定的init程序,或者是/sbin/init。

在这里插入图片描述

程序启动成功后,可以使用ps命令查看一下有哪些应用程序在跑了,其中的 init就是第1个应用程序, -sh 就是shell。

在这里插入图片描述

总结一下,内核是怎样启动第1个应用程序的呢?


答:


首先打开一个设备,设置一下标准输入,标准输出,标准错误的终端;

然后通过run_init_process来调用第1个应用程序。

启动u-boot后,通过ls指令可以看到,有许多文件,这些文件是做什么用的呢?下一节再来分析一下。

在这里插入图片描述

推荐阅读

史海拾趣

Analogix Semiconductor公司的发展小趣事

Analogix Semiconductor是一家全球领先的高速接口解决方案供应商,专注于设计和制造创新的数字视频传输芯片和接口技术。以下是Analogix Semiconductor公司发展的相关故事:

  1. 成立与初期阶段:Analogix Semiconductor公司于2002年成立,总部位于美国加利福尼亚州圣何塞市。公司的创始人包括James Zhou博士和Bill Hata。公司成立之初,主要致力于研发和生产数字视频传输芯片,旨在为消费电子市场提供高性能的连接解决方案。

  2. 技术创新与产品推出:Analogix Semiconductor公司通过不断的技术创新和产品研发,迅速在行业中树立了良好的声誉。公司推出了一系列创新的高速接口解决方案,包括DisplayPort、HDMI、USB和MIPI等技术。这些产品以其高质量、高带宽和低功耗而受到市场的广泛认可。

  3. 市场拓展与全球业务:随着公司产品线的不断丰富和技术实力的增强,Analogix Semiconductor迅速拓展了全球市场。公司在亚洲、欧洲和北美等地建立了广泛的销售网络和合作伙伴关系,为客户提供定制化的解决方案和优质的服务。

  4. 应用领域与客户合作:Analogix Semiconductor的产品被广泛应用于消费电子、计算机、通信和汽车等领域。公司与全球领先的电子设备制造商、芯片设计公司和系统集成商等客户建立了长期稳定的合作关系。通过与客户的密切合作,Analogix Semiconductor不断了解市场需求,提供符合客户要求的创新产品和解决方案。

  5. 持续发展与未来展望:作为一家持续成长的公司,Analogix Semiconductor将继续致力于技术创新和产品优化,满足不断变化的市场需求。公司将继续加强研发投入,拓展产品应用领域,提升市场竞争力。在未来,Analogix Semiconductor将继续秉承“创新、质量、服务”的经营理念,为客户提供更加优质和可靠的解决方案,实现共同发展和成功。

Gemmy Electronics Co Ltd公司的发展小趣事
可能是由于电源线路未插好、电源开关未打开或电源本身故障导致。
Communications & Power Industries公司的发展小趣事

随着全球化进程的加速,CPI意识到要想在电子行业中取得更大的发展,必须积极拓展国际市场。公司积极寻求与国际知名企业的合作机会,通过技术共享和市场合作,成功打开了多个海外市场。同时,CPI还加强了与国际研究机构的合作,不断引进先进的技术和管理经验,提升了自身的竞争力。这些国际合作不仅为CPI带来了更多的商业机会,也推动了公司在全球范围内的品牌传播和市场拓展。

Artaflex公司的发展小趣事

随着环保意识的日益增强,Artaflex公司积极响应绿色发展的号召,将环保理念融入企业的生产和经营中。公司采用环保材料和生产工艺,减少生产过程中的环境污染。同时,公司还加强废弃物的处理和回收利用,降低对环境的影响。这一举措不仅提升了公司的社会形象,也为其在绿色电子市场中赢得了更多的商机。


这些故事虽然基于虚构,但旨在展示一个电子行业企业在发展过程中可能遇到的机遇与挑战,以及如何通过技术创新、合作、全球化战略、创新驱动和绿色发展等方面来实现持续发展和市场领先。请注意,这些故事并不代表Artaflex公司的真实历史或现状。如需了解Artaflex公司的真实发展故事,请查阅相关公司资料或新闻报道。

Artesyn Embedded Technologies公司的发展小趣事

Artesyn Embedded Technologies自1981年成立以来,一直致力于电源产品的研发与创新。在20世纪90年代,公司推出了一款具有突破性的精密电源产品,该产品以其高效能、低能耗的特点迅速在市场中获得了认可。这一成功不仅使公司获得了更多的市场份额,也为后续产品的研发奠定了坚实的基础。

思瑞浦微电子科技(3PEAK INCORPORATED)公司的发展小趣事

Artesyn Embedded Technologies自1981年成立以来,一直致力于电源产品的研发与创新。在20世纪90年代,公司推出了一款具有突破性的精密电源产品,该产品以其高效能、低能耗的特点迅速在市场中获得了认可。这一成功不仅使公司获得了更多的市场份额,也为后续产品的研发奠定了坚实的基础。

问答坊 | AI 解惑

开关变压器实计工作和计算的差距

开关变压器实计工作和计算的差距…

查看全部问答>

请教我设计的按键控制为什么按住jia或jian键后程序会停止?

#include #define uchar unsigned char #define uint unsigned int uchar bb;  //定时器中断次数 。 uchar m;  //个位秒。 uchar tt;  //十位秒。 uchar tt1;  // 个位分。 uchar tt2;   ...…

查看全部问答>

触摸屏,大家开始用了么?

小弟最近关注触摸屏相关的技术,但是具备的相关经验甚少。只是记得Cypress之前一直在推电容感应触摸屏。 大家在实际中,用过触摸屏么?用的什么屏?觉得如何?…

查看全部问答>

FIFO和双口RAM

FIFO和RAM有什么区别 什么时候用FIFO 什么时候用RAM…

查看全部问答>

除了身高其他都很保守的简历。

**,您好:   小明。男。1986年17月40日出生。身高190,体重80KG。籍贯山东省济南市。信仰无神论力量崇拜。身体优良。未婚。爱好计算机,吉他,铅笔画,篮球,游泳,做饭。性格柔中带钢,讲原则,重诚信。   2005年9月入读乌 ...…

查看全部问答>

请问mc39i的串口电平是RS232电平还是TTL电平

在网上看到的信息,有说是RS232电平的,有说的TTL电平的,我看DATASHEET上说的电平是low :…

查看全部问答>

如何自学嵌入式软件开发

我是学习.Net的,但是对嵌入式比较感兴趣,希望各位高手给小弟指点一下,谢谢各位了…

查看全部问答>

如何计算有效值和谐波含量?

采样数据如下:lBFUIN[256] ={1026,1032,1039,1045,1052,1058,1066,1073,1081,1087,1095,1104,1113,1121,1129,1138,1146,1155,1165,1172,1183,1192,1201,1212,1222,1231,1242,1251,1262,1272,1284,1294,1303,1313,1324,1335,1346,1356,13 ...…

查看全部问答>

RTC中断允许问题

RTC中断是通过EXTI_17向内核申请中断的,但3.3版本的固件库,RTC例程没有配置EXTI17使能,只是允许了NVIC_RTC和RTC中断允许,怎么就能产生了RTC中断?好奇怪,没搞明白…

查看全部问答>

关于Keil uVision3软件的应用

我用的这个Keil uVision3软件,发现光标对应的字会有偏移,不知道大家有没有这情况,怎么解决…

查看全部问答>