Linux学习day01笔记
计算机基本组成
计算机基本组成
最底层为硬件--CPU,硬盘,显示器等,中间层为操作系统(内核,OS也是软件),通过API接口,最外层通过高级语言即可编程开发应用程序。
shell为人机交互接口,即OS的外壳,负责接收,理解用户的指令,传输给内核。sheel分为图形化界面接口和命令行接口
内核功能
-
进程管理
-
内存管理
-
文件系统管理
-
网络管理
-
硬件驱动
-
安全机制等等
-
CPU:主要由运算器,寄存器,控制器组成,当然,还有缓存,比如一级缓存,二级缓存等
-
内存:存放数据,命令行等,
-
硬盘
-
显示器
一些设备和概念
- ROM:ROM是只读存储器(Read-Only Memory)的简称,是一种只能读出事先所存数据的固态半导体存储器。其特性是一旦储存资料就无法再将之改变或删除。通常用在不需经常变更资料的电子或电脑系统中,并且资料不会因为电源关闭而消失。
- RAM:随机存取存储器(random access memory,RAM)又称作"随机存储器",是与CPU直接交换数据的内部存储器,也叫主存(内存)。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。
- 中断控制(中断(interrupt):键盘输入,通知CPU,硬盘通知机制)
- 南桥:低速总线,连接大量I/O设备,硬盘,键盘
- 北桥:离CPU最近,高速总线控制器,高频下工作
- 南桥将各设备汇总到一条线,连接到北桥,北桥转给CPU
- 不过现在,多将内存,CPU直接连接,速度更快,北桥只负责连接南桥了
- 现在很多服务器,通过在北桥上接SSD(固态硬盘),即CPU--北桥--SSD,更快
-
内存与CPU,内存运行慢,CPU快,为了让CPU持续运转,于是有了缓存
-
缓存:缓存就是数据交换的缓冲区(称作Cache),当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找。由于缓存的运行速度比内存快得多,故缓存的作用就是帮助硬件更快地运行。
-
缓存级数越小,说明离CPU越近,速度越快,造价越高
-
一级缓存:一级缓存都内置在CPU内部并与CPU同速运行,可以有效的提高CPU的运行效率。一级缓存越大,CPU的运行效率越高,但受到CPU内部结构的限制,一级缓存的容量都很小。
-
二级缓存:CPU高速缓存(CPU Cache,在本文中简称缓存)是用于减少处理器访问内存所需平均时间的部件。在金字塔式存储体系中它位于自顶向下的第二层,仅次于CPU寄存器。其容量远小于内存,但速度却可以接近处理器的频率。最初缓存只有一级,二级缓存(L2 CACHE)出现是为了协调一级缓存与内存之间的速度。二级缓存比一级缓存速度更慢,容量更大,主要就是做一级缓存和内存之间数据临时交换的地方用。
-
三级缓存:三级缓存是为读取二级缓存后未命中的数据设计的-种缓存,在拥有三级缓存的CPU中,只有约5%的数据需要从内存中调用,这进一步提高了CPU的效率。其运作原理在于使用较快速的储存装置保留一份从慢速储存装置中所读取数据且进行拷贝,当有需要再从较慢的储存体中读写数据时,缓存(cache)能够使得读写的动作先在快速的装置上完成,如此会使系统的响应较为快速。
所以计算机主频大不说明性能优,还要看缓存,缓存大,性能好。
内存的数据,先到二级缓存,再到一级缓存
局部性原理
局部性原理是指CPU访问存储器时,无论是存取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续区域中。
- 时间局部性(Temporal Locality):如果一个信息项正在被访问,那么在近期它很可能还会被再次访问。
- 空间局部性(Spatial Locality):在最近的将来将用到的信息很可能与现在正在使用的信息在空间地址上是临近的。
程序的局部性原理
程序的局部性原理:是指程序在执行时呈现出局部性规律,即在一段时间内,整个程序的执行仅限于程序中的某一部分。相应地,执行所访问的存储空间也局限于某个内存区域。局部性原理又表现为:时间局部性和空间局部性。时间局部性是指如果程序中的某条指令一旦执行,则不久之后该指令可能再次被执行;如果某数据被访问,则不久之后该数据可能再次被访问。空间局部性是指一旦程序访问了某个存储单元,则不久之后。其附近的存储单元也将被访问。
另外,根据程序的局部性理论,Denning提出了工作集理论。所谓工作集是指进程运行时被频繁访问的页面集合。显然我们知道只要使程序的工作集全部集中在内存中,就可以大大减少进程的缺页次数;否则会使进程在运行过程中频繁出现缺页中断,从而出现频繁的页面调入/调出现象,造成系统性能的下降,甚至出现“抖动”。
划分工作集可以按定长时间或定长页面两种方法进行划分。当颠簸现象发生时,说明系统的负荷过大,通常采用处理器均衡调度。另一种是控制缺页率,当缺页率达到上限时,则增加内存分配量;当缺页率达到下限时,就减少内存的分配量。
程序的移植
- 机器语言:机器语言是最初级且依赖于硬件的计算机语言。机器语言可直接在计算机上执行(即为二进制形式),运算速度快。
- 汇编语言:用有助于记忆的符号和地址符号来表示指令,便是汇编语言,也称为符号语言。一般称汇编语言为低级语言(当然初级语言也属于低级语言)。
- 高级语言:是一种人工设计的语言,它对具体的算法进行描述,所以又称为算法语言。高级语言独立于计算机的硬件(即与具体的硬件无关)。
- 由于每一个厂家的芯片都有自己的一套机器语言,因此需要结合一种额外的机制来弥合不同芯片之间语言的不用,这套机制就是API(Application Programming Interface应用程序接口)
- API :API就是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的 API 而使操作系统去执行应用程序的命令(动作)。
为了提高计算机运行速度,有了多任务
(1)划分CPU(slice),例如先运行任务一5ms,然后运行任务二5ms...即任务的交叉运行
(2)内存分段,(32位最多只能用4G内存,64位可用4G个4G,超级大)
内存分段
内存中最前面这段即 加电自检 部分
加电自检:在加电之后,智能设备所运行的内部存储的一系列检测程序集合。缩写为POST。这些检测程序在软件加载到硬件上运行之前对硬件的基本完整性加以验证。
(3)那么由谁来实现以上对内存和CPU的分配划分呢,即操作系统OS(一个运行在硬件上的管理硬件资源的软件),同时OS还负责进程的启动,切换等工作
Linux的基本原则
- 由目的单一的小程序组成,通过组合小程序,完成复杂功能
- 一切皆文件
- 尽量避免捕获用户接口(即不跟用户进行交互)
- 配置文件保存为纯文本格式(即配置一个服务器,一个文本编辑器足以完成所有工作)
CLI接口(command-line interface,命令行界面)
- 命令格式
- 命令 选项 参数(命令的作用对象)
- 虚拟终端(terminal):--Ctrl-- + Alt + F1 - F6
- 用户切换(root,studengt,visitor)
- su:switch user
- #su [-l] 用户名 [ ]表示可以省略
- exit 退出
- 修改密码
- #password —————— 输入两次新密码即可
- 修改密码的时候,root则可以改成任意密码,普通用户密码需要满足 * 密码复杂性规则 *
1.使用4种类型字符中的至少3中(大小写,字符,数字)
2.足够长,大于7位