二、描述内核功能以及作用
1、系统调用接口:通过这个接口,程序开发人员可以轻松的与内核沟通,进一步利用硬件资源;
2、进程控制:在多任务环境中,一台计算机可能同时又很多的作业等待CPU运算处理,内核这时必须能够控制这些作业并有效的分配CPU的资源;
3、内存管理:控制整个系统的内存;如果内存不足,内核还有提供虚拟内存的功能;
4、文件系统管理:文件系统的管理,例如数据的输入/输出及不同文件格式的支持等,如果核心不能识别某个文件系统,那么将无法使用该文件格式的文件。例如,Windows 98就不能识别NTFS文件格式的硬盘;
5、设备驱动程序:硬件管理是内核的主要工作之一,设备驱动程序就是内核需要做的事情。“可加载模块”功能可以将驱动程序编辑成模块,而不需要重新编译核心。
内核负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
三、按系列罗列常见Linux的发行版,并描述不同发行版之间的联系与区别。
1、Debian:三大主流发行版之一,以社区方式运作,没有商业公司支持
knopix是基于Debian的二次发行
ubuntu是基于Debian的二次发行
2、slackware:三大主流发行版之一,
slackware是SLS的一个分支
slackware中有一个著名的子分支-S.U.S.E。
S.U.S.E企业版分支-SLES。
S.U.S.E个人版分支-openSUSE。
3、redhat:三大主流发行版之一,
redhat个人版分支-Fedora Core
redhat企业版分支-Red Hat Enterprise
CentOS是基于Red Hat Enterprise版的二次发行
Oracle Enterprise是基于Red Hat Enterprise版的二次发行
四、描述常见的开源协议(GPL,LGPL, BSD,Apache等)以及开源协议的区别
1、GPL
我们很熟悉的Linux就是采用了GPL。GPL协议和BSD, Apache Licence等鼓励代码重用的许可很不一样。GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代 码做为闭源的商业软件发布和销售。这也就是为什么我们能用免费的各种linux,包括商业公司的linux和linux上各种各样的由个人,组织,以及商 业软件公司开发的免费软件了。
GPL协议的主要内容是只要在一个软件中使用(”使用”指类库引用,修改后的代码或者衍生代码)GPL 协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和免费。这就是所谓的”传染性”。GPL协议的产品作为一个单独的产品使用没有任何问题, 还可以享受免费的优势。
由于GPL严格要求使用了GPL类库的软件产品必须使用GPL协议,对于使用GPL协议的开源代码,商业软件或者对代码有保密要求的部门就不适合集成/采用作为类库和二次开发的基础。
其它细节如再发布的时候需要伴随GPL协议等和BSD/Apache等类似。
2、LGPL
LGPL 是GPL的一个为主要为类库使用设计的开源协议。和GPL要求任何使用/修改/衍生之GPL类库的的软件必须采用GPL协议不同。LGPL 允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并 发布和销售。
但是如果修改LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议。因 此LGPL协议的开源 代码很适合作为第三方类库被商业软件引用,但不适合希望以LGPL协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。
GPL/LGPL都保障原作者的知识产权,避免有人利用开源代码复制并开发类似的产品。
3、BSD
BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。
但”为所欲为”的前提当你发布使用了BSD协议的代码,或者以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:
如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。
如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。
不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。
BSD 代码鼓励代码共享,但需要尊重代码作者的著作权。BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售,因此是对 商业集成很友好的协议。而很多的公司企业在选用开源产品的时候都首选BSD协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。
AL2.0
4、Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。
需要满足的条件也和BSD类似:
需要给代码的用户一份Apache Licence
如果你修改了代码,需要在被修改的文件中说明。
在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。
如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。
Apache Licence也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。
五、描述Linux的哲学思想,并按照自己的理解对其进行解释性描述。
1.一切皆文件。
几乎把所有的资源系统抽象为文件形式:包括硬件设备,甚至通信接口等,
作用:提高资源管理效率。
如:物理终端:/dev/console
虚拟终端:/dev/tty#(#为1~6)
串行终端:/dev/ttyS#
伪终端:/dev/pts/#
?2.小型,单一用途的程序:?一个程序只做一件事,并且做好;组合小程序完成复杂任务。作用:程序分工明确,运行后方便进程管理。程序代码也轻量化,高效,容易修复错误。
3.链接程序,共同完成复杂的任务。写脚本,用于复杂的任务。
4.避免令人困惑的用户界面。都是用于字符界面而不用图形界面。
5.配置数据存储在文本中。
linux所有的配置文件都存放在文本配置文件当中,无论什么配置修改都只需修改其配置文件即可,配置文件时文本形式的只需任意一款文本编辑器修改即可而不是类似于windows那样将保存在注册表中,并且windows的注册表需要专门的二进制或十六进制的编辑器才可编辑,修改比较复杂!
六、描述linux目录结构以及目录结构命名规定
linux系统采用文件系统层次化标准(Filesystem Hierarchy Standard,FHS)形式来管理目录文件。
bin (binaries)存放二进制可执行文件
sbin (super user binaries)存放二进制可执行文件,只有root才能访问
etc (etcetera)存放系统配置文件
usr (unix shared resources)用于存放共享的系统资源
home 存放用户文件的根目录
root 超级用户目录
dev (devices)用于存放设备文件
lib (library)存放跟文件系统中的程序运行所需要的共享库及内核模块
boot 存放用于系统引导时使用的各种文件
tmp (temporary)用于存放各种临时文件
var (variable)用于存放运行时需要改变数据的文件
opt 主要是存储第三方软件的文件
原文:https://blog.51cto.com/14423221/2415606