第一周作业

1.描述计算机的组成及其功能:
根据冯诺依曼体系可分为:输入设备,输出设备和内存,内存中右分为控制器和运算器共五大部分。由输入设备输入命令或数据,然后内存中的运算器进行运算,由控制器进行控制,由输出设备输出。

2.描述内核功能及其作用
操作系统有kernel和application组成,在操作系统运转中,kernel就是一个通用型的程序,并不能实现具体的功能,比如看视频,放音乐等,kernel仅用于实现一些通用性功能及连接底层硬件驱动。拥有系统调用,硬件驱动,进程管理,文件管理,设备管理,储存管理,网络通信等。

3.按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别
第一周作业
所有发行版都是使用的linux内核,都要遵循GUN的GPL开源协议。而且既然都是发行版,就都有自己的版本号。区别是不同版本使用了不同的包管理器,REDHAT和SALCKWARE使用的rmp包管理系统,包文件以rpm为扩展名;而DEBIAN系统则使用DPKG包管理系统,包文件以deb为扩展名

4.描述常见的开源协议(GPL,LGPL,BSD,Apache)以及开源协议的区别
GPL:GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。
GPL的“传染性”在于:只要在一个软件中使用(”使用”指类库引用,修改后的代码或者衍生代码)GPL 协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和免费

LGPL:LGPL是GPL的一个为主要为类库使用设计的开源协议。LGPL允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。因此LGPL协议的开源代码很适合作为第三方类库被商业软件引用,但不适合希望以LGPL协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。

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

当使用了BSD协议的代码,或者以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:

如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议;如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议;不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。因此,很多公司企业在选择开源软件的时候都首选BSD协议,因为可以完全控制这些第三方的代码,而且在必要的时候可以进行修改或者二次开发。

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

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

5.描述linux的哲学思想,并按照自己的理解对其进行解释性描述
linux哲学思想之一:即一切皆文件,系统中的目录,块设备,字符设备,连接,套接字等全是以文件形式表示。
linux哲学思想之二:配置数据储存在文本中。linux不像windows,把配置数据存于注册表中,出现错误后没有相关能力难以纠错;而linux的配置数据全是存储与文本文件中,无论什么配置都只需用文本编辑器修改配置文档即可
linux哲学思想之三:连接程序,共同完成复杂功能。复杂的任务可以通过连接或组合多个简单的程序来实现。
linux哲学思想之四:小型,单一用途的程序:程序和可执行文件不要太复杂,简单粗暴,保证高效
linux哲学思想之五:避免令人困惑的用户界面。windows不是开源的,有问题要不重启要不重装,没办法。开源的linux则不然,可以不要图形界面,仅以命令行界面操作,可以以命令的形式排错,配置等

6.描述linux目录结构以及目录结构命名规范
linux目录结构的命名规范都遵从文件系统层次化标准,即FHS协议
FHS协助规定了linux目录需要呈现树形目录结构:
/bin:所有用户可用的基本命令程序文件

/sbin:供系统管理使用的工具程序

/boot:引导加载器必须用到的各静态文件:kernel,initramfs,grub等

/dev:存储特殊文件或设备文件
设备有两种类型:字符设备(线性设备),块设备(随机设备)

/etc:系统程序的配置文件,只能为静态

/home:普通的用户家目录的集中位置,一般每个普通的家目录默认为此目录下与用户名同名的子目录,/home/USERNAME\

/root:管理员的家目录;可选

/lib:为系统启动或根文件系统上的应用程序(bin/sbin等)提供共享库,以及为内核提供内核模块
linc.so.:动态连接的C库
ld
:运行时链接器/加载器
modules:用于存储内核模块的目录

/lib64:64位系统特有的存放64位共享库的路径

/media:便携式设备挂载点,cdrom,floppy等

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

/opt:附加应用程序的安装位置:可选路径

/srv:当前主机为服务提供的数据

/tmp:为那些会产生临时文件的程序提供的用于储存临时文件的目录;可供所有用户执行写入操作;有特殊权限

/usr:usr Hierarchy,全局共享的只读数据路径
bin,sbin,lib,lib64,
include:C程序头文件
share:命令手册页的自带文档等架构特有的文件的储存位置
local:另一个层级目录
Xllr6:X-Window程序的安装位置
src:程序源码文件的储存位置

/usr/lcoal:Local hierarchy,让系统管理员安装本地应用程序;也通常用于安装第三方程序

/var: /var Hierarchy,存储常发生变化的数据目录

特殊目录:
/sys:stsfs虚拟文件系统提供了一种比porc更为理想的访问内核数据的途径,其主要作用在于为管理linux设备一共一种统一的模型的接口

/proc:基于内存的虚拟文件系统,内核及进程存储其相关信息;他们多为内核参数,例如:net.ipve.ip_forward,
虚拟为net/ipv4/ip_forward,存储与/proc/sys/,因此其完整路径为/porc/sys/net/ipv4/ip_forward;

参考:www.ibm.com/developerworks/cn/linux/l-cn-sysfs/

第一周作业