首页 > 其他分享 >第一周作业:2022-11-20

第一周作业:2022-11-20

时间:2022-11-19 17:32:35浏览次数:81  
标签:11 GPL 00 20 协议 代码 2022 BSD 源代码

就业课程第一周作业:

  1. 图文并茂解释开源许可证 GPL、BSD、MIT、Mozilla、Apache和LGPL的区别?
  2. 安装centos ubuntu系统。
  3. 通过计算机基础和帮助的学习,完成学习ifconfig命令的使用。
  4. 总结linux FHS结构。
  5. 简要描述后期学习的计划。

=================================================================

问题1.图文并茂解释开源许可证 GPL、BSD、MIT、Mozilla、Apache和LGPL的区别?

第一周作业:2022-11-20_linux

GPL许可证

1980年,一个叫 Richard Stallman 的美国人因为无法容忍软件私有化,而建立了GPL许可证。他认为,软件的源代码是全人类的财富,应该允许程序员自由共享。

GPL许可证的核心含义是:允许任何人观看、修改,并散播程序软件的原始程序代码。条件是如果你要发布修改后的版本,就要连通源代码一起公布,不允许修改后和衍生的代码作为闭源的商业软件发布和销售。Linux就是采用了GPL协议,这也就是为什么我们能用到免费的各种版本的Linux系统,包括商业公司的Linux和Linux上各种各样的由个人、组织,以及商业软件公司开发的免费软件了。

GPL协议的主要内容是只要在一个软件中使用(“使用”指类库引用,修改后的代码或者衍生代码)GPL协议的产品,则该软件产品必须也采用GPL协议,即必须也是开源和免费。这就是所谓的“传染性”。GPL协议的产品作为一个单独的产品使用没有任何问题,还可以享受免费的优势。

由于GPL严格要求,使用了GPL类库的软件产品必须使用GPL协议,对于使用GPL协议的开源代码,商业软件或者对代码有保密要求的部门就不适合集成/采用作为类库和二次开发的基础。

BSD许可证

BSD开源协议是一个给予使用者很大自由的协议。基本上使用者可以“为所欲为”,可以自由地使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。

但是“为所欲为”的前提是当你发布使用了BSD协议的代码,或者以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件

(1) 如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。
(2) 如果再发布的只是二进制类库/软件,则需要再类库/软件的文档和版权声明中包含原来代码中的BSD协议。
(3) 不可以用开源代码的作者、机构名字和原来产品的名字做市场推广。

BSD代码鼓励代码共享,但需要尊重代码作者的著作权。BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售,因此是对商业集成很友好的协议。而很多的公司企业在选用开源产品的时候都首选BSD协议,因为可以完全控制这些第三方代码,在必要的时候可以修改或者二次开发。

MIT许可证

MIT是和BSD一样宽泛的许可协议。你必须在你的发行版里包含原许可协议的声明,无论你是以二进制发布的还是以源代码发布的。作者只想保留版权,而无任何其他的限制,较BSD协议宽松。

Mozilla许可证

Mozilla公共许可证(英语:Mozilla Public License,简称MPL) 允许免费重发布、免费修改,但要求修改后的代码版权归软件的发起者。要求所有再发布者都得有一个专门的文件就对源代码程序修改的时间和修改的方式有描述。允许一个企业在自己已有的源代码库上加一个接口,除了接口程序的源代码以MPL 许可证的形式对外许可外,源代码库中的源代码就可以不用MPL许可证的方式强制对外许可。

Apache许可证

Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。需要满足的条件也和BSD类似:

需要给代码的用户一份Apache Licence; 如果你修改了代码,需要再被修改的文件中说明。 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。 如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。 Apache Licence也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。

该许可证要求在所有的源文件中的头部放置以下内容才能算协议对该文件有效: Copyright [yyyy] [name of copyright owner]

//[yyyy] 表示该源文件创建的年份。紧随其后的是 [name of copyright owner],即版权所有者。如果为个人项目,就写个人名称;若为团队项目,则宜写团队名称。

LGPL许可证

LGPL 允许以动态链接使用开源库。采用LGPL的代码,一般情况下它本身就是一个第三方库(LGPL最早的名字就是Library GPL),这时候开发人员仅仅用到了它的功能,而没有对库本身进行任何修改,那么开发人员也不必公布自己的商业源代码。但是如果修改LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须开源,并且采用LGPL协议

总结

严格程度:MIT>BSD>Apache>LGPL>Mozilla>GPL

=================================================================

问题2:安装centos ubuntu系统

详见我的博客地址:

​https://blog.51cto.com/u_4183862/2581444​

=================================================================

问题3:通过计算机基础和帮助的学习,完成学习ifconfig命令的使用。

最小化安装的centos系统,默认没有安装ifconfig命令需要先安装net-tools-2.0-0.25.20131004git.el7.x86_64

[root@Linux1 ~]#yum provides ifconfig
Loaded plugins: fastestmirror
Repository cr is listed more than once in the configuration
Repository fasttrack is listed more than once in the configuration
Loading mirror speeds from cached hostfile
extras/7/x86_64/filelists_db | 277 kB 00:00:00
mysql-connectors-community/x86_64/filelists_db | 35 kB 00:00:00
mysql-tools-community/x86_64/filelists_db | 325 kB 00:00:00
mysql80-community/x86_64/filelists_db | 1.9 MB 00:00:00
updates/7/x86_64/filelists_db | 8.7 MB 00:00:01
net-tools-2.0-0.25.20131004git.el7.x86_64 : Basic networking tools
Repo : @base
Matched from:
Filename : /usr/sbin/ifconfig

在linux中我们可以使用ifconfig命令查看网卡配置与网络状态等信息,好比我们在windows中查看网络配置信息ipconfig命令一样。

[root@Linux1 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.135.101.1 netmask 255.255.255.0 broadcast 10.135.101.255
inet6 fe80::3650:e415:dbdb:dde2 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:90:7e:94 txqueuelen 1000 (Ethernet)
RX packets 49579 bytes 3490314 (3.3 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1924 bytes 142574 (139.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 48 bytes 4080 (3.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 48 bytes 4080 (3.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:c5:c6:9a txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

​如上所示,使用ifconfig命令获取到的主要信息有:

  • 主机被检测到的网卡有ens33,UP表示“接口已启用”,RUNNING表示“接口在工作中”,BROADCAST表示“主机支持广播”,MULTICAST表示“主机支持多播”,mtu 1500表示“最大传输单元 1500字节”

inet 192.168.126.12 netmask 255.255.255.0 broadcast 192.168.126.255

解释:inet :网卡的IP地址;netmask :网络掩码;broadcast :广播地址。

ether 00:0c:29:d7:a2:4c txqueuelen 1000 (Ethernet)

解释:连接类型:Ethernet (以太网)或者HWaddr (此网卡的硬件mac地址);txqueuelen (网卡设置的传送队列长度)

RX packets 1183 bytes 100770 (98.4 KiB) RX errors 0 dropped 0 overruns 0 frame 0

解释:接收时,正确的数据包数1183;接收的数据量(98.4 KiB);

接收时,产生错误的数据包数为0,丢弃的数据包数为0;overruns 表示接收时,由于速度过快而丢失的数据包数为0;RX frame 表示接收时,发生frame错误而丢失的数据包数为0。

ifconfig不仅可以查看网卡配置与网络状态,还可以进行网络配置,常见用法如下

第一周作业:2022-11-20_apache_02

​注意:用ifconfig命令配置的网卡信息,在网卡重启或者机器重启后,所做的配置就不存在了。如果需要网络配置永久生效,需要修改相应的配置文件。

[root@Linux1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=27ca7b12-d136-4f0c-a53c-8cf338cf8ca5
DEVICE=ens33
ONBOOT=yes

=================================================================================

问题4:总结linux FHS结构

linux的文件系统分层结构FileSystem Hierarchy Standdard(简称FHS)。

定义了在Linux系统中的目录结构和目录内容,即让用户了解到已安装软件通常放置哪个目录下。类似于Windows操作系统中C盘的文件目录,FHS采用树形结构组织文件,定义了系统中每个区域的用途、所需要的最小构成的文件和目录,同时还给出了例外处理和矛盾处理。

  1. 文件系统目录结构:

第一周作业:2022-11-20_apache_03

  1. 文件和目录被组织成一个单根倒置树结构 ;
  2. 文件系统从根目录下开始,用“/”表示;
  3. 常见文件系统的目录功能:

/boot:存放内核文件(vmlinuz)、引导加载器(bootloader, grub)等引导文件都存放于此目录

/bin :所有用户使用的基本命令, OS 启动即会用到的程序

/sbin :管理类的基本命令, OS 启动即会用到的程序

/lib :启动时程序依赖的基本共享库文件,以及内核模块文件 (/lib/modules)

/lib64 :专用于 x86_64 系统上的辅助共享库文件存放位置

/etc :配置文件目录

/home/USERNAME :普通用户家目录

/root :管理员的家目录

/media :便携式移动设备挂载点

/mnt :临时文件系统挂载点

/dev :设备文件及特殊文件存储位置

b: block device ,随机访问

c: character device ,线性访问

/opt :第三方应用程序的安装位置 /tmp :临时文件存储位置

==============================================================

问题5:简要描述后期学习计划

  1. 每天只要有时间就学习,见缝插针的学习。
  2. 按要求完成每周的学习任务。
  3. 必须动手跟随老师做实操实验。
  4. 虽然时间很紧凑,但是要努力按时完成每周的学习笔记(不懂的知识点自己要添砖加瓦做扩展)。


标签:11,GPL,00,20,协议,代码,2022,BSD,源代码
From: https://blog.51cto.com/u_4183862/5870462

相关文章

  • CSP-S2022
    勉强混到CQ一等但是差\(5\)分\(7\)级勾(哭)。A.假期计划我们先不考虑\(4\)个点,考虑\(2\)个点的情况。我们发现可以枚举\(a\)点,再找到\(a\)能到达且\(1\)......
  • Centos7编译安装mysql8.0.20
    相关下载地址:gcchttps://ftp.mpi-inf.mpg.de/mirrors/gnu/mirror/gcc.gnu.org/pub/gcc/releases/cmakehttps://cmake.org/files/mysqlhttps://downloads......
  • 2022最新wifi大师,wifi分销小程序源码,亲测可用
     话不多说,直接上干货 微信搜索,wifi鑫速连,就可以获得免费源码,免费搭建源码:链接  ​......
  • 2018 Make Some Noise: Unleashing the Power of Convolutional Neural Networks for P
    一、CNN和人工噪声1Sample-levelCNN(RD网络)设计原则:类似于VGG结构的一维输入小过滤器连续卷积块直到特征维度下降到1通道个数从一个较小的数持续扩大引入......
  • 2022-11-19 vue+uniapp之微信小程序 video initial-time 无效
    如题,原因:不详,个人推测是因为video没有初始化完成导致initial-time赋值不成功导致。解决方案:给video绑定一个变量,在设置初始化播放时间的时候为false,赋值后设置为true,即:<......
  • 前端011-hover
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>hover</title><style>.menu{width:100px;background......
  • 2022csp普及组真题:解密(decode)
    2022csp普及组真题:解密(decode)题目【题目描述】给定一个正整数 k,有 k 次询问,每次给定三个正整数 ni,ei,di,求两个正整数 pi,qi, 使 ni=pi×qi, ei×......
  • VMware Fusion Pro for mac(vm虚拟机) v13.0.0(20802013)激活版
    VMwareFusionPro是一款功能强大的虚拟机软件,提供了在Mac上运行Windows以及数百个其他操作系统与Mac应用程序并行运行的能力,而无需重新启动!并且允许您从数百种受支持的操作......
  • 2022.11.19
    2022.11.19搞了搞我的博客园,(之前写是了些什么东西),搞了搞我的电脑。不知道为什么博客园上的背景时有时无的,可惜了我那么好看的图。哦!问题被wxf解决了。想AL了。不......
  • 2022-2023-1 20221322《计算机基础与程序设计》第十二周学习总结
    作业信息这个作业属于哪个课程<班级的链接>(2022-2023-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(2022-2023-1计算机基础与程序设计第十一周作......