帮助手册2:LiveCD & RamOS使用须知

本文转载自 科学社 http://kxs-co.gicp.net/linux/help.html,感谢大大的分享

此文档适用于科学社定制的四个系统,如果你想让RamOS能更好的为你工作,请阅读它

一,RamOS特性之速度

故名思义,RamOS即是把OS Copy to RAM中运行,好处是:

1,可以不依赖硬盘,特别是移动操作系统或经常要使用他人电脑但又依赖自己工作环境的人士
2,充分利用RAM极速的特点(5-20G/s的读写速度),让系统使用起来更流畅

那么现实中使用RamOS与SSD相比快了多少?说了你不会信,其实没快多少,通常情况下感觉差不多,并不会出现1个5G的文件1秒钟就复制完的奇迹现象,为此我自己也曾经迷惑过。有人问了,某软件把虚拟出来的RamDisk读写跑到了20+G/s的速度是如何来的?只能说这是极端情况下的特例,如果一段代码在内存中生成超大文件,但不经过CPU,总线,南桥北桥,那么读写速度是可以接近RAM理论值的。

然,现实中的应用却并不总是那么理想化,除了极少数应用可以不走总线/CPU外,大多数应用都要与CPU/总线打交道,于是木桶效应起作用了,加上现代化的操作系统已经很复杂,CPU分时处理任务,又会让读写速度下降,比如你打开Chrome浏览器,程序压缩后只有50M,<1秒内读取完成,但结果是5秒后才看到Chrome的界面出现,原因是加载之后CPU要做解压操作,这是个耗时的过程,所以RasOS与高速SSD/HHD相比,仅仅是快了读取的速度,但这点时间几乎可以忽略。有人又要说了,对大文件的读写优势就很明显了,这又引入另一个问题,成本。

二,RamOS高速的代价

先来出道数学题,如果给你4G内存,你会怎么利用这有限的空间?给你8G内存时,你又会怎么使用它?

看看我的思路,保守的做法:2G用于OS的RAM运行,确保OS不会因为内存太小出问题,余下的2G给用户做RamDisk用,别忘了,OS本身也要占用一定空间的,假如OS文件有1G,于是2G-1G=1G,打开个浏览器,浏览10个图片很多的网页,加上一些广告短视频的缓存,你会发现过不了多久系统就崩溃了。

换一个数值,1G用于OS的RAM,1G是OS本身文件占用,余上2G给用户,结果一样,过不了多久系统一样崩溃,因为1G RAM内存分分钟可能被占满。
再换一个数值,1.5G用于RAM,1G用于OS本身文件,1.5G给用户会如何?其实这样的系统基本就不堪大用,稍微复杂一些的应用就可能让系统崩掉。

所以在这种捉襟见肘的情况下要如何充分利用有限的内存资源,这就是RamOS早期要解决的问题。通常我们的思路是这样的:
A,尽可能让OS自身文件小一些

1)做必要的系统精减,删除帮助说明文档,很少用的工具,文件,缓存,不常用字体,价值不大的图片。
2)安装数量有限的工具,尽量安装常用实用的工具,尽量使用轻量级工具,尽量安装一软多用的工具。
3)把文件做极限高比例压缩,目前普遍使用的是xz或lzma,封装打包用squashfs。

B,限定内存大,有多少内存只给运行多少工具。
C,先判断内存大小再灵活决定如何来运行这个OS。

告诉你一个能让系统稳定运行且不会崩溃的数值:
OS的RAM要保证有3G,假设加上OS本身的载入1G就需要4G内存,如果你是编辑一张500M的高清图层式大图,或编辑一个4G的高清电影,那么需要500Mx8=4G 或 4Gx3=8G,加上前面的就分别是8G和16G。一般我们常用有8G即可稳定运行了,毕竟不是每个人都需要处理大图或压片,上上网,做些常用操作8G够用。

为什么是500Mx8倍?对于图层的图片,有转换或导出时产生的缓存文件大得夸张,亲测过500M的PS导出,生成的缓存文件24G大,也亲测过在16G的RAM上用LiVES编辑一个64M的视频,结果15G可用空间还不够用,原因是它把这个64M约45分钟的视频按每秒30帧x2700秒x200K/张图片先拆分出来,操作后(如删除/插入其中几帧或几秒)重新按时间轴把图片生成视频,只是拆分的过程计算后就要占用16.2G空间,所以16G的内存无法完成这么个小视频的操作,当然这只是垃圾软件才会这样做。

综上所述,想要RamOS的高速效果就必然要在内存上多投入,一般情况下8G内存能让你的RamOS流畅稳定的运行,如想要做大型/多任务工作,所需的内存就更多,本质上内存越大越好,多多益善!内存的价格过于昂贵,所以使用RamOS的成本还是偏高的。

三,RamOS的折中方案

在上面二(A)中提到尽可能让OS本身小以减少内存占用,若所有能精减的都到达极限后ISO的体积还是很大,但内存又小很,这时要不要让用户继续运行OS?于是又有人想出了牺牲性能来换取系统能够运行的折中方案。这时loop模式产生了,它的思路是:只把最核心,最必要的内容加载到有限的RAM中(比如内核,配置文件,驱动,桌面),其余的文件让它在USB中需要时才去读取。这样内存被OS本身文件占用就小了很多,如CDLinux开启Loop模式后开机进入桌面用free -m查看只占用了约300M,是不是比1G的文件加载到RAM省空间多了?

尽管这种方案省了不少空间,但对于过小的内存来说,崩溃的机率还是太高,不管怎样,只要有读写操作就必定产生空间占用,所以小内存运行RamOS还是不理想。于是又有人想到了打硬盘的主意,比如启动系统后会先搜索硬盘上有没有Pagefile.sys这个Windows系统用的虚拟内存文件,如果有则把用户空间分配到这里来,于是容量一下得到了扩充,这时假如1G的RAM系统占用300M,都还有700M可以用,是不是稳定性增加了?我当然不会告诉你哪个系统使用的这种方案。

经过上面的处理,系统基本上可以稳定运行起来了,不做大的操作还是能用用的,这时你有没有发现打开一个软件很慢?原因是工具在USB里面,从USB复制到内存,按USB-2.0的12M/s读取,一个200M的WPS就要读取需要近10秒(为什么不是20秒?WPS包括三样东西,难道都要加载进来?),用USB-3.0则可能5-6秒,是不是感觉快多了?

所以,Loop模式的缺点是第一次加载软件感觉很慢,要解决这个问题只能用读取速度更快的USB设备,科学社一直建议尽可能使用USB 3.0的设备做启动盘。

四,LiveCD 与 squashfs

几乎所有Linux发行版的官方都称LiveCD是一个现场演示环境,既然是演示,那么就会或多或少带了一些通用/常用的工具,给一个想偿试的用户测试/试验,但又不可能集成所有的工具,没有哪个发行版能集成所有人想要的软件,因为那样做的体积会大到不敢想象。

LiveCD通常是被封装过的,任何一个LiveCD的操作系统,你解开iso后都会发现有一个或几个比较大的文件,有的是.sfs后缀,有的是.img 或 .image后缀,更常见到的是image.squashfs 或 filesystem.squashfs 文件名。是的你没看错,这些后缀通常都是使用squashfs打包工具完成的,这是一个很不错的工具,包括打包(mksquashfs)和解包(unsquashfs),目前最新的版本还是多年前的4.0,虽然发现了一些问题有侍修复,但官方一直没有更新。比如当一个LiveCD系统将诸多工具打包成squashfs模块挂载到系统运行,而这种模块很多时系统会比较容易出问题,如同名文件的复盖,同名目录的重复,夸包之间的依赖等都会使整个系统的稳定性降低,所以多数的发行版把整个文件系统打包成一个filesystem.squashfs包以提高稳定性。

大家都使用squashfs即说明了其实用性,如果让我来描述squashfs的好处,我会这样比喻:把写着信息的纸条放入一个透明的玻璃瓶内,当你需要这些信息的时候拿着玻璃瓶就可以直接读取,无需做开瓶取纸条的操作,而且这些纸条的信息你只能读不能修改,因为有玻璃瓶的保护,而且一个玻璃瓶可以放无数张纸条。

这样的环境你觉得怎么样?用成专业的术语,即:
1,squashfs是只读的,通常情况下不能写入,因此有保护数据安全的作用。
2,squashfs压缩比很高,可达2/3,即1G的系统压缩后330M左右,对减小体积作用甚大。
3,squashfs挂载后就可直接读取封装内的数据,无需解压缩,读取速度很快,也很方便。
4,squashfs的特性决定它属于热挂载类型,可随时挂载或卸载。

正是因为有了这样的强大工具,移动操作系统才得以实现,而且整体iso映像文件比较小,若把一个2.5G的squashfs包解开到硬盘,最少要占用10G以上的硬盘空间,可见squashfs对于LiveCD来说功不可没。

五,LiveCD 与 RamOS

RamOS通常指的是在内存中运行的系统,更多的是代表了它的工作方式或工具环境,明显严重依赖于内存。而LiveCD是现场实时演示环境,其可以工作在硬盘,同样也可以很好的工作的RAM中,因此他们并不冲突,至于想让LiveCD以何种方式来工作,完全由人决定的。你可以这样理解:RamOS是LiveCD的一个子集,LiveCD可以包含RamOS。

同样的,让LiveCD以RamOS运行时,是完全加载到内存,还是只加载核心部份到内存,是由Loop开关来决定的。因此,当你见到CDLinux系统启动选项的loop模式时,相信你已经知道它的作用了。

六,RamOS 与 ZRAM

早在Linux设计之初对内存的利用上就有一个哲学,我的翻译为:物尽其用,充分利用,合理利用!

于是,ZRAM内存压缩技术在2014年正式产生了,它是一种内存优化技术,原理是在内存中划分一块空间,将一些运行中或运行过的数据/程序实时压缩后放到这个空间中以便下次再使用同一数据/软件时,充分利用内存的高速读写特性让这个数据/软件能在瞬间被读取或打开。另外数据是被压缩过的(LZ4),500M的数据压缩过后可能只有200M,对于小内存机器来说,能享受到小内存高速度的响应体验。你也可以这样理解它:ZRAM缓存并压缩了使用中的数据,并为下次使用的高速运行做准备。

ZRAM有以下优点:
1,超高速的读写特性,例子:第一次打开chrome要5秒,第二次打开只需0.1秒。
2,充分利用内存,不浪费资源,特别是对于大内存效果更明显。
3,更少使用硬盘的swap分区,更少依赖I/O,增加读写速度。
4,更少的读写硬盘虚拟内存,能延长寿命有限的固态硬盘。

当然,有优点也有缺点,ZRAM在压缩数据时会占用CPU资源,对于很弱的CPU性能来说不是好事,但整体而言:一次压缩,长期受益,这种交换是值得的。

现在你已经知道ZRAM的作用了,那么在启动CDLinux时看到ZRAM选项时知道自己该如何选择了吧?

  Previous post Linux启动invalid signature错误
Next post   已到最新一篇

添加新评论

  经典站点

MSDN,我告诉你

--- updated on 2019-02-04

  关于博主

肥宅快乐~

  近期评论

  •  老油条: 感谢楼主和老赵的付出。感叹确实现实可悲,种种原因不能继续做下去。
  •  ian: 请问这里说的完美驱动扩展坞,是微软原装的那台充电口扩展坞吗
  •  TIGRE: 求config.plist!同Miix4用户,感谢🙏
  •  李飞: 博主 你好 可否发下完整的详细步骤,小白一个,谢谢!
  •  xuzhimin1993: 那么,能正确显示电量吗
  •  fowse: 赞,完美解决方案。
  •  超平和buster: 强啊,但是无网络就很难受OωO
  •  崔先森: 第二种方法简单粗暴~
  •  heiye37: 下载地址哪里有呢1

生活其实很简单,过了今天就是明天。

低头哭过别忘了抬头继续走。

不要被任何人打乱自的脚步,因为没有谁会像你一样清楚和在乎自己梦想。

没有人可以打倒我,除非我自己先趴下!

你要记住你不是为别人而活,你是为自己而活。