有问题可私聊 ~
目录
一、什么是计算机
1.计算机的组成
2.计算机各个部件简单工作原理
3.计算机的功能
二、操作系统简介
1.操作系统是什么?
2.操作系统的主要功能:
3.操作系统内核的功能:
三、为什么要学习Linux
四、Linux 入门
1.开源共享精神
2.Linux的诞生与特点
(1)Linux的诞生
(2)Linux的特点
(3)Linux的应用领域
(4)Linux的组成
(5)Linux的内核版本和发行版本
五、为什么要用虚拟机学习
1.使用虚拟机学习linux的好处
2.在虚拟机上如何学好linux
六、Linux认证
接收输入设备的指令和数据,经过cpu的数据和逻辑运算处理产生有用的信息存储起来 或者输出到屏幕上。
那么我们的计算机所接受到的指令和数据都是什么样的呢?其实我们的计算机只认识0,1代码。而且 计算机最重要的运算与逻辑判断是在CPU内部,而CPU是有微指令集的。因此,我们需要CPU帮忙工作 时,就得要参考微指令集的内容,然后编写让CPU读得懂的指令码给CPU执行,这样就能够让CPU运行 了。早期对计算机的全部操作都是采取人工操作方式进行的,早期的操作方式是由纸带或卡片打孔和没 打孔来代替0和1输入计算机来实现一些功能的,就相当于是直接使用机器语言让计算机工作。但是使用 机器语言去操控计算机有几个缺点:
为了解决这个问题,计算机科学家就设计出一种让人类看得懂的程序语言,然后创造一种“编译器”来将 这些人类写的程序语言翻译成机器能看懂的机器码。这样一来我们修改与编写程序就变得容易多了。目 前常见的编译器有C,C++,JAVA等。
但是,在这样的环境下我们还得要考虑整体的硬件系统来设计程序。举例来说:当你需要将运行的数据 写入内存中,你就得要自行分配一个内存块出来让自己的数据能够填上去,所以你还得要了解到内存的 地址是如何定位的。为了要克服硬件方面老是需要重复编写句柄的问题,所以就有了操作系统。
操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计 算机程序,是配置在计算机硬件上的第一层软件,任何其它软件都必须在操作系统的支持下才能运行。
是为管理硬件资源和为应用程序开发人员提供良好的环境来使应用程序具有更好的 兼容性,为了达到这个目的,操作系统内核提供一系列具备预定功能的多内核函数,通过一组称为系统 调用的接口(应用编程接口API,由操作系统实现提供的所有系统调用所构成的集合,是应用程序和系统 之间的接口)呈现给用户。系统调用把应用程序的请求传给内核,调用相应的内核函数完成所需的处 理,将处理的结果返回给应用程序。
常见的操作系统:UNIX、Linux类、MacOS、Windows类、iOS、Android、ChromeOS等等
Linux因其高效率、易于裁剪、应用广等优势,成为了当今中高端服务器的主要操作系统,并且处于一个 不可替代的地位。
简单来说,开源软件的特点就是把软件程序与源代码文件一起打包提供给用户,让用户在不受限制地使 用某个软件功能的基础上还可以按需进行修改,或编制成衍生产品再发布出去。用户具有使用自由、修 改自由、重新发布自由以及创建衍生品的自由。这也正好符合了黑客和极客对自由的追求,因此国内外 开源社区的根基都很庞大,人气也相当高。
坦白来讲,每位投身于Linux行业的技术人或者程序员只要听到开源项目就会由衷地感到自豪,这是一种 从骨子里带有的独特情怀。开源的企业不单纯是为了利益,而是互相扶持,努力服务好更多的用户。开 源软件最重要的特性有下面这些:
Ø 低风险:使用闭源软件无疑把命运交付给他人,一旦封闭的源代码没有人来维护,你将进退维谷;而 且相较于商业软件公司,开源社区很少存在倒闭的问题。
Ø 高品质:相较于闭源软件产品,开源项目通常是由开源社区来研发及维护的,参与编写、维护、测试 的用户量众多,一般的bug还没有等爆发就已经被修补。
Ø 低成本:开源工作者都是在幕后默默且无偿地付出劳动成果,为美好的世界贡献一份力量,因此使用 开源社区推动的软件项目可以节省大量的人力、物力和财力。
Ø 更透明:没有哪个笨蛋会把木马、后门等放到开放的源代码中,这样无疑是把自己的罪行暴露在阳光 之下。
但是,如果开源软件为了单纯追求“自由”而牺牲程序员的利益,这将会影响程序员的创造激情,因此世 界上现在有60多种被开源促进组织(Open Source Initiative)认可的开源许可协议来保证开源工作者的 权益。对于那些只知道一味抄袭、篡改、破解或者盗版他人作品的不法之徒,终归会在某一天收到法院 的传票。对于准备编写一款开源软件的开发人员,也非常建议先了解一下当前最热门的开源许可协议, 选择一个合适的开源许可协议来最大限度保护自己的软件权益。
Ø GNU GPL(GNU General Public License,GNU通用公共许可证):只要软件中包含了遵循GPL协 议的产品或代码,该软件就必须也遵循GPL许可协议且开源、免费,因此这个协议并不适合商用软件。 遵循该协议的开源软件数量极其庞大,包括Linux系统在内的大多数的开源软件都是基于这个协议的。 GPL开源许可协议最大的4个特点如下所示。
Ø BSD(Berkeley Software Distribution,伯克利软件发布版)许可协议:用户可以使用、修改和重 新发布遵循该许可的软件,并且可以将软件作为商业软件发布和销售,前提是需要满足下面3个条件。
Ø Apache许可证版本(Apache License Version)许可协议:在为开发人员提供版权及专利许可的同 时,允许用户拥有修改代码及再发布的自由。该许可协议适用于商业软件,现在热门的Hadoop、 Apache HTTP Server、MongoDB等项目都是基于该许可协议研发的,程序开发人员在开发遵循该协议 的软件时,要严格遵守下面的4个条件。
Ø MPL(Mozilla Public License,Mozilla公共许可)许可协议:相较于GPL许可协议,MPL更加注重 对开发者的源代码需求和收益之间的平衡。
Ø MIT(Massachusetts Institute of Technology)许可协议:目前限制最少的开源许可协议之一, 只要程序的开发者在修改后的源代码中保留原作者的许可信息即可,因此普遍被商业软件所使用。
Linux——UNIX派生的自由软件
“Linux”这个单词根据Linus Torvalds本人的发音应该是“哩呐克斯”,音标是 ['li:nэks] 重音在“哩”上
Multics计划
上世纪六十年代,人们还在用批处理计算机,也就是一次性给一批任务到计算机,然后等待结果,中途 不能和计算机进行交互,而且准备作业需要耗费大量时间。于是1965年,贝尔实验室(Bell),麻省理 工学院(MIT)和通用电气(GE)准备联手开发“分时多任务处理系统”,即300台以上终端机可以同时连 接一台大型计算机进行作业,并取名为Multics(Multiplexed Information and Computing System, 多路信息计算系统)。但由于项目进度落后,资金短缺,1969年,贝尔实验室放弃了这个项目,决定退 出(后来Multics成功开发完成,尽管没有再被重视)。
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元年,现代计算机的计时也就是这个时候开始 的(比如mysql数据库的TIMESTAMP)。
Unix的发展
Unix实在太好用了,这套系统在Bell实验室广为流传。但Unix是用汇编语言写的,高度依赖硬件,于是 Thompson和Dennis Ritchie合作准备用更高级的语言改写,提高可移植性。Thompson改进了BCPL, 称为了B语言,然而这套语言在内存方面有限制,一筹莫展。又和Ritchie尝试了Pascal,发现编译出来 的内核性能并不好。最终Ritchie决定再对B语言进行改进,成为了大名鼎鼎的C语言,重新改写了Unix。 1974年7月,Bell实验室公开了Unix,引起了学术界的广泛讨论,并大量应用于教育目的。1978年学术 界老大伯克利大学,推出了以Unix第六版为基础并加入改进的新Unix,并命名为BSD(Berkeley Software Distribution伯克利分发版),于是Unix的分支BSD系列就诞生了。由于Unix的高度可移植性 与强大的性能,加上当时并没有版权的纠纷,所以让很多商业公司开始了Unix操作系统的开发。然而当 时Bell属于AT&T,AT&T被《谢尔曼反托拉斯法》规定了不能销售除了电话机电报机等之外的商品,后 来随着AT&T的分解,Bell可以卖出Unix了,第七版Unix明确提出“不可对学生提供源码”,Unix走向了商 业化。高昂的授权费导致很多大学停止了对Unix的研究。
Minix操作系统
Unix进行了商业化,教师们都用不起了,1987年,身为ACM和IEEE两会资深会员的荷兰数学与计算机科 学系统教授Andrew S. Tanenbaum开发了Minix操作系统,是Unix的缩小版,用于学生学习操作系统原 理,很多技术大牛希望改进Minix,但遭到了AST教授的丑拒,他认为Minix就是为了教学,让学生一学 期学完,并不想被加入杂乱的东西。
GNU计划
Richard M.Stallman看不惯版权收费,于1984年创立自由软件体系GNU(Gun is Not Unix),拟定了 普遍公用版权协议(General Public License,GPL),所有GPL协议下的自由软件都遵循着 Copyleft(非版权)原则:自由软件允许用户自由拷贝、修改和销售,但是对其源代码的任何修改都必 须向所有用户公开 。GNU希望开发一个类似UNIX并且是自由软件的完整操作系统——GNU系统。到90 年代初,GNU项目开发出许多高质量的免费软件,包括emacs编辑器(已经在博哥的带领下中 毒……)、bash shell程序、gcc系列编译程序、gdb调试程序。
POSIX标准
POSIX(Portable Operating System Interface for Computing Systems)是由IEEE 和ISO/IEC 开发的 一簇标准,该标准是基于现有的UNIX 实践和经验,描述了操作系统的调用服务接口,用于保证编制的应 用程序可以在源代码一级上在多种操作系统上移植和运行。
Linux终于诞生了
此时,IBM公司开发的MS-DOS操作系统、Apple公司开发的Mac操作系统,Unix操作系统,Minix操作 系统全都要收费。GNU尽管已经开发出最受期盼的GNU C编译器,开发的操作系统HURD却进度缓慢, 渴求一款自由软件操作系统诞生来证明自己存在的价值。与此同时,Linus利用圣诞的压岁钱和贷款购买 了一台386兼容电脑,并从美国邮购了一套Minix系统软件,在等待邮寄到达的期间,Linus认真学习了 有关Intel 80386的硬件知识。为了能通过Modem拨号连接到学校的主机上,他使用汇编语言并利用 80386CPU的多任务特性编制出了相关程序。甚至为了将老式电脑的软件复制到新电脑上,为一些硬件 编写了驱动程序。Linus逐渐认识到了Minix的诸多限制,产生了自己编写一个新的操作系统的想法。 1991年4月,Linus花费了全部时间研究Minix-386系统,并尝试移植GNU的gcc、bash、gdb到新系统 上。1991年4月13日,Linus在comp.os.minix上发布信息说自己成功将bash移植到了Minix上,而且已 经爱不释手,离不开这个shell软件了。1991年7月3日,Linus在comp.os.minix上透露了正在进行Linux 系统的开发,并已经开始考虑POSIX的兼容了。1991年8月25日,Linus在comp.os.minix上发布了 “What would you like to see in minix?”,透露出正在开发一个免费的386操作系统,新开发的系统会移 植bash和gcc,并且声明他开发的操作系统没有用一行Minix的源代码。1991年10月5日,Linus在 comp.os.minix上发布消息,正式向外宣布Linux内核诞生(Free minix-like kernel sources for 386- AT)。Linux遵循GPL协议,也给GNU运动送上了一份最好的礼物。Linux提供内核,GNU提供外围软 件,GNU/Linux就成了密不可分的体系。
Linux内核:内核是系统的核心,是运行程序和管理 像磁盘和打印机等硬件设备的核心程序。
文件系统: 文件存放在磁盘等存储设备上的组织方法。Linux能支持多种目前浒的文件系统,如ext4、 FAT、VFAT、ISO9660、NFS、SMB等。
Shell:Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。
应用程序:包括文本编辑器、编程语言、X Window、办公套件、Internet工具、数据库等。
Linux的内核版本
版本号经历了三种不同的命名方案:
1.0~2.6之前的版本:A.B.C
A--有大幅度变动的主版本号;
B--有一些重大修改的次版本号
C--是指有轻微修订的修正号,C为奇数开发版,偶数是稳定版。
2.6.0.0~2.6.39.4版本:A.B.C.D
A和B--依次固定为2和6;C--是内核的版本;D--安全补丁号。
3.0版本开始:X.A.B
X--主版本号,目前有3或4;A--内核的版本,B--安全补丁。
从本版本开始不再使用偶数代表稳定版,奇数代表开发版这样的命名方式
mainline--主线版本(代表目前主力在做的版本或曰开发版)
stabled--稳定版
longterm--长期支持版
EOL (End of Life)--已停止技术支持的旧版本。
Linux的发行版本
Red Hat Enterprise Linux 简介
Red hat Linux 9 之后,发展为两个分支:
社区版 :Fedora (Cloud 云端/Server服务器/Workstation工作站 三大版本)
企业版:Enterprise
最新版:Red Hat Enterprise Linux 8.0
派生版: CentOS 、Scientific Linux、Oracle Linux
学习Linux不是逛自由市场(版本选择)
忘记Windows思维方式 一定要习惯用命令
实战+理论结合学习
学会使用Linux联机帮助
克服畏惧心理
学会独立思考、解决问题
保存虚心学习态度
Linux 的相关认证比较多,其中红帽的Linux 认证和LPI 的认证比较常见。
红帽Linux认证
RHCSA英文全称:Red Hat Certified System Administrator ,中文全称:红帽认证系统管理员 RHCE英文全称:Red Hat Certified Engineer,中文全称:红帽认证工程师。
RHCA英文全称:Red Hat Certified Architect,中文全称:红帽认证架构师。
RHCSS英文全称:Red Hat Certified Security Specialist,中文全称:红帽认证安全专家。 RHCDS英文全称:Red Hat Certified Datacenter Specialist ,中文全称:红帽认证数据中心专家。
RHCVA英文全称:Red Hat Certified Virtualization Administrator,中文全称:
红帽企业虚拟化管理
红帽 OpenStack 认证工程师 红帽 OpenStack 认证系统管理员
LPI的Linux认证
LPIC:Linux Professional Institute Certification,是由LPI颁发的全球范围的Linux专业认证。该认证 为世界标准的、中立的,也是全球最大的专业认证。
LPIC被各国承认并证明个人使用Linux技术水平的认证项目。此项目可以满足Linux专业人士的知识需 学习Linux不是逛自由市场(版本选择) 忘记Windows思维方式 一定要习惯用命令 实战+理论结合学习 学会使用Linux联机帮助 克服畏惧心理 学会独立思考、解决问题 保存虚心学习态度 要是用人单位聘用人才的重要参考。
LPIC 是中立性认证。中立性的认证已经成为业界的共识,LPI 作为一个非盈利的机构,只参与设置认 证考试标准的工作,独立于众多Linux 产品供应商、培训提供机构和课件发行机构,LPI 认证考试不是推 销某个软件产品的工具。目前从Linux 团体和业内专业人员所关注的程度来看,LPI 认证得到了最为广泛 的支持。这其中的部分原因归功于LPI 认证的设计完全采用了Linux 操作系统和开放源代码软件的同样开 发方式,Linux 公司和团体中有许多人都为该认证提供了大量的支持和帮助。
七、搭建Linux学习环境
搭建Linux学习环境有以下三种方式:
(1)安装独立的Linux系统,不再安装其他操作系统。
(2)安装Windows与Linux并存的多操作系统,启动时通过菜单选择要启动的操作系统。
(3)在虚拟机中安装Linux操作系统。 建议使用VMware Workstations 最新版本
搭建过程见:
创建虚拟机、添加镜像以及配置Linux_创建虚拟镜像-CSDN博客