文章目录

  • Linux
  • Linux的优点
  • Linux分类
  • Linux发行版本
    • RedHat Linux
    • Ubuntu Linux
  • Linux系统结构
    • 1、内核层
    • 2、Shell层
    • 3、应用层
  • Linux主要应用的领域
  • 开源软件
    • 开源软件的优点
    • 典型的开源软件
  • 开源协议
    • 1、GNU GPL(GNU General Public License,GNU通用公共许可证)
    • 2、BSD(Berkeley Software Distribution,伯克利软件发布版)协议
    • 3、Apache许可证协议
    • 4、MIT协议
    • 5、GUN LGPL(GNU Lesser General Public License,GNU 宽通用公共许可证)
  • 选择开源协议
  • 总结

Linux

Linux是一套开放源代码程序操作系统软件,Linux提供了一个完整操作系统当中最底层硬件控制与资源管理的完整架构,这个架构是沿袭UNIX来的,UNIX系统也是Linux系统的前身

Linux核心最初是由李纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学时编写的,之后并开放了源代码,现在普遍使用的Linux,是由Linux爱好者与托瓦兹共同开发完成的

Linux的优点

  • 大量可用软件及免费软件
  • 良好的可移植性
  • 优良的稳定性和安全性
  • 支持几乎所有的网络协议和编程语言

Linux分类

Linux发行版本可以根据维护组织不同分为两类:

  • 商业公司维护的发行版本,代表为RedHat
  • 社区组织维护的发行版本,代表为Debian

Linux发行版本可以根据软件管理方式的不同分为两类:

  • 以RPM软件管理为主的RHEL、Fedora、SUSE、CentOS
  • 以dpkg软件管理为主的debian、Ubuntu

Linux发行版本

李纳斯·托瓦兹开发的Linux只是一个内核,内核指的是提供设备驱动、文件系统、进程管理、网络通信等功能的系统软件,只是一个操作系统的核心,并不能构成一套完整的操作系统

一些组织和厂商将Linux内核与各种软件和文档包包装起来,并提系统安装界面和系统配置、设定和管理工具,这就是Linux发行版本

RedHat Linux

Red Hat是目前最资深的Linux产商,RedHat公司的主要产品有RHEL(RedHat Enterprise Linux,收费版本)和CentOS(RHEL的社区克隆版本,免费版本)、Fedora Core(由RedHat桌面版发展而来,免费版本)

Ubuntu Linux

Ubuntu基于著名的Debian Linux发展而来,界面友好,是免费版本

Linux系统结构

UNIX/Linux 系统可以粗糙地抽象为 3 个层次(所谓粗糙,就是不够细致、精准,但是便于初学者抓住重点理解),如图 3 所示。底层是 UNIX/Linux 操作系统,即系统内核(Kernel);中间层是 Shell 层,即命令解释层;高层则是应用层

1、内核层

内核层是 UNIX/Linux 系统的核心和基础,它直接附着在硬件平台之上,控制和管理系统内各种资源(硬件资源和软件资源),有效地组织进程的运行,从而扩展硬件的功能,提高资源的利用效率,为用户提供方便、高效、安全、可靠的应用环境

2、Shell层

Shell 层是与用户直接交互的界面。用户可以在提示符下输入命令行,由 Shell 解释执行并输出相应结果或者有关信息,所以我们也把 Shell 称作命令解释器,利用系统提供的丰富命令可以快捷而简便地完成许多工作

3、应用层

应用层提供基于 X Window 协议的图形环境。X Window 协议定义了一个系统所必须具备的功能(就如同 TCP/IP 是一个协议,定义软件所应具备的功能),可系统能满足此协议及符合 X 协会其他的规范,便可称为 X Window

Linux主要应用的领域

  • 网站服务器
  • 电影工业
  • 嵌入式应用

开源软件

Linux是一款开源软件,Linux本身就是开源精神的受益者

开源软件就是把软件程序与源代码文件一起打包提供给用户,用户既可以不受限制的使用该软件的全部功能,也可以根据自己的需求修改源代码,甚至把由此衍生出的产品再次发布

开源软件的优点

低风险:开源软件的源代码参与维护的人越多,软件的漏洞和风险就会越低

高品质:开源软件通常是由开源社区来研发和维护的,参与编写和维护的人越多,软件越能经受检查

典型的开源软件

开源协议

开源协议规定了在使用开源软件的权利和义务,虽然开源协议没有法律效力,但是涉及软件版权纠纷时,开源协议是很重要的证据

1、GNU GPL(GNU General Public License,GNU通用公共许可证)

只要软件中包含了遵循GPL协议的产品和代码,该软件就必须遵循GPL许可协议,也就是开源免费

GPL开源协议的主要特点:复制自由、传播自由、收费传播、修改自由

  1. 复制自由:允许把软件复制到任何人的电脑中,并且不复制复制的数量
  2. 传播自由:允许软件以各种形式进行传播
  3. 收费传播:允许在各种媒介上出售软件,但前提示必须让买家知道该软件是可以免费获取的
  4. 修改软件:允许开发人员增加或删除软件的功能,但是软件修改后必须遵循GPL许可协议授权

2、BSD(Berkeley Software Distribution,伯克利软件发布版)协议

BSD协议允许用户使用、修改和重新发布遵循该许可的软件,并可以将软件作为商业软件发布和销售,但得满足三个前提条件:

  1. 如果再发布的软件包含源代码,则源代码必须遵循BSD许可协议
  2. 如果再发布的软件中只有二进制程序,则需要在相关文档或版权文件中声明原始代码遵循了 BSD 协
  3. 不允许用原始软件的名字、作者名字或机构名称进行市场推广

3、Apache许可证协议

Apache 和 BSD 类似,都适用于商业软件。Apache 协议在为开发人员提供版权及专利许可的同时,允许用户拥有修改代码及再发布的自由

程序开发人员在开发遵循该协议的软件时,要严格遵守下面的四个条件:

  1. 该软件及其衍生品必须继续使用 Apache 许可协议
  2. 如果修改了程序源代码,需要在文档中进行声明
  3. 若软件是基于他人的源代码编写而成的,则需要保留原始代码的协议、商标、专利声明及其他原作者声明的内容信息
  4. 如果再发布的软件中有声明文件,则需在此文件中标注 Apache 许可协议及其他许可协议

4、MIT协议

目前限制最少的开源许可协议之一(比 BSD 和 Apache 的限制都少),只要程序的开发者在修改后的源代码中保留原作者的许可信息即可,因此普遍被商业软件所使用

5、GUN LGPL(GNU Lesser General Public License,GNU 宽通用公共许可证)

LGPL 是 GPL 的一个衍生版本,也被称为 GPL V2,该协议主要是为类库设计的开源协议

LGPL 允许商业软件通过类库引用(link)的方式使用 LGPL 类库,而不需要开源商业软件的代码。这使得采用 LGPL 协议的开源代码可以被商业软件作为类库引用并发布和销售

选择开源协议

总结

Linux本身就是个最普通的操作系统,常见的:Linux发行版有"商业、分类"分类法,或者通过软件管理分为RPM、DPKG,以及保护软件权益的各种开源协议和开源协议的选择

赶紧学习起来吧!我是一个正在努力找回自我的人,希望能和一起学习的人成长,有错误的地方请各位大佬帮忙指正,如果觉得有帮助就点个赞当作对我的一个小肯定❤,peace&love

【Linux上分之路】第一篇:Linux简介、发行版、开源协议相关推荐

  1. 【Linux上分之路】第十二篇:Linux三剑客grep、sed、awk

    文章目录 Linux三剑客 三剑客特点及应用场景 grep grep命令的基本格式 grep范例 grep命令选项 -A.-B -c.-v -n.-w sed sed命令基本格式 sed命令功能 se ...

  2. 《鸟哥的Linux 私房菜 基础学习篇(第三版)》——1.2 Torvalds的Linux开发

    本节书摘来自异步社区<鸟哥的Linux 私房菜 基础学习篇(第三版)>一书中的第1章,第1.2节,作者:鸟哥著,更多章节内容可以访问云栖社区"异步社区"公众号查看 1. ...

  3. Pytorch上分之路—ShuffleNetv3(鸟群分类算法)

    Pytorch上分之路-ShuffleNetv3(鸟群分类算法) 本次的内容是用pytorch写一个简单的分类算法,选择了200鸟群的数据集,数据集的话可以自己到网上去找,挺容易的. 目录 **Pyt ...

  4. arch linux系统玩游戏,Garuda Linux 20200831发布,基于Arch的游戏发行版

    原标题:Garuda Linux 20200831发布,基于Arch的游戏发行版 来自:Linux迷 https://www.linuxmi.com/arch-garuda-linux-snap-fl ...

  5. 【Python上分之路】第一篇:Python是什么?

    文章目录 Python Python特性 Python优点 语法简单 开源免费 面向对象的高级语言 功能扩展性强 Python缺点 运行速度慢 代码加密困难 Python应用领域 Web应用开发 自动 ...

  6. linux的自定义input,Linux Input子系统之第一篇(input_dev/input_handle/input_handler)

    Input子系统是linux kernel中与部分外围器件驱动联系比较紧密的模块,常用于Sensor,TP(touch panel),power key等器件的驱动.这类模块有个共同特点:字符设备,且 ...

  7. linux 搭建mysql主从复制 ----第一篇

    linux下部署mysql主从复制 第一篇 首先介绍下主从复制的原理 : 依赖于二进制日志,binary-log.二进制日志中记录引起数据库发生改变的语句 Insert .delete.update. ...

  8. 【Linux从青铜到王者】第一篇:Linux常见指令

    系列文章目录 文章目录 系列文章目录 前言 一.Linux是什么 二.Linux下基本指令 1.ls指令 2.pwd指令 3.cd指令 4.touch指令 5.mkdir指令 6.rmdir指令 7. ...

  9. Linux 基础知识系列第一篇

    精选30+云产品,助力企业轻松上云!>>> Linux 01 今日学习目标 [x] Linux系统的认识以及部署安装 [x] 认识Linux文件系统结构 [x] 实际操作文件和文件夹 ...

最新文章

  1. H3C Boot升级 Serial模式
  2. 【深度学习】Transformer在语义分割上的应用探索
  3. 穿透Session 0 隔离(一)
  4. hello2 source analysis
  5. Go之Beego报错RegisterModel must be run before BootStrap
  6. android点击通知跳转到服务,Android 接收推送消息跳转到指定页面的方法
  7. flask-restful接口
  8. Java基于注解和反射导入导出Excel
  9. Linux 的内存分页管理
  10. ros名称、命名空间和重映射
  11. 阶段3 2.Spring_03.Spring的 IOC 和 DI_6 spring中bean的细节之三种创建Bean对象的方式
  12. 韩国李世石跟韩国AI大战,2负一胜
  13. eTerm指令、民航指令大全、黑屏指令
  14. CentOS8.3部署GlusterFS
  15. java字符数组比大小排序_Java字符串数组进行大小排序
  16. linux权限不够的简易解决方法
  17. 三十而立,心怀斗志,我仍是少年——小康师兄的2021年度总结
  18. deb包一般放在linux的哪个目录下,deb包安装目录详解
  19. Go关键字--chan
  20. Mac 上面编译POCO C++库

热门文章

  1. python输出文本换行_python中print怎么不换行输出
  2. 二十三.基于机器学习的恶意请求识别及安全领域中的机器学习
  3. Android下 调用原生相机拍照摄像
  4. C语言程序设计算法题 -- lab09(1036 - 1039) 二分查找 itob 进制转换 Expands shorthand notations
  5. Spark释出掌上型无人机的韧体更新 优化起飞后的飞行稳定性
  6. gerber 各层(Pads solder mask层和paste mask的区别)
  7. vce 题库导入_Visual CertExam(VCE)试题制作教程
  8. .NET List 转成逗号分隔字符串
  9. 图片压缩软件电脑版源码下载(开源版)
  10. 图的周游(C++实现)