一、计算机的简述
电子计算机,也叫做电脑(computer),是一种用于高速计算的电子计算机器。通过计算机,可以实现计算、存储等功能电子计算机,也叫做电脑(computer),通过计算机,可以实现计算、存储等功能
二、计算机的组成和功能
(1)硬件系统
根据冯诺伊曼体系提出的计算机体系架构,主要分为五个部分:控制器、运算器、存储器、输入设备、输出设备
运算器:对数据进行各种运算
存储器:存储程序和各种数据信息,并能在计算机运行过程中高速、自动地完成程序或数据的存取
控制器:CPU的组成部分之一,通过控制器,可以有效的控制和协调整个计算机的如下动作
– 保障不同数率传输的数据可以得到缓冲
– 甄别IO设备传送数据的正错
– 实现数据与数据之间的交换
– 接收和识别命令
输入设备:将程序、原始数据、文字、字符、控制命令或现场采集的数据输入到计算机。常见的输入设备有:键盘、鼠标、磁带机、磁盘机、光盘机等
输出设备:把计算机加工处理的结果变换为人或其它设备所能接收和识别的信息形式如文字、数字、图形、声音、电压等。常用的输出设备有显示器、打印机、绘图仪等
(2)软件系统
汇编语言:用于cpu的低级语言。它使用助记符代替二进制语言,方便人类的阅读及操作。但一种汇编语言只能与相对应的计算机系统结构对应,无法在不同平台移植
系统软件:用来运行或控制硬件所开发的计算机软件
常见的系统软件包含:
操作系统(Operating system):控制与管理硬件及软件资源,并提供用户操作接口,完成人机交互的软件,常见的有Unix、GNU/Linux、 MAC OS X、Microsoft Windows等
编译器(compiler):将使用汇编语言编写的代码,转换成计算机可识别的机器语言,常见的有GCC
解释器(interpreter):将高级编程语言一行一行解释运行。它的好处是可以消除编译整个程序的负担,缺点则是运行速度比较缓慢,且使用解释器的代码在运行过程中,不可脱离解释器。常见的使用解释器的语言包括Perl、Python、Ruby等
连接器(linker):将由汇编器或编译器产生的目标文件和外部程序库链接为一个可执行文件
加载器(loader):负责将程序加载到内存中,并配置内存与相关参数,使之能够运行
应用软件(application software):为了某种特定用途而被开发的软件。它可以是一个特定的程序,也可以是一个由众多独立程序组成的庞大的软件系统
三、内核功能以及作用
内核:内核是基于硬件资源的通用解释器。负责系统的进程管理、内存管理、文件系统、网络功能、设备管理
四、常见Linux的发行版,并描述不同发行版之间的联系与区别
Centos:CentOS是一个RHEL克隆版。这两个发行版之间唯一的技术差异就是品牌 – CentOS用自己的所有代码取代了所有的红帽商标和标识。尽管如此,红帽与CentOS之间的关系仍然保持友好,许多CentOS开发者与Red Hat保持着紧密的联系,甚至直接受雇于Red Hat。
Ubuntu:基于Debian“Sid”分支,使用的是GNOME,Firefox和LibreOffice等一些著名软件包的最新版本。
openSUSE:基于Slackware下的SUSE分支开发
四、描述常见的开源协议(GPL,LGPL, BSD,Apache等)以及开源协议的区别
GPL:
GPL授予程序接受人以下权利,或称“自由”:
* 以任何目的运行此程序的自由
* 以学习程序工作机理为目的,对程序进行修改的自由(能得到源代码是前提)
* 再发行复制件的自由
* 改进此程序,并公开发布改进的自由(能得到源代码是前提)
LGPL:LGPL是GPL的变种,也是GNU为了得到更多的甚至是商用软件开发商的支持而提出的。与GPL的最大不同是,可以私有使用LGPL授权的自由软件,开发出来的新软件可以是私有的而不需要是自由软件。所以任何公司在使用自由软件之前应该保证在LGPL或其它GPL变种的授权下。
BSD:BSD授权许可证具有多种授权许可证。总的来说你可以对软件任意处理,只要你在软件中注明其是来自于那个项目的就可以了。也就是说你具有更大的自由度来处置软件。如果你对软件进行了修改,你可以限制其他使用者得到你修改的软件的自由。
Apache:
Apache License是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。需要满足的条件:
* 需要给代码的用户一份Apache License
* 如果你修改了代码,需要再被修改的文件中说明
* 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议、商标、专利声明和其他原来作者规定需要包含的说明
* 如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache License。你可以在Notice中增加自己的许可,但不可以表现为对Apache License构成更改
Apache License也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。
五、描述Linux的哲学思想,并按照自己的理解对其进行解释性描述。
一切皆文件。统一的方便管理
六、描述linux目录结构以及目录结构命名规定
/bin:所有用户可用的基本命令程序文件
/sbin:供系统管理使用的工具程序
/boot:引导加载器必须用到的各静态文件:kernel, initramfs(initrd), grub等
/dev:存储特殊文件或设备文件
/etc:系统程序的配置文件
/home:普通的家目录的集中位置
/root:管理员的家目录
/lib:为系统启动或根文件系统上的应用程序(/bin, /sbin等)提供共享库,以及为内核提供内核模块
/lib64:64位系统特有的存放64位共享库的路径
/media:便携式设备挂载点,cdrom, floppy等
/mnt:其它文件系统的临时挂载点
/opt:附加应用程序的安装位置
/srv:当前主机为服务提供的数据
/tmp:为那些会产生临时文件的程序提供的用于存储临时文件的目录;所有用户执行写入操作具有特殊权限
/usr:全局共享的只读数据路径
/usr/local:让系统管理员安装本地应用程序;也通常用于安装第三方程序
/var:存储常发生变化的数据的目录
/proc:基于内存的虚拟文件系统,用于为内核及进程存储其相关信息
/sys:sysfs虚拟文件系统提供了一种比proc更为理想的访问内核数据的途径;其主要作用在于为管理Linux设备提供一种统一模型的的接口
目录结构命名规定:
几乎所有的Linux版本都会遵循FHS(Filesystem Hierarchy Standard)。FHS采用树形结构组织文件。FHS定义了系统中每个区域的用途、所需要的最小构成的文件和目录,同时还给出了例外处理与矛盾处理