linux java升级版本_为嵌入式Linux设备实现更新/升级系统

我有一个在嵌入式Linux设备上运行的应用程序,并且偶尔会对软件进行更改,有时也会对根文件系统甚至已安装的内核进行更改 .

在当前的更新系统中,只删除旧应用程序目录的内容,并在其上复制新文件 . 当对根文件系统进行更改时,新文件将作为更新的一部分传递,并简单地复制到旧文件上 .

现在,目前的方法存在一些问题,我正在寻找改善这种情况的方法:

用于创建文件系统映像的目标的根文件系统未进行版本控制(我认为我们甚至没有原始rootfs) .

手动选择进入更新的rootfs文件(而不是diff)

更新不断增长,成为皮塔饼 . 现在,更新/升级之间存在拆分,其中升级包含更大的rootfs更改 .

我的印象是,如果完全实现,更新中的一致性检查相当脆弱 .

要求是:

应用程序更新包不应太大,并且必须能够在已进行修改的情况下更改根文件系统 .

升级可以更大,只包含进入根文件系统的内容(如新库,内核等) . 更新可能需要安装升级 .

升级是否可以包含整个根文件系统,只需在目标的闪存驱动器上执行 dd ?

创建更新/升级包应尽可能自动化 .

我绝对需要一些方法来对根文件系统进行版本控制 . 这必须以某种方式完成,我可以从中计算某种 diff ,它可以用来更新目标设备的rootfs .

我已经查看了Subversion,因为我们将它用于源代码,但这对Linux根文件系统(文件权限,特殊文件等)不合适 .

我现在已经创建了一些shell脚本,可以给我一些类似于 svn diff 但我真的想知道是否已经存在一个可行的,经过测试的解决方案 .

使用这样的 diff ,我想升级将简单地成为包含基于已知根文件系统状态的增量更新的包 .

你对此有何看法和想法?你会如何实现这样的系统?我更喜欢一个简单的解决方案,可以在不太长的时间内实现 .

嵌入式系统通常对于资源和执行效率有严格的约束,导致了应用于嵌入式系统中的操作系统通常都提供非常有限的编程接口和系统支持。因此对于传统的嵌入式系统开发人员来说,开发难度相对较大,开发效率也相对较低。Java的出现缓解了这一情况。由于Java的跨平台特性,大批应用程序开发人员可以脱离硬件平台,在桌面的虚拟环境中开发嵌入式应用程序。 与传统的Java虚拟机不同,YJVM(Yet another JVM)是运行在嵌入式Linux内核中的Java虚拟机。实现了解释执行Java字节码、线程管理、执行环境管理、集成Classpath核心类库等基本功能。它可以使Linux在内核层次上支持Java的字节码,从而减少了软件层次、为提高效率留下空间。另外,YJVM中还构造了Java的进程管理,为在嵌入式环境中运行Java程序提供了更安全的环境。不同于纯粹用Java实现的操作系统的尝试,这个方案更充分利用了现有的操作系统的实践成果,在不牺牲Java跨平台特性的前提下,更有实用价值。 本文从对嵌入式操作系统的讨论入手,结合Java虚拟机的原理和研究状况阐述了YJVM的设计和实现要点,体现了YJVM相比现有的嵌入式Java解决方案和Java操作系统的优势。本文的主要研究内容及成果包括: 1、作为一种嵌入式操作系统嵌入式Linux的基本结构和与传统嵌入式操作系统相比的特点和优势。 2、嵌入式Java的传统解决方案和Java操作系统的基本结构。以及他们对于YJVM设计的影响和异同。 3、Java虚拟机的工作原理和结构。在YJVM中Java虚拟机的结构和实现方案之间的具体映射。 4、YJVM中程序装载、解释器、进程管理、垃圾收集和对Classpath核心类库集成的具体实现要点. 5、测试方案的制定的依据和结果;测试例程的构造和选择;测试结果的分析和在此基础上提出的改进和发展方向。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值