嵌入式操作系统Linux篇总目录
第1章 嵌入式Linux操作系统简介
第2章 Linux操作系统的使用
第3章 Linux软件管理
第4章 Linux用户管理
第5章 Linux文件系统
第6章 Linux网络配置管理
第7章 嵌入式Linux编程环境
第8章 Shell编程
第9章 中断及设备管理
第10章 正则表达式
文章目录
前言
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
1.1 操作系统
安装虚拟机工具 配置vim编辑环境
1.1.1操作系统的基本概念
操作系统概念:Operating System, OS 是管理和控制计算机硬件与软件资源的计算机程序,是用户与计算机之间的接口,也是操作系统的功能计算机硬件和其他软件的接口。
操作系统的功能:管理计算机系统的硬件、软件及数据资源;控制程运行;改善人机界面;为其他应用软件提供支持。
操作系统的分类:
- 根据用户界面的使用环境和功能特征的不同:批处理操作系统、分时操作系统和实时操作系统;
- 根据计算机体系结构的不同:嵌入式操作系统、个人操作系统、网络操作系统和分布式操作系统;
- 主流的操作系统:Android、BSD、iOS、Linux、Mac OS X、Windows、Windows Phone和z/OS。
-
批处理操作系统
Batch Processing Operating System,用户将作业交给系统操作员,系统操作员将许多用户的作业组成一批作业,之后输入到计算机中,在系统中形成一个自动转接的连续的作业流,然后启动操作系统,系统自动、依次执行每个作业。最后由操作员将作业结果交给用户。批处理操作系统的特点是多通道和成批处理。 -
分时操作系统
分时操作系统(Time Sharing Operating System)将CPU的时间划分成若干个片段,称为时间片。操作系统以时间片为单位,轮流为每个终端用户服务。分时系统具有多路性、交互性、独占性和及时性的特征。
常见的通用操作系统是分时系统与批处理系统的结合。其原则是分时优先,批处理在后。前台响应需频繁交互的作业,如终端的要求;后台处理时间性要求不强的作业。 -
实时操作系统
实时操作系统(Real Time Operating System, RTOS)是指使计算机能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时设备和实时任务协调一致地工作的操作系统。实时操作系统追求的目标是对外部请求在严格时间范围内做出反应,具有高可靠性和完整性。 -
嵌入式操作系统
嵌入式操作系统(Embedded Operating System, EOS)是运行在嵌入式系统环境中,对整个嵌入式系统以及它所操作、控制的各种部件装置等资源进行统一协调、调度、指挥和控制的系统软件。 -
个人计算机操作系统
个人计算机操作系统是一种单用户多任务的操作系统。它主要供个人使用,功能强,价格便宜,几乎可以在任何地方安装使用,能满足一般操作、学习、游戏等方面的需求。个人计算机操作系统的主要特点是计算机在某一时间内为单个用户服务;采用图形界面人机交互的工作方式,界面友好;使用方便,用户无需专门学习,也能熟练操作。 -
网络操作系统
网络操作系统基于计算机网络,是在各种计算机操作系统上按网络体系结构协议标准开发的软件套件,包括网络管理、通信、安全、资源共享和各种网络应用。其目标是相互通信及资源共享。 -
分布式操作系统
大量的计算机通过网络被连接在一起,可以获得极高的运算能力及广泛的数据共享。这种系统被称为分布式系统(Distributed System)。
1.1.2操作系统的主要组成
驱动程序:驱动程序是操作系统最底层的、直接控制和监视各类硬件的部分,它们的职责是隐藏硬件的具体细节,并向其他部分提供一个抽象的、通用的接口。
内核:内核为操作系统之最核心部分,包括进程管理、内存管理、文件系统管理、设备管理等核心单元。其中,内存管理和进程管理可以用来作为衡量一个操作系统的标准。
接口库:接口库是一系列特殊的程序库,它们的职责在于把系统所提供的基本服务包装成应用程序所能够使用的编程接口(API),因而是最靠近应用程序的部分。例如,GNU C运行库就属于此类,它把各种操作系统的内部编程接口包装成ANSIC和POSIX编程接口的形式。
外围:通常是用于提供特定高级服务的部件。例如,在微内核结构中的大部分系统服务,以及UNIX/Linux中各种守护进程都通常被划归此列。
1.2 嵌入式系统与通用PC系统的不同
嵌入式系统:以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统,对功能、可靠性、成本、体积、功耗等方面有特殊要求的专用计算机系统。
嵌入式系统的应用
1.3 嵌入式操作系统
常用的嵌入式操作系统:Linux、μC/OS、Windows CE、VxWorks和QNX。
-
Linux
嵌入式Linux版本还有多种变体。如RTLinux通过改造内核实现了实时的Linux; RTAI、Kurt和Linux/RK也提供了实时能力;μCLinux去掉了Linux的MMU(内存管理单元),能够支持没有MMU的处理器。 -
μC/OS
μC/OS是一个典型的实时操作系统。该系统从1992年开始发展,目前流行的是第二个版本,即μC/OS II。它的特点是开放源代码,代码结构清晰,注释详尽,组织有条理,可移植性好;可剪裁,可固化;抢占式内核,最多可以管理60个任务。该系统短小精悍,是研究和学习实时操作系统的首选。 -
Windows CE
Windows CE是微软公司的产品,它是从整体上为资源有限的平台设计的多线程、完整优先权、多任务的操作系统。Windows CE采用模块化设计,并允许针对从掌上电脑到专用的工控电子设备进行定制。操作系统的基本内核需要至少200KB的ROM。从SEGA的DreamCast游戏机到现在大部分的高价掌上电脑都采用了Windows CE。 -
VxWorks
VxWorks是WindRiver公司专门为实时嵌入式系统设计开发的操作系统软件,为程序员提供了高效的实时任务调度、中断管理,实时的系统资源以及实时的任务间通信。应用程序员可以将尽可能多的精力放在应用程序本身,而不必再去关心系统资源的管理。该系统主要应用在单板机、数据网络(以太网交换机、路由器)、通信方面等诸多方面。 -
QNX
QNX也是一款实时操作系统,由加拿大QNX软件系统有限公司开发。它广泛应用于自动化、控制、机器人科学、电话、数据通信、航空航天、计算机网络系统、医疗仪器设备、交通运输、安全防卫系统、POS机、零售机等任务关键型应用领域。20世纪90年代后期,QNX系统在高速增长的Internet终端设备、信息家电及掌上电脑等领域也得到了广泛应用
1.4 嵌入式Linux基础
1.4.1 Linux发展概述
了解就行
1.4.2 Linux作为嵌入式操作系统的优势
-
低成本开发系统
Linux的源码开放性允许任何人可以获取并修改Linux的源码。这样一方面大大降低了开发的成本,另一方面又可以提高开发产品的效率,并且还可以在Linux社区中获得支持,用户只需向邮件列表发一封邮件,即可获得作者的支持。 -
可应用于多种硬件平台
Linux可支持x86、PowerPC、ARM、XSCALE、MIPS、SH、68K、Alpha、SPARC等多种体系结构,并且已经被移植到多种硬件平台。这对于经费、时间受限制的研究与开发项目是很有吸引力的。Linux采用一个统一的框架对硬件进行管理,同时从一个硬件平台到另一个硬件平台的改动与上层应用无关。 -
可定制的内核
Linux具有独特的内核模块机制,它可以根据用户的需要,实时地将某些模块插入或移出内核,并能根据嵌入式设备的个性需要量体裁衣。经裁剪的Linux内核最小可达到150KB以下,尤其适合嵌入式领域中资源受限的实际情况。在2.6内核中加入了许多嵌入式友好特性,如构建用于不需要用户界面的设备的小占板面积内核选项。 -
性能优异
Linux系统内核精简、高效和稳定,能够充分发挥硬件的功能,因此它比其他操作系统的运行效率更高。在个人计算机上使用Linux时,可以将它作为工作站。它也非常适合在嵌入式领域中应用,对比其他操作系统,它占用的资源更少,运行更稳定,速度更快。 -
良好的网络支持
Linux是首先实现TCP/IP协议栈的操作系统,它的内核结构在网络方面是非常完整的,并提供了对包括10吉比特、100吉比特及1000吉比特的以太网,还有无线网络、Token Ring(令牌环)和光纤甚至卫星的支持。这对现在依赖于网络的嵌入式设备来说无疑是很好的选择。
1.4.3 Linux发行版本
Linux目前已经有超过250个发行版本,下面仅对Red Hat、Debian、Ubuntu等有代表性的Linux发行版本进行介绍。
-
Red Hat
全世界的Linux用户最熟悉的发行版想必就是Red Hat了。Red Hat最早是由Bob Young和Marc Ewing在1995年创建的。目前Red Hat分为两个系列:由Red Hat公司提供收费技术支持和更新的Red Hat Enterprise Linux(RHEL, Red Hat的企业版),以及由社区开发的免费桌面版Fedora Core。Red Hat企业版有3个版本——AS、ES、WS。AS是其中功能最为强大和完善的版本。而正统的桌面版RedHat版本更新早已停止,最后一版是Red Hat 9.0。 -
Debian
Debian GNU/Linux是一个非常特殊的版本。在1993年,伊恩·默多克(Ian Murdock)发起Debian计划,它的开发模式和Linux及其他开放性源代码操作系统的模式一样,都是由超过800位志愿者通过互联网合作开发而成的。一直以来,Debian GNU/Linux被认为是最正宗的Linux发行版本,而且它是一个完全免费的、高质量的且与UNIX兼容的操作系统。Debian系统分为3个版本,分别为稳定版(Stable)、测试版(Testing)和不稳定版(Unstable)。并且每次发布的版本都是稳定版,而测试版在经过一段时间的测试证明没有问题后会成为新的稳定版。Debian拥有超过8710种不同的软件,而且每一种软件都是自由的,并且有非常方便的升级安装指令,基本囊括了用户的需要。Debian也是最受欢迎的嵌入式Linux之一。 -
Ubuntu
Ubuntu(中文名:乌班图)是一个以桌面应用为主的Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。Ubuntu基于Debian发行版和GNOME桌面环境,与Debian的不同在于它每6个月会发布一个新版本。Ubuntu的目标在于为一般用户提供一个最新的,同时又相当稳定的主要由自由软件构建而成的操作系统。Ubuntu具有庞大的社区力量,用户可以方便地从社区获得帮助。
1.5 Linux系统安装
Linux系统与Windows系统的区别:Windows文件系统是以驱动器的盘符为基础的,而且每一个目录与相应的分区对应,如“ E:\workplace” 指此文件在E盘这个分区下。而Linux恰好相反,其文件系统是一个文件树, 且它的所有文件和外部设备(如硬盘、光驱等)都是以文件的形式挂载在这个文件树上的,如“\usr\local”。
在Windows 下,目录结构属于分区;Linux下,分区属于目录结构。
- 主分区、扩展分区和逻辑分区
主分区:是包含操作系统启动所必需的文件和数据的硬盘分区,要在硬盘上安装操作系统,则该硬盘必须要有一个主分区,而且其主分区的数量可以是1〜3个。
扩展分区与逻辑分区:是除主分区外的分区,但它不能直接使用,必须再将它划分为若干个逻辑分区,其数量可以有0或1个。
2. swap交换区
在硬件条件有限的情况下,为了运行大型的程序,Linux可在硬盘上划 出一个区域来当作临时的内存。一般Windows操作系统把这个区域称为虚 拟内存,而Linux把它称为交换分区(Swap )。在安装Linux建立交换分区时,一般将其设为内存大小的2倍,当然也可以设为更大。
- 分区格式
不同的操作系统选择了不同的格式,同一种操作系统也可能支持多种格 式。
微软公司的Windows就选择了 FAT32.NTFS两种格式,但是Windows 不支持Linux 上常见的分区格式。
Linux是一个开放的操作系统,它最初使用ext2格式,后来使用ext3格式(最新的Linux文件系统是ext4 ),但是它同时支持非常多的分区格式,包括很多大型机上UNIX使用的XFS格式, 也包括微软公司的FAT和NTFS格式。
-
GRUB
类似于Windows系统的dos系统,是一种引导装入器, 它负责装入内核并引导Linux系统,位于硬盘的起始部分。 -
root权限
Linux也是一个多用户的系统(在这一点上类似Windows ),不同的用 户和用户组会有不同的权限,其中把具有超级权限的用户称为root用户。 root的默认主目录在“/root”下,而其他普通用户的目录则在“/home”下。
1.5.1文件系统和硬盘分区的概念
1.5.2安装准备
1.5.3安装过程
1.6 安装虚拟机工具
VMware 与Ubuntu的安装请参链接:VMware虚拟机安装Ubuntu20.04详细图文教程
1.7 配置vim编辑环境
参考配置VIM环境
思考与练习
总结
例如:以上就是今天要讲的内容,本文仅仅简单介绍了嵌入式linux的概念和安装过程。