嵌入式Linux:剖析嵌入式系统(二)

姓名:陈方园    学号:19020100239    学院:电子工程学院https://blog.csdn.net/HaaSTech/article/details/116486192

转自:

https://max.book118.com/html/2021/0122/6011000144003053.shtm

【嵌牛导读】嵌入式一般指嵌入式系统。嵌入式系统由硬件和软件组成。是能够独立进行运作的器件。Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。

【嵌牛鼻子】内核

【嵌牛提问】什么是引导内核?

【嵌牛正文】

2.2.3 引导内核

现在U-Boot已经初始化了硬件、串行端口和以太网接口,在其短暂但有益的生命中还剩一件工作:加载并引导Linux内核。所有的引导加载程序都提供了命令用于加载和执行操作系统镜像。代码清单2-2显示了使用U-Boot手动加载并引导Linux内核的一种常用方法。

代码清单2-2

 加载Linux内核代码清单2-2开头的tftp命令指示U-Boot使用TFTP[3]协议将内核镜像uImage通过网络加载到内存。在这个例子中,内核镜像存放于开发工作站(通常,这个开发工作站就是通过串行端口与目标板相连的那台主机)。执行tftp命令时,需要传入一个地址参数,这个地址用于指定内核镜像将要被加载到的目标板内存的物理地址。读者现在不用担心这些细节,第7章将会详细介绍U-Boot。

第2次执行tftp命令加载了一个目标板配置文件,称为设备树(device tree),这个文件还有其他的名字,包括扁平设备树(flat device tree)和设备树二进制文件(device tree binary)或dtb。你将在第7章了解到这个文件的更多信息。现在,你只要知道这个文件与具体目标板相关,包含了内核所需的用于引导目标板的信息就足够了。这些信息包括内存大小、时钟核直至在目标板上出现控制台命令行提示符,如同登录提示符所示。

注意bootm命令为U-Boot敲响了丧钟。这是一个重要的概念。与桌面PC的BIOS不同,大多数的嵌入式系统都采用这样一种架构:当Linux内核掌握控制权时,引导加载程序就不复存在了。Linux内核会要求收回那些之前被引导加载程序所占用的内存和系统资源。将控制权交回给引导加载程序的唯一方法就是重启目标板。

最后还需要注意一点。在代码清单2-2的串行端口输出中,下面这行之前的信息(包含这一行)都是由U-Boot引导加载程序产生的:

其余引导信息是由Linux内核产生的。对于这一点,我们在后续章节还要详细说明,但我们需要注意U-Boot是在哪儿离开的以及Linux内核是在哪儿取得控制权的。

2.2.4 内核初始化:概述

当Linux内核开始执行时,它会在其相当复杂的引导过程中输出大量状态消息。在当前讨论的这个例子中,在显示登录提示符之前,Linux内核大约显示了200行printk[4]打印信息(代码清单中省略了这些打印行以便讨论的重点更加清晰)。代码清单2-3再现了登录提示符之前的最后几行输出。这个练习的目的不是要深入到内核初始化的细节中去(第5章会讲述这方面的内容),而是要对正在发生的事情,以及对嵌入式系统中引导Linux内核需要哪些组件有一个概览。

代码清单2-3 Linux内核加载的最后几行引导消息

Linux在串行端口终端上显示登录提示符之前,会挂载一个根文件系统。在代码清单2-3中,Linux通过一系列必要步骤,从一个NFS[5]服务器来远程(通过以太网)挂载其根文件系统,这个NFS服务器程序运行于IP地址为192.168.0.9的主机之上。通常这个主机就是你的开发工作站。根文件系统包含构成整个Linux系统的应用程序、系统库和工具软件。

重申一下这里讨论的重点:Linux必须有一个文件系统。很多老式的嵌入式操作系统不需要文件系统,因此那些从老式嵌入式操作系统迁移到嵌入式Linux系统的工程师往往会感到惊讶。一个文件系统由一组预定义的系统目录和文件组成,这些目录和文件按照特定的布局存储在硬盘或其他存储介质上,而Linux内核可以挂载这些介质作为其根文件系统。

注意Linux也可以从其他设备挂载根文件系统。最常见的情况当然是挂载一个硬盘分区作为根文件系统,就像笔记本或工作站中的Linux系统所做的那样。实际上,当你将嵌入式Linux小玩意带出房门或远离开发环境时,NFS就没什么用处了。然而,在读这本书的过程中,你会逐渐体会到在开发环境中挂载NFS根文件系统带来的威力和灵活性。

2.2.5 第一个用户空间进程:init

继续探讨其他内容之前,还有一个重点需要强调一下。请注意代码清单2-3中的这一行:

直到这时,内核都是自己在执行代码,它在一个称为内核上下文(kernel context)的环境中完成大量的初始化工作。在这个运行状态下,内核拥有所有的系统内存并且全权控制所有的系统资源。内核能够访问所有的物理内存和所有的I/O子系统。它在内核虚拟地址空间中执行代码,使用一个由内核自己创建和支配的栈。

当内核完成其内部初始化并挂载了根文件系统后,默认会执行一个名为init的应用程序。内核一启动init,它随即进入用户空间(user space)或用户空间上下文运行。在这个运行状态下,用户空间进程对系统的访问是受限的,必须使用内核系统调用(system call)来请求内核服务,比如设备和文件I/O。这些用户空间进程或程序,运行在一个由内核随机[6]选择和管理的虚拟内存空间中。在处理器中专门的内存管理硬件的协助下,内核为用户空间进程完成虚拟地址到物理地址的转换。这种架构的最大好处是某个进程中的错误不会破坏其他进程的内存空间。这是老式嵌入式系统的一个普遍缺陷,会产生那些最难查找的故障。

对这些概念不熟悉也不用惊慌。本节的目标只是提纲挈领地作个介绍,在此基础上,你会在阅读本书的过程中逐步获得更加深入的理解。后续章节将详细解释这些概念。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容