🐰 1.linux常用的基本命令功能、语法结构、用法
🥕 2.操作系统的概念
操作系统是用以控制和管理计算机系统资源,方便用户使用的程序和数据结构的集合。在所有的系统软件中,操作系统是一种首要的、最基本、最重要的系统程序,也是最庞大、最复杂的系统软件。
🐰 3.现代操作系统类型
![](https://img-blog.csdnimg.cn/img_convert/0807032a6d5e8c1fe8749bc8ad36b9cd.jpeg)
分布式操作系统:分布式系统具有一个统一的操作系统,它可以把一个大任务划分成很多可以并行执行的子任务,并按一定的策略将它们动态地分配给各个计算机执行,并控制管理各个计算机的资源分配、运行及计算机之间的通信,以协调任务的并行执行。
网络操作系统:不是一个集中、统一的操作系统。它基本上是在各种各样自治的计算机原有操作系统上加上具有各种网络访问功能的模块,这些模块使网络上的计算机能方便、有效地共享网络资源,实现各种通信服务的有关协议。
🥕 4.分布式操作系统与网络操作系统的区别
![](https://img-blog.csdnimg.cn/img_convert/a6237dac74b3a28e03aa18c6b4164c7e.jpeg)
🐰 5.嵌入式操作系统(EOS)
运行在嵌入式芯片环境中,对整个芯片以及它所操作和控制的各种部件装置等资源进行统一协调、调度、指挥和控制的系统软件。
🥕 6.EOS提供3种项目的机制
(1)内存管理;(2)多任务调度;(3)外围资源管理。
🐰 7.EOS优点
具有高可靠性、实时性、占有资源少和低成本等。
🥕 8.EOS区别于通用操作系统的一些重要特征
体积小、运行时间长、故障重启、低功耗、价格便宜、动态加载
🐰 9.作业(job)的概念
请求计算机完成的一个完整的处理任务称为作业,它可以包括几个程序的相继执行;
用户在键盘上输入的一条完整的命令就是一个作业;
复杂的作业也可由作业说明书(如shell命令程序)来描述。一个复杂的作业可由多个作业步完成,如编译、运行、打印一个程序的全部工作就是一个作业,其中相对独立的每一部分称为作业步。
🥕 10.进程
程序在一个数据集合上的运行活动,它是系统进行资源分配和调度的一个可并发执行的独立单位。
🐰 11.进程与程序的区别与联系
区别:程序是一组指令的集合,它是静态的实体,没有执行的含义。
进程是一个动态的实体,有自己的生命周期。一般来说,一个程序可以只有一个进程,也可以有多个进程;一个进程可以同这个程序相对应,也可以同另一个程序相对应。
联系:进程为应用程序的运行实例,是应用程序的一次动态执行。
🥕 12.操作系统的功能
(1)处理机管理
(2)存储管理
(3)设备管理
(4)文件管理
(5)用户接口
🐰 13.操作系统的分类
最基本的操作系统类型有哪三类?
多任务操作系统、分时操作系统和实时操作系统
🥕 14.linux组成部分及功能
![](https://img-blog.csdnimg.cn/img_convert/e4263c1e19377bbba2cdec7470768542.jpeg)
🐰 15.linux运行写好的外壳脚本文件的4种方法
![](https://img-blog.csdnimg.cn/img_convert/914da9ce4da138942567c9a1c66e1936.jpeg)
🥕 16.linux内核版本号由3个数字组成:r.x.y
r:目前发布的kernel主版本;
x:偶数是稳定版本,奇数是开发中版本;
y:错误修补的次数。
一般来说,x为偶数的版本是一个可以使用的稳定版本;x为奇数的版本一般加入了一些新的内容,所以性能不一定很稳定,仍是处于测试阶段,系统是一个测试版本。
🐰 17.虚拟文件系统VFS
virtual filesystem/virtual filesystem switch
VFS由一组标准的、抽象的文件操作构成,以系统调用的形式提供于用户程序,如read()、write()、lseek()等。用户程序可以把所有的文件都看作是一致的、抽象的“VFS文件”。
🥕 18.常用linux编辑器
常用的linux编辑器有很多,比如图形模型下的gedit、Kwrite、OpenOffice,文本模式下的vim、Emacs和nano。vim和Emacs是我们在linux下最常用的两个编辑器。
🐰 19.vim编辑器
vim是linux最基本的文本编辑工具,是创建和编辑简单文档最高效的工具。尤其适合用于没有安装xWindows桌面环境或桌面环境崩溃等场合。
vim模式一般分为三种:
![](https://img-blog.csdnimg.cn/img_convert/9a52d4c1506b2c11e754c7fbc701836c.jpeg)
🥕 20.shell简介
![](https://img-blog.csdnimg.cn/img_convert/701e66c1d925057c0662a7ad339e55ad.jpeg)
shell中执行一些批处理命令,这些批处理命令在linux中叫做外壳脚本(shell script)。
![](https://img-blog.csdnimg.cn/img_convert/8e2d158c2d1dd73ccce7d21c02aaadce.jpeg)
🐰 21. 嵌入式linux系统开发平台
(1)嵌入式linux的软件操作平台
![](https://img-blog.csdnimg.cn/img_convert/0d7dc8ef3df08591846ee684ca45df2a.jpeg)
GCC是基于GNU的编译器套件,作为GNU工具链的一部分,与GDB调试器一起工作。它提供了开发嵌入式linux系统的所有软件工具。
21.1 GCC概念以及基本用法
GCC是GNU项目的编译器套件,能够编译用C、C++和Objective C编写的程序。
gcc[options][filenames]
该命令使gcc在给定文件(filenames)上执行编译选项(options)指定的操作。
一个基本实例:
//test.c
#include<stdio.h>
void main()
{
printf(“Hello World!\n");
}
(1)使用gcc编译器编译一下: gcc -c test.c
(2)用户将会在同一目录下得到一个名为a.out的文件,然后在命令提示符下执行 $./a
就可以显示结果Hello World! 要注意的是a.out是默认生成的目标文件名,如果在同一个目录下,编译另外一个源程序且没有指明生成的目标文件名的话,原先的a.out文件会被覆盖。我们可以使用-o选项制定生成的目标文件名,如:gcc -o test -c test.c
这样在同一目录下生成名为test.o的目标文件,然后执行$ ./test即可,会得到同样的输出Hello World!
21.2 GNU make管理项目
![](https://img-blog.csdnimg.cn/img_convert/798f652332d276bb816ac30387871a81.jpeg)
21.3 为什么使用make
首先,包含多个源文件的项目在编译时都有长而复杂的命令行,使用make可以通过这些命令行保存在makefile文件中而简化这个工作。
其次,使用make可以减少重新编译所需要的时间,因为它可以识别出那些被修改的文件,并且只编译这些文件;
最后,make在一个数据库中维护了当前项目中各文件的相互关系,从而可以在编译检查是否可以找到所有需要的文件。
21.4 GDB简介
![](https://img-blog.csdnimg.cn/img_convert/ff82f35865e3704e00812d9b932acc53.jpeg)
(2)嵌入式linux的硬件操作平台
如果要寻找嵌入式软件系统,首先,先确定硬件平台,及确定微处理器CPU的型号。硬件开发成本常是开发者很关心的。当考虑硬件成本时,需要考虑产品的整个成本而不仅是CPU的成本。因为合适的CPU,一旦加上总线逻辑和延时电路使之与外设一起工作,硬件系统就可能变得非常昂贵。
🥕 22.Makefile
![](https://img-blog.csdnimg.cn/img_convert/601fcca035982f9097477f10900cf500.jpeg)
第一行中的三个依赖文件并不存在,如果是在shell上用命令行编译则会出错并退出,但在make管理项目中,在执行gcc时会先检查依赖文件是否存在,若不存在,则会先执行别的规则以生成缺少的依赖文件,最后生成相关的目标文件。如果依赖文件已经存在,则并不急于执行后面的命令重新得到它们,而是比较这些依赖文件以及与其对应的源文件的生成时间,如果有一个或多个源文件比相应依赖文件新,则重新编译这些文件以反应相关源文件的变化,否则,使用旧的依赖文件生成目标文件。
🐰 23.编写Makefile文件的规则
![](https://img-blog.csdnimg.cn/img_convert/4f5f46e9630b361518587311aeeab826.jpeg)
*当编写大型应用程序的Makefile时,其中涉及的依赖文件和规则繁多,如果使用变量表示某些依赖文件的路径,则会大大简化Makefile。一般在Makefile文件开始就定义文件中所需的所有变量,这样使Makefile文件清晰且便于修改。如(#在Makefile文件中表示后面的内容是注释);
🥕 24.生成嵌入式开发工具链的流程图
![](https://img-blog.csdnimg.cn/img_convert/b54e4a79cef41120eff8c445bc018ff4.jpeg)