据不完全统计,linux在数据中心操作系统上的份额高达近70%。它一般运行于服务器和超级计算机上,我们日常访问网站背后的数百万台服务器很大几率运行着的操作系统就是Linux。
知名编程大师Greg Kroah-Hartman更是对Linux给予了高度评价:
Linux操作系统已经部署到越来越多计算领域的系统中, 理解操作系统内核的实现就变成一个具有极高价值的技能。
学习Linux操作系统最关键的内核,你需要有足够多的知识去将Linux顺利应用到你所创造的新设备和新应用环境中。
——Greg Kroah-Hartman
Linux基金会院士,Linux内核核心领袖之一, Linux stable tree的维护者,《Linux Device Drivers》一书的作者之一
在我们的生活中Linux的身影随处可见,例如只能家电,智能烤面包机和冰箱,例如其他物联网设备,互联网路由器和Android智能手机等,简直不胜枚举。
尽管现在的Linux应用广泛,但是它的诞生比较戏剧化。
早期的计算机并不像现在一样,人手一个,一般是用于科技研究、军事、技术单位等使用,机器很少而人特别多。
最开始,贝尔研究室退出了Multics计划(让主机可以达成300个终端)的成员Ken Thompson写了一个核心程序并将计划中的系统简化了,最后叫Unics(还不叫Unix)。
经过贝尔实验室的流传与数次改版,成为如今用C语言写成的Unics核心,也就是Unix。接着,Bill Joy对代码进行修改后命名为Berkeley Software Distribution(BSD),BSD软件很好用,广为流传。
而Richard Mathew Stallman在1984年发起GNU计划,目的是建立一个自由、开放的Unix系统。他不仅宣传让同事使用此内核程序,自己还开编写C语言的编译器也就是gcc,其中GNU开发的几个重要软件能让后来的许多软件通过这些基础程序开发。
此时,计算机正处喷发期,硬件的性能不断提高,PC的市场不断扩大,而当时可供计算机选用的操作系统只有Unix、DOS和macOS这三种。
但:
◆ Unix 价格昂贵,不能运行于 PC;
◆ DOS 显得简陋,且源代码被软件厂商严格保密;
◆ MacOS 是一种专门用于苹果计算机的操作系统。
▲ 导致这三种操作系统都没办法推广普及,而此时的计算机科学领域迫切需要一个更加完善、强大、廉价和完全开放的操作系统。
1991年,当时芬兰赫尔辛基大学二年级的学生Linus Torvalds在吸收了 MINIX 精华的基础上,使用bash、gcc等工具对现有的 Unix 操作系统进行一些改进——利用 Unix 的核心,去除繁杂的核心程序。
最终,Linus写出了属于自己的Linux操作系统,适用于一般计算机的x86系统,并放在网络上供大家下载。第一代版本为Linux0.01,是Linux时代开始的标志,Linus也被世人称为“Linux之父”。
如今,Linux成为了一个功能完善、稳定的操作系统并被广泛使用的系统,同时也是一个真正免费和开源的系统!
伴随着互联网的发展,Linux得到了来自全世界软件爱好者、组织、公司的支持,如此重要的Linux ,身为程序员的你,要如何真正掌握这一技术的核心呢?
Linux在企业计算,大数据和科学(联想下超级计算机)世界中独树一帜。
首先,Linux 不仅系统性能稳定,而且具有开放源码、没有版权、技术社区用户多等特点。
开放源码使得用户可以自由裁剪,灵活性高,功能强大,成本低。尤其系统中内嵌网络协议栈,经过适当的配置就可实现路由器的功能。
◆ Linux是免费的。你不需要为使用Linux而付费,你可以自由查看,编辑和分发源代码。当你购买装有windows或macOS的计算机时,这些操作系统的费用其实已包含在价格中。
◆ Linux是灵活的。Linux被用于许多不同类型的计算机,。你现在可以立即在笔记本电脑或台式机上安装Linux,而无需进行任何设置即可启动和运行!这种灵活性之所以成为可能,是因为Linux操作系统被设计为既可以简单地完成一项工作又能使用功能更完善的工具来完成工作。你可以组装一个适用于你的设备并针对你的需求进行过优化的Linux版本。
这些特点使得Linux成为开发路由交换设备的理想开发平台。
更为重要的是,Linux核心防火墙组件性能高效、配置简单,保证了系统的安全。在很多企业网络中,为了追求速度和安全,Linux不仅仅是被网络运维人员当作服务器使用,既可以当作服务器,又可以当作网络防火墙,这也是Linux的一大亮点。
掌握Linux核心技术=得到一个神兵利器般的操作系统
大名鼎鼎的华为鸿蒙系统是基于linux开发的,所以,大厂都在用的神兵利器,你还有什么理由不好好学习,掌握核心技术?
有很多朋友带着疑问:
我应该如何入门Linux系统运维?
Linux系统运维到底需要学哪些技术?怎么学?
系统、服务报错了,如何处理?
为什么监控系统不报警,或报警没有通知...?
数据库丢数据了,如何恢复?如何有效地备份数据?
Docker怎么学?学哪些内容?
...
万事开头难,每一项技术,扎实的基础是入门的第一关。而所有的学习最终都是为了能够掌握核心技术,从而应用到实际项目中。
一份系统、全面且规范化地学习的学习路线是非常重要的,让你面向企业真实的运维环境、快速入门Linux系统、掌握企业职位所需技能!
接下来就带领大家进入Linux小课堂,由从事IT技术工作多年的民工哥为你解答,助你早日修炼成功取得神兵利器!
民工哥根据自己的经验罗列了一些相关技术点:
如SSH服务、NFS网络文件系统、DHCP/DNS、数据同步服务等。
各组件的基础知识
各组件的安装与配置
各组件的常用优化与排错
在互联网企业中,最常用数据库就是MySQL,这是必须要掌握的。除此之外,还需要了解、掌握常用的NOSQL数据库,如redis、MongoDB等。
下面以MySQL数据库为例,介绍我们需要掌握哪些技术点:
多种安装方式:源码、二进制、Yum
优化:硬件、配置文件优化
常用管理与操作:多实例,权限配置,库、表数据的管理
备份与恢复:增量、全量备份与恢复,基于第三方工具的备份与恢复
常用的架构:主从同步,读写分离(基于官方或第三方组件)
故障排错:启动故障、数据不同步,误操作等
对运维来说,常用的服务不少,如JAVA Web服务Tomcat、Jboss、Weblogic等。民工哥日常使用最多的是Tomcat,接触比较多的中间件服务,如Kafaka、RabbitMQ,但不需要掌握源码,只要求掌握日常的配置、优化、排错,以及一些与业务相关的架构调整等。
这是运维工作中的重点之一,监控服务软件有开源的、商业的,大部分开源软件能基本满足常用需求,像我们工作中常用的开源监控软件:早期有NagIOS、Cacti,后来Zabbix逐渐取代了前两种,还会有一些专门针对某个方面开发的监控软件,如:数据库监控软件Lepus。但是,最终的选择还要以需求为主。
容器技术是近年来企业招聘的硬性要求,越来越多的企业在容器化发展的路上,所以这方面的技术过硬,对于提升求职过程中的竞争力是非常有力的。
对运维工作来说,在从业一定阶段后必须考虑的一个问题是:如何实现重复的工作自动化?这需要掌握一些自动化的基础理论与工具的使用,现在是全民上云时代,因此必须要熟悉与掌握第三方云产品的各类操作。
Linux系统运维指南:从入门到企业实战
作者: 储成友(民工哥)