第一周作业

1、描述计算机的组成及其功能。

一般而言,计算机的组成可分为两部分

一部分指的是硬件部分。根据冯诺依曼的计算机体系架构,一台计算机主要分为五个部分:控制器、运算器、存储器、输入设备、输出设备

二部分是指的计算机软件。汇编语言、系统软件和应用软件,它不像硬件可以有形状,只有二者结合才能称为一台标准的计算机

功能:

硬件部分:

(1)控制器:

控制器cu,CPU的组成部分之一,通常与运算器统称为中央处理器,即CUP,为计算机的核心中枢,通过控制器,可以有效的控制和协调整个计算机的动作。

保障不同数率传输的数据可以得到缓冲

甄别输入输出设备传送数据的对错

实现数据与数据之间的交换

指令和识别命令

运算器:CUP的组成部分之一。包含算数逻辑单元、累加器、状态寄存器、通用寄存器组等,主要作用如下:

算数逻辑单元:进行二位元的算数运算,如加减乘(不包括整数除)、移位等

累加器:储存计算产生的中间结果。保证算数逻辑单元不用将计算结果写入内存

状态寄存器:存放两类信息

(1)体现当前指令执行结果的状态信息

(2)控制信息

通用寄存器组:可用于传送和暂存数据,也可以参与算数逻辑运算,通用寄存器组包括以下几类:数据寄存器、变址寄存器、指针寄存器、段寄存器、指令指针寄存器

存储器:存储程序和数据,并能在计算机运行过程中高速、自动的完成从程序或数据的存取,也就是俗称为内存RAM

输入设备:外部设备之一。作用是将程序、原始数据、文字、字符、控制命令或现场采集的数据输入到计算机。常见的输入设备有:键盘、鼠标、磁盘等等。

输出设备:外部设备之一。作用是把计算机的中间结果或最后结果、机内的各种数据及文字等信息输出来。常见的输出设备有:显示屏、打印机、音响等等。


软件部分:

汇编语言:一种用于CPU的低级语言,它使用助记符代替二进制语言,方便人类的阅读及操作。但一种汇编语言只能与相对应的计算机系统结构对应,无法在不同平台移植

系统软件:用来运算或控制硬件所开发的计算机软件,如操作系统、编译器、数据库等等。

2、描述内核功能以及作用

内核结构:

操作系统是一个用来和硬件打交道并为用户程序提供一个有限服务集的低级支撑软件。一个计算机系统是一个硬件和软件的共生体,它们相互依赖,不可分割。计算机的硬件,含有外围设备、处理器、内存、硬盘和其他的电子设备组成计算机的发动机。但是没有软件来操作和控制它,自身是不能工作的。完成这个控制工作的软件就称为操作系统,在Linux的术语中被称为“内核”,也可以称为“核心”。Linux内核的主要模块(或组件)分以下几个部分:存储管理、CPU和进程管理、文件系统、设备管理和驱动、网络通信,以及系统的初始化(引导)、系统调用等。

3、按系列罗列常见Linux的发行版,并描述不同发行版之间的联系与区别。

Linux发行版是一种为一般用户预先集成好的Linux操作系统及各种应用软件。一般不需要用户重新编译,在直接安装之后,只需要作出小幅度的更改设置即可。Linux发行版通常包含了桌面环境、办公包、媒体播放器、数据库等应用软件。这些操作系统通常使用Linux、以及来自GNU计划的软件、和基于X window的图形界面组成。

著名的Linux发行版

按照程序包管理器的不同,通常Linux发行版也被分成了不同的派系。


Debian系列,包括Debian和Ubuntu等,Debian是社区类Linux的典范,是迄今为止最遵循GNU规范的Linux系统。Debian最早由Ian Murdock于1993年创建,分为三个版本分支:stable,testing和unstable。其中,unstable为最新的测试版本,其中包括最新的软件包

4、描述常见的开源协议(GPL,LGPL, BSD,Apache等)以及开源协议的区别

什么是许可协议?

什么是许可,当你为你的产品签发许可,你是在出让自己的权利,不过,你仍然拥有版权和专利(如果申请了的话),许可的目的是,向使用你产品的人提供一定的权限。

不管产品是免费向公众分发,还是出售,制定一份许可协议非常有用,否则,对于前者,你相当于放弃了自己的所有的权利,任何人都没有义务表明你的原始作者身份,对于后者,你将不得不花费比开发更多的经历用来逐个处理用户的授权问题。

而开源许可协议使这些事情变的简单,开发者很容易向一个项目贡献自己的代码,它还可以保护你原始作者的身份,使你至少获得认可,开源许可协议还可以阻止其它人将某个产品据为己有。以下是开源界的5大许可协议。

GNU GPL:

GNU General Public Licence(GPL)有可能是开源界最常用的许可模式。GPL保证了所有开发者的权利,同时为使用者提供了足够的复制,分发,修改的权利;

1.可自由复制

你可以将软件复制到你的电脑,你客户的电脑,或者任何地方。复制份数没有任何限制

2.可自由分发

在你的网站提供下载,拷贝到U盘送人,或者将源代码打印出来从窗户扔出去(环保起见,请别这样做)

3.可以用来盈利

你可以在分发软件的时候收费,但你必须在收费前向你的客户提供该软件的GUN GPL许可协议,以便让他们知道,他们可以从别的渠道免费得到这份软件,以及你收费的理由

4.可自由修改

如果你想添加或删除某个功能,没问题,如果你想在别的项目中使用部分代码,也没问题,唯一的要求是,使用了这段代码的项目也必须使用GPL协议

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

GNU LGPL

GNU还有另外一种协议,叫做LGPL,它对产品所保留的权利比GPL少,总的来说,LGPL适合那些用于非GPL或非开源产品的开源类库或框架。因为GPL要求,使用了GPL代码的产品必须也使用GPL协议,开发者不允许将GPL代码用于商业产品,LGPL绕过了这一限制。

BSD

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

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

Apache

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

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

1.永久权利

一旦被授权,永久拥有

2.全球范围的权利

在一个国家获得授权,适用于所有国家。假如你在美国,许可是从印度授权的,也没有问题

3.授权免费,且无版税

前期,后期均无任何费用

4.授权无排他性

任何人都可以获得授权

5.授权不可撤销

一旦获得授权,没有任何人可以取消。比如,你基于该产品代码开发了衍生产品,你不用担心会在某一天被禁止使用该代码。

总结:

简单的说,就是你使用了GPL许可证的软件,那么你的软件产品就被GPL“传染”了,也必须“自由”!这对国内的商业软件开发商来说是很难接受的

但是LGPL,Apache,BSD就不存在这个问题,后两者只要求你对软件原作者的工作进行必要的认可和尊重就行了,所以这是适合商业应用的。

所以在选择应用开源软件时,一定要明白自己的用途,选择合适许可证下的软件。

分发代码方面包含一些要求,主要是,要在声明中对参与开发的人给予认可并包含一份许可协议原文

5、描述Linux的哲学思想,并按照自己的理解对其进行解释性描述。

一切皆文件

几乎所有的资源抽象为文件形式,包括设备,通信接口等,比如说物理终端:/dev/console

单一目的的小程序

一个程序只做一件事

组合小程序完成复杂任务

复杂的任务由多个程序组合完成

尽量避免跟用户交互

易于以变成的方式实现自动化任务

使用文本文件保存配置信息

文本是最易于实现的底层接口表现形式。通过文本保存,就可以使用文本编辑器实现大多数程序的管理工作


6、描述linux目录结构以及目录结构命名规定。

/boot:系统引导启动时要加载的静态文件、内核和ramdisk及grub等

/bin:所有用户可用的基本命令程序文件

/sbin:管理类基本命令,供系统管理使用的工具程序

/lib:基本共享库文件,以及内核模块文件

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

/etc:系统程序的配置文件,只能为静态,不能为二进制程序,大多数应用程序的配置文件集中存放位置

/home:普通用户的家目录统一存放位置,每个用户的主目录通常默认为/home/username

/root:管理员root的家目录

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

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

/dev:所有设备文件及特殊文件存储位置,存储特殊文件(虚拟文件)或设备文件,字符设备和块设备

/opt:第三方应用程序的安装位置

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

/tmp:为那些会产生临时文件的程序提供的用于存储临时文件的目录,可供所有用户使用,有特殊权限

/usr:全局共享的只读数据路径

    bin:保证系统拥有完整功能而提供的应用程序

    sbin:

    lib:

    lib64

    include:C程序的头文件

    share:命令手册也和自带文档等架构特有的文件的存储位置

    local:第三方应用程序的安装位置(另一个层级目录)

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

    cache:应用程序缓存数据目录

    lib:应用程序状态信息数据

    local:专用于为/usr/local下的应用程序存储可变数据

    lock:锁定文件

    log:日志目录及文件

    opt:专用于为/opt下的应用程序存储可变数据

    run:运行中的进程相关的数据,通常用于存储进程的pid文件

    spool:应用程序的数据池,邮件目录

    tmp:临时文件,保存系统两次重启之间的临时数据

/proc:用于输入内核与进程信息相关的虚拟文件系统,也叫伪文件系统,由内核参数映射而来

/sys:用于输出当前系统上硬件设备相关信息的虚拟文件系统,内核中与硬件设备相关的信息映射

/selinux:selinux相关的安全策略等信息存储位置


2、打印显示当前时间,格式是:20181209211008

[root@localhost /]# date +%Y%m%d%H%M

4、显示/etc目录下,所有以.d结尾的文件或目录

[root@localhost /]# ls /etc/*.d

5、显示/etc目录下,所有.conf结尾,且以m,n,r,p开头的文件或目录

[root@localhost /]# ls /etc/[mnrp]*.conf

6、创建/app/rootdir目录,并复制/root下所有文件到该目录内, 要求保留原有权限

[root@localhost /]# mkdir -p /app/rootdir;cp -r /root/* /app/rootdir

7、使用命令行展开功能,创建/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b,在/tmp目录下创建目录:x_y, x_z, q_y, q_z

[root@localhost tmp]# mkdir -p /tmp/{a1/{a,b},a2};mkdir -p /tmp/{x,q}_{y,z}

你可能感兴趣的:(第一周作业)