我正在研究TinyOS的学校作业,并读到“核心操作系统是400字节”,另一个来源说“TinyOS的足迹是400字节”究竟是什么意思?它是硬盘上占用的实际空间吗? 像Windows这样的“传统”操作系统有多大?
我发现“足迹”实际意味着什么的答案也让人感到困惑。因为它似乎意味着实际的物理空间和内存/磁盘空间。
答案 0 :(得分:2)
为了解释一下背景,authors of TinyOS themselves have explained that TinyOS并不是一个真正的操作系统:
TinyOS有一个基于组件的编程模型,由。编写 nesC语言,C语言的一种方言.TinyOS不是传统的操作系统 感;它是嵌入式系统和集合的编程框架 能够构建特定于应用程序的操作系统的组件 每个申请。典型的应用大小约为15K,其中 基本OS大约是400字节;最大的应用程序,a 类似数据库的查询系统,大约是64K字节。
TinyOS是一个软件构建系统,旨在让软件工程师能够更轻松地为没有硬盘的小型设备(like this wireless sensor)构建软件。相反,程序通常存储在设备的微控制器内 - 我链接的设备例如具有48k字节的闪存(像这样的小型嵌入式设备通常使用闪存来存储他们的程序)。 48k的代码并不是很重要,因此,当您将软件加载到设备上时,它占用的空间越小,这一点非常重要。
因此,400字节的基本足迹'意味着,除了您(软件工程师)编写的代码,无论您的微型设备需要做什么,TinyOS框架(支持并为您的代码提供服务)只会增加400个字节(这真是太棒了) !)到您的程序代码,它将实际加载到设备的闪存中。然而,这不是唯一的开销 - 取决于设备,TinyOS还可能包括该设备上存在的任何芯片和组件的各种不同的支持驱动程序。
有关实际程序大小的一些示例,请参阅figure 6 in this paper。
因此我发现使用TinyOS为不同设备构建相同的应用程序会产生非常不同的结果。例如,如果我为MicaZ无线传感器构建一个非常简单的程序,我得到:
compiled NullAppC to build/micaz/main.exe
610 bytes in ROM
4 bytes in RAM
这意味着总程序代码加上基本OS(400字节)是610字节(程序也将使用4字节的RAM)。但是,如果我为TelosB构建相同的程序:
compiled NullAppC to build/telosb/main.exe
1328 bytes in ROM
6 bytes in RAM
1328字节!显然,TelosB需要更多额外的软件,可能是因为TelosB上的组件需要更复杂的附加驱动软件。