Linux中国  设为主页
 收藏本站
 
当前位置: > 首页 ->Linux技术 ->嵌入式系统 ->Linux 的魅力: TiVo 揭密
  相关分类: 
入门与提高
系统管理
网络应用
嵌入式系统
内核研究
服务器相关
发行版专区
Linux程序设计
Linux安全
BSD相关
桌面应用
  站内搜索: 
热门文章排行
热门文章排行 嵌入式系统 Boot Loader 技术内幕 (04-22)
BusyBox 简化嵌入式 Linux 系统 (04-22)
Linux下的硬件驱动——USB设备(下)(04-22)
Linux串口上网的简单实现 (04-22)
Linux下PCI设备驱动程序开发 (04-22)
精采文章排行
精采文章排行 BusyBox 简化嵌入式 Linux 系统 (04-22)
Linux 助力 Nokia 770 (04-22)
嵌入式Linux 中的应用中的GTK+ (04-22)
嵌入式系统 Boot Loader 技术内幕 (04-22)
FREEBSD下使用crunch集成编译程序 (04-22)
  ·怎么样从FireWire 设备引导Linux ·教你怎么样从FireWire 设备引导Linux ·嵌入式程序员应知道的几个基本问题(2) ·嵌入式程序员应知道的几个基本问题(1) ·Linux 助力 Nokia 770 ·嵌入式Linux 中的应用中的GTK+ ·嵌入式系统 Boot Loader 技术内幕 ·FREEBSD下使用crunch集成编译程序 ·ucLinux下sqlite数据库移植全攻略

Linux 的魅力: TiVo 揭密

作者:Peter Seebach    来源:IBM DW中国   点击:   日期:2007-04-22 [收藏] [投稿]

  IE是否经常中毒?推荐您


清单 5. 这个格式非常熟悉,不是吗?


Partition map (with 512 byte blocks) on '/dev/rdisk1'
 #:                type name                       length   base     ( size )
 1: Apple_partition_map Apple                          63 @ 1
 2:               Image Bootstrap 1                     1 @ 44161324
 3:               Image Kernel 1                     8192 @ 44161325 (  4.0M)
 4:                Ext2 Root 1                     524288 @ 44169517 (256.0M)
 5:               Image Bootstrap 2                     1 @ 44693805
 6:               Image Kernel 2                     8192 @ 44693806 (  4.0M)
 7:                Ext2 Root 2                     524288 @ 44701998 (256.0M)
 8:                Swap Linux swap                 262144 @ 45226286 (128.0M)
 9:                Ext2 /var                       262144 @ 45488430 (128.0M)
10:                 MFS MFS application region     524288 @ 45750574 (256.0M)
11:                 MFS MFS media region         33494098 @ 46799150 ( 16.0G)
12:                 MFS MFS application region 2   524288 @ 46274862 (256.0M)
13:                 MFS MFS media region 2       44161260 @ 64       ( 21.1G)


Device block size=512, Number of Blocks=80293248 (38.3G)
DeviceType=0x0, DeviceId=0x0

这为我们能够期望得到什么内容提供了很好的思想。首先,它好像是设计用来更新一个文件系统,同时在另外一个文件系统上运行,这样能使更新更加安全。奇怪的是:这为文件系统提供了精确的块偏移量和大小。这说明现在可以重新在 Linux 机器上装上这个磁盘并查看这些文件系统的内容了。


清单 6. 详细了解文件系统的内容


# dd if=/dev/hde bs=512 count=524288 skip=44169517 of=root1.img
# dd if=/dev/hde bs=512 count=524288 skip=44701998 of=root2.img
# dd if=/dev/hde bs=512 count=262144 skip=45488430 of=var.img

这显示 Root 1 文件系统尚未格式化;它只是 256 MB 的空字节。而 Root 2 文件系统的内容非常理想:


清单 7. 好极了!


# file root2.img
root2.img: Linux rev 0.0 ext2 filesystem data
# mount -o loop root2.img /mnt
# ls /mnt
.   bin  diag  etc       initrd   lib         mnt  proc  sbin  tvbin  var
..  dev  dist  etccombo  install  lost+found  opt  res   tmp   tvlib
# mount -o loop var.img /mnt/var
# ls /mnt/var
.   a    dev   etc  lost+found  mnt   packages  run    tmp
..  bin  dist  log  mess        mtab  persist   state  utils

安全性

采用专用系统的缺点之一是,TiVo 具有一些旨在防止别人修改它的“安全性”特性。这是一个非常简单的经济学问题 —— 以 100 美元的价格销售具有硬盘和 TV 谐调器的通用 MIPS 系统的任何公司很快就破产了。对于现在来说,我们只是要了解一下 Linux 是怎么样在这个系统上运行的,而不是了解怎么样修改它。

注意,ext2 文件系统在不同系统之间的兼容性意味着您可以选择使用一个普通的 Linux 机器。您甚至可以设置一个交叉编译器以及相关的工具,后面我们会更详细地进行介绍。然而,不要期望能够很容易地修改内容;尽管已经可以这样做了,但是这并不意味着这非常简单。记住,这是一个专有的可以实现录像功能的硬件。更不必说,有很多公司都非常希望难以对它做较大修改。

在这个特定的 TiVo 模型中,在加载内核之前,要进行一个硬件安全性检查。然后,内核本身具有一个内嵌的 RAMdisk,其中包含了一些安全性特性;我们可以对在硬盘上找到的代码进行比较,例如 /var/utils/checkkernel.tcl 脚本。

值得指出的是,在原始安装中有大量的额外空间。根文件系统使用了 54 MB 的空间,还有 182 MB 的剩余空间;/var 使用了 3 MB,还有 116 MB 的空闲空间。当然,这样做的目的是为了存储大量的数据,例如您需要监视的程序。

看一看软件

关于 TiVo 最有趣的一件事情是它有很多特殊用途的应用程序。虽然从理论上来说它有一个显示设备,但是实际上它只能通过在屏幕上卷屏来显示文本。系统中有一个可执行文件 /tvbin/text2osd,它听起来像是一个将数据作为屏幕显示写到输出磁带上的应用程序。还有一些非常有趣的 PNG 文件,所有这些文件的大小都是典型的视频文件的大小,其中包含了可能需要显示的一些消息。

虽然这些软件有点混乱,但是实际上并不需要在一些直观的位置上具有真正的内容;只有开发团队需要这些内容。有些内容对于其他用户来说可能并没有太多意义,所有的 TiVo 软件都位于 /tvbin 和 /tvlib 中,但是很多程序的配置文件都位于 /opt/tivo 中。更传统的 Linux 文件系统的布局应该将这些文件放到 /opt/tivo/bin、/opt/tivo/lib 和 /opt/tivo/etc 中。

来看一下 Tcl 脚本,我注意到它是由 /tvbin/tivosh 解释的。这可能是一个 tcl 解释器。但是稍等一下,它实际上是一个符号链接,链接到一个名为 tivoapp 的程序。很多不同的程序都会链接到 tivoapp 上。它看起来就像是一个包含多个不同程序的统一的二进制文件。为什么要这样编译程序的原因并不非常直观 —— 它可以降低内存的使用,或者可以让系统更难以崩溃。

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<

上一页 1 23 下一页

上一篇:Zaurus 引领嵌入式 Linux   下一篇:四种实时操作系统特性进行分析和比较
文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论

   相关文章:
·从Linux BIOS的起源 看未来主板框架

   文章评论:(1条)
  
 请留名: 匿名评论   点击查看所有评论 论坛讨论
 

 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。