嵌入式学习入门,linux基础复习

更新时间:2023-03-29 07:06:01 阅读量: 建筑文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

嵌入式学习入门,linux基础复习

嵌入式系统入门

因为目前我还在嵌入式的门口徘徊,所以写不出什么高质量的东西出来,只能像准备考试一样抄下一些概念性的东西先记着了(其实不是准备考试,而是准备面试 —。—#) 嵌入式的历史:略

嵌入式的特点:

面向特定应用的特点

嵌入式系统的硬件和软件都必须进行高效地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能,这样才能在具体应用中对处理器的选择更具有竞争力 嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物。这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统,从事嵌入式系统开发的人才也必须是复合型人才为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存储于磁盘中嵌入式开发的软件代码尤其要求高质量、高可靠性,由于嵌入式设备所处的环境往往是无人职守或条件恶劣的情况下,因此,其代码必须有更高的要求。

嵌入式系统本身不具备二次开发能力,即设计完成后用户通常不能对其中的程序功能进行修改,必须有一套开发工具和环境才能进行再次开发。

*常见存储器概念辨析:RAM、SRAM、SDRAM、ROM、EPROM、EEPROM、Flash存储器可以分为很多种类,其中根据掉电数据是否丢失可以分为RAM(随机存取存储器)和ROM(只读存储器),其中RAM的访问速度比较快,但掉电后数据会丢失,而ROM掉电后数据不会丢失。人们通常所说的内存即指系统中的RAM。

RAM 又可分为SRAM(静态存储器)和DRAM(动态存储器)。SRAM 是利用双稳态触发器来保存信息的,只要不掉电,信息是不会丢失的。DRAM是利用MOS(金属氧化物半导体)电容存储电荷来储存信息,因此必须通过不停的给电容充电来维持信息,所以DRAM 的成本、集成度、功耗等明显优于SRAM。

嵌入式学习入门,linux基础复习

而通常人们所说的SDRAM 是DRAM 的一种,它是同步动态存储器,利用一个单一的系统时钟同步所有的地址数据和控制信号。使用SDRAM不但能提高系统表现,还能简化设计、提供高速的数据传输。在嵌入式系统中经常使用。

EPROM、EEPROM都是ROM的一种,分别为可擦除可编程ROM和电可擦除ROM,但使用不是很方便。

Flash也是一种非易失性存储器(掉电不会丢失),它擦写方便,访问速度快,已大大取代了传统的EPROM的地位。由于它具有和ROM一样掉电不会丢失的特性,因此很多人称其为Flash ROM。

ARM微处理器支持7 种运行模式,分别如下

· 用户模式(usr):ARM处理器正常的程序执行状态。

· 快速中断模式(fiq):用于高速数据传输或通道处理。

· 外部中断模式(irq):用于通用的中断处理。

· 管理模式(svc):操作系统使用的保护模式。

· 数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。

· 系统模式(sys):运行具有特权的操作系统任务。

根据计算机的存储器结构及其总线连接形式,计算机系统可以被分为冯·诺依曼结构和哈佛结构,其中冯·诺依曼结构共用数据存储空间和程序存储空间,它们共享存储器总线,这也是以往设计时常用的方式;而哈佛结构则具有分离的数据和程序空间及分离的访问总线。所以哈佛结构在指令执行时,取址和取数可以并行,因此具有更高的执行效率。ARM9 采用的就是哈佛结构,而ARM7 采用的则是冯·诺依曼结构

嵌入式学习入门,linux基础复习

关于linux,本来已经学得差不多暂时够用了,不过回头看看可能因为之前扫得太快,一些细节的地方没有注意到,加上我也想把这部分加进自己的博客,所以算了,从来再扫一次,记下重点跟存在的疑虑,后面真正弄懂了,就回头解答,当然,有高手指点的是最好的哈哈。

补充最后一句废话,开始学linux 是从同事鸿飞那里借了一本《嵌入式linux应用程序开发详解》的书在此说声谢谢。所以linux 基础复习,将按此书展开。后面的文章很多会转载我在网上搜集的资料,因为比较杂,东拿一块西拿一块,实在无法在每个地方写明转载,如有侵犯了您的权力请告知,我会马上删除。

[list]

[*]linux 的优势及发展史:略

[*]基础概念:1.文件系统、分区和挂载

文件系统是指操作系统中与管理文件有关的软件和数据。Linux 的文件系统和Windows中的文件系统有很大的区别,Windows文件系统是以驱动器的盘符为基础的,而且每一个目录是与相应的分区对应,例如“E:\workplace”是指此文件在E 盘这个分区下。而Linux 恰好相反,文件系统是一个文件树,且它的所有文件和外部设备(如硬盘、光驱等)都是以文件的形式挂结在这个文件树上,例如“\usr\local”。对于Windows 而言,就是指所有分区都是在一些目录下。在Linux 中把每一个分区和某一个目录对应,以后在对这个目录的操作就是对这

个分区的操作,这样就实现了硬件管理手段和软件目录管理手段的统一。这个把分区和目录对应的过程叫做挂载(Mount),而这个挂载在文件树中的位置就是挂载点。

2.主分区、扩展分区和逻辑分区

硬盘分区是针对一个硬盘进行操作的,它可以分为:主分区、扩展分区、逻辑分区。其中主分区就是包含操作系统启动所必需的文件和数据的硬盘分区,要在硬盘上安装操作系统,则该硬盘必须要有一个主分区,而且其主分区的数量可以是1~3个;扩展分区也就是除主分区外的分区,但它不能直接使用,必须再将它划分为若干个逻辑分区才可使用,其数量可以有0 或1 个;而逻辑分区则在数量上没有什么限制。它们的关系如图1.3所示。

嵌入式学习入门,linux基础复习

一般而言,对于先装了Windows 的用户,则Windows 的C 盘是装在主分区上的,可以把Linux 安装在另一个主分区或者扩展分区上。通常为了安装方便安全起见,一般采用把Linux 装在多余的逻辑分区上。

3.SWAP交换分区

在硬件条件有限的情况下,为了运行大型的程序,Linux 在硬盘上划出一个区域来当作临时的内存,而Windows 操作系统把这个区域叫做虚拟内存,Linux 把它叫做交换分区swap。在安装Linux 建立交换分区时,一般将其设为内存大小的2 倍,当然也可以设为更大。

4.分区格式

不同的操作系统选择了不同的格式,同一种操作系统也可能支持多种格式。微软公司的Windows 就选择了FAT32、NTFS两种格式,但是Windows不支持Linux 上常见的分区格式。

Linux 是一个开放的操作系统,它最初使用EXT2 格式,后来使用EXT3 格式,但是它同时支持非常多的分区格式,包括很多大型机上UNIX 使用的XFS格式,也包括微软公司的FAT以及NTFS格式。

5.GRUB

GRUB 是一种引导装入器(类似在嵌入式中非常重要的bootloader)——它负责装入内核并引导Linux 系统,位于硬盘的起始部分。由于GRUB多方面的优越性,如今的Linux 一般都默认采用GRUB来引导Linux 操作系统。但事实上它还可以引导Windows 等多种操作系统。

[*]linux 安装:略(建议使用Redhat9作为学习环境,FC 的版本有些问题,例如在编译QTE 的时候,老是通不过,这个问题最少浪费了我一个星期,在网上参考了N多文章,还是没解决,最终在Redhat9 上面很快就把环境搭建起来了!)

[*]文件系统介绍:1.ext2和ext3

ext3是现在Linux(包括Red Hat,Mandrake下)常见的默认的文件系统,它是ext2 的升级版本。正如Red Hat公司的首席核心的开发人员Michael K.Johnson所说,从ext2 转换到ext3 主要有以下4 个理由:可用性、数据完整性、速度以及易于转化。ext3 中

嵌入式学习入门,linux基础复习

采用了日志式的管理机制,它使文件系统具有很强的快速恢复能力,并且由于从ext2 转换到ext3 无须进行格式化,因此,更加推进了ext3 文件系统的大大推广。

2.swap 文件系统

该文件系统是Linux 中作为交换分区使用的。在安装Linux 的时候,交换分区是必须建立的,并且它所采用的文件系统类型必须是swap而没有其他选择。

3.vfat文件系统

Linux 中把DOS 中采用的FAT 文件系统(包括FAT12,FAT16 和FAT32)都称为vfat文件系统。

4.NFS文件系统

NFS文件系统是指网络文件系统,这种文件系统也是Linux 的独到之处。它可以很方便地在局域网内实现文件共享,并且使多台主机共享同一主机上的文件系统。而且NFS文件系统访问速度快、稳定性高,已经得到了广泛的应用,尤其在嵌入式领域,使用NFS文件系统可以很方便地实现文件本地修改,而免去了一次次读写flash的忧虑。

5.ISO9660文件系统

这是光盘所使用的文件系统,在Linux 中对光盘已有了很好的支持,它不仅可以提供对光盘的读写,还可以实现对光盘的刻录。

[*]Linux目录结构[/list]

/bin

bin 就是二进制(binary)英文缩写。在这里存放前面Linux 常用操作命令的执行文件,如mv、ls、mkdir 等。有时,这个目录的内容和/usr/bin 里面的内容一样,它们都是放置一般用户使用的执行文件/boot 这个目录下存放操作系统启动时所要用到的程序。如启动grub就会用到其下的/boot/grub子目录/dev 该目录中包含了所有Linux系统中使用的外部设备。要注意的是,这里并不是存放的外部

设备的驱动程序,它实际上是一个访问这些外部设备的端口。由于在Linux中,所有的设备都当作文件一样进行操作,比如:/dev/cdrom代表光驱,用户可以非常方便地像访问文件、目录一样对其进行访问/etc该目录下存放了系统管理时要用到的各种配置文件和子目录。如网络配置文件、文件系统、x系统配置文件、设备配置信息设置用户信息等都在这个目录下。

嵌入式学习入门,linux基础复习

系统在启动过程中需要读取其参数进行相应的配置/etc/rc.d 该目录主要存放Linux启动和关闭时要用到的脚本文件,在后面的启动详解中还会进一步地讲解

续表

目 录 目 录 内 容

/etc/rc.d/init 该目录存放所有Linux服务默认的启动脚本(在新版本的Linux中还用到的是/etc/xinetd.d

目录下的内容)

/home 该目录是Linux 系统中默认的用户工作根目录。如前面在1.3.1 节中所述,执行adduser

命令后系统会在/home目录下为对应账号建立一个名为同名的主目录

/lib 该目录是用来存放系统动态链接共享库的。几乎所有的应用程序都会用到这个目录下的 共享库。因此,千万不要轻易对这个目录进行什么操作

/lost+found 该目录在大多数情况下都是空的。只有当系统产生异常时,会将一些遗失的片段放在此

目录下

/media 该目录下是光驱和软驱的挂载点,Fedora Core 4已经可以自动挂载光驱和软驱 /misc 该目录下存放从DOS下进行安装的实用工具,一般为空

/mnt 该目录是软驱、光驱、硬盘的挂载点,也可以临时将别的文件系统挂载到此目录下 /proc 该目录是用于放置系统核心与执行程序所需的一些信息。而这些信息是在内存中由系统

产生的,故不占用硬盘空间

/root 该目录是超级用户登录时的主目录

/sbin 该目录是用来存放系统管理员的常用的系统管理程序

/tmp 该目录用来存放不同程序执行时产生的临时文件。一般Linux安装软件的默认安装路径就

是这里

/usr 这是一个非常重要的目录,用户的很多应用程序和文件都存放在这个目录下,类似与 Windows下的Program Files的目录

/usr/bin 系统用户使用的应用程序

/usr/sbin 超级用户使用的比较高级的管理程序和系统守护程序

/usr/src 内核源代码默认的放置目录

嵌入式学习入门,linux基础复习

/srv 该目录存放一些服务启动之后需要提取的数据

/sys

这是Linux 2.6 内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统sysfs

sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建 /var 这也是一个非常重要的目录,很多服务的日志信息都存放在这

本文来源:https://www.bwwdw.com/article/98un.html

Top