一、 图文并茂解释开源许可证 GPL、BSD、MIT、Mozilla、Apache和LGPL的区别?:
开源≠免费
每个协议之间的差别如图1所示:
GPL(GNU General Public License)
GNU通用公共许可证简称为GPL,允许用户任意赋值、传递、修改及再发布,基于自由软件修改再次发布的软件,仍需遵守GPL。
我们很熟悉的Linux就是采用了GPL。GPL协议和BSD, Apache Licence等鼓励代码重用的许可很不一样。GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代 码做为闭源的商业软件发布和销售。
BSD(Berkeley Software Distribution)
BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。
但”为所欲为”的前提当你发布使用了BSD协议的代码,或者以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:
◆如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。
◆如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。
◆不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。
MIT(Massachusetts Institute of Technology)(麻省理工)
MIT是和BSD一样宽范的许可协议,作者只想保留版权,而无任何其它的限制。也就是说,你必须在你的发行版里包含原许可协议的声明,无论你是以二进制发布的还是以源代码发布的。
被授权人权利:
①被授权人有权利使用、复制、修改、合并、出版发行、散布、再授权及贩售软件及软件的副本。
②被授权人可根据程式的需要修改授权条款为适当的内容。
被授权人义务:在软件和软件的所有副本中都必须包含版权声明和许可声明。
MPL(The Mozilla Public License )
MPL要求修改后的源代码也要以MPL的许可方式再出来,保证其他人可以再MPL的许可下共享源代码,但是修改者可以只把修改的接口源代码以MPL许可的形式对外许可。
Apache(Apache Licence)
Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。需要满足的条件也和BSD类似:
①需要给代码的用户一份Apache Licence
②如果你修改了代码,需要在被修改的文件中说明。
③在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。
④如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。
LGPL(GNU Lesser General Public License)
LGPL 是GPL的一个为主要为类库使用设计的开源协议。和GPL要求任何使用/修改/衍生之GPL类库的的软件必须采用GPL协议不同。LGPL 允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并 发布和销售。
但是如果修改LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议。因 此LGPL协议的开源 代码很适合作为第三方类库被商业软件引用,但不适合希望以LGPL协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。
GPL/LGPL都保障原作者的知识产权,避免有人利用开源代码复制并开发类似的产品。
二、安装各发行版系统的安装(centos, rockylinux, ubuntu, 等)
centos7
rocky8.5
ubuntu20.04.4
三、Linux中总结
1)如何通过一个简短的关键字 【man -k man -k process 】,例如process 获取相关的命令。
2)通过命令的描述,选择一个命令,获取命令的man文档。【 man top】
3)解读man文档,man分几个部分?man每个部分的解释,特别是语法部分。<>, [] ...等各代表什么含义。
①[]可选内容 ②<>必选内容 ③a|b二选一 ④{}分组 ⑤...同一内容可出现多次
4)根据语法部分 简要的写几个操作。
四、切换到/etc/目录,列出fstab文件的详细信息,详细解决fstab一行,每个或每几个字符的详细含义。 【cd /etc; ls -l /etc/fstab】
五、简要说明FHS结构。
Linux的文件系统分层结构:FHS(Filesystem Hierarchy Standard)
①Linux文件系统有一个总的根目录:/
②文件和目录被组织成一个单根倒置树结构
③根文件系统(rootfs):root filesystem
④标准Linux文件系统(如:ext4),文件名称大小写敏感,例如:MAIL, Mail, mail, mAiL
⑤以 . 开头的文件为隐藏文件
⑥路径分隔的 /
⑦文件名最长255个字节
⑧包括路径在内文件名称最长4095个字节
⑨蓝色-->目录 绿色-->可执行文件 红色-->压缩文件 浅蓝色-->链接文件 灰色-->其他文件
⑩除了斜杠和NUL,所有字符都有效.但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用
⑪每个文件都有两类相关数据:元数据:metadata,即属性, 数据:data,即文件内容
六、 用自己的理解总结 文件管理,用户管理,组用户,权限管理相关的命令。
文件:【touch/rm/rmdir/cat/head/less/more】
touch:创建一个空的文件(类似文本)
rm:删除文件(文本或者文件夹均可)
rmdir:删除空的文件夹(不能删除文本文件,如果文件夹里有文件夹要从最底层开始删加上-p选项删除父文件夹)
cat:查看文本类的文件
head:查看某个文件的前10条信息(默认)【(-n 数字)显示多少条】
less:浏览某个文本文件,可以上下翻动
more:跟less类似功能,但是不能向前翻
用户及组:user/group 【useradd/userdel/usermode; groupadd/groupdel/groupmod; chsh/...】
user
useradd:创建用户
userdel:删除用户
usermode:修改用户的属性
group
groupadd:创建组
groupdel:删除组
groupmod:修改组的属性
chsh:更改shell
权限 【chmod/chown/setfacl】
chmod:更改文件的权限 r-4 w-2 x-1
chown:修改文件的拥有者和组
setfacl:可以更精准的控制权限的分配,可以针对单一用户、单一文件设置控制权限