经过了团队大半年的准备,内测,更新,今天终于要给大家隆重推出我们的全新64位系统
这次不论是投入的人力物力,还是系统的各个方面都是以前的64位和别人家做的64位没法比的。
这次的64位系统是我们企业级的团队基于Debian64位全部从头全新构建保证了系统的原汁原味,构建了全新的自动编译和打包、测试系统。我们对内核进行了魔改、大量深度的优化和BUG修复,加入了很多新的功能和特性,特别是加入了KVM虚拟化的支持以及重点加强了对Docker的各项特性支持和优化。
我们的这套系统在今天发布前已在企业生产环境下使用并验证,系统经过了上百轮内测和10代的迭代,原生的有线、无线网卡均可正常使用,所有系统的软件包数量几乎可以媲美X86的版本,大家可以放心的使用。
系统会是我们未来的核心,所以我们现在的64位系统也支持直接在线滚动升级,有推出系统更新后你只需要一些简单的步骤就可以升级到最新系统,不需要重新装系统,非常的方便。要提醒大家的是,大家可以在我们官网论坛里面的64位系统讨论区,对系统问题进行反馈,我们团队会根据反馈内容不断更新和完善系统,方便大家的使用。
一、系统简介
1.0 基于 [Debian Stretch,kenel 4.14 LTS(Long Term Service)]
2.0 基于 [Debian Buster,kernel 4.19 LTS(Long Term Service)]
为了方便不同阶段的树莓派爱好者使用,1.0稳定版推出了四大版本的64位系统,分别是:无桌面基础系统,无桌面基础系统加强版,深度桌面系统,xfce桌面系统。
2.0预览版推出了四大版本分别是:无桌面基础系统,无桌面基础系统加强版,深度桌面系统,xfce桌面系统。在上一期的加拍视频中我们已经强调了我们这次2.0版本的系统是全球首发!以及这次的全球首发不仅仅是全球首发更是我们技术的展示!
可以看到我们不仅提供了很多版本系统供大家选择使用,每个版本的系统还有不同的文件系统,你可以根据自己情况选择。但是这里我们比较推荐ext4文件系统!
1.0稳定版系统完美支持树莓派3B,3B+,3A+。2.0测试版版本支持树莓派全系64位CPU包括:3B,3B+,3A+,4B
2.0预览版系统硬件兼容是最全的,兼容最新发布的4B,并且后面要讲解的系统特性也是完美传承1.0稳定版!!
目前1.0稳定版已经更新了10次,系统稳定性和性能都不存在任何问题。2.0预览版我们还在公测阶段,除非你的树莓派4B,其他型号都推荐大家使用1.0稳定版本的系统。
1、无桌面基础系统
该版本默认没有安装x-windows桌面环境,如果你需要桌面环境的话可以选择我们桌面环境版本的系统镜像下载。
2、无桌面基础系统加强版
在基础系统之上,加入可视化的WebUI管理界面,默认开启容器支持,真正开箱即用
3、深度桌面系统
该版本基于我们的标准系统移植了完整的深度15.5专业版桌面,是目前第一个基于完整的debian64架构而构建的适配于树莓派的深度arm64镜像
4、Xfce桌面系统
该版本基于我们标准系统集成了定制优化后的xfce桌面。
64位最突出的应该就是性能的提升,所以完整的介绍系统前我们先来看看全新64位系统和官方系统以及业余爱好者做的64位系统的性能对比。让大家有个直观的感觉
二、性能展示
以下使用的是1.0稳定版进行的测试
官方系统对比结果
业余爱好者64位系统对比
综合整体性能全面超越对比测试系统的2~3倍以上,部分指标甚至达到了10倍以上,1000%的提升。
以下是2.0预览版和官方系统做的对比
三、系统特性
1、WEB SSH 客户端支持
所有版本的系统不再需要SSH客户端来连接服务器,可以通过浏览器直接SSH访问服务器
默认访问协议是https和4200端口
访问地址 https://树莓派IP地址:4200
2、QEMU-KVM 虚拟机
KVM是一套虚拟化解决方案,不过因为这个方案实际上只实现了内核中对处理器虚拟化特性的支持,它缺乏设备虚拟化以及相应的用户空间管理虚拟机的工具。
Qemu是一套独立的虚拟化解决方案,本身可以不依赖于KVM,安装qemu的系统就可以直接模拟出另一个完全不同的系统环境,但是如果有KVM的存在并且硬件支持那么QEMU在对处理器虚拟化这一块可以利用KVM提供的功能来提升性能。
所以kvm借用了QEMU的代码并加以精简,连同它一起构成了另一个独立的虚拟化解决方案
我们系统里是原生Aarch64架构的QEMU虚拟机,支持KVM硬件加速(非软件模拟方式的KVM,速度更快,极限接近物理硬件性能)
我们重新编译了KVM的二进制软件包,解决了在KVM硬件加速环境下 qemu-system- aarch64 的诸多BUG,例如开启KVM硬件加速后系统默认版本虚拟机无法运行,无法安装系统,等等…
3、KVM 虚拟化的支持选项
我们在编译内核时加入了对KVM虚拟机的支持,直接支持全虚拟化的方式运行,添加了支持原生的KVM虚拟硬件内核模块的支持,相关的主要内核模块如下:
后续视频会给大家讲解怎样使用虚拟机!!!
4、Docker
Docker的思想来自于港口的集装箱。在港口上,各种各样的货物被装进标准化的集装箱内,集装箱和集装箱之间不会互相影响。我们也不需要专门区分集装箱里面的货物。只要这些货物在集装箱里封装好,就可以用一艘大船把他们都运走。非常的便捷好用。
Docker其实是一个开源的应用容器引擎,可以让开发者构建应用程序时,将它与其依赖环境一起打包到一个容器中,然后很容易地发布和应用到任意平台中
docker相比KVM之类非常的相似,但是最明显的特点就是启动快,资源占用小。
原生debian的64位系统内核缺少了很多对Docker特性的内核支持,所以这次我们重新编译内核,加入了对Dcoker全特性的各项支持,这可能是目前在 树莓派Aarch64位系统架构下对 Docker 特性支持最完善的版本
Docker的具体使用和讲解我们会在后续视频给大家带来!!!
5、AUFS
AUFS主要功能是把多个文件夹的内容合并到一起,提供一个统一的视图,主要用于各个Linux发行版的livecd中,以及docker里面用来组织镜像
AUFS曾是Docker默认的首选存储驱动,它非常的稳定、有很多真实场景的部署、很强的社区支持,它有以下几个主要优点:
a极短的容器启动时间
b有效的存储利用率
c有效的内存利用率
d但由于它没有包含在Linux内核主线中,所有很多Linux发行版并不支持AUFS
对于树莓派这样存储空间较小的设备而言,使用AUFS文件系统能更好的利用我们有限的存储空间资源并降低I/O消耗
由于AUFS并不在原生的Linux内核支持中,所以我们通过AUFS的PATH,为主线4.14的内核加入了AUFS的内核模块代码并重新编译,现在系统启动会自动加载AUFS模块,无需人工干预,即可直接使用。
6、Swap
Linux中Swap,类似于Windows的虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。
我们系统默认增加了对Swap交换缓存的支持,以缓解系统内存不足所造成的死机问题,大大提升了可执行大容量内存需求应用程序的支持和效率,我们的系统在安装完成后将自动完成并初始化Swap,
Swap文件或分区的位置可以通过查看系统挂载配置文件 /etc/fstab 来调整
7、zSWAP
我们的系统之所以能完美运行深度桌面,能运行xfce桌面系统比官方系统还要流畅,就得益于我们系统内核默认已加入了 zSWAP 虚拟内存压缩功能。要讲清楚zswap就需要先说一说计算机中的内存机制。计算机的各种内存大致分为Ram ,Cache,Flash
Ram称为随机存取存储器,也叫主存或内存,是与CPU直接交换数据的内部存储器。它可以随时读写,而且速度很快, RAM在计算机和数字系统中用来暂时存储程序、数据和中间结果。可以分为Sram和Dram。
Cache存储器:电脑中为高速缓冲存储器,规模较小,但速度很高的存储器,通常由SRAM组成。CPU的速度远高于内存,当CPU直接从内存中存取数据时要等待一定时间周期,而Cache则可以保存CPU刚用过或循环使用的一部分数据,如果CPU需要再次使用该部分数据时可从Cache中直接调用,这样就避免了重复存取数据,减少了CPU的等待时间,因而提高了系统的效率。
FLASH闪存它属于内存器件的一种,是一种非易失性内存。目前各类 DDR 、 SDRAM 或者 RDRAM 都属于易失性内存,只要停止电流供应内存中的数据便无法保持,因此每次电脑开机都需要把数据重新载入内存;闪存在没有电流供应的条件下也能够长久地保持数据,其存储特性相当于硬盘,这项特性正是闪存得以成为各类便携型数字设备的存储介质的基础。
从软件层面看有些内存可以直接访问,但是有些内存需要经过中间的一些操作才可以访问例如anon page cache,这类不能直接访问的内存,我们也叫它transcendent memory.
transcendent memory也可以看做是一个内存池,通常以page单位来访问,后面要讲解的zswap的内存池就是这种类型!
Zswap本质就是一个压缩缓存池,当内存页要交换出去时,zSWAP不将其移动到交换设备,而是对其执行压缩,然后存储到系统RAM内动态分配的内存池中,如果内存池超过限制以后会先把旧的page写如swap,之后将新的page写入内存池,回写到实际交换设备的动作则会延迟,甚至能完全避免。
(默认占用物理内存上限为系统总内存的 25%,这个25%也不是随意设置的,而是我们经过多轮测试后的最优结果!)
zswap将要换出的页面压缩以后要存储到内存池,为了提高压缩率,优化内存的使用,提高内存的使用率,我们也要选择最适合树莓派的内存分配器。
目前常见的内存分配器有:zsmalloc、zbud、z3fold
Zsmalloc分配器尝试将多个相同大小的对象存放在组合页中,这个组合页不要求物理连续,从而提高内存的使用率, 现实表明,zsmalloc虽然压缩率高,但是算法复杂,还需要额外的线程负责内存整理,耗费更多的cpu时间
zbud是一个专门为存储压缩page而设计的内存分配器.用于将两个压缩的page存到一个单独的page中,zbud实现简单,以内存page为单位的存储又不会产生内存碎片,但是压缩率低,最高只有2倍,不满小内存系统的实际需求
z3fold内存分配器,和zbud的实现完全一致,只是每个page可以存储3个compressed page,最高压缩率有 3 倍,逼近zsmalloc的4倍,该技术在xperia xzp的中使用,使4GB的手机获得超过4GB内存的体验
结合树莓派的实际情况我们最终决定使用z3fold算法。
刚才讲到swap的内存池里面如果满了,如果还要往里面放新的压缩页面,那就需要把一些老的页面拿出来在经过再一次压缩放在swap交换分区,因为考虑到树莓派硬件的性能,所以选择一个好的压缩算法也是至关重要的!
通常压缩比和压缩速度是成反比,压缩比越高,压缩速度就越慢
Linux有很多压缩算法:lz,lzo,xz,gzip,lzma…
我们的压缩算法采用了拥有极高压缩速度和较高压缩率的lz4 ,lz4相对于其他压缩算法而言,压缩率不是最高的,但速度确是最快的,在已采用 z3fold 算法的情况下,结合树莓派本身的性能特点和实际的测试,在拥有不错的压缩率的情况下,速度对于树莓派来说才是最重要的
使用zswap可以有效的减少用于交换的i/o操作,可以提高系统性能。
在使用Swap文件/分区的场景下,由于减少了对Swap文件/分区的I/O操作,可以提升TF的使用寿命。
正是我们在系统中对zswap的使用以及不断的调整尝试,经过多次的测试才使得我们的系统能够完美运行深度桌面,用xfce桌面系统才能如此的流畅!
8、USB启动
本系统支持直接从USB设备启动,不需要使用TF卡,直接将系统镜像烧录至USB设备即可(U盘、移动硬盘经测试均可)
目前仅3B+无需任何修改,可以直接使用,其他型号设备由于芯片固件的原因不支持直接启动,请参考官方设置后才可以支持直接使用USB启动
9、UEFI启动
新系统抛弃了传统树莓派的启动方式,使用当下PC流行的EFI方式启动系统,拥有可配置的UEFI BIOS,启动时可进入BIOS进行设置,支持自定义启动选项,虚拟SMBIOS硬件支持,支持EFI专有的EL2启动模式以启用KVM硬件虚拟化的支持。
该BIOS功能异常强大,还有很多可配置选项,各位爱好者可以自行探索。
特性如下
具体的bios的设置会在后续视频讲解!!!
10、TCP加速
内核默认已开启 TCP BBR 拥塞控制算法
TCP BBR 拥塞控制算法能够在一定程度上提升TCP传输速度和效率,优化网络传输
四、系统开机配置
1、默认账户
默认账户: pi
默认账户pi密码: raspberry
root账户密码需要自行设定
2、默认仓库源为清华源
用户可自行配置为其他源
3、web控制地址
全平台的web控制端登陆地址
https://树莓派IP地址:4200
无桌面基础系统加强版的web控制访问地址
https://树莓派IP地址:9090
4、32位软件支持
系统默认已开启对32位软件包的支持,无需手动添加,安装32位软件请在包的名称后加入后缀 “:armhf”
例如: apt install ibc6:armhf // 安装32位的ibc6
注意:这里的冒号 “:” 是需要的哦
5、启动模式
三种文件系统格式的镜像都支持 开机自动扩展根分区 默认系统将 重启3次
● 第一次启动检查文件系统,第二次启动扩展root根分区,所以需要等待一些时间
● 两次重启后,正常引导系统,在这一次启动过程中会自动完成系统配置和生成Swap文件并完成最后的系统初始化,这将消耗一段时间(仅一次),待完成Swap交换文件的设置后并完成重启后,即可进入到登录界面
6、预配置项
系统提供网络和自动开机任务的预配置,相关配置文件的路径和对应关系如下:
7、网络预配置
无线网络配置根据1.0和2.0的版本不同,配置有所区别,请注意
镜像支持在启动前提前配置好网络(无线、有线网络均可配置)
● 无线网络配置 (1.0版本) /boot/wlan0
● 无线网络配置 (2.0版本) /boot/wpa_supplicant.conf
这里要提醒大家的是如果你使用的是图形化桌面版本的系统,由于兼容性的问题可能会导致在图形化界面连不上wifi或者搜不到5g信号
那么你可以用图上的方法来更改无线路由地区码,来解决这个问题
五、下载地址
1.微信公众号发送【全新641】可以获得1.0稳定版本系统的下载链接。发送“全新642”可以获得2.0测试版本系统下载链接。
2.官方论坛blog.pifan.org中的64位系统讨论区里有下载链接。