Linux笔记 Day04---(开源协议、vi/vim编辑器、命令帮助、shell之bash)

一、Linux是多用户多任务的分时操作系统

多用户是指多个用户可以在同一时间使用计算机系统;多任务是指Linux可以同时执行几个任务,它可以在还未执行完一个任务时又执行另一项任务。

多用户多任务操作系统允许多个用户共享使用同一台计算机的资源,即在一台计算机上连接许多台终端机,终端机可以没有自己的CPU与内存,只有键盘与显示器,每个用户都通过各自的终端机使用这台计算机的资源。

操作系统管理多个用户的请求和多个任务。大多数系统都只有一个CPU和一个主存,但一个系统可能有多个二级存储磁盘和多个输入/输出设备。操作系统管理这些资源并在多个用户间共享资源,当一个用户提出一个请求时,会造成一种假象,好象系统只被该用户独自占用。而实际上操作系统监控着一个等待执行的任务队列。操作系统根据每个任务的优先级为每个任务分配合适的时间片,每个时间片大约都有零点几秒,虽然看起来很短,但实际上已经足够计算机完成成千上万的指令集。每个任务都会被系统运行一段时间,然后挂起,系统转而处理其他任务;过一段时间以后再回来处理这个任务,直到某个任务完成,从任务队列中去除。
 
  那么,多个用户之间如何实现资源的分配:Linux进程将拥有一套完整的资源集,所有的进程共享一套计算机硬件资源。内存采取虚拟内存技术,虚拟内存和物理内存之间存在一一映射;CPU采用分时(时间片 )技术;I/O设备采用I/O复用技术(类似于多道程序系统原理)等等。

二、关于GNU计划与开源协议

(一)GNU计划

又称革奴计划,是由Richard Stallman在1983年9月27日公开发起的。它的目标是创建一套完全自由的操作系统。Richard Stallman最早是在net.unix-wizards新闻组上公布该消息,并附带一份《GNU宣言》等解释为何发起该计划的文章,其中一个理由就是要“重现当年软件界合作互助的团结精神”。为保证GNU软件可以自由地“使用、复制、修改和发布”,所有GNU软件都在一份在禁止其他人添加任何限制的情况下授权所有权利给任何人的协议条款,GNU通用公共许可证(GNU General Public License,GPL)。即“反版权”(或称Copyleft)概念
GNU包含3个协议条款:GPL,LGPL,GFDL

(二)最常用的几种开源协议

  • GPL (GNU General Public License) :GNU通用公共许可协议
  • LGPL (GNU Lesser General Public License) :GNU宽通用公共许可协议
  • BSD (Berkeley Software Distribution) :伯克利软件分发许可协议
  • MIT (Massachusetts Institute of Technology):MIT许可协议之名源自麻省理工学院,又称“X许可协议”或“X11许可协议”
  • Apache (Apache License) :Apache许可协议
  • MPL (Mozilla Public License) :Mozilla公共许可协议

1.GPL

GNU通用公共许可协议是一个被广泛使用的自由软件许可协议条款,GPL 保证了所有开发者的权利,同时为使用者提供了足够的复制,分发,修改的权利:

  • 可自由复制
    你可以将软件复制到你的电脑,你客户的电脑,或者任何地方。复制份数没有任何限制。
  • 可自由分发
    在你的网站提供他人下载,拷贝到U盘送人。
  • 可以用来盈利
    你可以在分发软件的时候收费,但你必须在收费前向你的客户提供该软件的 GNU GPL 许可协议,以便让他们知道,他们可以从别的渠道免费得到这份软件,以及你收费的理由。
  • 可自由修改
    如果你想添加或删除某个功能,没问题,如果你想在别的项目中使用部分代码,也没问题,唯一的要求是,使用了这段代码的项目也必须使用 GPL 协议。

需要注意的是,分发的时候,需要明确提供源代码和二进制文件,另外,用于某些程序的某些协议有一些问题和限制,使用 GPL 协议,你必须在源代码代码中包含相应信息,以及协议本身。

Linux就是采用了GPL协议。GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。这也就是为什么我们能用免费的各种linux,包括商业公司的linux和linux上各种各样的由个人,组织,以及商业软件公司开发的免费软件了。

2.LGPL

GNU 还有另外一种协议,叫做GNU宽通用公共协议,它对产品所保留的权利比 GPL 少,总的来说,LGPL 适合那些用于非 GPL 或非开源产品的开源类库或框架。因为GPL要求包含有部分GPL授权代码的软件以GPL方式发布,这样开发者就无法在收费的专属软件里使用GPL授权代码。 LGPL正好解决了这一问题:它不要求其它使用LGPL授权代码的软件以LGPL方式发布。注意:LGPL有一特点是LGPL软件可以被转换成GPL。这种特性对于在GPL库或应用程序中直接使用LGPL程序有一定程度之帮助。

3.BSD

BSD 在软件分发方面的限制比别的开源协议(如 GNU GPL)要少。该协议有多种版本,最主要的版本有两个,新 BSD 协议与简单 BSD 协议,这两种协议经过修正,都和 GPL 兼容,并为开源组织所认可。

新 BSD 协议在软件分发方面,除需要包含一份版权提示和免责声明之外,没有任何限制。另外,该协议还禁止拿开发者的名义为衍生产品背书,但简单 BSD 协议删除了这一条款。

4.MIT

MIT 协议可能是几大开源协议中最宽松的一个,核心条款是:该软件及其相关文档对所有人免费,可以任意处置,包括使用,复制,修改,合并,发表,分发,再授权,或者销售。唯一的限制是,软件中必须包含上述版 权和许可提示。
这意味着:
你可以自由使用,复制,修改,可以用于自己的项目。
可以免费分发或用来盈利。
唯一的限制是必须包含许可声明。
MIT 协议是所有开源许可中最宽松的一个,除了必须包含许可声明外,再无任何限制。

5.Apache

Apache 协议 2.0 和别的开源协议相比,除了为用户提供版权许可之外,还有专利许可,对于那些涉及专利内容的开发者而言,该协议最适合。

Apache 协议还有以下需要说明的地方:

  • 永久权利
    一旦被授权,永久拥有。
  • 全球范围的权利
    在一个国家获得授权,适用于所有国家。
  • 授权免费,且无版税
    前期,后期均无任何费用。
  • 授权无排他性
    任何人都可以获得授权
  • 授权不可撤销
    一旦获得授权,没有任何人可以取消。比如,你基于该产品代码开发了衍生产品,你不用担心会在某一天被禁止使用该代码。
    分发代码方面包含一些要求,主要是,要在声明中对参与开发的人给予认可并包含一份许可协议原文。

6.MPL

MPL既是得到自由软件基金会承认的自由软件许可证,也是得到开放源代码促进会承认的开源软件许可证。MPL允许在其授权下的源代码与其他授权的文件进行混合,包括私有许可证。但在MPL授权下的代码文件必须保持MPL授权,并且保持开源。这样的条款让MPL既不像MIT和BSD那样允许派生作品完全转化为私有,也不像GPL那样要求所有的派生作品,包括新的组件在内,全部必须保持GPL。通过允许在派生项目中存在私有模块,同时保证核心文件的开源,MPL同时激励了商业及开源社区来参与帮助开发核心软件。

使用MPL授权的软件并不受专利的限制,其可以自由使用,修改,并可自由的重新发布。带有专利代码的版本仍然可以使用,转让,甚至出售,但未经许可则不能修改代码。此外,MPL并不授予用户对于开发者商标的使用权。

为了满足MPL的条款限制,用户必须负担一些“责任”,主要是关于散发使用MPL授权的软件。用户必须确保重新散发的软件所有源代码均以MPL授权,即使是以可执行文件的方式提供或是与其他使用专有软件授权的源代码结合也一样。但若跟以GNU通用公共许可协议、GNU宽通用公共许可证、Affero通用公共许可证授权的源代码结合则是例外。此时开发者则可选用以上三种更加严格的条款来授权

三、获取命令帮助

(一)内部命令与外部命令

命令必须遵循特定格式规范: windows上都是exe, msi, 对于linux而言是ELF格式

[root@admin ~]# file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=aaf05615b6c91d3cbb076af81aeff531c5d7dfd9, stripped
#linux标准基础linux standards base,可执行的,X86-64的版本是1 ,动态连接的可执行文件

注意:这个路径一定要给一个可执行文件的路径,不是随便给的,file是一个命令,用来查看一个文件的内容格式的类型

简单来说,在linux系统中有存储位置的命令为外部命令;没有存储位置的为内部命令,可以理解为内部命令嵌入在linux的shell中,所以看不到。
type命令:来判断到底为内部命令还是外部命令


                
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值