任务一.查找Linux系统的基本概况
任务实施
第一步:通过搜索引擎搜索“Linux”
在百度以及Google等搜索引擎中搜索“UNIX”、“Linux”、“Linux操作系统”等关键词。阅读与Linux相关的文字材料。
第二步:收集整理搜索到的网页
(1)UNIX是大型机用的,主要特点是支持多用户同时操作系统和共享系统资源。一般人接触不到UNIX,一般只有大型公司才用到。
(2)Linux是一套免费使用和自由传播的类UNIX操作系统。它和UNIX的主要区别是UNIX是有版权的,与微软的Windows一样是要收费的。
(3)Linux可安装在各种计算机硬件设备中,例如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。
(4)Linux继承了UNIX以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
(5)严格来讲,Linux这个词本身只表示Linux内核,但实际上和人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统。
网页整理:http://gy.tedu.cn/baidu/linux/?TARENA_zsjq-gz-BD-PC-SS-linux-kc-9948865-006-180110002631_TARENA
https://market.aliyun.com/utm_medium=search&utm_source=baidu&utm_campaign=jingxiang&utm_content=se_910220
https://www.linux.org/
https://www.linuxidc.com/
任务二.总结Linux系统的最初十年
任务三.研究Linux的特色、优势及发行版本
子任务一:阐述Linux系统的特点
开放性:挃系统遵循丐界标准规范,特别是遵循开放系统互连(OSI)国际标准。
多用户:是挃系统资源可以被丌同用户使用,每个用户对自己的资源(例如:文件、设备)有特定的权限,互丌影响。
多任务:它是挃计算机同时执行多个程序,而丏各个程序的运行互相独立。
良好的用户界面:Linux向用户提供了两种界面:用户界面和系统调用。Linux还为用户提供了图形用户界面。它利用鼠标、菜单、窗口、滚劢条等设施,给用户呈现一个直观、易操作、交互性强的友好的图形化界面。
设备独立性:是挃操作系统把所有外部设备统一当作成文件来看待,只要安装它们的驱劢程序,任何用户都可以象使用文件一样,操纵、使用这些设备,而丌必知道它们的具体存在形式。Linux是具有设备独立性的操作系统,它的内核具有高度适应能力。
提供了丰富的网络功能:完善的内置网络是Linux一大特点。
可靠的安全系统:Linux采取了许多安全技术措施,包括对读、写控制、带保护的子系统、审计跟踪、核心授权等,这为网络多用户环境中的用户提供了必要的安全保障。
良好的可移植性:是挃将操作系统从一个平台转移到另一个平台使它仍然能挄其自身的方式运行的能力。Linux是一种可移植的操作系统,能够在从微型计算机到大型计算机的任何环境中和任何平台上运行
子任务二:分析Linux系统的优势
设备管理:在linux上,一切设备都文件。大多数Linux资源都能以文件的方式来访问。无论哪种文件类型,Linux的文件抽象---也就是说,它习惯于将几乎所有的东西按文件对待---能够让你使用相同的接口打开、关闭、读取和写入不同的文件。在Linux系统中,所有设备都作为一类特别文件对待,用户像使用普通文件那样对设备进行操作,从而实现设备无关性。但是,设备文件除了存放在文件I节点中的信息外,它们不包含任何数据。系统利用它们来标识各个设备驱动器,核心使用它们与硬件设备通信。有两类特别设备文件,它们对应不同类型的设备驱动器:
字符设备 最常用的设备类型,允许I/O传送任意大小的数据,取决于设备本身的容量。使用这种接口的设备包括终端、打印机及鼠标。
块设备 这类设备利用核心缓冲区的自动缓存机制,缓冲区进行I/O传送总是以1KB为单位。使用这种接口的设备包括硬盘、软盘和RAM盘。
文件管理:linux的文件系统毋庸置疑具备更高的效率。我的linux安装好后,就没有整理过磁盘。因为linux的ext3等文件系统本身就具备更高的执行效率甚至可以自我整理。另外linux还支持NFS网络文件系统,方便实现网络上不同操作系统的高效读写。
在Linux系统中,除根目录(root)以外,所有文件和目录都包含在相应的目录文件中。Linux文件系统采用带链接的树形目录结构,即只有一个根目录(通常用“/”表示),其中含有下级子目录或文件的信息;子目录中又可含有更下级的子目录或者文件的信息。这样一层一层地延伸下去,构成一棵倒置的树。这个和win有点像。
进程管理:Linux用分时管理方法使所有的任务共同分享系统资源。主要有交互进程,批处理进程,监控进程等不同作用的进程类型,并且具备多中启动方式。linux具备win不具有的特点,任务抢占机制,在一些应用程序出现问题的时候可以快速的被系统取代。这都是win不具备的。
子任务三:总结Linux系统的发行版本
Magic Linux是一个新的Linux发行,简称 MGC,是针对中国人的版本,由中国Linux公社的社区会员和Linux爱好者制作的中文 Linux 发行版,现基于Fedora修改而来。Magic Linux的目的很简单:让大家真正地用Linux,而不是去一个接一个的汉化Linux。Magic Linux的口号是:没有实现不了的梦。(官网网站:http://www.magiclinux.org/下载地址:http://www.magiclinux.org/download)
Linux Deepin(深度 Linux),是目前中国最活跃的 Linux 发行版。Linux Deepin 始终坚持为所有人提供稳定、高效的操作系统,强调安全、易用、美观。其口号为“免除新手痛苦,节约老手时间”。在社区的参与下,“让 Linux 更易用”也不断变成可以触摸的现实。这得益于其商业支持公司深之度科技公司给予的坚强支持。(官网网站:http://linuxdeepin.com/下载地址:http://www.linuxdeepin.com/download)
红旗Linux是由北京中科红旗软件技术有限公司开发的一系列Linux发行版,包括桌面版、工作站版、数据中心服务器版、HA集群版和红旗嵌入式Linux等产品。目前在中国各软件专卖店可以购买到光盘版,同时官方网站也提供光盘镜像免费下载。红旗Linux是中国较大、较成熟的Linux发行版之一。(官网网站:http://www.redflag-linux.com/下载地址:http://www.redflag-linux.com/d/iso/)
Linux Mint 由Linux Mint Team团队于2006年开始发行,是一份基于Debian和Ubuntu的Linux发行版。其目标是提供一种更完整的即刻可用体验,这包括提供浏览器插件、多媒体编解码器、对DVD播放的支持、Java和其他组件,它也增加了一套定制桌面及各种菜单,一些独特的配置工具,以及一份基于web的软件包安装界面。Linux Mint是对用户友好而功能强大的操作系统。它诞生的目的是为家庭用户和企业提供一个免费的,易用的,舒适而优雅的桌面操作系统。(官方网站:http://www.linuxmint.com/下载地址:http://www.linuxmint.com/download.php)
edora 是一个知名的Linux发行版,是一款由全球社区爱好者构建的面向日常应用的快速、稳定、强大的操作系统。它允许任何人自由地使用、修改和重发布,无论现在还是将来。它由一个强大的社群开发,这个社群的成员以自己的不懈努力,提供并维护自由、开放源码的软件和开放的标准。(官方网站:http://fedoraproject.org/下载地址:http://fedoraproject.org/zh_CN/get-fedora)
CentOS(Community ENTerprise Operating System)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red Hat Enterprise Linux使用。两者的不同,在于CentOS并不包含封闭源代码软件。(官网网站:http://www.centos.org/下载地址:http://mirrors.163.com/centos/)
Arch Linux(或称Arch)是一种以轻量简洁为设计理念的Linux发行版。其开发团队秉承简洁、优雅、正确和代码最小化的设计宗旨。Arch Linux 项目受 CRUX 启发,由 Judd Vinet 于2002年启动。(官方网站:https://www.archlinux.org/下载地址:https://www.archlinux.org/download)
Red Hat是全球最大的开源技术厂家,其产品Red Hat Linux也是全世界应用最广泛的Linux。Red Hat公司总部位于美国北卡罗来纳州。在全球拥有22个分部。(官网网站:http://www.redhat.com/下载地址:https://access.redhat.com/downloads/)
CrunchBang Linux是一份基于Debian的发行,其特色在于轻量级的Openbox窗口管理器和GTK+应用程序。该发行从一份最小的Ubuntu系统创建,并 被定制为可以提供速度和功能两方面的一个良好均衡。CrunchBang Linux目前可以一份自启动运行光盘获得,然而为获得其最佳性能建议还是安装到硬盘上使用。(官网网站:http://crunchbanglinux.org/下载地址:http://crunchbanglinux.org/downloads/)
任务四:Linux运维职业生涯规划
linux运维工程师的发展前景
运维现状:
1、处于刚起步的初级阶段,各大公司有此专职,但重视或重要程度不高,可替代性强;小公司更多是由其它岗位来兼顾做这一块工作,没有专职,也不可能做得深入。
2、技术层次比较低;主要处于技术探索、积累阶段,没有型成体系化的理念、技术。
3、体力劳动偏大;这个问题主要与第二点有关系,很多事情还是依靠人力进行,没有完成好的提练,对于大规模集群没有成熟的自动化管理方法,在此说明一下,大规模集群与运维工作是息息相关的如果只是百十来台机器,那就没有运维太大的生存空间了。
4、优秀运维人才的极度缺乏;目前各大公司基本上都靠自已培养,这个现状导致行业内运维人才的流动性非常低,非常多好的技术都局限在各大公司内部,如google50万台机器科学的管理,或者国内互联公司top10的一些运维经验,这些经验是非常有价值的东西并决定了一个公司的核心竞争力;这些问题进而导致业内先进运维技术的流通、贯通、与借签,并最终将限制了运维发展。
5、很多优秀的运维经验都掌握在大公司手中;这不在于公司的技术实力,而在于大公司的技术规模、海量PV、硬件规模足够大,如baidu可怕的流量,这些因素决定了他们遇到的问题都是其它中/小公司还没有遇到的,或即将遇到。但大公司可能已有很好的解决方案或系统。
发展前景:
1、从行业角度来看,随着中国互联网的高速发展(目前中国网民已跃升为全球第一)、网站规模越来越来大、架构越来越复杂;对专职网站运维工程师、网站架构师的要求会越来越急迫,特别是对有经验的优秀运维人才需求量大,而且是越老越值钱;目前国内基本上都是选择毕业生培养(限于大公司),培养成本高,而且没有经验人才加入会导致公司技术更新缓慢、影响公司的技术发展;当然,毕业生也有好处:白纸一张,可塑性强,比较认同并容易融入企业文化。
2、从个人角度,linux运维工程师技术含量及要求会越来越高,同时也是对公司应用、架构最了解最熟悉的人、越来越得到重视。
3、网站运维将成为一个融合多学科(网络、系统、开发、安全、应用架构、存储等)的综合性技术岗位,给大家提供一个很好的个人能力与技术广度的发展空间。
4、运维工作的相关经验将会变得非常重要,而且也将成为个人的核心竞争力,具备很好的各层面问题的解决能力及方案提供、全局思考能力等。
5、特长发挥和兴趣的培养;由于运维岗位所接触的知识面非常广阔,更容易培养或发挥出个人某些方面的特长或爱好,如内核、网络、开发、数据库等方面,可以做得非常深入精通、成为这方面的专家。
6、如果真要以后不想做运维了,转到其它岗位也比较容易,不会有太大的局限性。当然了,你得真正用心去做。
7、技术发展方向:网站/系统架构师。
规划自己的学习内容
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年左右以上经验,可以担当此职位)
可参考书籍
1、linux中高级运维工程师
2、linux高级架构师
3、python高级运维系统开发
4、php运维系统开发(通向CTO之路)
5、MySQL专业数据库DBA课程