Bootstrap

认识Linux——为什么学Linux

一、初识 Linux unix windows MacOS
Linux 是当下 IT 行业从业者必须掌握的一个关键技术,虽然你对 Linux 很陌生,但是 Linux 早已与我们的生活融为一体。
它广泛的应用超乎你的想象,对于这个熟悉的陌生人,我们从它的应用领域说起。
1.Linux 的应用领域
1 个人桌面
长期以来我们所接触的操作系统无非 Windows 或者 MacOS ,也就是说绝大多数的桌面级系统市场被前两者拿捏的死死的,Linux 虽然在个人桌面级别也有涉及,但是市场仅仅是一些开发爱好者。
2 嵌入式应用
Linux 微内核广泛支持电信硬件设备、通信协议以及控制系统。应用在路由器、交换机、 PDA 、自动贩售 机、智能家电、监控设备、工程控制设备、电视盒子、智能手机、智能机器人等市场领域。随着AI 智能 和工业4.0 的发展, Linux 将继续深入到生产生活的广阔领域。
3 服务器
终于说到 Linux 最最最擅长的领域了,可以说 Linux 在当下它是为服务器而生,服务器是 Linux 系统应用最为广泛的领域.Linux可以搭建诸如 web 服务器、邮件服务器、数据库服务器、网络共享存储、代理加速等等。以它开源、安全、稳定、高效的特点迅速赢得了市场,据了解,全球前500 的超级计算机中大多数都是由 Linux来驱动。
4 云计算
Linux 提供了推动云革命的基础技术,在云计算中私有云和公有云环境中的云实例都是使用的 Linux 系 统。
So! Linux到底是什么呢?

它是一个优秀的操作系统

稳定高效
开源、免费 kernel
安全性高
多任务、多用户、多线程以及多 CPU
当然 Linux 系统也不例外,从宏观的层面来看, Linux 系统由 内核 +外围程序组成。
软件类型 开源 和 闭源
简单来说,开源是一种精神,开源软件的特点是把软件程序与源代码文件一起打包给用户,让用户在使用过程中不会受任何功能限制的基础上,还可以按需改源代码、二次开发以及发布新的版本,所以在国内外的开源社区倍受欢迎!
开源许可协议
GNU GPL GNU General Public License) GNU 通用公共许可协议 ,它的宗旨就是只要软件中包含 了遵循 GPL 协议的产品或代码,该软件就必须也遵循 GPL 许可协议且开源、免费,因此这个协议并不适合商用软件。遵循该协议的开源软件数量极其庞大,包括 Linux 系统在内的大多数的开源软件都是基于这个协议的。
2.常见的开源许可证,以及它们各自的赋予用户的权利

GNU通用公共许可证(General Public License,GPL):目前广泛使用的开源软件许可协议之一,用户享有运行、学习、共享和修改软件的自由。GPL最初是自由软件基金会创始人Richard Stallman起草的,其版本目前已经发展到了第3版。GPL的目的是保证程序员在开源社区中所做的工作对整个世界是有益的,所开发的软件也是自由的,并极力避免开源软件被私有化以及被无良软件公司所剥削。

现在,只要软件中包含了遵循GPL许可证的产品或代码,该软件就必须开源、免费,因此这个许可证并不适合商业收费软件。遵循该许可证的开源软件数量极其庞大,包括Linux内核在内的大多数的开源软件都是基于GPL许可证的。GPL赋予了用户著名的五大自由。

使用自由:允许用户根据需要自由使用这个软件。

复制自由:允许把软件复制到任何人的计算机中,并且不限制复制的数量。

修改自由:允许开发人员增加或删除软件的功能,但软件修改后必须依然基于GPL许可证。

衍生自由:允许用户深度定制化软件后,为软件注册自己的新商标,再发行衍生品的自由。

收费自由:允许在各种媒介上出售该软件,但必须提前让买家知道这个软件是可以免费获得的。因此,一般来讲,开源软件都是通过为用户提供有偿服务的形式来营利的

较宽松通用公共许可证( Lesser GPL, LGPL):一个主要为保护类库权益而设计的GPL开源协议。与标准GPL许可证相比,LGPL允许商业软件以类库引用的方式使用开源代码,而不用将其产品整体开源,因此普遍被商业软件用来引用类库代码。简单来说,就是针对使用了基于LGPL许可证的开源代码,在涉及这部分代码,以及修改过或者衍生出来的代码时,都必须继续采用LGPL协议,除此以外的其他代码则不强制要求。

伯克利软件发布版(BSD)许可证是一种开放源代码软件许可证,它起源于加州大学伯克利分校(UC Berkeley)。BSD许可证允许用户自由地使用、修改和再发布软件,同时保留了一定的责任和限制。主要的BSD许可证版本包括:

  1. BSD许可证(Original BSD License):最初的BSD许可证版本,通常称为“简单BSD许可证”,比较宽松,允许在满足特定条件下自由使用、修改和分发软件。

  2. BSD简化许可证(BSD Simplified License):也称为“新BSD许可证”或“FreeBSD许可证”,是对原始BSD许可证的修改和更新,更加现代化和简化,适用于当前的开源软件环境。

  3. BSD 3-Clause许可证(BSD 3-Clause License):也称为“修正BSD许可证”或“New BSD License”,它是对原始BSD许可证的修订,增加了对二进制分发和出处的明确规定。

Apache许可证是一种开源软件许可证,由Apache软件基金会开发和维护。它被设计为一个非常宽松的许可证,允许用户自由地使用、修改和分发软件,包括用于商业目的。以下是Apache许可证的主要特点和条款:

1. 权限:允许软件的自由使用、修改和再分发,无论是源代码还是二进制形式。

2. 专利授权:授予了对原始代码的专利授权,即使在用户修改后的代码中也是如此,这有助于防止专利诉讼的风险。

3. 限制:对于修改的代码,需要在相关文档中提供原始代码的来源(出处通知)。此外,如果在软件的广告或推广材料中提到了使用Apache软件,需要包含适当的声明。

4. 无保证:免除了作者对软件的任何担保责任。用户使用Apache许可证下的软件时,需要承担使用风险。

5. 分发修改:允许分发修改后的代码,但需要满足许可证中的要求,特别是保持原始版权声明和许可证文本的完整性。

Apache许可证被广泛用于许多知名的开源项目,包括Apache软件基金会自己的项目(如Apache HTTP Server),以及许多其他开源软件和库。它的灵活性和宽松性使得它成为开源社区中的流行选择之一。

程序开发人员在开发遵循该许可证的软件时,要严格遵守下面4个条件。

该软件及其衍生品必须继续使用Apache许可证。

如果修改了程序源代码,需要在文档中进行声明。

若软件是基于他人的源代码编写而成的,则需要保留原始代码的许可证、商标、专利声明及原作者声明的其他内容信息。

如果再发布的软件中有声明文件,则需在此文件中注明基于了Apache许可证及其他许可证。

MIT许可证(Massachusetts Institute of Technology License)是一种非常简洁和宽松的开源软件许可证,由麻省理工学院(MIT)创建和使用。这种许可证非常受欢迎,因为它简单明了,适用于几乎所有类型的开源项目。以下是MIT许可证的主要特点和条款:

1. 权限:允许软件的自由使用、修改、合并、发布、分发和销售,无论是源代码还是二进制形式,只要保留原始的版权声明和许可证条款。

2. 版权声明:要求在所有的副本或重要的衍生作品中包含原始的许可证和版权声明。

3. 责任免除:作者对软件的使用不提供任何形式的担保或条件,使用软件的风险完全由用户承担。

4. 商标条款:不包含对软件的商标使用授权,用户不得使用项目的名称或相关的商标进行市场营销活动,除非获得额外的授权。

MIT许可证非常适合于那些希望使用和分发开源软件,同时希望保留最大自由度的开发者和组织。它的简洁性和通用性使得许多开源项目选择采用这种许可证,包括一些知名的软件库和工具。

Mozilla公共许可证(Mozilla Public License,MPL):于1998年初由Netscape公司的Mozilla小组设计,原因是它们认为GPL和BSD许可证不能很好地解决开发人员对源代码的需求和收益之间的平衡关系,因此便将这两个协议进行融合,形成了MPL。2012年年初,Mozilla基金会发布了MPL 2.0版本(目前为止也是最新的版本),后续被用在Firefox、Thunderbird等诸多产品上。最新版的MPL公共许可证有以下特点。

在使用基于MPL许可证的源代码时,后续只需要继续开源这部分特定代码即可,新研发的软件不用完全被该许可证控制。

开发人员可以将基于MPL、GPL、BSD等多种许可证的代码一起混合使用。

开发人员在发布新软件时,必须附带一个专门用于说明该程序的文件,内容要有原始代码的修改时间和修改方式。

3.Linux系统的诞生

1969 Unix 系统诞生于 Bell 实验室,标志着 CLI 时代的开始。早期 unix 也是开源且免费的, 1979 年 AT&T公司宣布将 Unix 商业化,随之而来的是 Unix 的源代码被当成的商业机密。
1987 MINIX 操作系统诞生,小巧便捷是它的特点。 postfix (便携式操作系统)。
1991 5 月份 ,芬兰赫尔辛基大学的林纳斯 · 托瓦兹( Linus Torvalds )成功的将 GNU 软件 bash 等软件 移植到MINIX-386 操作系统上面。
1991 7 ,托瓦兹声称自己正在研发一个全新的操作系统,这大概是第一个关于 Linux 的消息。
1991 10 ,托瓦兹在 comp.os.minix 上发布消息,正式宣布了 Linux 内核系统的诞生 (Free minix-likekernel sources for 386-AT)。这段消息,相当于 Linux 的诞生宣言,并且一直广为流传,因此 10 5 日对 Linux社区来说是个特殊的日子,后来很多 Linux 的新版本的发布都选择这天。大名鼎鼎的 Linux 发行商RedHat也选择这天发布他的新系统。
1994 03 14 ,发布了 Linux 1.0 版。 并且在 Linux 社区开放源代码。同年 1 Redhat 公司 Linux 内核基础上创立Redhat Linux
1999 ,发布 Linux 中文版本。
4.Linux 系统的组成
对于当前任意一个操作系统而言,它的构成都可以是两部分构成
UI user interface ):用户接口 kernel(内核):操作系统的 心脏 ,用来驱动网络、文件系统、以及硬件设备。
系统内存管理 管理物理内存,创建和管理虚拟内存。
软件程序管理 内核控制着 Linux 系统如何管理运行在系统上的所有进程。系统调用
硬件设备管理 任何 Linux 系统需要与之通信的设备,都需要在内核代码 中加入其驱动程序
代码。驱动程序代码相当于应用程序和硬件设备的中间人,允许内核与设备之间交换数据。
文件系统管理 不同于其他一些操作系统, Linux 内核支持通过不同类型的文件系统从硬盘
中读写数据。
;