Boot界的”开源os“ : coreboot,及再谈云OS和本地OS统一装机的融合

简介: 本文关键字:firmware as service, linux as boot,,boot as infrastructure,real cloud os and app,云操作系统选型,实机装机/裸金属通用的云OS。hypervisor/vm通用的云OS。

本文关键字:firmware as service, linux as boot,,boot as infrastructure,real cloud os and app,云操作系统选型,实机装机/裸金属通用的云OS。hypervisor/vm通用的云OS。

Firmware编程是计算机(软件)编程的最初一种形式,也是OS的雏形。没错,它是针对硬件的”软件“编程。这个层面最初形成了我们看到的OS。最明显的层面就是OS中的HAL层面。

历史上。bios是这个规范,如今,UEFI,各种各样复杂的loader也出现了。甚至还有linux as loader,即把linux作为开机出厂程序。用户装的OS作为第二级OS。

那么这种情况合理吗?其实所谓UEFI只是机器引导之后的一个特殊执行体而已,这个执行体在没有进入OS之前,可以是其它任何软件。甚至一个极简的linux rootfs。所以,loader as uefi跟loader as linux没有任何区别-它们共享一个相同的最基础部分:就是那个机器引导,之后同质之前同源。

这样有什么好处吗?我们知道UEFI中有很多驱动。UEFI的作用就在firmware中提出一种新的地址模式和能够使用现代语言的编程方式来处理硬件的改变。可是,这不只越来越复杂的UEFI能办到。在一种现代OS中这样的东西中也能办到,而且天然就是现成的,不用重造轮子。比如linux,它类UEFI本身就是高级语言的地址空间产物,它的宏内核设计使得它的驱动天生就是内含的。其中的很多drivers也不用在UEFI中重写呢。而且它够小。它作为一级主板预置程序可以发挥像WINPE,LINUXPE,syno web assist,osx recovery一样的作用,而且,除此之外,os还能兼能提供现成的工具,如busybox等。这样,linux loader既是recovery,也是firmware.等等,它还有其它作用(稍后就说到)

为什么会有这种需要和改变呢?这种需要的出现是因为cloud computering出现了。它要求对现有的PC,裸金属机器。进行新的一轮upwards streaming抽象。使OS的概念重新分层分级,包含单机,实现,云主机,各种寄宿有OS的地方 —— 形成一种多用的云OS,既然这样,何妨让Cloud Computing也配一个抽象Firmware不就好了么。。

所有会有我们今天谈到的firmware as serice,coreboot就是相关的产品。

Coreboot:抽象firmware as serice,云host os

它的前身是linuxbios,不过后来变成了现在的coreboot,libreboot是它的一个极力去除闭源驱动的开源版本。

coreboot performs a little bit of hardware initialization and then executes additional boot logic, called a payload.

With this separation of hardware initialization and later boot logic, coreboot can scale from specialized applications run directly from firmware, operating systems in flash, and custom bootloaders to implementations of firmware standards like PCBIOS and EFI without having to carry features not necessary in the target application, reducing the amount of code and flash space required.

记得当时刷chromebook用的就是这个coreboot。它对各种设备,包括云主机都有payloads.

而linux as payload更有趣。

Two aspects emphasized by proponents of Linux-as-a-payload are the availability of well-tested, battle-hardened drivers (as compared to firmware project drivers that often reinvent the wheel) and the ability to define boot policy with familiar tools, no matter if those are shell scripts or compiled userland programs written in C, Go or other programming languages.

所以,接上面“稍后就说到”:它不光是advanced firmware, recovery,还可以做虚拟机管理器,这样买来的预置了linuxbios的机器永远不怕坏了。因为可以在其中安装多OS。而且这些OS是linuxbios的二级OS,它们是用户OS。只是一些类似虚拟机guest os的主机(所有的guest都是平等的,而且可以parallel booting)。Splashtop产品就是这样的一种设备。Avatt:all virtual all the time就是基于coreboot,在linux里提供了ovz, kvm虚拟机管理器,可以允许客户安装自己免坏的OS,类似exsi,但是可以作为日常用机而不是服务器。———— 当然,这种firmware是需要刷机的。

而正是这个虚拟机管理器功能,就带来了一个更为巨大的意义:——— 我们一直知道,虚拟机,虚拟OS,虚拟化是云计算的主要概念和手段,虚拟机的运用放在今天实在太重要了,因为它不但是装机/运维问题,开发/devops问题,virtual appliance/appcontainer问题,也是云计算和云开发的基础课题。云主机一般是虚拟机。但实机,自从coreboot它使得本地也可以更方便地云化,从此也可以通过虚拟机装机。而不必仅限于传统的host内使用guestOS的方式和结构。—— 作为一种从最开始处:从类传统PC的BOOT处,对云OS装配firmware,的”OS”,它已经天然是个“实机云HOST OS”了。

unikernel和云guest OS

那么guest os呢?还要有unikernel+guest os的设计。

什么是guest os,就是我们通过云在其中运行应用的那类OS,宠统来讲,我们最常接确到的“云OS”而不是什么hyperior,其实我们之前文章一直在探讨,什么是云OS,在不同的层次上,有很多OS,甚至APP都称自己为云OS。

比如,对于装机和开发,在谈群晖的系列文章中时,我们谈到docker as devops,qnap的qvpc,群晖是一种云OS,对于云APP,lamp是一种云OS(with appstacks),cloudwall是一种云OS (with db and sync only),Tumblr 它也是一种云OS,因为它提供了一个聚合功能。

所以我们最后结结实实地总结得过一句:云OS从来没有自己的专用OS,云APP也没有本质上专用的云APP。都是现在的本地OS和本地APP的分布式的叠加。所有这一切,都造成了抽象的过度堆彻。

那么现是在思考解决这样问题的时候了。拿webos来说,Webapp,webappstack虽然是打洞主义,然而它的碎片化特征却是独一无二的(超链本身就是一种碎片化,webapp是page,是applet,非常碎片化,通过超链的表现相连)。现在,OS的分布化和碎片化也要发展起来了。

基本的思路就在这里,基本的解决问题的产品就是unikernel。将OS也像APP一样碎片化。就有了我们即将谈到的云OS(关于云APP。也有碎片化的云APP)。而unikernel。它对传统OS也进行了裁剪和重抽象,它也通过碎片化解决了抽象的过度堆彻。

Unikernels are single address space library operating systems. An application compiled into a unikernel only has the required functionality of the kernel and nothing else. Such a stripped-down kernel makes unikernels extremely lightweight, both in terms of image size and memory footprint, and also can lead to security benefits due to a reduced attack surface. There are many such lightweight unikernel implementations, e.g, LING, IncludeOS, and MirageOS. LING’s website takes 25 MB of memory because it runs on top of the LING unikernel. IncludeOS’s base VM starts at 1MB and a DNS server running on MirageOS compiles into a 449 KB image.

(others : 容器OSCore os, smart os,vOS, etc..)

Unikernel往往去掉了传统OS kernel中的某些hal部分。因为它是hyperior的和hostos的。而且它形成了一个操作系统配一个进程的构架。

而其实,一个操作系统一个进程,内核和应用都在一个地址空间内。一个APP配一个OS,是云计算中理想的Guest OS。这有点像user mode linux和colinux,这样的一套OS+APP就形成一个Virtual Appliance,谈到appliance,这是虚拟化自己的APPMODEL,类似web的web app,native的native app,mobile的mobileapp,virtual appliance最初的形式是vmlite的是appliance,Microsoft vpc的xp融合模式,就是不透出guest os,OS作为守护,仅把融合在host os的app透出来。—— 所以,它是对virtual appliance的增强。

Unikernel也是对容器和容器OS的强化。也是真正的applvl的虚拟化。见《打造一个Applevel虚拟化,内置plan9的rootfs:goblin(1) 》。因为它不是用容器管理器的方案来处理host/guest关系的,而是实在的把OS包含其中。

也是对appmodel的增强,一个APP配一个OS,就没有了server, 它是对servless app的增加。

可以说,配有coreboot的云主机+配有unikernel的guest os,是包含了对云OS装机, devops,applicance 容器。的4 in 1所有路径上的解决方案了。

——

无论如何,以后统一用虚拟机装实机/虚拟机,云主机,开发,作容器,的梦想可以融合了,可以实现了。这是我们前面诸多文章的目标。


(此处不设回复,扫码到微信参与留言,或直接点击到原文)

qrcode.png

相关文章
|
1月前
|
安全 物联网 Android开发
构建未来:移动应用开发与操作系统的融合创新
在数字化时代的浪潮中,移动应用与操作系统是推动社会互联和技术创新的双引擎。本文将深入探讨移动应用开发的最新趋势,分析移动操作系统如何适应这些变化,并预测这两者之间相互作用的未来走向。通过对现有技术框架的剖析及新兴技术的考察,我们旨在为开发者提供一个清晰的发展蓝图,同时为读者揭示这一领域潜在的转型与机遇。
9 0
|
3月前
|
安全 Unix Linux
【Linux入门指南:掌握开源操作系统的基础知识】(四)
【Linux入门指南:掌握开源操作系统的基础知识】
|
3月前
|
Linux
【Linux入门指南:掌握开源操作系统的基础知识】(三)
【Linux入门指南:掌握开源操作系统的基础知识】
|
7月前
|
Linux iOS开发 UED
Linux简介和比较:开源操作系统的优势与差异
Linux简介和比较:开源操作系统的优势与差异
224 0
|
1天前
|
前端开发 Android开发 开发者
移动应用与系统:探索开发实践与操作系统融合
【4月更文挑战第23天】 在数字化时代的浪潮中,移动应用与系统的发展已成为技术创新和商业竞争的前沿阵地。本文将深入探讨移动应用的开发实践、移动操作系统的最新趋势以及二者之间的紧密融合。通过分析跨平台工具的效能、原生开发的优化策略以及操作系统的定制化功能,旨在为开发者提供一个全面而深入的视角,以适应不断变化的市场需求和技术挑战。
|
11天前
|
前端开发 Android开发 开发者
移动应用的未来:跨平台开发与操作系统的融合
【4月更文挑战第14天】 随着移动设备成为日常生活的中心,移动应用的开发和操作系统的优化变得至关重要。本文深入探讨了跨平台移动应用开发的兴起,以及移动操作系统如何适应这种趋势。分析了Flutter、React Native等现代框架的优势,同时评估了Android和iOS系统在兼容性、性能和用户体验方面的挑战。最后,文章预测了未来移动应用与操作系统可能的融合方式,为开发者和企业提供了洞见。
19 3
|
16天前
|
Java 物联网 Android开发
移动应用与系统:探索开发与操作系统的融合
【4月更文挑战第8天】 在数字化时代的浪潮中,移动应用与系统的发展已成为技术创新的前沿阵地。本文将深入探讨移动应用开发的关键技术、移动操作系统的架构演变以及两者之间的相互作用。通过对当前流行的开发工具、编程语言和操作系统特性的分析,我们旨在为开发者提供一套全面的指导,以优化移动应用的性能和用户体验。同时,文章还将展望移动技术的未来趋势,特别是在人工智能和物联网领域的潜在应用。
|
1月前
|
安全 物联网 开发工具
移动应用的未来:跨平台开发与操作系统的融合
随着移动设备的普及,移动应用已成为日常生活的一部分。本文探讨了移动应用开发的最新趋势,特别是跨平台工具的兴起和移动操作系统的演进。分析了如何通过这些技术提高开发效率,创造更优质的用户体验,并预测了未来可能的发展路径。
|
1月前
|
开发工具 Android开发 开发者
移动应用的未来之路:跨平台开发与操作系统的融合
【2月更文挑战第30天】在本文中,我们将深入探讨移动应用开发的当前趋势以及移动操作系统的未来发展。我们将重点讨论跨平台开发工具的崛起,以及它们如何改变开发者构建移动应用的方式。此外,我们还将探讨移动操作系统的最新进展,包括它们的功能、安全性和用户体验。最后,我们将预测这些变化将如何影响未来的移动应用开发。