2024年嵌入式Linux开发的前世与今生——基本概述,2024年最新持续更新大厂面试笔试题

最全的Linux教程,Linux从入门到精通

======================

  1. linux从入门到精通(第2版)

  2. Linux系统移植

  3. Linux驱动开发入门与实战

  4. LINUX 系统移植 第2版

  5. Linux开源网络全栈详解 从DPDK到OpenFlow

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

(1)**硬件:**嵌入式处理器、存储系统、(由IO连接)外设、时钟、复位、电源

三大件全部集成:嵌入式微控制器(单片机);

三大件部分集成:嵌入式微处理器+IO集成在一个芯片内部,存储外置

(2)**软件:**嵌入式操作系统(可裁剪移植的、定制开发)、应用软件(专用性、固化)

嵌入式系统通常由嵌入式处理器、外围设备、嵌入式操作系统和应用软件等几大部分组成。

2,硬件层


硬件层由嵌入式处理器、存储器系统、通用设备接口和I/O接口(如A/D、D/A、I/O等)组成。在一片嵌入式微处理器基础上增加电源电路、时钟电路和存储器电路(ROM和SDRAM等),就构成了七个嵌入式核心控制模块。其中,操作系统和应用程序都可以固化在ROM中。

3,中间层


中间层也称为硬件抽象层或板极支持包,它把系统软件与底层硬件部分隔离。板极支持包对上具有操作系统相关性,对下具有硬件相关性。设计一个完整的中间层需要完成两部分工作:  ① 嵌入式系统的初始化,它包括片级初始化、板级初始化和系统级初始化。  ② 设计硬件相关的设备驱动

4,软件层


软件层由多任务操作系统(OS)、文件系统、图形用户接口(GUI)、网络系统及通用组件模块组成。OS是嵌入式应用软件的基础和开发平台;是一段嵌入式目标代码中的程序,系统复位后首先执行,相当于用户的主程序,用户的其他应用程序都建立在OS之上;是一个标准的内核,它将CPU时钟、中断、I/O、定时器等资源都封装起来,留给用户的是一个标准的API函数接口。

5, 功能层与执行装置


功能层由基于OS开发的应用程序组成,用来完成对被控对象的控制功能。功能层是面向被控制对象和用户的,为方便用户操作,往往需要提供一个友好的人机界面。执行装置是指那些可以接受嵌入式计算机系统发出控制命令,执行所规定的操作或任务的设备和装置。在不同应用领域中,嵌入式系统的执行装置一般是不同的,应该根据具体的应用场合和系统所要求实现的功能选择不同的设备和执行装置。

四,嵌入式系统特点

=============

①专用、软硬件可剪裁可配置

②低功耗、高可靠性、高稳定性

③软件代码短小精悍

④代码可固化

⑤实时性

⑥软件开发需要专门的开发工具和开发环境

五,嵌入式处理器

============

1,分类


嵌入式微处理器(Embedded Microprocessor Unit, EMPU)  高主频(高性能)、低功耗(UI)、集成处理器+IO ;ARM体系结构

微控制器(Microcontroller Unit, MCU)

DSP处理器(Digital Signal Processor, DSP)

FPGA(现场可编程门阵列) 大规模集成电路

片上系统(System On Chip,SOC)

7nm,5nm

2,嵌入式微处理器


来源于通用处理器;

更高的集成度:CPU+外设控制器;

更低的功耗:低电压供电,部分外设可通过程序关闭;

完备的电源管理方案;

大多基于RISC结构,满足高性能计算需求;RISC:Instruction sets computer;指令条数少、指令简单

部分采用多核及big.little架构;

超低线宽;高集成度、低功耗

去除冗余外设、满足应用需要即可;

面向工业应用的高可靠性;

内置MMU(内存管理单元),支持实时多任务操作系统;

内置安全区,满足联网应用的安全需求;

3,微控制器


即单片机;

性能逐渐提升:8位  16位  32位

高集成度:CPU+外设控制器+片内存储(RAM、ROM);

更低的功耗:超低功耗模式;

去除冗余外设、满足应用需要即可;

面向工业应用的高可靠性;

部分支持操作系统;

内置安全区,确保基于互联网应用的安全性。

4,DSP(digital signal processor


DSP处理器是专门用于信号处理方面的处理器,其在系统结构和指令算法方面进行了特殊设计,在数字滤波、FFT、谱分析等各种仪器上DSP获得了大规模的应用;

通信信号处理、多媒体处理领域使用广泛;

DSP处理器比较有代表性的产品是TI公司的TMS320系列、ADI公司的ADSP21XX系列和Motorola公司的DSP56000系列。

5,SOC


SoC就是System on Chip,SoC是一种基于IP(Intellectual Property)核嵌入式系统设计技术;

ARM+DSP、ARM+FPGA等架构;

当前主流DSP、FPGA均采用这种架构;

嵌入式片上系统设计的关键是IP核的设计。IP核分为硬核、软核和固核,是嵌入式技术的重要支持技术;

六,嵌入式Linux操作系统

==================

1,概念


Linux 最初是专门为基于 Intel 处理器的个人计算机而设计的。 Linux 的前身是指由 Linus Torvald 维护开发的开放源代码的类 Unix 操作系统的内核。

2. Linux的主要特点


① 开源:

② 多用户:

③ 多任务:

④ 良好的用户界面:

⑤ 设备独立性:

⑥ 丰富的网络功能:

⑦ 可靠的安全系统:

⑧ 良好的可移植性;

3.  Linux 的组成

4,设备驱动


Linux 内核中有大量代码都在设备驱动程序中,它们能够运转特定的硬件设备。Linux 源码树提供了一个驱动程序子目录,这个目录又进一步划分为各种支持设备,例如 Bluetooth、I2C、serial 等。设备驱动程序的代码可以在 ./linux/drivers 中找到

5,Arch-体系结构


不同体系结构处理器的专用支持

linux/arch 子目录定义了内核源代码中依赖于体系结构的部分,其中包含了各种特定于体系结构的子目录(共同组成了 BSP)。对于一个典型的桌面系统来说,使用的是 i386 目录。每个体系结构子目录都包含了很多其他子目录,每个子目录都关注内核中的一个特定方面,例如引导、内核、内存管理等。这些依赖体系结构的代码可以在 ./linux/arch 中找到。

6,MMU:内存管理单元


内存映射:就是将虚拟内存地址映射到物理内存地址。为了完成内存映射,内核为每个进程都维护了一张页表(页表实际上存储在 CPU 的内存管理单元 MMU 中),记录虚拟地址与物理地址的映射关系。

7,VFS-虚拟文件系统


Linux :“一切皆文件”

在 VFS 上面,是对诸如 open、close、read 和 write 之类的函数的一个通用 API 抽象。在 VFS 下面是文件系统抽象,它定义了上层函数的实现方式。它们是给定文件系统(超过 50 个)的插件。文件系统的源代码可以在 ./linux/fs 中找到。

文件系统层之下是缓冲区缓存,它为文件系统层提供了一个通用函数集(与具体文件系统无关)。这个缓存层通过将数据保留一段时间(或者随即预先读取数据以便在需要是就可用)优化了对物理设备的访问。缓冲区缓存之下是设备驱动程序,它实现了特定物理设备的接口。

8,基本概念


文件 一组在逻辑上具有完整意义的信息项的系列。在Linux中,除了普通文件,其他诸如目录、设备、套接字等 也以文件被对待。总之,“一切皆文件”。

目录 目录好比一个文件夹,用来容纳相关文件。因为目录可以包含子目录,所以目录是可以层层嵌套,形成 文件路径。在Linux中,目录也是以一种特殊文件被对待的,所以用于文件的操作同样也可以用在目录上。

目录项 在一个文件路径中,路径中的每一部分都被称为目录项;如路径/home/source/helloworld.c中,目录 /, home, source和文件 helloworld.c都是一个目录项。

索引节点 用于存储文件的元数据的一个数据结构。文件的元数据,也就是文件的相关信息,和文件本身是两个不同 的概念。它包含的是诸如文件的大小、拥有者、创建时间、磁盘位置等和文件相关的信息。

超级块 用于存储文件系统的控制信息的数据结构。描述文件系统的状态、文件系统类型、大小、区块数、索引节 点数等,存放于磁盘的特定扇区中

七, Linux内核目录结构

==================

● arch :包含和硬件体系结构相关的代码,每种平台占一个相应的目录,如i386、arm、arm64、powerpc、mips 等。Linux 内核目前已经支持30 种左右的体系结构。在arch目录下,存放的是各个平台以及各个平台的芯片对Linux 内核进程调度、内存管理、中断等的支持,以及每个具体的SoC 和电路板的板级支持代码。

● block:块设备驱动程序I/O 调度。

● crypto:常用加密和散列算法(如AES、SHA 等),还有一些压缩和CRC 校验算法。

● documentation:内核各部分的通用解释和注释。

● drivers :设备驱动程序,每个不同的驱动占用一个子目录,如char、block、net、mtd、i2c 等。

● fs:所支持的各种文件系统,如EXT、FAT、NTFS、JFFS2 等。

● include:头文件,与系统相关的头文件放置在include/linux 子目录下。

● init:内核初始化代码。著名的start_kernel() 就位于init/main.c 文件中。

● ipc:进程间通信的代码。

● kernel :内核最核心的部分,包括进程调度、定时器等,而和平台相关的一部分代码放在arch/*/kernel 目录下。

● lib:库文件代码。

● mm:内存管理代码,和平台相关的一部分代码放在arch/*/mm 目录下。

最全的Linux教程,Linux从入门到精通

======================

  1. linux从入门到精通(第2版)

  2. Linux系统移植

  3. Linux驱动开发入门与实战

  4. LINUX 系统移植 第2版

  5. Linux开源网络全栈详解 从DPDK到OpenFlow

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 29
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值