计算机基础概论学习笔记01
1、计算机是什么?
早期的大型计算机其实就是计算器,计算器是指,接受用户输入的指令与数据,并经由中央处理器CPU的数学逻辑单元运算处理后,以产生或存储成有用的信息,并显示出来的工具。
因此只要有输入和输出,并能够对输入的数据进行计算的,就是计算机了。
我们现在使用的PC一般都有这么几个部件,主机,显示器,键盘鼠标。而主机里一般有,主板,CPU,内存条,硬盘,网卡,显卡,声卡,风扇,电源和机箱。分类有很多种方法,但其实计算机只有五大核心设备:
运算器+寄存器:
功能:运算和缓存,缓存的运算速度最快,而且容量很小,但是造价非常昂贵。我们有句话说,缓存为王,只要能提高CPU缓存来提高运行速度,就优先这个。所以我们一般衡量CPU的性能有两个重要的参数,其一是运算器的运行主频倍频,单位是Hz(赫兹),另一个就是缓存的速度和大小,缓存速度一般都很快而且很小,所以大一点点的缓存对性能的提升都是非常高的。因此,一级缓存和二级缓存的容量有时候比频率都会更重要一些。
控制器:
控制运算,比如可编程中断控制器,就是控制中断交互的,之所以能多任务处理就是有这个控制。这个和上面的运算器和寄存器都集成在CPU里面。
存储器:
我们常说的内存其实是指内存条,这就是我们所说的随机存储器RAM了,这个是直接和CPU通信的。所以我们的电脑运行的快慢,很大程度上也取决于它可同时于CPU交互的数据量的大小和速度。
开机后的内存里,最开始有一段是给bios用的,其后紧跟的是OS核心,这些是不能被应用程序使用的,被系统占用了。剩下的才是系统可调用的内存。
输入设备:鼠标,键盘等
输出设备:显示器,打印机等。
注意,硬盘,因为能物理存储数据,所以有时候它既是输入设备也是输出设备,我们运行的软件都是先存储在硬盘上,运行后,内存再从中读取,因此,硬盘速度越快,软件运行就越快。
2、计算机的运作方式
众所周知,我们上电按下开机后,计算机就会启动操作系统。现在的这个过程以及非常快,有的3-4秒就能完成这个操作。但其实这个过程很复杂。
计算机是硬件,人不能直接于硬件通话,所以我们要通过操作系统来分配硬件资源给系统里的软件使用。
而操作系统其实也并不能直接于硬件通信,操作系统说白了其实也是软件,是使用高级语言编写的,必须要翻译成机器可以识别的二进制语言才能识别。
好,我们再来说开机的这个过程,开机通电后,计算机先主板上的一块必须要一直通着电才能保存配置的只读存储器ROM读取BIOS(基本输入输出系统),这个BIOS就是直接与硬件通信的。通过这个BIOS来检查硬件是不是都OK能不能正常工作,不能就报错,能就继续下一步。这一步叫加点自检。
下一步就是去硬盘读取BIOS能识别的对应分区(不同的操作系统这些分区不一样,如UEFI和MBR就很不一样。)这个分区叫启动分区,boot 分区。里面包含了系统启动路径,启动文件,基本硬件驱动等等。
然后再根据启动分区里的配置文件,加载操作系统内核和自启软件应用程序。开机的过程就这样一步一步按部就班的完成了。什么样的操作系统都是这样的。
而我们的系统开机了之后,要运行一个软件,它是怎么运作的呢?
计算机遵循著名的木桶短板理论,它的整体运行速度要取决于整个机器中,性能最差的那一个设备。
寄存器一般与CPU工作在相同的频率上。而程序必须要遵循程序局部性原理和程序移植性原理。局部性取决于时间和空间,移植性原理必须保证在不同的环境能运行。
我们点击程序运行时,先要跟库打交道,发出执行请求,库再跟上层系统调用通信,系统调用将请求转发给系统内核,内核跟硬件通信,从硬盘上取出数据,并给它分配硬件资源如内存地址,将数据放到内存中去,再分配CPU去取数据执行,得到的结果,再一层层,通过硬件,内核,库,软件,返回给用户。
3、常见操作系统
操作系统简称OS,我们常见的有以下三类:
Windows:这主要是指微软Microsoft公司出品的windows类的桌面操作系统,从早期的DOS,到后来的95/98/2000/XP/visit/win7/win8/win8.1/win10等,其中还有一些server。这类操作系统偏向于图形化界面,界面简单友好,易于使用。一般在个人用户或小型企业上使用,因为它不够稳定,所以大型企业很少使用。
Unix:Unix是收费的操作系统,而且非常昂贵,种类也不少,但都是要收费的。比如我们现在使用apple的MAC或IOS都是Unix操作系统。
Linux:Linux是在Unix收费后诞生的开源操作系统,因此它是类Unix操作系统,有诸多著名的发行版,在企业中使用非常广泛,比如著名一些的linux操作系统,像RadHat,CentOS,Debian,Ubuntu,Minit等还有很多很多,因为其开源的特性,所以发张非常迅速。
OS重要的是内核,其实系统内核本身非常小,比如window nt,之所以那么大是因为有很多图像和自带的应用软件。
OS内核可以认为是一种虚拟通用软件,是用来负责分配和管理硬件资源的协调,切换和中断等操作的一种特殊的应用程序。
内核功能有:
进程管理
内存管理
文件系统
网络功能
硬件驱动
安全机制
我们的软件要在操作系统上运行,都要通过人机交互接口shell,有的是图形有的是命令行。然后再通过系统调用的转发给内核才能使用硬件资源并运行。有时候由于系统调用(system call)过于底层,还要通过库,库函数来调用接口执行。库只能被调用执行,只提供执行入口,调用接口,API高级接口,本身并不执行。
库说白了,其实就是将一个或多个系统调用封装起来做成更高级的调用接口的应用。
4、南桥和北桥
讲到计算机,就不得不提一下FSB前端总线。前端总线有两块重要的芯片,一块北桥,离CPU较近,属于高速总线,与CPU和主存储器等高速运行的设备连接,现在的CPU一般都已经集成了北桥。南桥连接慢速设备,如硬盘,USB,网卡等外设。
有些企业有时候为了提高机器运行速度和访问频率会直接在CPU和北桥上连接高速固态硬盘来提高快速磁盘I/O,这也是属于硬件优化的一种。
5、Shell
Shell 又叫壳,位于kernel操作系统内核的下层(其实中间还有系统调用和库),有两个功能,一是接受用户的指令(运行应用程序),二是将用户指令或命令翻译成机器语言。
shell 也称人机交互界面,有图形化界面GUI,也有命令行界面CLI。以linux为例,常见的图形化接口就有KDE(C++写的),Gnome(C写的)。CLI命令行界面有 sh,bash,csh,zsh,ksh,tcsh等。
6、密码策略
计算机有不同的用户,不同的用户之间的数据要具有保密性。这就需要授权。而我们最常用的授权方式就是使用密码策略。
创建密码时,为了提高安全性,最好遵循以下策略:
1.至少使用大写字母,小写字母,数字,特殊符号四种中的三种。
2.密码位数足够长,一般建议至少不少于8位字符
3.尽量使用无规律的随机字符
4.定期或不定期的更换密码
5.不使用重复的字符和用过的密码
下一篇将会讲述linux基本。 ------------杨广