嵌入式操作系统(Linux篇)(微课版)(高等院校嵌入式人才培养规划教材)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-06-02 20:22:42

点击下载

作者:华清远见嵌入式学院 刘洪涛 高明旭

出版社:人民邮电出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

嵌入式操作系统(Linux篇)(微课版)(高等院校嵌入式人才培养规划教材)

嵌入式操作系统(Linux篇)(微课版)(高等院校嵌入式人才培养规划教材)试读:

前言

随着消费群体对产品要求的日益提高,嵌入式技术在机械器具制造、电子产品制造、通信、信息服务等领域得到了大显身手的机会,应用日益广泛,相应地,企业对嵌入式人才的需求也越来越多。近几年来,很多院校纷纷开设了嵌入式专业或方向。虽然目前市场上的嵌入式开发相关书籍比较多,但很多是针对有一定基础的行业内研发人员而编写的,并不完全符合学校的教学要求。学校教学需要一套充分考虑学生现有知识基础和接受程度、明确各门课程教学目标的、便于学校安排课时的嵌入式专业教材。

针对教材缺乏的问题,我们以多年来在嵌入式工程技术领域内人才培养、项目研发的经验为基础,汇总了近几年积累的数百家企业对嵌入式研发相关岗位的真实需求,调研了数十所开设嵌入式专业的院校的课程设置情况、学生特点和教学用书现状。经过细致的整理和分析,对专业技能和基本知识进行合理划分,我们于 2013 年编写了这套高等院校嵌入式人才培养规划教材,包括以下 4 本。《嵌入式操作系统(Linux 篇)(微课版)》《嵌入式 Linux C 语言程序设计基础教程(微课版)》《ARM 嵌入式体系结构与接口技术(Cortex-A9 版)(微课版)》《嵌入式应用程序设计综合教程(微课版)》

经过了 3 年,嵌入式行业发生了巨大变化,产品也得到了升级换代,同时,高等院校嵌入式专业日臻成熟,首批教材有些已无法满足新的需要,所以本次编写对原有教材进行修订。

本书作为嵌入式专业的 Linux 操作系统教材,共分为 10 章。第 1 章嵌入式 Linux操作系统简介,主要介绍常用的嵌入式 Linux 操作系统和 Linux 操作系统安装方法;第 2 章 Linux 操作系统的使用,主要介绍 Linux 操作系统的一些常用命令;第 3 章Linux 软件管理,主要介绍 Linux 软件管理的机制及如何在 Linux 下安装和卸载软件;第 4 章 Linux 用户管理,主要介绍 Linux 对用户的管理机制及不同用户在 Linux 操作系统中拥有的权限;第 5 章 Linux 文件系统,主要介绍 Linux 操作系统支持的文件系统种类,以及 Linux 文件系统的框架;第 6 章 Linux 网络配置管理,主要介绍 Linux 中网络的常用配置方法,以及常用网络服务开启的方法;第 7 章嵌入式 Linux 编程环境,主要介绍在嵌入式开发中,在 Linux 上搭建的开发环境的方法;第 8 章 Shell 编程,主要介绍 Linux 下 Shell 语言的基本语法及如何写 Shell 脚本;第 9 章中断及设备管理,主要介绍 Linux 内核对外围硬件设备和中断管理的机制;第 10 章正则表达式,主要介绍正则表达式的使用方法和命令。全书整个章节的设置主要是让不了解 Linux 操作系统的读者掌握 Linux 操作系统的使用方法和实现机制。

本书由刘洪涛、高明旭、熊家、于博合作完成。本书的完成需要感谢华清远见嵌入式学院,教材内容参考了学院与嵌入式企业需求无缝对接的、科学的专业人才培养体系。同时,在嵌入式学院从业或执教多年的行业专家团队也对教材的编写工作做出了贡献,季久峰、贾燕枫、关晓强等老师在书稿的编写过程中认真阅读了所有章节,提供了大量在实际教学中积累的重要素材,对教材结构、内容提出了中肯的建议,并在后期审校工作中提供了很多帮助,在此表示衷心的感谢。

本书所有源代码、PPT 课件、教学素材等辅助教学资料,请到人民邮电出版社教育社区(www.ryjiaoyu.com)免费下载。

由于作者水平所限,书中不妥之处在所难免,恳请读者批评指正。对于本书的批评和建议,可以发到 www.embedu.org 技术论坛。编者2016年11月平台支撑

华清创客学院(www.makeru.com.cn)是一家创客 O2O 在线教育平台,由国内高端IT 培训领导品牌华清远见教育集团鼎力打造。学院依托于华清远见教育集团在高端 IT培训行业积累的十多年教学及研发经验,以及上百位优秀讲师资源,专注为用户提供高端、前沿的 IT 开发技术培训课程。以就业为导向,以提高开发能力为目标,努力让每一位用户在这里学到真本领,为用户成为嵌入式、物联网、智能硬件时代的技术专家助力!

一、我们致力于这样的发展理念

我们有一种情怀:为中国、为世界智能化变革的发展培养更多的优秀人才。

我们有一种坚持:坚持做专业教育、做良心教育、做受人尊敬的职业教育。

我们有一种变革:在互联网高速发展的时代,打造“互联网+教育”模式下的 IT人才终身学习教学体系。

二、我们致力于提供这样的学习方式

1.多元化的课程学习体系(1)学习模式的多元化。您可以根据自身的实际情况选择 3 种学习模式,在线学习、线下报班学习、线上线下结合式学习。每一种模式都有专业的学习路线指导,并有辅导老师悉心答疑,对于学完整套课程的同学有高薪就业职位推荐。(2)学习内容的多元化。我们提供基础知识课程、会员提升课程、流行技术精品套餐课程、就业直通车课程、职业成长课程等丰富的课程体系。不管您是职场“小白”还是 IT 从业人员,都可以在这里找到您的学习路线。(3)直播课程的多元化。包括基础类、技术问答类、IT 人的职业素养类、IT 企业的面试技巧类、IT 人的职业发展规划类、智能硬件产品解析类。

2.大数据支撑下的过程化学习模式(1)自主学习课程。我们提供习题练习模式支持您的学习,每章学习完成后都有配套的练习题助您检验学习成果,整个课程学习完成后,系统会自动根据您的答题情况,分析出您对课程的整体掌握程度,帮助您随时掌握自身学习情况。(2)报班模式下的学习课程。系统会根据您选取的班级,为您制定详细的阶段化学习路线,学习路线采用游戏通关模式,课程章节有考核测验、课程有综合检验、每阶段有项目开发任务。学习过程全程通过大数据进行数据分析,帮助您与班主任随时了解您的课程学习掌握程度,班主任会定期根据您的学习情况开放直播课程,为您的薄弱环节进行细致讲解,考核不合格则无法通过关卡进入下一个环节。

三、我们致力于提供这样的服务保障

1.与企业岗位的无缝对接(1)在线课程经过企业实体培训检验。华清远见是国内最早的高端 IT 定制培训服务机构,在业界享有盛誉。每年我们都会为不同的企业“量身订制”满足企业需求的高端企业内训课程,曾先后为 Intel、松下、通用电器、摩托罗拉、ST 意法半导体、三星、华为、大唐电信等众多知名企业进行员工内训。(2)拥有独立的自主研发中心。为开发和培训提供技术和产品支持,已经研发多款智能硬件产品、实验平台、实验箱等设备,并与中南大学、中国科学技术大学等高校共建嵌入式、物联网实验室。目前已经公开出版 80 多本教材,深受读者的欢迎。(3)平台提供企业招聘通道。学员可在线将自己的学习成果全部展现给企业 HR,增加您进入大型企业的机会。众多合作企业定期发布人才需求,还有企业上门招聘,全国 11 大城市就业推荐。

2.丰富的课程资源

华清创客学院紧跟市场需求,全新录制高质量课程,深入讲解当下热门的开发技术,包括嵌入式、Android、物联网、智能硬件课程(VR/AR、智能手表、智能小车、无人机等),希望我们的课程能帮您抓住智能硬件时代的发展机遇,打开更广阔的职业发展空间。

3.强大的师资团队

由华清远见金牌讲师团队+技术开发“大牛”组成的上百人讲师团队,有着丰富的开发与培训经验,其中不乏行业专家和企业项目核心开发者。

4.便捷的学习方式

下载学院 APP 学习,不论您是在学校、家里还是外面,都可以随时随地学习。与教材配套使用,利用碎片时间学习,提升求职就业竞争力!

5.超值的会员福利

会员可免费观看学院 70%的课程,还可优先参加直播课程、新课程上线抢先试学、学习积分翻倍等活动,并有机会免费参加线下体验课。

四、我们期待您的加入

欢迎关注华清创客学院官网 www.makeru.com.cn,见证我们的成长。期待您的加入,愿与您一起打造未来 IT 人的终身化学习体系。

本书配套课程视频观看方法:注册华清创客学院,手机扫描二维码即可观看课程视频;或在计算机上搜索书名,查找配套课程视频。第1章嵌入式Linux操作系统简介

■ Linux 是发展最快、应用最广泛的操作系统之一。Linux 本身的种种特性使其成为嵌入式开发者的首选。在进入市场的头两年中,嵌入式 Linux 设计就因为应用广泛获得了巨大的成功。随着技术的成熟,Linux 提供了对更小尺寸和更多类型的处理器的支持,并从早期的试用阶段逐渐成为嵌入式的主流。1.1 操作系统1.1.1 操作系统的基本概念

操作系统(Operating System,OS)是管理和控制计算机硬件与软件资源的计算机程序,它是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。换句话说,操作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。操作系统的功能包括管理计算机系统的硬件、软件及数据资源,控制程序运行,改善人机界面,为其他应用软件提供支持等,以使计算机系统所有资源最大限度地发挥作用。现代操作系统提供了各种形式的用户界面,使得用户可以拥有一个好的工作环境,并且为其他软件的开发提供必要的服务和相应的接口,其关系说明如图 1-1 所示。图1-1 嵌入式操作系统组成

操作系统根据用户界面的使用环境和功能特征的不同,一般可分为 3 种基本类型,即批处理操作系统、分时操作系统和实时操作系统。随着计算机体系结构的发展,又出现了许多种操作系统,它们是嵌入式操作系统、个人操作系统、网络操作系统和分布式操作系统。目前流行的操作系统主要有Android、BSD、iOS、Linux、Mac OS X、Windows、Windows Phone 和z/OS 等,除了 Windows 和 z/OS 等少数操作系统,大部分操作系统都为类UNIX 操作系统。

1.批处理操作系统

批处理(Batch Processing)操作系统的工作方式是用户将作业交给系统操作员,系统操作员将许多用户的作业组成一批作业,之后输入到计算机中,在系统中形成一个自动转接的连续的作业流,然后启动操作系统,系统自动、依次执行每个作业。最后由操作员将作业结果交给用户。批处理操作系统的特点是多通道和成批处理。

2.分时操作系统

分时(Time Sharing)操作系统的工作方式是一台主机连接了若干个终端,每个终端有一个用户在使用。用户交互式地向系统提出命令请求,系统接收每个用户的命令,采用时间片轮转方式处理服务请求,并通过交互方式在终端上向用户显示结果。用户根据上步结果发出下道命令。分时操作系统将 CPU的时间划分成若干个片段,称为时间片。操作系统以时间片为单位,轮流为每个终端用户服务。每个用户轮流使用一个时间片而并不感到有别的用户存在。分时系统具有多路性、交互性、独占性和及时性的特征。多路性是指同时有多个用户使用一台计算机,宏观上看是多个人同时使用一个 CPU,但微观上是多个人在不同时刻轮流使用 CPU。交互性是指用户可根据系统响应结果进一步提出新请求(用户直接干预每一步)。独占性是指用户感觉不到计算机为其他人服务,就像整个系统为他所独占。及时性是指系统对用户提出的请求及时响应。

常见的通用操作系统是分时系统与批处理系统的结合。其原则是分时优先,批处理在后。前台响应需频繁交互的作业,如终端的要求;后台处理时间性要求不强的作业。

3.实时操作系统

实时操作系统(Real Time Operating System,RTOS)是指使计算机能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时设备和实时任务协调一致地工作的操作系统。实时操作系统追求的目标是对外部请求在严格时间范围内做出反应,具有高可靠性和完整性。

4.嵌入式操作系统

嵌入式操作系统(Embedded Operating System,EOS)是运行在嵌入式系统环境中,对整个嵌入式系统以及它所操作、控制的各种部件装置等资源进行统一协调、调度、指挥和控制的系统软件。

5.个人计算机操作系统

个人计算机操作系统是一种单用户多任务的操作系统。它主要供个人使用,功能强,价格便宜,几乎可以在任何地方安装使用,能满足一般操作、学习、游戏等方面的需求。个人计算机操作系统的主要特点是计算机在某一时间内为单个用户服务;采用图形界面人机交互的工作方式,界面友好;使用方便,用户无需专门学习,也能熟练操作。

6.网络操作系统

网络操作系统基于计算机网络,是在各种计算机操作系统上按网络体系结构协议标准开发的软件套件,包括网络管理、通信、安全、资源共享和各种网络应用。其目标是相互通信及资源共享。

7.分布式操作系统

大量的计算机通过网络被连接在一起,可以获得极高的运算能力及广泛的数据共享。这种系统被称为分布式系统(Distributed System)。

总之,操作系统位于底层硬件与用户之间,是两者沟通的桥梁。用户可以通过操作系统的用户界面输入命令;操作系统则对命令进行解释,驱动硬件设备,实现用户要求。1.1.2 操作系统的主要组成

对一个操作系统我们可以大致把它分为 4 部分:驱动程序、内核、接口库、外围,如图 1-2 所示。图1-2 嵌入式系统组成图

1.驱动程序

驱动程序是操作系统最底层的、直接控制和监视各类硬件的部分,它们的职责是隐藏硬件的具体细节,并向其他部分提供一个抽象的、通用的接口。

2.内核

内核为操作系统之最核心部分,包括进程管理、内存管理、文件系统管理、设备管理等核心单元。其中,内存管理和进程管理可以用来作为衡量一个操作系统的标准。

3.接口库

接口库是一系列特殊的程序库,它们的职责在于把系统所提供的基本服务包装成应用程序所能够使用的编程接口(API),因而是最靠近应用程序的部分。例如,GNU C 运行库就属于此类,它把各种操作系统的内部编程接口包装成 ANSIC 和 POSIX 编程接口的形式。

4.外围

所谓外围,是指操作系统中除上述 3 部分以外的所有其他部分,通常是用于提供特定高级服务的部件。例如,在微内核结构中的大部分系统服务,以及 UNIX/Linux 中各种守护进程都通常被划归此列。

当然,这里所介绍的 4 部分不能说所有的操作系统都这样划分。例如,在早期的微软视窗操作系统中,各部分耦合程度很深,难以区分彼此。而在使用外核结构的操作系统中,则根本没有驱动程序的概念。因而,本节的讨论只适用于一般情况,具体特例需具体分析。1.2 嵌入式系统与通用 PC系统的不同

嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统,对功能、可靠性、成本、体积、功耗等方面有特殊要求的专用计算机系统。

从上面的定义我们可以知道,嵌入式系统也是一个计算机系统。下面我们就从一个计算机系统的基本组成来对比一下嵌入式系统与通用 PC 系统的不同,见表 1-1。表1-1 嵌入式系统与PC系统对比

嵌入式计算机系统与通用计算机系统相比具有如下特点。(1)嵌入式系统是面向特定系统应用的。嵌入式处理器大多数是专门为特定应用设计的,具有功耗低、体积小、集成度高等特点,一般是包含各种外围设备接口的片上系统。(2)嵌入式系统涉及计算机技术、微电子技术、电子技术、通信、软件等各行各业。它是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。(3)嵌入式系统的硬件和软件都必须具备高度可定制性,只有这样才能适应嵌入式系统应用的需要,在产品价格、性能等方面具备竞争力。(4)嵌入式系统的生命周期相当长。当嵌入式系统应用到产品以后,还可以进行软件升级,它的生命周期与产品的生命周期几乎一样长。(5)嵌入式系统不具备本地系统开发能力,通常需要有一套专门的开发工具和环境。

在计算机后 PC 技术时代,嵌入式系统将拥有庞大的市场。计算机和网络已经全面渗透到日常生活的每一个角落。各种各样的新型嵌入式系统设备在应用数量上已经远远超过通用计算机,任何一个普通人都可能拥有从小到大的各种使用嵌入式技术的电子产品,小到 MP3、PDA 等微型数字化产品,大到网络家电、智能家电、车载电子设备。而在工业和服务领域中,使用嵌入式技术的数字机床、智能工具、工业机器人、服务机器人也将逐渐改变传统的工业和服务方式,如图 1-3 所示。图1-3 嵌入式产品

美国著名的未来学家尼葛洛庞帝在 1999 年访华时曾预言,4~5 年后嵌入式系统将是继 PC 和 Internet 之后最伟大的发明。这个预言已经成为现实,现在的嵌入式系统正处于高速发展阶段,它无处不在。1.3 嵌入式操作系统

嵌入式操作系统的一个重要特性是实时性。所谓实时性,就是在确定的时间范围内响应某个事件的特性。操作系统的实时性在某些领域是至关重要的,如工业控制、航空航天等领域。想象一下飞机正在空中飞行,如果嵌入式系统不能及时响应飞行员的控制指令,那么极有可能导致空难事故。而有些嵌入式系统应用并不需要绝对的实时性,如 PDA 播放音乐,个别音频数据丢失并不影响效果,这可以使用软实时的概念来衡量。

据调查,目前全世界的嵌入式操作系统已经有 200 多种。从 20 世纪 80年代开始,出现了一些商用嵌入式操作系统,它们大部分都是为专有系统而开发的。随着嵌入式领域的发展,各种各样的嵌入式操作系统会相继问世。有许多商用嵌入式操作系统,也有大量开放源代码的嵌入式操作系统。其中著名的嵌入式操作系统有 Linux、μC/OS、Windows CE、VxWorks 和 QNX等,下面分别进行介绍。

1.Linux

根据 IDC 的报告,Linux 已经成为全球第二大操作系统。预计在服务器市场上,Linux 在未来几年内将以每年 25%的速度增长,中国的 Linux 市场更是保持 40%左右的增长速度。

嵌入式 Linux 版本还有多种变体。例如,RTLinux 通过改造内核实现了实时的 Linux;RTAI、Kurt 和 Linux/RK 也提供了实时能力;CLinux 去掉了 Linux 的 MMU(内存管理单元),能够支持没有 MMU 的处理器。

2.μC/OS

μC/OS 是一个典型的实时操作系统。该系统从 1992 年开始发展,目前流行的是第二个版本,即mC/OS II。它的特点是开放源代码,代码结构清晰,注释详尽,组织有条理,可移植性好;可剪裁,可固化;抢占式内核,最多可以管理 60 个任务。该系统短小精悍,是研究和学习实时操作系统的首选。

3.Windows CE

Windows CE 是微软公司的产品,它是从整体上为资源有限的平台设计的多线程、完整优先权、多任务的操作系统。Windows CE 采用模块化设计,并允许针对从掌上电脑到专用的工控电子设备进行定制。操作系统的基本内核需要至少 200KB 的 ROM。从 SEGA 的 DreamCast 游戏机到现在大部分的高价掌上电脑都采用了 Windows CE。

随着嵌入式操作系统领域日益激烈的竞争,微软公司不得不应付来自Linux 等免费系统的冲击。微软公司在 Windows CE.Net 4.2 版中,增加了一项授权价仅 3 美元的精简版本 Windows CE.Net Core。Windows CE.Net Core 具有基本的功能,包括实时 OS 核心(Real Time OS Kernel),新文件系统,IPv4、IPv6、WLAN、蓝牙等联网功能,Windows Media Codec,.Net开发框架以及 SQL Server.ce。微软公司推出低价版本 Windows CE.Net,主要是看好语音电话、WLAN 的无线桥接器和个性化视听设备的成长潜力。

4.VxWorks

VxWorks 是 WindRiver 公司专门为实时嵌入式系统设计开发的操作系统软件,为程序员提供了高效的实时任务调度、中断管理,实时的系统资源以及实时的任务间通信。应用程序员可以将尽可能多的精力放在应用程序本身,而不必再去关心系统资源的管理。该系统主要应用在单板机、数据网络(以太网交换机、路由器)、通信方面等诸多方面。其核心功能如下。(1)微内核 Wind。(2)任务间通信机制。(3)网络支持。(4)文件系统和 I/O 管理。(5)POSIX 标准实时扩展。(6)C++以及其他标准支持。

这些核心功能可以与 WindRiver 系统的其他附件和 Tornado 合作伙伴的产品结合在一起使用。谁都不能否认这是一个非常优秀的实时系统,但其昂贵的价格使不少厂商望而却步。

5.QNX

QNX 也是一款实时操作系统,由加拿大 QNX 软件系统有限公司开发。它广泛应用于自动化、控制、机器人科学、电话、数据通信、航空航天、计算机网络系统、医疗仪器设备、交通运输、安全防卫系统、POS 机、零售机等任务关键型应用领域。20 世纪 90 年代后期,QNX 系统在高速增长的Internet 终端设备、信息家电及掌上电脑等领域也得到了广泛应用。

QNX 的体系结构决定了它具有非常好的伸缩性,用户可以把应用程序代码和 QNX 内核直接编译在一起,使之为简单的嵌入式应用生成一个单一的多线程映像。它也是世界上第一个遵循 POSIX1003.1 标准、从零设计的微内核,因此具有非常好的可移植性。

嵌入式操作系统的选择是前期设计过程的一项重要工作,这将影响到工程后期的发布以及软件的维护。首先,不管选用什么样的系统,都应该考虑操作系统对硬件的支持,如果选择的系统不支持将来要使用的硬件平台,那么这个系统是不合适的;其次,要考虑的是开发调试用的工具,特别是对于开销敏感和技术水平不强的企业来说,开发工具往往在开发过程中起决定性作用;最后,要考虑的问题是该系统能否满足应用需求。如果一个操作系统提供的 API 很少,那么无论这个系统有多么稳定,应用层很难进行二次开发,这显然也不是开发人员希望看到的。由此可见,选择一款既能满足应用需求,性价比又可达到最佳的实时操作系统,对开发工作的顺利开展意义非常重大。1.4 嵌入式 Linux基础

嵌入式 Linux 的队伍越来越庞大,在通信、信息、数字家庭、工业控制等领域,随处都能见到嵌入式 Linux 的身影。究竟是什么原因让嵌入式 Linux发展如此迅速呢?又究竟是什么原因让它能与强劲的 VxWorks、Windows CE 相抗衡呢?这一切还是要归根于 Linux。可以说,嵌入式 Linux 正是继承和发展了 Linux 的诱人之处才能够走到今天,而 Linux 也正是有了嵌入式Linux 的广泛应用才更加引人注目。以下就从 Linux 的发端开始,一层层揭开嵌入式 Linux 的面纱。1.4.1 Linux 发展概述

20 世纪 60 年代时,大部分计算机都是采用批处理的方式(也就是说,当作业积累到一定数量的时候,计算机才会处理)。

为了改变这种现状,美国电报及电话公司(AT&T)、通用电器公司(GE)及麻省理工学院(MIT)计划合作开发一个多用途、分时及多用户的操作系统,也就是 MULTICS。但是由于这个项目太过于复杂,整个目标过于庞大,糅合了太多的特性,进展太慢,几年下来没有任何成果,而且性能很低。

1969 年 2 月,贝尔实验室(Bell labs)决定退出这个项目。

当时贝尔实验室有个工程师叫 Ken Thompson,他为 MULTICS 写了一个叫“Space Travel”的游戏,当时他发现游戏运行的速度很慢。为了这个游戏能玩,他找来了一位天才工程师 Dennis Ritchie,他们用汇编语言写了一个简单的操作系统 Unics,这就是后来的 UNIX 的原型。

1973 年,Ken Thompson 和 Dennis Ritchie 发现用汇编语言移植过于困难,后来他们先后用 B 语言、C 语言重写了 UNIX。

1974 年,UNIX 首次和外界接触,引起了学术界的广泛兴趣。因此,UNIX从第 5 版本以“仅用于教育目的”协议,提供给各大学作为教学之用。UNIX开始广泛流行。

1978年,伯克利大学在 UNIX上进行改进,推出了自己的 UNIX版本——Berkeley Softwore Distribution,即 BSD。同时,AT&T 公司成立了 USG (UNIX Support Group)组织,将 UNIX 变成了商业化的产品。UNIX 的发展脉络如图 1-4 所示。图1-4 UNIX发展历史

AT&T的这种商业态度让当时许许多多的 UNIX的爱好者和软件开发者们感到相当的痛心和忧虑,他们认为商业化的种种限制并不利于产品的发展,相反还会导致出现诸多的问题。

此时,一个名叫 Richard Stallman 的领军人物出现了,他认为 UNIX 是一个相当好的操作系统,如果大家都能够将自己所学贡献出来,那么这个系统将会更加的优异!他倡导 Open Source 的概念。为了这个理想,Richard Stallman 于 1984 年创立了 GNU,计划开发一套与 UNIX 相互兼容的软件。1985 年 Richard Stallman 又创立了自由软件基金会(Free Software Foundation,FSF)来为 GNU 计划提供技术、法律以及财政支持。尽管 GNU计划大部分时候是由个人自愿无偿贡献的,但 FSF 有时还是会聘请程序员帮助编写。当 GNU 计划开始逐渐获得成功时,一些商业公司开始介入开发和技术支持。

自 20 世纪 90 年代发起这个计划以来,GNU 开始大量地产生或收集各种系统所必备的组件,如函数库(Libraries)、编译器(Compilers)、调试工具(Debuggers)、文本编辑器(Text Editors)、网站服务器(Web Server),以及一个 UNIX 的使用者接口(UNIX Shell)等。但由于种种原因,GNU 一直没有开发操作系统的内核(Kernel)。正当 Richard Stallman 在为操作系统内核伤脑筋的时候,Linux 出现了。

1991 年,芬兰赫尔辛基大学的学生 Linus Torvals 为了能在家里的 PC上使用与学校一样的操作系统,开始编写自己的类 UNIX 操作系统。

1991年8月25日,Linus就在comp.os.minix新闻组中首次发布了Linux内核的第一个公共版本。

最初 Linus 编写的程序只适用于 Intel 386 处理器,且不能移植。由于人们的鼓励,Torvals 继续编写可移植的 Linux 系统。

之后,就有越来越多的计算机爱好者、程序员通过网络,包括通过社区、邮件列表、论坛、Wiki 等参与到 Linux 系统的不断完善之中。1.4.2 Linux 作为嵌入式操作系统的优势

从 Linux 系统的发展过程可以看出,Linux 从最开始就是一个开放的系统,并且它始终遵循着开放源代码的原则,是一个成熟而稳定的网络操作系统。Linux 作为嵌入式操作系统的优势如下。

1.低成本开发系统

Linux的源码开放性允许任何人可以获取并修改 Linux的源码。这样一方面大大降低了开发的成本,另一方面又可以提高开发产品的效率,并且还可以在Linux社区中获得支持,用户只需向邮件列表发一封邮件,即可获得作者的支持。

2.可应用于多种硬件平台

Linux 可支持 x86、PowerPC、ARM、XSCALE、MIPS、SH、68K、Alpha、SPARC 等多种体系结构,并且已经被移植到多种硬件平台。这对于经费、时间受限制的研究与开发项目是很有吸引力的。Linux 采用一个统一的框架对硬件进行管理,同时从一个硬件平台到另一个硬件平台的改动与上层应用无关。

3.可定制的内核

Linux 具有独特的内核模块机制,它可以根据用户的需要,实时地将某些模块插入或移出内核,并能根据嵌入式设备的个性需要量体裁衣。经裁剪的 Linux 内核最小可达到 150KB 以下,尤其适合嵌入式领域中资源受限的实际情况。在 2.6 内核中加入了许多嵌入式友好特性,如构建用于不需要用户界面的设备的小占板面积内核选项。

4.性能优异

Linux 系统内核精简、高效和稳定,能够充分发挥硬件的功能,因此它比其他操作系统的运行效率更高。在个人计算机上使用 Linux 时,可以将它作为工作站。它也非常适合在嵌入式领域中应用,对比其他操作系统,它占用的资源更少,运行更稳定,速度更快。

5.良好的网络支持

Linux 是首先实现 TCP/IP 协议栈的操作系统,它的内核结构在网络方面是非常完整的,并提供了对包括 10 吉比特、100 吉比特及 1 000 吉比特的以太网,还有无线网络、Token Ring(令牌环)和光纤甚至卫星的支持。这对现在依赖于网络的嵌入式设备来说无疑是很好的选择。1.4.3 Linux 发行版本

由于 Linux属于 GNU系统,而这个系统采用 GPL协议,并保证了源代码的公开,于是众多组织或公司在 Linux内核源代码的基础上进行了一些必要的修改加工,然后再开发一些配套的软件,并把它整合成一个自己的 Linux 发布版(Distribution)。除去非商业组织 Debian开发的 Debian GNU/Linux外,美国的Red Hat公司发行了 Red Hat Linux,法国的 Mandrake公司发行了 Mandrake Linux,德国的 SUSE 公司发行了 SUSE Linux。国内众多公司也发行了中文版的 Linux,如著名的红旗 Linux。Linux目前已经有超过 250个发行版本。

下面是一些常见的 UNIX/类 UNIX 版本,如图 1-5 所示。

Solaris;

IBM AIX;

Red Hat;

Fedora Core;

SUSE;

Debian;

Ubuntu;

FreeBSD;

OpenBSD;

NetBSD;

Yellow Dog Linux;

Slackware;

Red Flag;

Blue Point。图1-5 Linux发行版

下面仅对 Red Hat、Debian、Ubuntu 等有代表性的 Linux 发行版本进行介绍。

1.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 是其中功能最为强大和完善的版本。而正统的桌面版 Red Hat 版本更新早已停止,最后一版是Red Hat 9.0。

2.Debian

之所以把 Debian 单独列出,是因为 Debian GNU/Linux 是一个非常特殊的版本。在 1993 年,伊恩·默多克(Ian Murdock)发起 Debian 计划,它的开发模式和 Linux 及其他开放性源代码操作系统的模式一样,都是由超过 800 位志愿者通过互联网合作开发而成的。一直以来,Debian GNU/Linux被认为是最正宗的 Linux 发行版本,而且它是一个完全免费的、高质量的且与 UNIX 兼容的操作系统。

Debian 系统分为 3 个版本,分别为稳定版(Stable)、测试版(Testing)和不稳定版(Unstable)。并且每次发布的版本都是稳定版,而测试版在经过一段时间的测试证明没有问题后会成为新的稳定版。Debian 拥有超过 8 710种不同的软件,而且每一种软件都是自由的,并且有非常方便的升级安装指令,基本囊括了用户的需要。Debian 也是最受欢迎的嵌入式 Linux 之一。

3.Ubuntu

Ubuntu(中文名:乌班图)是一个以桌面应用为主的 Linux 操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。Ubuntu 基于 Debian 发行版和 GNOME 桌面环境,与 Debian 的不同在于它每 6 个月会发布一个新版本。Ubuntu 的目标在于为一般用户提供一个最新的,同时又相当稳定的主要由自由软件构建而成的操作系统。Ubuntu 具有庞大的社区力量,用户可以方便地从社区获得帮助。1.5 Linux系统安装1.5.1 文件系统和硬盘分区的概念

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

因此,在 Linux 中把每一个分区和某一个目录对应,以后在对这个目录的操作就是对这个分区的操作,这样就实现了硬件管理手段和软件目录管理手段的统一。这个分区和目录对应的过程称为挂载(Mount),而这个在文件树中挂载的目录位置就是挂载点。这种对应关系可以由用户随时中断和改变。

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

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

一般而言,对于先装了 Windows 的用户,Windows 的 C 盘是装在主分区上的,可以把 Linux 安装在另一个主分区或者扩展分区上。通常为了安装方便、安全起见,一般采用把 Linux 装在多余的逻辑分区上,如图 1-9 所示。图1-8 Linux下主分区、扩展分区、逻辑分区示意图图1-9 Linux安装的分区示意图

2.swap 交换分区

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

3.分区格式

不同的操作系统选择了不同的格式,同一种操作系统也可能支持多种格式。微软公司的 Windows 就选择了 FAT32、NTFS 两种格式,但是 Windows不支持 Linux 上常见的分区格式。Linux 是一个开放的操作系统,它最初使用 ext2 格式,后来使用 ext3 格式(最新的 Linux 文件系统是 ext4),但是它同时支持非常多的分区格式,包括很多大型机上 UNIX 使用的 XFS 格式,也包括微软公司的 FAT 和 NTFS 格式。

4.GRUB

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

5.root 权限

Linux 也是一个多用户的系统(在这一点上类似 Windows),不同的用户和用户组会有不同的权限,其中把具有超级权限的用户称为 root 用户。root 的默认主目录在“/root”下,而其他普通用户的目录则在“/home”下。root的权限极高,它甚至可以修改Linux的内核,因此建议初学者要慎用root权限,不然一个小小的参数设置错误很有可能导致严重的系统问题。1.5.2 安装准备

我们准备在 Windows 上装一个虚拟机软件,然后在虚拟机软件上来安装 Linux 系统。

这里先说一下虚拟机的概念。

虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。

目前流行的虚拟机软件有 VMware(VMware ACE)、VirtualBox 和Virtual PC,它们都能在 Windows 系统上虚拟出多个计算机。

在这里我们使用的虚拟机是 VMware Workstation 7,Linux 系统是Ubuntu 10.10,请读者提前将它们下载到自己的本地计算机。1.5.3 安装过程

1.虚拟机的安装(1)双击下载好的 VMware Workstation 软件打开安装程序,如图 1-10所示。(2)单击“Next”按钮进行下一步。(3)进入图 1-11所示的界面,选择“Typical”选项,单击“Next”按钮。(4)安装路径我们选择默认的就可以,单击“Next”按钮进行下一步。(5)图 1-12 所示的是选择 VM 快键图标存放的位置,这里我们选择默认的即可。(6)单击“Next”按钮,进入安装界面,如图 1-13 所示。(7)安装完成后,输入序列号。图1-10 虚拟机安装1图1-11 虚拟机安装2图1-12 虚拟机安装3图1-13 虚拟机安装4(8)重新启动计算机。(9)重新启动计算机后,单击桌面上的 VMware Workstation快捷方式,则出现图 1-14 所示的画面,选择“Yes,Iaccept the terms in the license agreement”选项,单击“OK”按钮。图1-14 虚拟机安装5(10)到这里我们的虚拟机软件就已经安装好了,其工作界面如图 1-15所示。图1-15 虚拟机工作界面

2.创建虚拟机(1)启动 VMware Workstation 软件,单击“New Virtual Machine”,如图 1-16 所示。图1-16 创建虚拟机(2)进入图 1-17所示的安装方式选择画面,选择“Typical(recommended)”安装,单击“Next”按钮。(3)选择从哪里安装操作系统,如图 1-18 所示。这里选择第三项,单击“Next”按钮。图1-17 典型安装图1-18 选择安装方式(4)选择 Linux,版本 Ubuntu,如图 1-19 所示。(5)图 1-20 所示为读者可以自己指定 Ubuntu 系统最终安装的路径。图1-19 选择安装版本图1-20 指定安装路径(6)设置 Ubuntu 系统将拥有的硬盘大小, 我们使用默认的就可以,如图 1-21 所示。读者可以根据主机硬盘的实际情况,调整其大小。(7)单击“Finish”按钮完成安装,如图 1-22 所示。图1-21 安装硬盘大小图1-22 完成安装(8)到这里我们的虚拟机就已经创建好了,如图 1-23 所示。图1-23 虚拟机创建完成

注意,此时只是创建了虚拟机,还没有安装操作系统。下面就开始在这个虚拟机上安装 Ubuntu 系统。

3.安装 Ubuntu 系统(1)双击图 1-24 所示的用线框起来的地方。(2)选择“Use ISO image file”选项,单击“Browse”按钮,找到下载好的 Ubuntu 系统 ISO 镜像文件,然后单击“OK”按钮进行下一步,如图 1-25 所示。图1-24 安装操作系统图1-25 安装镜像(3)单击小三角形按钮开始安装,如图 1-26 所示。(4)等待一两分钟就会出现图 1-27 所示的界面,选择英文安装。(5)单击“Install Ubuntu”按钮进入下一步。(6)在图 1-28 中可选择对磁盘进行分区。第一个是自动分区,第二个是手动分区,在这里我们选择手动分区。图1-26 单击安装

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载