计算机的组成及其功能
计算机(computer)俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。由硬件系统和软件系统两部分所组成。
-
硬件系统:
根据冯·诺伊曼提出的计算机体系架构,一台计算机主要分为五个部分:控制器、运算器、存储器、输入设备、输出设备 。- 中央处理器(CPU):是一台计算机的运算核心(Core)和控制核心(Control Unit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据。
-
存储器(Memory):
- 随机存储器 (Random Access Memory,简称 RAM),是一种可以随机读、写数据的存储器,也称为读写存储器。RAM有以下两个特点:一是可以读出,也可以写入。读出时并不损坏原来存储的内容,只有写入时才修改原来所存储的内容。二是RAM只能用于暂时存放信息,一旦断电,存储内容立即消失,即具有易失性。
- 只读存储器(Read Only Memory,简称为ROM),它的特点是只能读出原有的内容,不能由用户再写入新内容。原来存储的内容是采用掩膜技术由厂家一次性写入的,并永久保存下来。它一般 用来存放专用的固定的程序和数据。只读存储器是一种非易失性存储器,一旦写入信息后,无需外加电源来保存信息,不会因断电而丢失。
- 输入设备(Input):是人或外部与计算机进行交互的一种装置,用于把原始数据和处理这些数的程序输入到计算机中。键盘,鼠标,摄像头,扫描仪,光笔,手写输入板,游戏杆,语音输入装置等都属于输入设备。
- 输出设备(Output):是计算机硬件系统的终端设备,用于接收计算机数据的输出显示、打印、声音、控制外围设备操作等。也是把各种计算结果数据或信息以数字、字符、图像、声音等形式表现出来。常见的输出设备有显示器、打印机、绘图仪、影像输出系统、语音输出系统、磁记录设备等。
-
软件系统:
是指为方便使用计算机和提高使用效率而组织的程序以及用于开发、使用和维护的有关文档。分为系统软件和应用软件两大类。- 系统软件(System software):由一组控制计算机系统并管理其资源的程序组成,其主要功能包括:启动计算机,存储、加载和执行应用程序,对文件进行排序、检索,将程序语言翻译成机器语言等。实际上,系统软件可以看作用户与计算机的接口,它为应用软件和用户提供了控制、访问硬件的手段,这些功能主要由操作系统完成。此外,编译系统和各种工具软件也属此类,它们从另一方面辅助用户使用计算机。
- 应用软件:为解决各类实际问题而设计的程序系统称为应用软件。从其服务对象的角度,又可分为通用软件和专用软件两类。
内核的功能及作用
内核(kernel)是整个操作系统的最底层,它负责整个硬件的驱动,以及提供各种系统所需的核心功能。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
常见的Linux发行版,及不同发行版之间的联系与区别。
Linux的发行版分为商业版和社区版。它们是相对应的,商业版是服务收费的版本;而社区版就是由志愿者开发、维护的Linux,完全免费。
- 商业版:Red Hat 、SUSE 、Oracle
- 社区版:Fedora 、CentOS 、OpenSUSE 、Debian 、Gentoo
常见的开源协议(GPL,LGPL, BSD,Apache等)以及开源协议的区别
Linux的哲学思想
-
一切皆文件,包括硬件:
这是 Unix/Linux 的基本哲学之一。不仅普通的文件,目录、字符设备、块设备、 套接字等在 Unix/Linux 中都是以文件被对待;它们虽然类型不同,但是对其提供的却是同一套操作界面。 -
系统中有很多小型的、单一用途的程序:
程序和可执行文件不要太复杂,这样才能保证了Linux内核的高效运行。 -
可通过连接程序,共同完成复杂功能:
复杂的任务可以通过连接多个简单的程序实现复杂的功能。对于复杂的功能Linux通过许多简单程序的组合等方式实现,在保证简单功能的高效性的同时,复杂的程序也必然是高效性的。 -
避免令人困惑的用户界面:
相对于windows来说,Linux在生产环境中,一般是不安装图形环境的。以这种字符界面下,我们看到信息相对于图形来说是有点难懂的,等大家熟悉以后就会觉的没什么了。虽然如此,一般是真实可靠的。不会像图形环境中,看到的信息时常是不可靠,甚至是错误的。典型的案例就是windows的网上邻居,上面显示的计算机列表常常是不真实的。实际上在windows中,我们也常用一些命令来确认信息的。比如用图形配置完IP地址后,一般要在命令提示符下输入ipconfig命令来验证刚刚用图形实现的IP信息的正确性。 -
配置数据存储在文本中:
在windows中配置信息一般的都是存放在注册表中的。而Linux中配置一般都是存在/etc/目录下的对应不同的配置文件,一般都是有一定格式要求的文本文件。所以如果配置出了问题,可以很方便的用一些文本编辑工具如vi,gedit等来修改。而不会出现像window无法打开注册表的这种情况。即使故障导致系统无法启动,也可以通过光盘或U盘启动,进入到修复模式下,用文本编辑工具修改错误文件,从而达到修复的目的。
Linux的目录结构以及目录结构命名规定
Linux目录结构:
/bin #存放系统命令
/boot #存放着系统的启动文件和内核
/dev #设备文件主目录
/proc #系统进程和系统硬件信息
/etc #系统主配置文件主目录
/var #系统配置文件主目录
/home #普通用户的家目录
/lib #系统库文件存放的目录 .dll
/lib64 #64位系统库文件存放的目录 .dll
/usr #系统帮助文档以及源码包安装位置(usr目录是最庞大的目录,要用的应用程序和文件几乎都在这个目录)
/sbin #超级用户使用的命令存放的目录
/mnt #用户挂载目录
/run #存放当前运行程序库的目录(当前运行的目录)
/root #超级用户root家目录
/tmp #临时文件存放目录(系统启动过程中会产生一些临时文件,这些临时文件就存放在tmp目录下,如果说tmp目录没有存储空间,系统一定启动不起来)
/media #可移动介质挂载点
/opt #第三方应用程序文件存放目录
命名法则及规定:
-
文件命令规则:
- 除了/(根目录)之外,所有的字符都合法。
- 有些字符最好不用,如空格符、制表符、退格符和字符@、#、¥、()、- 等。
- 避免使用 “ . ” 作为普通文件名的第一个字符。
- 大小写敏感。
-
变量命名规则:
- 变量名必须有一定的意义,并且意义准确。例如有一个变量用于保存图书的数目,可以命名为number_of_book或者num_of_book。不建议使用i,因为它没有意义。也不建议使用number或book,因为意义不准确。
- 不建议大小写混用。如定义一个计数变量,int nCount;这在Windows中是一个很好的变量名,其中nCount的首字母n用来说明这个变量的类型是int。但在Linux下不建议大小写混合使用,一般标识符只由小写字母,数字和下划线构成。
- 在失去意义的情况下,尽量使用较短的变量名。例如有一个变量,用于暂时存储一个计数值,把变量命名为tmp_count显然要比this_is_a_temperary_counter好。
- 不采用匈牙利命名法表示变量的类型。如int nCount;n用于说明变量的类型,在Linux中不建议这样命名变量。
- 函数名应该以动词开头,因为函数是一组具有特定功能的语句块。比如一个函数,它用于取得外部输入的数值,则可以命名为get_input_number。
- 尽量避免使用全局变量。