任务一:查找Linux系统的基本概况
【任务实施】
第1步:通过搜索引擎搜索“Linux”
在百度以及Google等搜索引擎中搜索“UNIX”、“Linux”“Linux操作系统”等关键词。阅读与Linux相关的文字材料。
第2步:收集整理搜索到的网页
(1)UNIX操作系统(尤尼斯),是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统,最早由KenThompson、Dennis Ritchie和Douglas McIlroy于1969年在AT&T的贝尔实验室
开发。目前它的商标权由国际开放标准组织所拥有,只有符合单一UNIX规范的UNIX系统才能使用UNIX这个名称,否则只能称为类UNIX(UNIX-like)。
UNIX特性
-
UNIX系统是一个多用户,多任务的分时操作系统。
-
UNIX的系统结构可分为三部分:操作系统内核(是UNIX系统核心管理和控制中心,在系统启动或常驻内存),系统调用(供程序开发者开发应用程序时调用系统组件,包括进程管理,文件管理,设备状态等),应用程序(包括各种开发工具,编译器,网络通讯处理程序等,所有应用程序都在Shell的管理和控制下为用户服务)。
-
UNIX系统大部分是由C语言编写的,这使得系统易读,易修改,易移植。
-
UNIX提供了丰富的,精心挑选的系统调用,整个系统的实现十分紧凑,简洁。
-
UNIX提供了功能强大的可编程的Shell语言(外壳语言)作为用户界面具有简洁,高效的特点。
-
UNIX系统采用树状目录结构,具有良好的安全性,保密性和可维护性。
-
UNIX系统采用进程对换(Swapping)的内存管理机制和请求调页的存储方式,实现了虚拟内存管理,大大提高了内存的使用效率。
-
UNIX系统提供多种通信机制,如:管道通信,软中断通信,消息通信,共享存储器通信,信号灯通信。
(2)Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
( 3 )Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。
( 4 )Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。
( 5 )Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。
任务二:总结Linux系统的最初十年
【任务实施】
第1步:关键字搜索
要学会提炼自己想要搜索内容的关键字。
第2步:收集、整理、归纳搜索到的资料并通过多方比较辨别真伪
1990年,Linus Torvalds 还是芬兰赫尔辛基大学的一名学生,最初是用汇编语言写了一个在80386保护模式下处理多任务切换的程序,后来从 Minix(Andy Tanenbaum教授所写的很小的 Unix 操作系统,主要用于操作系统教学)得到灵感,进一步产生了自认为狂妄的想法——写一个比 Minix 更好的Minix,于是开始写了一些硬件的设备驱动程序,一个小的文件系统。这样0.0.1版本的 Linux 就出来了,但是它只具有操作系统内核的勉强的雏形,甚至不能运行,你必须在有Minix的机器上编译以后才能玩。这时候Linus已经完全着迷而不想停止,决定踢开 Minix,于是在1991年10 月5号发布Linux 0.0.2版本,在这个版本中已经可以运行 bash 和 gcc。
1991至1995年间,Linux从概念型的 0.1 版本内核原型,发展成为能够在性能和特性上均堪媲美专有Unix的操作系统,并且在连续正常工作时间等重要统计数据上打败了这些Unix中的绝大部分。1995年,Linux找到了自己的杀手级应用——开源的web服务器Apache。就像Linux,Apache出众地稳定和高效。很快,运行 Apache 的 Linux 机器成了全球ISP平台的首选。约60%的网站选用Apache,轻松击败了另两个主要的专有型竞争对手。今天的LAMP(Linux , Apache, MySQL, PHP)已经成为了架构 Web 服务器的主要首选。
现如今的Linux不但可以装在几乎所有的主流服务器上,当然也包括桌面的X86系统中。其还常常被用于嵌入式系统,机顶盒、手机、交换机、游戏机、PDA、网络交换机、路由器、等等,都是因为 Linux 那精彩的内核。
Linux 的出现,不仅仅给世界带来了一个免费的操作系统,也不仅仅是对 Unix 自由、共享的文化的延续,它的出现带给了计算机世界自 Unix、GNU 以来更为成熟的思想和文化。
任务三:研究Linux的特点、优势及发行版本
【任务实施】
【子任务一】阐述Linux系统的特点
Linux系统在短期内就得到了非常迅猛的发展,这与Linux系统的良好特性是分不开的。LIinux系统包含了UNIX系统的全部功能和特性。
第1步:阐述Linux系统的稳定性
人们会经常提及一个问题为什么Linux几乎不崩溃,Linux的稳定性是由于它没有象其它操作系统一样内核如此庞大、漏洞无穷。考察资料表明,Linux与其它Unix系统和大型操作系统如VMS、IBM大型机等一样具有相同的可靠性。原因并不难以得到,系统的稳定性主要取决于系统设计的结构。计算机硬件的结构自从1981设计开始就没有作特别大的改动,而连续向后兼容性使那些编程风格极差的应用软件勉强移植到Windows的最新版本,这种将就的软件开发模式极大地阻碍了系统稳定性的发展。另一种易于崩溃的系统Macintosh,它缺乏内存使用保护和缺乏抢占式多任务的缺点与它友好的使用界面一样闻名于世,令人惊奇的是Macintosh虽然具有如此重大的缺陷但并没有如人们想象的那样频繁死机。
Linux的稳定性并不是一个意外的例外,稳定性是所有大型计算机操作系统所具有的共性。仅仅Windows和苹果机有时会失常。Linux所共享的Unix设计体系是经过长期实践考验的,Linux吸取了Unix系统近1/4世纪发展的经验,Linux操作系统体现了最先现代化操作系统的设计理念和最经得住时间考验的设计方案。最令人注目的是Linux开发源代码的开发模式,这保证了任何系统的漏洞都能被及时发现和改正。
第2步:阐述Linux系统的安全性
因为他的开源,任何的系统漏洞都会被民间高手,或者是官方人员很快的发现。
从漏洞的发现到补丁的放出,时间相当短,没有时间给病毒或者黑客作乱的机会。
然后就是linux的权限管理,linux的权限管理很严格。
病毒或者黑客想修改系统文件或者系统日志,除非有管理员密码。所以就算中了病毒,
病毒的危害也非常的小。重要的系统文件都不会被破坏所以发现了病毒稍做处理就搞定了。
还有就是linux系统的程序管理,linux安装程序,基本都是利用程序管理软件,比如ubuntu,debian下的软件中心,新立得软件管理程序,例如centos,fedora和红帽的yum。linux系统安装程序基本上都是用软件管理程序,都是从程序开发者官网上或者是相应的发行版社区直接下载安装。不会有被恶意篡改的软件被安装到使用者的电脑上。安全方便。
第3步:阐述Linux软件安装的便利性
在Linux平台下,软件安装的便利性方面曾一度落后于Windows,但是APT和YUM的出现使得这种局面得到了彻底的改观,用户只要告诉安装程序自己现在需要安装什么软件,安装程序就会自动去下载这个程序,然后自行安装,最后等待用户开始运行它。从这个意义上讲,Linux已经超越了Windows软件的安装方式,进一步降低了用户的参与程序,方便了用户。
第4步:阐述Linux系统的资源消耗
由于内核小,因此它可以支持多种电子产品,如:Android手机、PAD等,资源消耗很少。
【子任务二】分析Linux系统的优势
第1步:Linux系统所有组件的源代码都是自由的
Linux是一个开放的,自由的类Unix操作系统,它的源代码是公开的, 各个版本的Linux,包括从内核到许许多多的应用程序的源代码, 以及可执行文件都可以免费从互联网上下载。 你也可以通过光盘得到Linux系统,和一般的软件不同的是, 你可以合法的和你的朋友分享Linux光盘。很显然Linux光盘的价格不会很高, 第一,因为你可以免费从网上下载;第二,你可以和你的朋友合伙凑钱买一套Linux光盘, 再和你的朋友分享使用。 Linux和一般的软件不同,是可以和你的朋友分享的。
第2步:Linux系统能有效保护学习成果
前面我们讲到Linux的系统架构源于UNIX,这个架构从1969年诞生至今一直沿用,在可以预见的未来它任然会使用下去。虽然现在你可以使用任何一种语言来为Linux系统贡献代码,但是他们的作用都是辅助性的,C语言作为这个系统的核心语言的地位没有发生改变。而Windows平台则远远没有这么乐观了。
第3步:Linux系统的就业前景
Linux因其高效率、易于裁剪、应用广等优势,成为了当今中高端服务器的主要操作系统,并且处于一个不可替代的地位。随着Linux在中国市场迅猛发展,国内Linux人才缺口逐渐凸显。Linux人才招聘也成了当前最热门的招聘之一。
在全球超级计算机TOP500强操作系统排行榜中,Linux的占比最近十几年长期保持在85%以上,且一直呈现快速上升趋势。根据2016年的排行榜,Linux的占比已经高达98.80%。其实在各种大、中小型企业的服务器应用领域,Linux系统的市场份额也越来越接近这个比例,这足以说明Linux的表现是多么出色。
除了云计算方向外,Linux还有许多其他的方向可以选择就业,如:运维、系统工程师、系统集成编程、嵌入式等。
【子任务三】总结Linux系统的发行版本
第1步:通过阅读相关书籍以及网络搜索到的网页资料,总结整理
第2步:找出几个比较经典的Linux发行版本的下载地址
debian iso映像文件的下载地址:https://www.debian.org/distrib/
Gentoo镜像文件地址:https://www.gentoo.org/downloads/
Ubuntu ISO映像文件地址:https://www.ubuntu.com/download
红帽企业级Linux测试版DVD ISO映像文件地址:https://idp.redhat.com/idp/
CentOS6.4 DVD ISO映像文件地址:https://wiki.centos.org/Download
OpenSure12.3 DVD ISO映像文件地址:https://software.opensure.org/123/en
Arch Linux ISO映像文件地址:https://www.archlinux.org/download/
任务四 Linux运维职业生涯规划
【任务实施】
第1步:了解Linux运维工程师的发展前景
薪水前景:
总的来说,运维的薪水普遍比开发人员略低一点。这是因为上手运维工作比开发门槛略低,市场上有很多运维人员处于“会搭建服务”的状态。这种门槛确实比会“粘贴复制”代码,还要低一点。
但是随着你个人能力的提升,金字塔效应一样会很明显。各大公司都需要技艺高超的运维人员,开出的价格并不会比你同龄的开发人员明显低。
我目前在北京遇到薪水最高的运维人员在 40w(已有)到 50w(希望)一年。
且这只是我看到的运维工作部分,就发展来说当你技能、视角不断提升有可能通过运维岗位开始接触其他工作,有人提到的 DBA 是一种。而当你熟悉多种技能之后开始统一管理多个部门,则有可能变成多个部门的总监。这都是有可能性的“发展”。而到这个层面的待遇,我个人猜测在 50w ~ 100w 年 。
职业前景:
职业前景主要还是要从技能来说,我很赞同《程序员的思维修炼》中针对技术人员等级的划分,我觉得最根本的划分应该参考该书。但我在这里提一点干货。尽可能依照难度排序。
0. 熟悉常见硬件配置,了解常见硬件体系
1. 会搭建常见服务、理解服务工作原理
2. 精通系统工作原理(到这一步已经很少有人能做到了,能过滤掉 80%)
3. 熟悉多种发行版本,RedHat 系(Fedora , CentOS)、Debian 系(Ubuntu)、Gentoo 系(LFS,Arch)
4. 熟练的脚本开发 ,Perl,Python,Shell(三选二,或者都会)、自动化技术。
---- 第一梯度结束 ----
5. 集群化的管理思维方式 ,可以通过 Puppet ,脚本等等类似工具配合。
6. 性能的极端优化 ,这个工作必须基于 2 的基础,实际上很少有人能够做到
7. 多种数据库的原理、优化 MySQL,Oracle,MongoDB,Redis,这里面够你消耗掉一半的青春
8. 高可用性以及负载均衡思维方式
--- 第二梯度结束 ---
9. 与开发人员一起,参与架构设计
第2步:规划自己的学习内容
运维学习需要分为四个阶段:
Linux初级入门 > Linux中级进阶 > Linux高级提升 > 资深细分方向进阶
第一阶段:初级入门
初级阶段需要把linux学习路线搞清楚,任何学习都是循序渐进的,所以学linux也是需要有一定的路线,个人建议学习的路线如下:
Linux基础知识、基本命令(起源、组成、常用命令如cp、ls、file、mkdir等常见操作命令)
Linux用户及权限基础
Linux系统进程管理进阶
Linux高效文本、文件处理命令(vim、grep、sed、awk、find等命令)
shell脚本入门(可边练习边学习)
第二阶段:中级进阶
中级进阶需要在充分了解linux原理和基础知识之后,对上层的应用和服务进行深入学习,其中说到服务肯定涉及到网络的相关知识,是需要花时间学习的。
TCP/IP网络基础(差不多CCNA、NP的知识就够用)
Linux企业常用服务(如dns、http、ftp、mail、nfs等)
Linux企业级安全原理和防范技巧(系统性能/安全、安全威胁模型和保护方法
加密/解密原理及数据安全、系统服务访问控制及服务安全基础
iptables安全策略构建
shell脚本进阶(主要是结合一些应用,写一些案例)
MySQL应用原理及管理入门(能管理和搭建一个个人博客站点)
学到这里,掌握的基本技能,已经够用了,已经能做一些基础的运维工作和简单维护了。
第三阶段:高级提升
http服务代理缓存加速(其中主要学习varnish、nginx缓存系统,要对CDN的知识有所了解。)
企业级负载集群(其中主要学习nginx、haproxy、lvs要对主要知识熟练掌握,对负载均衡算法有清晰认识)
企业级高可用集群 (其中需要对keepalived,heartbeat等进行深入讲解)
运维监控zabbix详解(主要是zabbix、cacti、nagios等监控系统,现在用的比较多的是zabbix)
运维自动化学习(需要学一些开源运维自动化工具的使用如ansible、puppet、cobbler等运维自动化工具)
能掌握到这里,基本能处理搞定很多工作了,可以去面试高级运维工程师。
第四阶段:资深方向进阶
大数据方向(需要对hadoop、storm等常见开源大数据系统需要深入了解)
云计算方向(主要是openstack这套东西,当然像一些kvm等虚拟化技术,也是需要掌握的,现在docker也比较流行)
运维开发(主要是python运维开发)
自动化运维(在之前自动化基础上做深入)
运维架构师(主要需要广度,差不多5年左右以上经验,可以担当此职位)