操作系统的分类
Windows 系列操作系统, Unix 类操作系统, Linux 类操作系统, Mac 操作系统
提问: 为什么要去学习 Linux?
同学甲可能要问, 你介绍了这么多有关 Linux 的知识, 但我还是懵逼, 我从小学去网吧打泡泡堂用的就是 Windows, 上了这么多年学也是用的 Windows, 为什么要让我学这个 Linux?
同学乙可能要问, 听起来 Linux 好像很高大上, 如果我放弃 Windows 去学 Linux, 用不了多久就会升职加薪当上总经理赢取白富美吗? 想想还很激动...
那么我要回答了:
如果 Windows 意味着生活和游戏, 那么 Linux 就代表着严谨和工作, 学习 Linux 代表着你要开发软件, 你要测试程序, 你要维护服务器. 那么依据呢? 请看如下:
由此可见, 无论你是 python 后端开发, 还是 python 测试开发, 又或者是爬虫, 数据挖掘开发, 统统都必须学会 Linux, 这是开发者必须的技能.
我们都知道 Linux 这玩意是在电脑上运行的, 所以说 Linux 就是一组软件, 问题是这个软件是操作系统还是应用程序? 而且 Linux 可以在哪些种类的电脑上运行呢? Linux 来自哪里? 为什么 Linux 不收钱?(万恶的 Windows 分为各种收费版, 家庭版, 专业版, 企业版....)这些问题我们是不是都得了解, 以免人家和你聊 Linux, 俺不会尴尬呀.
什么是操作系统
我们都知道 Windows 7/8/xp 其实就是操作系统, 操作系统全称是 Operating System, 简称 OS, 是计算机系统中必不可少的基础系统软件, 它是应用程序运行及用户操作必备的基础环境支撑.
整个电脑主机是由一堆硬件所组成, 为了有效的控制这些硬件资源, 于是就有操作系统的产生了. 操作系统除了有效的控制这些硬件资源的运作, 并且提供电脑运行所需的功能(例如网络功能).
由上图看出操作系统跑于硬件之上, 应用程序运行在操作系统之上, 由于 Linux 只是一套操作系统并不含有其他应用程序, 因此工程师需要在下载 Linux 系统并且安装之后, 就可以使用了.
Shell(也叫做终端或壳)充当的是人与内核 (硬件) 之间的翻译官, 用户吧一些命令 "传递" 给终端, 它就会调用相应的程序服务去完成工作. 红帽 Linux 默认使用的终端是 Bash 解释器.
1.1 Linux 起源与发展
1991 年, 一个名不见经传的芬兰研究生购买了自己的第一台 PC, 并且决定开始开发自己的操作系统. 这个想法非常偶然, 最初只是为了满足自己读写新闻和邮件的需求. 这 个芬兰人选择了 Minix 作为自己研究的对象. Minix 是由荷兰教授 Andrew S Tanenbaum 开 发的一种模型操作系统, 这个开放源代码的操作系统最初只是用于研究目的. 这个研究生名叫 Linus torvalds, 他很快编写了自己的磁盘驱动程序和文件系统, 并且 慷慨地把源代码上传到互联网上. Linus 把这个操作系统命名为 Linux, 意指 "Linus 的 Minix" ( Linus, Minix).
1.1.1 开源潮流
简单来说, 开源软件的特点就是把软件程序与源代码文件一起打包提供给用户, 让用户 在不受限制地使用某个软件功能的基础上还可以按需进行修改, 或编制成衍生产品再发布出 去. 用户具有使用自由, 修改自由, 重新发布自由以及创建衍生品的自由. 这也正好符合了黑 客和极客对自由的追求, 因此国内外开源社区的根基都很庞大, 人气也相当高.
坦白来讲, 每位投身于 Linux 行业的技术人或者程序员只要听到开源项目就会由衷地感 到自豪, 这是一种从骨子里带有的独特情怀. 开源的企业不单纯是为了利益, 而是互相扶持, 努力服务好更多的用户.
开源软件最重要的特性有下面这些.
低风险 使用闭源软件无疑把命运交付给他人, 一旦封闭的源代码没有人来维护, 你 将进退维谷; 而且相较于商业软件公司, 开源社区很少存在倒闭的问题.
高品质 相较于闭源软件产品, 开源项目通常是由开源社区来研发及维护的, 参与编 写, 维护, 测试的用户量众多, 一般的 bug 还没有等爆发就已经被修补.
低成本 开源工作者都是在幕后默默且无偿地付出劳动成果, 为美好的世界贡献一份 力量, 因此使用开源社区推动的软件项目可以节省大量的人力, 物力和财力.
更透明 没有哪个笨蛋会把木马, 后门等放到开放的源代码中, 这样无疑是把自己的罪行暴露在阳光之下.
如果开源软件一味的追求 "自由" 缺牺牲了程序员的利益, 这样也会影响程序员的激情, 因此世界上就有了 "开源许可协议" 来保证开源工作者的权益.
GNU GPL (GNU General Public License GNU):
只要软件中包含了遵循 GPL 协议的产品或代码, 该软件就必须也遵循 GPL 许可协议且开源, 免费, 因此这个协议并不适合商用软件.
遵循了此协议的就包括 Linux 和大多数开源软件
GNU 的特点是:
复制自由
传播自由
收费传播 开源软件都是通过对用户提供有偿服务形式来盈利
修改自由 开发人员允许增加和删除软件的功能, 但是还必须遵循 GPL 许可协议
BSD Berkeley Software Distribution 伯克利软件发布版本许可协议
用户可以使用, 修改和重新发布遵循该许可的软件, 并且可以将软件作为商业软件发布和销售, 前提需要满足下面 3 个条件.
如果在发布的软件中包含源代码, 则源代码必须继续遵循 BSD 许可协议
如果再发布的软件中只有二进制程序, 则需要在相关文档或版权中声明该代码遵循了 BSD 协议
不允许用原始软件的名字, 作者名字或机构名称进行市场推广
Linux 为什么受欢迎
Linux 以高效和灵活主城, Linux 同事具有多任务, 多用户的能力, 支持多线程, 多 CPU.
Linux 包括了文本编辑器, 高级语言编译器, 以及图形用户界面登应用软件, 当然绝大多数服务器都是使用命令行, 文本模式操作 Linux 的.
Linux 遵循 GNU 通用公共许可协议, 属于自由软件, 用户不需要支付费用就可以获得系统和系统源代码, 无偿使用且自由传播.
Linux 具有很高的系统稳定性和可靠性.
具有很高的系统安全性
众多业界厂商支持, 如 IBM,Oracle,Intel,HP,Google 等
有完善的数据库平台, 包括 Oracle,DB/2,Sybase,MySQL,PostgreSQL 等.
有完善的图形化用户界面, 包括 GNOME,KDE 等.
有完善的开发平台, 包括 C/C++,Java,Python 等.
1.2 Linux 的发行版本
其实啊 Linux 这个词并不能 (代表) 操作系统, Linux 实际上只是定义了一个操作系统的内核, 这个内核由 kernel.org 维护. 不同的企业和组织在基础上开发了一系列的辅助软件, 打包发布自己的 "发行" 版本.
在介绍常见的 Linux 系统版本之前, 首先需要区分 Linux 系统内核与 Linux 发行版的不同.
Linux 系统内核指的是一个由 Linus Torvalds 负责维护, 提供硬件抽象层, 硬盘及文件 系统控制及多任务功能的系统核心程序.
Linux 发行版系统是我们常说的 Linux 操作系统, 也即是由 Linux 内核与各种常用 软件的集合产品.
全球大约有数百款的 Linux 系统版本, 每个系统版本都有自己的特性和目标人群, 下面 将可以从用户的角度选出最热门的几款进行介绍.
RedHat Enterprise Linux RHEL :
红帽公司是全球最大的开源技术厂商, RHEL 是全世界内使 用最广泛的 Linux 系统. RHEL 系统具有极强的性能与稳定 性, 并且在全球范围内拥有完善的技术支持.
Community Enterprise Operating System
CentOS 通过把 RHEL 系统重新编译并发布给用户免费使用的 Linux 系统, 具有广泛的使用人群. CentOS 当前已被红帽公司 "收编".
openSUSE
源自德国的一款著名的 Linux 系统, 在全球范围内 有着不错的声誉及市场占有率. 主要使用客户是中国移动, 中国电信, 交通银行, 浦发银行等等安全性极高的客户
Debian
稳定性, 安全性强, 提供了免费的基础支持, 可以良好地支持各种硬件架构, 以及提供近十万种不同的开源软件, 在国外拥有很高的认可度和使用率.
Ubuntu
是一款派生自 Debian 的操作系统, 对新款硬件具有极 强的兼容能力. Ubuntu 与 Fedora 都是极其出色的 Linux 桌面系统, 而且 Ubuntu 也可用于服务器领域.
在过去的 10 年中, Red hat 公司一直是 Linux 乃至开源世界的领导者. 2003 年, 公司高层决定将其产品分成两个不同的发行版本. 商业版本被称为 Red Hat Enterprise Linux, 这个发行版本专注于企业级应用, 并向使用它的企业提供全套技术支持, Red Hat 公司从中收取相关许可证费.
RedHat Linux 对硬件的支持非常友好, 主流硬件厂商早早的将服务器拿去测试, 很少遇见硬件兼容性问题, 大量的商业软件都是基于 RedHat 认证的, 例如 Oracle.Linux 内核代码的贡献, RedHat 厂商的大牛也是最多, 要知道全世界的互联网大客户, 一般都会使用商业服务器, 因为出了问题有专业的技术人员技术支持.
CentOS 系统是通过把 RHEL 系统释放出的程序源代码经 过二次编译之后生成的一种 Linux 系统, 其命令操作和服务配置方法与 RHEL 完全相同, 但 是去掉了很多收费的服务套件功能, 而且还不提供任何形式的技术支持, 出现问题后只能由运维人员自己解决.
为何重点推荐 RedHat, 原因是熟悉了 CentOS/RedHat 找工作更容易...
1.3 Linux 与 Windows 的区别
免费与收费
最新正版 Windows10 官方售价¥888
Linux 几乎免费(更多人愿意钻研开源软件, 而收费的产品出现更多的盗版)
软件与支持
Windows 平台: 数量和质量的优势, 补过大部分为收费软件; 由微软提供技术支持和服务
Linux 平台: 大多为开源软件, 用户可以修改定制与发布, 由于免费没有资金支持, 部分软件质量可能欠缺
安全稳定性
Windows 平台: 三天两头修复补丁, 仍然会中毒(即便装了 360, 瑞星, 金山毒霸....)
Linux 平台: 安全问题很少, 无需安装 xx 杀毒, xx 卫士
使用习惯
Windows: 普通用户基本依靠图形界面操作, 鼠标和键盘完成一切需求, 上手简单容易
Linux: 兼具图形界面 (需要带有桌面环境的发行版 Linux) 和完全命令行操作, 无法使用鼠标, 新手入门困难, 需要学习后方可使用, 熟练后效率极高!
应用领域
Linux: 人们日常在 Windows 上访问的百度, 谷歌, 淘宝, qq, 迅雷(xxxx 大片), 支撑这些软件运行的, 后台是成千上万的 Linux 服务器, 它们时时刻刻进行着忙碌的数据处理和运算
Windows: 可以运行英雄联盟, 绝地求生, 仙剑三, 地下城与勇士, 我的世界... 等等游戏, 而 Linux 开发的游戏几乎很少
公司的技术架构
- # 闭源收费的技术栈:
- SVN + java + apache(web 服务器) + oracle + nagios(监控软件) + RedHat
- # 开源技术栈
- Git + python + java + nginx(Web 服务软件) + MySQL(mariadb) + zabbix + CentOS
总结
1. 操作系统是什么
是人与计算机硬件沟通的介质
2. 操作系统组成 --- 鸡蛋由几部分组成
1)蛋黄 - 系统内核
2)蛋清 - 命令解释器 shell
3)蛋壳 - 应用程序
3.Linux 是一套开放源代码程序, 且可以自由传播的操作系统
4. 掌握 CentOS/RedHat 能更好的适应互联网服务端开发环境
5. 使用 Linux 的好处是自由传播, 免费, 不会犯法, 任意切换图形 / 命令终端, 安全稳定, 不用杀毒软件, 不卡
sdf
来源: http://www.bubuko.com/infodetail-3274032.html