Linux操作系统概述

1 引言

1.1 为什么要学操作系统

  1. 基础:OS是基础,是魂
  2. 冲破科技打压:生态
  3. 安全:国家安全,个人安全
  4. 国产操作系统的发展历程

1.2 Linux运维岗位工作要求

  • 负责服务器的维护,平台和集群的维护。
  • 参与新上线系统业务流程设定、系统需求。
  • 负责所维护系统事件、问题处理、上线变更评审及操作。
  • 根据系统运行情况,编写并根据实际情况更新技术运维文档。

1.3 Linux系统方向薪资情况

  • 百度、阿里巴巴、腾讯等国内排行前100位的互联网公司,全部使用的是Linux系统,Linux云计算/架构师等高端人才,而企业更是高薪难求,未来5年,我国Linux人才缺口将达到120万,经济下滑,就业难,而Linux这项技能会让你高薪笑傲职场。

2 Linux系统运维工程师进阶流程

2.1 阶段一:Linux运维入门阶段

  • Linux运维基础实战入门、Linux运维系统管理和技能进阶、Linux运维企业级应用服务、Linux企业级安全原理和防范技巧。

2.2 阶段二:Shell编程实战阶段

  • Shell编程入门及实战进阶、MySQL应用原理及管理入门、企业级Http服务及缓存优化加速、企业级负载均衡解决方案、企业级高可用集群解决方案。

2.3 阶段三:企业级运维实战阶段

  • 企业级运维监控实战、Linux运维自动化、企业级运维实战案例、大型互联网WEB服务体系架构、大型互联网集群架构和实战方案。

3 操作系统基础

3.1 操作系统定义

  • 操作系统是计算机系统中的一个系统软件,是一些程序模块的集合——它们能以尽量有效、合理的方式管理和分配计算机的软硬件资源,合理的组织计算机的工作流程,控制程序的执行并向用户提供各种服务功能,使得用户能够灵活、方便、有效的使用计算机,使整个计算机系统能高效地运行。

3.2 Linux的诞生与发展

  • Linux创始人:林纳斯 托瓦兹
  • Linux 诞生于1991年,作者上大学期间
  • 因为创始人在上大学期间经常需要浏览新闻和处理邮件,发现现有的操作系统不好用, 于是他决心自己写一个保护模式下的操作系统,这就是Linux的原型, 当时他21岁,后来经过全世界网友的支持, 现在能够兼容多种硬件,成为最为流行的服务器操作系统之一。
  • 1984年,RichardStallman发起了GNU源代码开放计划并制定了著名的GPL许可协议。
  • 1987年,GNU计划获得了一项重大突破一gcc编译器发布,这使得程序员可以基于该编译器编写出属于自己的开源软件。
  • 1991年10月,芬兰赫尔辛基大学的在校生LinusTorvalds编写了一款名为Linux的操作系统该系统因其较高的代码质量且基于GNUGPL许可协议的开放源代码特性,迅速得到了GNU计划和一大批黑客程序员的支持。
  • 1994年1月,BobYoung在Linux系统内核的基础之上,集成了众多的源代码和程序软件,发布了红帽系统并开始出售技术服务,这进一步推动了Linux系统的普及。
  • 1998年以后,随着GNU源代码开放计划和Linux系统的继续火热,以IBM和Intel为首的多家IT企业巨头开始大力推动开放源代码软件的发展。
  • 2021年初,Linux内核已经发展到了5.10版本,并且Linux系统版本也有数百个之多,但它们依然都使用Linus Torvalds开发、维护的Linux系统内核。RedHat公司也成为了开源行业及Linux系统的带头公司。

3.3 Linux内核


  • Linux系统的组成:Linux系统内核 + 系统级应用程序
  • 内核提供系统最核心的功能,如:调度CPU、调度内存、调度文件系统、调度网络通讯、调度IO等。
  • 系统级应用程序,可以理解为出厂自带程序,可供用户快速上手操作系统,如:文件管理器、任务管理器、图片查看、音乐播放等。
  • 比如,播放音乐,无论用户使用自带音乐播放器或是自行安装的第三方播放器
  • 均是由播放器程序,调用内核提供的相关功能,由内核调度CPU解码、音响发声等。
  • 可以看出,内核是Linux操作系统最核心的所在,系统级应用程序只是锦上添花。
  • Linux内核是免费开源的,任何人都可以下载内核源码并查看且修改。
  • 可以通过: https://www.kernel.org 去下载Linux内核

3.4 Linux发行版



内核是免费、开源的,这也就代表了,任何人都可以获得并修改内核,并且自行集成系统级程序,提供了内核+系统级程序的完整封装,称之为Linux发行版。
目前市面上由非常多的Linux发行版,常用的、知名的如下:

不同的发行版:
基础命令100%是相同的(课程讲解内容)
部分操作不同(如软件安装)

4 开源软件的优势与许可协议

4.1 开源软件对比闭源软件的优势

  1. 低成本
    开源工作者都是在幕后默默且无偿地付出劳动成果,为美好的世界贡献一份力量,因此使用开源社区推动的软件项目可以节省大量的人力、物力和财力。
  2. 低风险
    使用闭源软件无疑把命运交付给他人,一旦封闭的源代码没有人来维护,你将进退维谷;而且相较于商业软件公司,开源社区很少存在倒闭的问题。
  3. 高品质
    相较于闭源软件产品,开源项目通常是由开源社区来研发及维护的,参与编写、维护、测试的用户量众多,一般的bug还没有等爆发就已经被修补。
  4. 更透明
    没有哪个笨蛋会把木马、后门等放到开放的源代码中,这样无疑是把自己的罪行暴露在阳光之下。

4.2 常见的开源许可

  1. GNUGPL(GNUGeneralPublicLicense,GNU通用公共许可证):
    只要软件中包含了遵循GPL协议的产品或代码,该软件就必须也遵循GPL许可协议且开源、免费,因此这个协议并不适合商用软件。遵循该协议的开源软件数量极其庞大,包括Linux系统在内的大多数的开源软件都是基于这个协议的。
  2. BSD(BerkeleySoftware Distribution,伯克利软件发布版)许可协议:
    用户可以使用、修改和重新发布遵循该许可的软件,并且可以将软件作为商业软件发布和销售。
  3. Apache许可证版本(Apache LicenseVersion)许可协议:
    在为开发人员提供版权及专利许可的同时,允许用户拥有修改代码及再发布的自由。该许可协议适用于商业软件,现在热门的Hadoop、Apache HTTP Server、MongoDB等项目都是基于该许可协议研发的。
  4. MIT(Massachusetts Institute of Technology)许可协议:
    目前限制最少的开源许可协议之一,只要程序的开发者在修改后的源代码中保留原作者的许可信息即可,因此普遍被商业软件所使用。

5 Linux主要特点

  1. 多任务系统
  2. 多用户系统
  3. 采用保护内存方式执行程序
  4. 使用动态链接库
  5. 共享内存
  6. 使用虚拟内存
  7. 符合POSIX标准
  8. 可模拟执行各种操作系统上的应用程序
  9. 免费的源代码
  10. 支持多语言键
  11. 使用虚拟终端
  12. 支持多种文件系统
  13. UMSDOS支持
  14. 支持CD-ROM标准ISO9660文件系统
  15. 网络功能强大