Linux 简介
什么是 Linux?
Linux 是一种操作系统,与 Windows、MacOS 占据了主流的操作系统。
Linux 也称:GNU/Linux
,而其中 GNU 的全称又是:Gnu’s Not Unix
。
其中 GNU 放前面是有原因的,GNU软件是通过 GNU 项目发布的软件,它是一种根据 GNU 软件包的 README 手册以及自由软件指南开发的软件,大多数 GNU 软件是免费分发的(copyleft),但不是所有的都这样,然而,所有的GNU软件必须是自由软件。
对于 Linux 和 GNU/Linux 的两种叫法是有争议的,其实我们可以认为:Linux 本质是指 Linux 内核,而称 GNU/Linux 则代表这是一个系统。
通过上面的全称和资料其实我们也就了解到,Linux 本质来源不是 Unix,但是它借鉴了 Unix 的设计思想,所以在系统业界上把这种和 Unix 是一致设计思想的系统归为:类 Unix 系统
。
类 Unix 操作系统是一类特定的操作系统,它是源于Unix操作系统,但又有某种变体。它们全部使用相似的用户界面,拥有异构、共享和可访问性等特性,以及 Unix 核心的某些功能。因此,类 Unix 系统可被看成是同一家族中的不同成员。
类 Unix 系统,除了我们今天要讲的 Linux,还有大家熟知的 MacOS、FreeBSD(这两个是直接从 Unix 系发展过来的,所以相对 Linux 是比较地道的类 Unix 系统)
为什么要用 Linux 系统?
- 支持更多的开源项目。有的工具只有 Linux 上有。
- 更低的成本。使用 Linux 生态可以避免 Windows 生态版权带来的问题。
- Linux 生态开源项目更多,同时兼容性更强、系统更稳定。
Linux 与 Windows 作对比
性能问题
:因 Windows 的 GUI 界面会占用部分资源,同时 Windows 也有自己的资源调度方案,所以同样的任务,Linux 能拿出更多的资源。普及程度
:Windows 系统多数用在个人电脑,主要以娱乐和办公为主。而服务器和工作站等多数是 Linux 系统(Windows 的版权费用是一方面原因)。稳定性
:重启问题,Linux 可以 4-5 年不重启。windows server 超过半年不重启,可能会莫名蓝屏或者其它异常(系统补丁安装后必须重启)。生态环境
:事实上,Linux 的开源、免费项目更多。成本低
:在成本上比 UNIX 和 Windows Server 要低,Linux 开源免费,大型互联网服务器架构都是集群式的,如果采用收费的 Windows Server 和 UNIX,那成本就会很高。安全性高
:在安全性上不输 UNIX,远超 Windows Server。Linux 发行版本较多,难集中攻击;用户权限划分令风险降低;Linux 代码开源,漏洞有多人解决。Windows 因为在家用系统市场占有率高,而且在底层权限设计上也存在一些问题,所以在 UNIX 和 Linux 而言,更容易受到攻击,所以在安全性上比不上 Linux 和 UNIX。
如果你是某种语言的开发者,你从事这个行业,不管你怎么学习下去,Linux 永远绕不开。从简单的各种语言开发,到后期的服务器部署,分布式,集群环境,数据库相关等,Linux 都在等着你。如果你是新手程序员可能还不太懂我这句话,但是我这里可以这样提示:你可以认真去看下各个语言的官网、对应的开发组件官网,看下他们的下载和新手上路相关页面,都会有 Linux 系统对应的介绍,但是不一定有会 Windows。
Linux 的发行版本
Linux 的 Wiki 中有这句话:
通常情况下,Linux 被打包成供个人计算机和服务器使用的 Linux 发行版,一些流行的主流 Linux 发布版,包括 Debian(及其派生版本 Ubuntu、Linux Mint)、Fedora(及其相关版本 Red Hat Enterprise Linux、CentOS)和 openSUSE、ArchLinux(这个是我补充的)等。
从技术上来说,李纳斯·托瓦兹开发的 Linux 只是一个内核。内核指的是一个提供设备驱动、文件系统、进程管理、网络通信等功能的系统软件,内核并不是一套完整的操作系统,它只是操作系统的核心。一些组织或厂商将 Linux 内核与各种软件和文档包装起来,并提供系统安装界面和系统配置、设定与管理工具,就构成了 Linux 的发行版本。
在 Linux 内核的发展过程中,各种 Linux 发行版本起了巨大的作用,正是它们推动了 Linux 的应用,从而让更多的人开始关注 Linux。因此,把 Red Hat,Ubuntu,SUSE 等直接说成 Linux 其实是不确切的,它们是 Linux 的发行版本,更确切地说,应该叫作 以 Linux 为核心的操作系统软件包
。
Linux 的各个发行版本使用的是同一个 Linux 内核,因此在内核层不存在什么兼容性问题,每个版本有不一样的感觉,只是在发行版本的最外层(由发行商整合开发的应用)才有所体现。
Linux 的发行版本大体有以下几种:
很难说 Linux 版本中哪一款更好,每个版本都有自己的特点。Linux 的发行版本众多,在此不逐一介绍,下面给选择 Linux 发行版本犯愁的朋友一点建议:
- 如果你需要的是一个服务器系统,而且已经厌烦了各种 Linux 的配置,只是想要一个比较稳定的服务器系统,那么建议你选择 CentOS 或 RHEL。
- 如果你只是需要一个桌面系统,而且既不想使用盗版,又不想花大价钱购买商业软件,不想自己定制,也不想在系统上浪费太多时间,则可以选择 Ubuntu,最重要的是 Ubuntu 是对 ROS 支持最好的 Linux 版本。
- 如果你想深入摸索一下 Linux 各个方面的知识,而且还想非常灵活地定制自己的 Linux 系统,那就选择 Gentoo 吧,尽情享受 Gentoo 带来的自由快感。
- 如果你对系统稳定性要求很高,则可以考虑 FreeBSD。
- 如果你需要使用数据库高级服务和电子邮件网络应用,则可以选择 SuSE。
本套教程基于 Ubuntu 系统开发,并且在后续的 Docker、ROS、嵌入式 Linux 及 Web 后端开发教程中也会使用该系统。
注意
我们是要在上面做开发的,而不是把它变成生活用机的。