其实我们的操作系统也可以理解为一个虚拟机,因为他是把硬件资源虚拟成文件系统可以识别使用的程序
Linux的swap分区也相当于windows虚拟内存:
电脑三大主键:
1、CPU: time slice
2、Memory:
3、I/O设备:
CPU:time slice
I/O设备
假如内存是4G的,那么每个进程意识到自己是4G可用(针对32bitcpu),
x86引入了一个虚拟地址,也叫作线性地址的概念
内存中都是分page frame页框来存储的
当物理内存将要被占满的时候(进程一直认为自己是有4g的内存可用,所以不断的索取),但是被占满之后是不能再存储了,这时候就使用到了swap空间了
硬盘的一部分存储空间分配出一定的模拟页框,去存储内存中使用最少的页框,然后在真实的物理内存中去存储用户操作新的进程去。,然后用完之后,硬盘的东西还是会返回到内存中去的,这就是换进换出(这样性能会下降很多的)(page out ,page in)的过程。
所以swap可以作为应急使用的,如果内存够的话,是不会这样的
swap分区(必须是单独的分区):交换空间:
允许内存可以过载使用,虽然性能会下降很多,但是这个swap分区是必不可少的,不然真的不够用的话,那就直接Linux系统down机,对系统很不好的
实际放到到swap分区,但是实际cpu读的还是从内存中取的,不会直接去swap分区去操作,所以说swap分区只是满足真实的物理分区不够用,临时存储的而已。
访问访问:速度
1、寄存器 1nm
2、缓存 10nm
3、内存 100nm
4、swap分区 以秒
1、由目的单一的小程序组成:组合小程序完成复杂任务
2、一切皆文件(甚至连设备的访问入口都是文件):
3、尽量避免捕获用户接口(就是很少的和用户交互):
比如ls 直接有输出了,比如ifconfig,直接有输出了,不需要交互
4、配置文件保存为纯文本格式:
所以写一个服务,完全可以用纯文本的配置来实现
GUI接口:CLI接口:
命令提示符,prompt(提示符),bash(shell)
#:root
$:普通用户
任何命令如果想要执行都必须要有执行入口 ,像java执行也要有个main函数为入口,
c语言也是
我们平时敲命令的界面就是bash shell界面
原文地址:http://blog.51cto.com/425319153/2092952