项目一 认识Linux操作系统

在百度搜索引擎中搜索UNIX   Linux   Linux操作系统,并从中筛选正确的文章进行了解


UNIX:

          UNIX操作系统(尤尼斯),是一个强大的多用户、多任务 操作系统 ,支持多种 处理器架构 ,按照操作系统的分类,属于 分时操作系统 ,最早由KenThompson、Dennis Ritchie和Douglas McIlroy于1969年在 AT&T 贝尔实验室 开发。目前它的商标权由国际开放标准组织所拥有,只有符合单一UNIX规范的UNIX系统才能使用UNIX这个名称,否则只能称为类UNIX(UNIX-like)。
1965年时, 贝尔实验室 (Bell Labs)加入一项由 通用电气 (General Electric)和 麻省理工学院 (MIT)合作的计划;该计划要建立一套多使用者、多任务、多层次(multi-user、multi-processor、multi-level)的MULTICS操作系统。直到1969年,因MULTICS计划的工作进度太慢,该计划被停了下来。当时,Ken Thompson(后被称为UNIX之父)已经有一个称为"星际旅行"的程序在GE-635的机器上跑,但是反应非常慢,正巧被他发现了一部被闲置的PDP-7(Digital的主机),Ken Thompson和Dernis Ritchie就将"星际旅行"的程序移植到PDP-7上。而这部PDP-7(如图1-1所示)就此在整个计算机历史上留下了芳名。   MULTICS其实是"Multiplexed Information and Computing Service"的缩写,在1970年时,那部PDP-7却只能支持两个使用者,当时,Brian Kernighan就开玩笑地称他们的系统其实是:"UNiplexed Information and Computing Service",缩写为"UNICS",后来,大家取其谐音,就称其为"UNIX"了。1970年可称为"UNIX元年"。
1971年,Ken Thompson写了充分长篇的申请报告,申请到了一台PDP-11/24的机器。于是Unix第一版出来了。在一台PDP-11/24的机器上完成。这台电脑只有24KB的物理内存和500K磁盘空间。Unix占用了12KB的内存,剩下的一半内存可以支持两用户进行Space Travel的游戏。而著名的fork()系统调用也就是在这时出现的。 到了1973年的时候,Ken Thompson 与Dennis Ritchie感到用汇编语言做移植太过于头痛,他们想用高级语言来完成第三版,对于当时完全以汇编语言。 1971年,Ken Thompson写了充分长篇的申请报告,申请到了一台PDP-11/24的机器。于是Unix第一版出来了。在一台PDP-11/24的机器上完成。这台电脑只有24KB的物理内存和500K磁盘空间。Unix占用了12KB的内存,剩下的一半内存可以支持两用户进行Space Travel的游戏。而著名的fork()系统调用也就是在这时出现的。到了1973年的时候,Ken Thompson 与Dennis Ritchie感到用汇编语言做移植太过于头痛,他们想用高级语言来完成第三版,对于当时完全以汇编语言来开发程序的年代,他们的想法算是相当的疯狂。一开始他们想尝试用 Fortran ,可是失败了。后来他们用一个叫 BCPL (Basic Combined Programming Language)的语言开发,他们整合了BCPL形成 B语言 ,后来Dennis Ritchie觉得B语言还是不能满足要求,于是就改良了B语言,这就是今天的大名鼎鼎的 C语言 。于是,Ken Thompson 与Dennis Ritchie成功地用C语言重写了Unix的第三版内核。至此,Unix这个操作系统修改、移植相当便利,为Unix日后的普及打下了坚实的基础。而Unix和C完美地结合成为一个统一体,C与Unix很快成为世界的主导。 Unix的第一篇文章 “The UNIX Time Sharing System”由Ken Thompson和Dennis Ritchie于1974年7月的 The Communications of the ACM发表。这是UNIX与外界的首次接触。结果引起了学术界的广泛兴趣并对其源码索取,所以,Unix第五版就以“仅用于教育目的”的协议,提供给各大学作为教学之用,成为当时操作系统课程中的范例教材。各大学公司开始通过Unix源码对Unix进行了各种各样的改进和扩展。于是,Unix开始广泛流行。

Linux:

         Linux是一套免费使用和自由传播的 类Unix 操作系统 ,是一个基于 POSIX UNIX 的多用户、 多任务 、支持 多线程 和多 CPU 的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持 32位 64位 硬件。Linux继承了 Unix 网络 为核心的设计思想,是一个性能稳定的多用户网络操作系统。
         Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了 Linux内核 。Linux可安装在各种计算机硬件设备中,比如 手机 平板电脑 路由器 、视频游戏控制台、台式计算机、大型机和超级计算机。
严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用 GNU 工程各种工具和数据库的操作系统。
Linux 操作系统的诞生 、发展和成长过程始终依赖着五个重要支柱: UNIX  操作系统、 MINIX  操作系统、 GNU 计划、 POSIX  标准和Internet 网络。
1981 年 IBM 公司推出微型计算机IBM PC。
1991年, GNU计划 已经开发出了许多工具软件,最受期盼的GNU C编译器已经出现,GNU的操作系统核心 HURD 一直处于实验阶段,没有任何可用性,实质上也没能开发出完整的 GNU操作系统 ,但是GNU奠定了Linux用户基础和开发环境。
1991年初, 林纳斯·托瓦兹 开始在一台386sx兼容微机上学习minix操作系统。1991年4月,林纳斯·托瓦兹开始酝酿并着手编制自己的操作系统。
1991 年4 月13 日在comp.os.minix 上发布说自己已经成功地将bash 移植到了minix 上,而且已经爱不释手、不能离开这个 shell 软件了。
1991年7月3日,第一个与Linux有关的消息是在comp.os.minix上发布的(当然此时还不存在Linux这个名称,当时林纳斯·托瓦兹的脑子里想的可能是FREAX,FREAX的英文含义是怪诞的、怪物、异想天开等)。
1991年的10月5日,林纳斯·托瓦兹在comp.os.minix 新闻组 上发布消息,正式向外宣布Linux内核的诞生( Freeminix-like kernel sources for 386-AT)。
1993年,大约有100余名程序员参与了Linux内核代码编写/修改工作,其中核心组由5人组成,此时Linux 0.99的代码大约有十万行,用户大约有10万左右。
1994年3月,Linux1.0发布,代码量17万行,当时是按照完全自由免费的协议发布,随后正式采用GPL协议。
1995年1月,Bob Young创办了RedHat(小红帽),以GNU/Linux为核心,集成了400多个源代码开放的程序模块,搞出了一种冠以品牌的Linux,即RedHat Linux,称为Linux"发行版",在市场上出售。这在经营模式上是一种创举。
1996年6月,Linux 2.0内核发布,此内核有大约40万行代码,并可以支持多个处理器。此时的Linux 已经进入了实用阶段,全球大约有350万人使用。
1998年2月,以Eric Raymond为首的一批年轻的"老牛羚骨干分子"终于认识到GNU/Linux体系的产业化道路的本质,并非是什么自由哲学,而是市场竞争的驱动,创办了"Open Source Intiative"(开放源代码促进会)"复兴"的大旗,在互联网世界里展开了一场历史性的Linux产业化运动。
2001年1月,Linux 2.4发布,它进一步地提升了SMP系统的扩展性,同时它也集成了很多用于支持桌面系统的特性:USB,PC卡(PCMCIA)的支持,内置的即插即用,等等功能。
2003年12月,Linux 2.6版内核发布,相对于2.4版内核2.6在对系统的支持都有很大的变化。
2004年的第1月,SuSE嫁到了Novell,SCO继续顶着骂名四处强行“化缘”, Asianux, MandrakeSoft也在五年中首次宣布季度赢利。3月,SGI宣布成功实现了Linux操作系统支持256个Itanium 2处理器。

Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。

Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行

Linux的特点、优势以及发行版本

1.模块化程度高
Linux的内核设计非常精巧,分成进程调度、内存管理、进程间通信、 虚拟文件系统 网络接口 五大部分;其独特的模块机制可根据用户的需要,实时地将某些模块插入或从内核中移走,使得 Linux系统 内核可以裁剪得非常小巧,很适合于嵌入式系统的需要。
2.源码公开
由于Linux系统的开发从一开始就与GNU项目紧密地结合起来,所以它的大多数组成部分都直接来自GNU项目。任何人、任何组织只要遵守GPL条 款,就可以自由使用Linux 源代码,为用户提供了最大限度的自由度。这一点也正投嵌入式系统所好,因为嵌入式系统应用千差万别,设计者往往需要针对具体的应用对源码进行修改和优化, 所以是否能获得源代码 对于嵌入式系统的开发是至关重要的。加之Linux的软件资源十分丰富,每种通用程序在Linux上几乎都可以找到,并且数量还在不断增加。这一切就使设 计者在其基础之上进行二次开发变得非常容易。另外,由于Linux源代码公开,也使用户不用担心有“后闸”等安全隐患。同时,源码开放给各教育机构提供极大的方便,从而也促进了Linux的学习、推广和应用。
       3.广泛的硬件支持
Linux能支持x86、ARM、MIPS、ALPHA和PowerPC等多种体系结构的微处理器。目前已成功地移植到数十种硬件平台,几乎能运行在所有流行的处理器上。
由于世界范围内有众多开发者在为Linux的扩充贡献力量,所以Linux有着异常丰富的驱动程序资源,支持各种主流硬件设各和最新的硬件技术,甚至可在没有存储管理单元MMU 的处理器上运行,这些都进一步促进了Linux在嵌入式系统中的应用。

4 .安全性及可靠性好
内核高效稳定。Linux内核的高效和稳定已在各个领域内得到了大量事实的验证。
Linux中大量网络管理、网络服务等方面的功能,可使用户很方便地建立高效稳定的防火墙、路由器、工作站、服务器等。为提高安全性,它还提供了大量的网络管理软件、网络分析软件和网络安全软件等。

5.具有优秀的开发工具

开发嵌入式系统的关键是需要有一套完善的开发和调试工具。传统的嵌入式开发调试工具是在线仿真器(In Circuit Emulator,ICE),它通过取代目标板的微处理器,给目标程序提供一个完整的仿真环境,从而使开发者能非常清楚地了解到程序在目标板上的工作状 态,便于监视和调试程序。在线仿真器的价格非常高,而且只适合做非常底层的调试。如果使用的是嵌人式Linux,一旦软硬件能支持正常的串口功能,即使不 用在线仿真器,也可以很好地进行开发和调试工作,从而节省了一笔不小的开发费用。嵌入式Linux为开发者提供了一套完整的工具链(Tool Chain),能够很方便地实现从操作系统到应用软件各个级别的调试。

6.有很好的网络支持利文件系统支持

Linux从诞生之日起就与Internet密不可分,支持各种标准的Internet网络协议,并且很容易移植到嵌入式系统当中。目前,Linux几乎支持所有主流的网络硬件、网络协议和文件系统,因此它是NFS的一个很好的平台。
另一方面,由于Linux有很好的文件系统支持(例如,它支持Ext2FAT32、romfs等文件系统),是数据各份、同步和复制的良好平台,这些都为开发嵌入式系统应用打下了坚实的基础。

7.与UNIX完全兼容
目前,在Linux中所包含的工具和实用程序,可以完成UNIX的所有主要功能。
但由于Linux不是为实时而设计的,因而这就成了Linux在实时系统中应用的最大遗憾。不过,目前有众多的自由软件爱好者正在为此进行不懈的努力,也取得了诸多成果

发行版本:

Redhat(企业版)      https://www.redhat.com/zh#tab.cloud.1         

Fedora(测试版)      http://www.linuxdown.net/Fedora/

 CentOs(个人版免费适用于学生)      https://www.centos.org/

Debian            https://www.debian.org/

ubuntu(漂亮的操作界面)       https://www.ubuntu.com/download


Linux运维职业生涯规划

Linux运维工程师的发展前景

           Linux工程师是最具有增值潜力的职业,是可以掌握企业核心网络构架、安全技术的,具有不可替代的竞争优势。现在国内是缺少新型网络技术人才的,对于网络人才方面缺少达到三十万以上的,想要拿到丰厚的工资是必然的。它的就业方面广、专职多能、实践经验适用于各个领域,并且是具有很大的增加潜力的,它会随着自身经验的不断积累以及逐渐成熟掌握项目运作,升值空间是可想而知的,Linux工程师职业发展前景广阔,Linux工程师到项目经理仅仅是一步之遥,从容晋升Manager。Linux工程师可以从中小企业的网络管理员进行入职的,在入职之后,还能够同时从事网络管理管理工作,工资待遇与财力会有明显的增加。其次Linux工程师学习更加全面的知识成为Linux工程师,根据自己积累的经验成为侧重于某一专业的Linux工程师,比如说网络存储工程师、综合布线工程师、网络安全工程师等。

Linux运维的规划

Linux运维人员主要划分为:初级、中级和高级三个等级,不同级别的Linux运维人员需要掌握的技能不同。
俗话说“隔行如隔山”,尤其对于一个计算机小白的话,入门很不容易。建议先科普一下计算机的组成和工作原理、处理器的体系结构及原理、存储器、I/O设备、内存原理和文件系统等。通过这些的学习至少能够对计算机有一个基本的认识,如果能更深入的理解这方面的知识对于日后对Linux系统调优起着不可取代的作用。当然也可试着做一次服务器的设备选型,也能够让你去了解更多关于硬件的知识。
接下来就是Linux操作系统的选择,将内核、源代码及相关的应用程序组织构成一个完整的操作系统,让一般的用户可以简便地安装和使用Linux,这就是所谓的发行版本(distribution)。我们一般谈论的Linux系统便是针对这些发行版本。在众多的发行版中选择一个适合入门学习的版本也不是一件容易的事。对于学习Linux初期推荐选择RHEL或CentOS这些“老牌”的操作系统;如果你只是为了看看Linux的华丽的桌面,推荐选择适合大众的Ubuntu;如果你想定制一个操作系统,那不防试试Gentoo。也就说Linux有迎合大众各种口味的操作系统,只有你想不到的,没有它没有的!
目前,CPU和内存的发展速度可以说是一日千里,固态硬盘的出现,摆脱了机械硬盘使用机械转子带动多个磁盘硅片的时代。但是其昂贵的价格,不能将其普及到所有的服务器上。很多服务器依然使用机械硬盘,机械硬盘的I/O速度取决于其转速。转速的增加,会使数据的读写效率有所提高,但与CPU的速度相比,磁盘的速度相对来说越来越慢了。这个速度差异导致单个磁盘无法与CPU速度匹配。解决磁盘速度问题的方法是使用磁盘阵列(RAID),可以减少维护时间,增强数据安全性,保证应用的性能。
对于中小型系统,无论使用怎样部署都没有多大的问题,重点是把握可恢复性。磁盘阵列支持的I/O访问次数和I/O数据传输与RAID设计算法有关。业务的不同,读和写操作的频繁次数自然不同,对于读操作频繁的系统适用于RAID1和RAID5(例如:Web服务器),对于写操作频繁的系统适用于RAID10(例如:数据库)。
安装系统前,避免不了合理的选择RAID阵列级别,提高存储设备的可靠性和效率,同时还要考虑预算,尽量的降低成本。
Linux操作系统有GUI和字符界面的安装方式,初期推荐你使用GUI和中文的安装方式快速的掌握操作系统的安装,之后就使用英文和字符的安装方式进行安装,这样就可以将安装过程看的更清楚和专业。最终的目标是实现定制化安装操作系统,按照服务器上跑的业务,合理的规划磁盘分区和选择要安装的软件。定制化安装系统可以提高系统的安装速度,给予我们意想不到的稳定性和安全性。
安装后你输入用户名和密码登录系统后,第一眼看到的用户界面就是Shell,这个时候有必要知道Linux系统的组成、Shell解析命令的过程、常见的Shell版本、Shell的功能、Shell的元字符等。
Linux操作系统是一个可以放弃鼠标的操作系统,一切皆是文件, 一切皆是命令,命令就是一切, 就像李宁的广告词一样“一切皆有可能”。Linux系统上有成百上千的命令,分为内置命令和外置命令,虽然这些命令的功能不同,幸好它们的使用方式和规则都是统一的,这就是Linux命令的语法。了解Linux命令的语法和养成使用Linux命令的好习惯是学习Linux运维的第一步,例如:命令和参数严格区分大小写、合理的使用Tab键补全命令和善用Linux帮助手册快速获取命令的帮助。对于Linux初级运维来说不止要掌握这些人人皆知的使用习惯,实际上我们可以认为Linux初级人员就是一个单机管理员或者称为Linux系统管理员,对于Linux的单机管理至少要掌握如下技术。
这些知识只是让你步入运维行业中最基本的一步,本来初级和中级运维在很多时候很难细致的去区分,对于初中级运维除了掌握以上的技术,还需要掌握企业常见的网络服务(例如:DHCP、DNS、FTP、Samba、Mail、NFS等)和网站架构LAMP、LNMP的部署及安全加固。使用Shell编写常用的安装、监控(CPU、内存、磁盘)脚本;正则表达式、sed、awk、sort、uniq、cut、find、grep等工具的使用。
主要介绍了Shell脚本编程和LAMP的学习方向,通过Shell编写日常CPU、内存、硬盘和服务的监控脚本和报警、统计Web服务器的访问次数和访问排名、MySQL数据库备份脚本等。掌握LAMP和LNMP的部署和日常维护。防火墙的使用,例如:iptables和硬件防火墙的原理和规则的添加。
云计算和大数据时代的来临,未来对运维人员的要求只能是越来越高,多次看到“学会运维自动化、走遍天下都不怕”给人一种运维不自动化就不是运维,企业不云计算就不叫企业。事实并非如此,很多技术只能说是一个趋势,并未形成大势。只不过作为技术的我们需要关注未来的趋势,在空闲的时间去掌握这些技术。
对于高级运维来说,不仅需要丰富的知识体系还需要一线的经验,所以说精通还是很难的,不是我们看到很多刚毕业的学生在简历中写出了各种精通,由于是高级Linux运维,不经过多年的锻炼是达不到较高的境界。所以高级运维是稀缺型人才,对于企业来说也很难找到适合自己的人才。
高级运维是一个非常专业职位,高级运维需要掌握相当多的知识,包括但不限于网络技术、系统编程、运维流程及思想、虚拟化、自动化运维体系构建、数据库管理,云计算平台应用,大数据等。

      参考的书籍《鸟哥的私房菜》《RH124》,《RH134》,《RH254》,《shell脚本学习指南》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值