微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 领略Linux操作系统魅力:TiVo 揭秘

领略Linux操作系统魅力:TiVo 揭秘

时间:05-22 来源:互联网 点击:

的 Mac Mini 可以读取这个分区表。下面是这个分区表映射的内容:

Partition map (with 512 byte blocks) on '/dev/rdisk1'#:                type name                       length   base     ( size )1: Apple_partition_map Apple                          63 @ 12:               Image Bootstrap 1                     1 @ 441613243:               Image Kernel 1                     8192 @ 44161325 (  4.0M)4:                Ext2 Root 1                     524288 @ 44169517 (256.0M)5:               Image Bootstrap 2                     1 @ 446938056:               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 机器上装上这个磁盘并查看这些文件系统的内容了。

# 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 文件系统的内容非常理想:

# file root2.imgroot2.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 文件,所有这些文件的大小都是典型的视频文件的大小,其中包含了可能需要显示的一些消息。

虽然这些软件有点混乱,但是实际上并

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top