没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
134页
1、内容概要:该pdf包含了Linux操作系统学习的很多必要的知识,详细包含了:第0章 Linux基础入门、第一章简单使用linux、第二章linux中执行命令、第三章linux文件类型和根目录结构、第四章从命令行管理文件、第五章文件内容显示、第六章文件的其他操作命令、第七章 用户和组管理、第八章Linux文件系统权限、第九章管理Linux的联网、第十章管理Linux软件包和进程、第十一章 磁盘管理。 2、适合人群:目前学习Linux的人群(属于Linux学习的基础,所必要了解的东西) 3、能学到什么? (1)、Linux操作系统在win环境下虚拟机安装配置; (2)、Linux操作系统基础知识。 4、阅读建议: 着重阅读以下部分: 第二章、linux中执行命令 第三章、linux文件类型和根目录结构 第四章、从命令行管理文件 第五章、文件内容显示 第六章、文件的其他操作命令 第七章、用户和组管理 第八章、Linux文件系统权限 第九章、管理Linux的联网 第十章、管理Linux软件包和进程 第十一章、磁盘管理 5、学习建议: 我们需要自己去验证代码,做到学习与实践相互结合。
资源推荐
资源详情
资源评论
第0章 Linux基础入门
0.1 什么是计算机
计算机的组成:
1、控制器,是整个计算机的中枢神经,根据程序要求进行控制,协调计算机各部分工作及内存与外设的
访问等。
2、运算器,功能是对数据进行各种算术运算和逻辑运算。
3、存储器,功能是存储程序、数据和各种信号、命令等信息。
4、输入设备,输入设备的作用是将程序、原始数据、文字、字符、控制命令或现场采集的数据等信息输
入到计算机。常见的输入设备有键盘、鼠标等。
5、输出设备,它把计算机计算后的信息输出出来。常用的输出设备有显示终端、打印机、绘图仪等。
计算机的功能:接收输入设备的指令和数据,经过cpu的数据和逻辑运算处理产生有用的信息存储起来
或者输出到屏幕上。
那么我们的计算机所接受到的指令和数据都是什么样的呢?
其实我们的计算机只认识0,1代码。早期对计算机的全部操作都是采取人工操作方式进行的,早期的
操作方式是由纸带或卡片打孔和没打孔来代替0和1输入计算机来实现一些功能的,就相当于是直接使用
机器语言让计算机工作。但是使用机器语言去操控计算机有几个缺点:
第一:需要了解机器语言。
第二:需要了解所有硬件的相关功能函数。因为你的程序必须要写给机器看,你就得去参考机器本
身的功能,然后针对该功能去编写程序代码。例如你要让DVD影片能够放映,那就得要参考DVD光
驱的硬件信息。看参考手册是很费劲的。
第三:程序不具有可移植性。每个CPU都有独特的微指令集,同样,每个硬件都有其功能函数。
第四: 程序具有专一性。因为这样的程序必须要针对硬件功能函数来编写,如果已经开发了一个浏
览器程序,想要再开发文件管理程序时,还得要从头参考硬件的功能函数来继续编写。
为了解决这几个问题,计算机科学家就设计出一种让人类看得懂的程序语言,然后创造一种“编译器”来
将这些人类写的程序语言翻译成机器能看懂的机器码。这样一来我们修改与编写程序就变得容易多了。
目前常见的编译器有C,C++,JAVA等。
但是,在这样的环境下我们还得要考虑整体的硬件系统来设计程序。举例来说:当你需要将运行的数据
写入内存中,你就得要自行分配一个内存块出来让自己的数据能够填上去,所以你还得要了解到内存的
地址是如何定位的。为了要克服硬件方面老是需要重复编写句柄的问题,所以就有了操作系统。
0.2 操作系统简介
操作系统是什么?操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计
算机程序,是配置在计算机硬件上的第一层软件,任何其它软件都必须在操作系统的支持下才能运行。
操作系统的主要工作是由操作系统内核实现的,操作系统内核提供一系列具备预定功能的多内核函数,
通过一组称为系统调用的接口(应用编程接口API,由操作系统实现提供的所有系统调用所构成的集合,
是应用程序和系统之间的接口)呈现给用户。操作系统内核的功能:
系统调用接口:程序员通过该接口与内核进行通信
程序管理:一部计算机可能同时间有很多的工作在等待CPU运算处理,内核这个时候必须要能够控
制这些工作,让CPU的资源做有效的分配才行。
内存管理:控制整个系统的内存管理,系统所有的程序代码与数据都必须要先存放在内核当中。通
常内核会提供虚拟内存的功能,当内存不足时可以提供内存交换的功能。
文件系统管理 :例如数据的输入和输出等的工作,还有不同文件格式的支持等。
设备驱动:硬件的管理是内核的主要工作之一,设备的驱动程序就是内核管理着硬件的代码,设备
的驱动程序可以使硬件准备好工作,时刻等待着程序的调用。好在目前都有所谓的“可加载模块”功
能,可以将驱动程序编辑成模块,就不需要重新编译内核。
系统调用把应用程序的请求传给内核,调用相应的内核函数完成所需的处理,将处理的结果返回给应用
程序。
常见的操作系统:UNIX、Linux类、MacOS、Windows类、iOS、Android、ChromeOS等等
0.3 为什么要学习Linux
Linux因其高效率、易于裁剪、应用广等优势,成为了当今中高端服务器的主要操作系统,并且处于一个
不可替代的地位。
Linux成为开源软件的代名词
陪伴互联网时代的7大开源软件
加密互联网的安全协议OpenSSL
数据仓库大王--MySQL
万能开发工具Eclipse
互联网的门卫Apache
大数据的心脏Hadoop
互联网的排版引擎WebKit
Linux在服务器领域发展良好,尤其在政府、金融、农业、交通、电信等国家关键领域已经形成了
大规模的市场应用
Linux在桌面领域的发展良好,国内如中标麒麟Linux、红旗Linux、深度Linux等系统软件厂商都推
出的Linux桌面操作系统,另外SUSE、Ubuntu也相继推出了基于Linux的桌面系统,特别是
Ubuntu Linux,已经积累了大量社区用户
Linux的低成本、强大的定制功能以及良好的移植性能,使得Linux在嵌入式系统方面也得到广泛应
用,目前Linux以广泛应用于手机、平板电脑、路由器、电视和电子游戏机等领域。
Linux在云计算/大数据领域的发展互联网产业的迅猛发展,促使云计算、大数据产业的形成并快速
发展
0.4 Linux 入门
0.4.1 开源共享精神
开源软件的特点就是把软件程序与源代码文件一起打包提供给用户,让用户在不受限制地使用某个软件
功能的基础上还可以按需进行修改,或编制成衍生产品再发布出去。用户具有使用自由、修改自由、重
新发布自由以及创建衍生品的自由。这也正好符合了黑客和极客对自由的追求,因此国内外开源社区的
根基都很庞大,人气也相当高。
开源软件最重要的特性:
低风险:使用闭源软件无疑把命运交付给他人,一旦封闭的源代码没有人来维护,你将进退维谷;
而且相较于商业软件公司,开源社区很少存在倒闭的问题。
高品质:相较于闭源软件产品,开源项目通常是由开源社区来研发及维护的,参与编写、维护、测
试的用户量众多,一般的bug还没有等爆发就已经被修补。
低成本:开源工作者都是在幕后默默且无偿地付出劳动成果,为美好的世界贡献一份力量,因此使
用开源社区推动的软件项目可以节省大量的人力、物力和财力。
更透明:没有哪个笨蛋会把木马、后门等放到开放的源代码中,这样无疑是把自己的罪行暴露在阳
光之下。
但是,如果开源软件为了单纯追求“自由”而牺牲程序员的利益,这将会影响程序员的创造激情,因此世
界上现在有60多种被开源促进组织(Open Source Initiative)认可的开源许可协议来保证开源工作者的
权益。对于那些只知道一味抄袭、篡改、破解或者盗版他人作品的不法之徒,终归会在某一天收到法院
的传票。对于准备编写一款开源软件的开发人员,也建议先了解一下当前最热门的开源许可协议,选择
一个合适的开源许可协议来最大限度保护自己的软件权益。
著名的开源许可协议:
Ø GNU GPL(GNU General Public License,GNU通用公共许可证):只要软件中包含了遵循GPL协
议的产品或代码,该软件就必须也遵循GPL许可协议且开源、免费,因此这个协议并不适合商用软件。
遵循该协议的开源软件数量极其庞大,包括Linux系统在内的大多数的开源软件都是基于这个协议的。
GPL开源许可协议最大的4个特点如下所示。
复制自由:允许把软件复制到任何人的电脑中,并且不限制复制的数量。
传播自由:允许软件以各种形式进行传播。
收费传播:允许在各种媒介上出售该软件,但必须提前让买家知道这个软件是可以免费获得的;因
此,一般来讲,开源软件都是通过为用户提供有偿服务的形式来盈利的。
修改自由:允许开发人员增加或删除软件的功能,但软件修改后必须依然基于GPL许可协议授权。
Ø BSD(Berkeley Software Distribution,伯克利软件发布版)许可协议:用户可以使用、修改和重
新发布遵循该许可的软件,并且可以将软件作为商业软件发布和销售,前提是需要满足下面3个条件。
如果再发布的软件中包含源代码,则源代码必须继续遵循BSD许可协议。
如果再发布的软件中只有二进制程序,则需要在相关文档或版权文件中声明原始代码遵循了BSD协
议。
不允许用原始软件的名字、作者名字或机构名称进行市场推广。
Ø Apache许可证版本(Apache License Version)许可协议:在为开发人员提供版权及专利许可的同
时,允许用户拥有修改代码及再发布的自由。该许可协议适用于商业软件,现在热门的Hadoop、
Apache HTTP Server、MongoDB等项目都是基于该许可协议研发的,程序开发人员在开发遵循该协议
的软件时,要严格遵守下面的4个条件。
该软件及其衍生品必须继续使用Apache许可协议。
如果修改了程序源代码,需要在文档中进行声明。
若软件是基于他人的源代码编写而成的,则需要保留原始代码的协议、商标、专利声明及其他原作
者声明的内容信息。
如果再发布的软件中有声明文件,则需在此文件中标注Apache许可协议及其他许可协议。
Ø MPL(Mozilla Public License,Mozilla公共许可)许可协议:相较于GPL许可协议,MPL更加注重
对开发者的源代码需求和收益之间的平衡。
Ø MIT(Massachusetts Institute of Technology)许可协议:目前限制最少的开源许可协议之一,
只要程序的开发者在修改后的源代码中保留原作者的许可信息即可,因此普遍被商业软件所使用。
0.4.2 Linux的诞生与特点
Linux——UNIX派生的自由软件
“Linux”这个单词根据Linus Torvalds本人的发音应该是“哩呐克斯”,音标是 ['li:nэks] 重音在“哩”上
1、Linux的诞生
1)Multics计划
上世纪六十年代,人们还在用批处理计算机,也就是一次性给一批任务到计算机,然后等待结果,中途
不能和计算机进行交互,而且准备作业需要耗费大量时间。于是1965年,贝尔实验室(Bell),麻省理
工学院(MIT)和通用电气(GE)准备联手开发“分时多任务处理系统”,即300台以上终端机可以同时连
接一台大型计算机进行作业,并取名为Multics(Multiplexed Information and Computing System,
多路信息计算系统)。但由于项目进度落后,资金短缺,1969年,贝尔实验室放弃了这个项目,决定退
出(后来Multics成功开发完成,尽管没有再被重视)。
2)Unix的诞生与打飞机游戏
调回到贝尔实验室的工程师看到费时的批处理机器,十分怀念先进的Multics。一位工程师Ken
Thompson在研发Multics的时候,写了一个叫太空大战(SpaceTravel),是飞机发射子弹那种类型的
游戏,然而这个游戏只能运行在Multics上面,他很想要移植这个游戏继续玩。1969年8月,Thompson
在库房发现了一台闲置的PDP-7,刚好此时休假并且妻儿都去加利福尼亚探亲度假去了,经过四个星期
的努力,用BCPL(Basic Combined Programming Language,基本组合编程语言)汇编语言编写了一
组内核程序,还包括内核工具程序,以及一个小的文件系统。完成之后,Thompson激动地把身边的同
时叫过来,让他们来玩他的游戏。由于这个系统是由Multics简化而来,同事们就戏称这个系统
为"UNiplexed Information and Computing Service”,即没路信息计算系统,缩写为Unics,取其谐音
Unix。这时已经是1970年了,于是就将1970年定为Unix元年,现代计算机的计时也就是这个时候开始
的。
剩余133页未读,继续阅读
资源评论
君衍.⠀
- 粉丝: 5832
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功