領(lǐng)略Linux操作系統(tǒng)魅力:TiVo 揭秘
|
注意開始可能會(huì)出現(xiàn)一些嚴(yán)重的錯(cuò)誤;而且一段時(shí)間內(nèi)可能不會(huì)有任何輸出結(jié)果。這個(gè)磁盤中包含了很多 空扇區(qū),一開始整個(gè)扇區(qū)的內(nèi)容都為 0,bzip2 負(fù)責(zé)對(duì)磁盤上的內(nèi)容進(jìn)行壓縮 —— 在到達(dá) 4,096 字節(jié)之前可能需要 1 分鐘,在到達(dá) 8,192 字節(jié)時(shí)還需要幾分鐘。最后的文件大小大約是 560 MB,對(duì)于一個(gè) 40 GB 的磁盤映像文件來說這還不錯(cuò)。如果您希望從這個(gè)備份進(jìn)行還原,只需要執(zhí)行下面的命令:
|
如果您的磁盤上已經(jīng)有一些數(shù)據(jù),這個(gè)映像文件可能會(huì)遠(yuǎn)遠(yuǎn)大于 560 MB。此處假設(shè)您具有與 TiVo 磁盤差不多的空閑空間。
那么,磁盤上有什么內(nèi)容呢?
由于磁盤并沒有進(jìn)行分區(qū),我們很容易就猜想它使用了某種專用的格式。研究其格式需要花費(fèi)一定的時(shí)間。 當(dāng)然,要做的第一件事情是將磁盤看成裸字節(jié)。磁盤上數(shù)據(jù)的開頭有點(diǎn)類似于啟動(dòng)引導(dǎo)程序的
|
接下來是真相大揭密 —— 這個(gè)磁盤上包含了一個(gè) Apple 分區(qū)映射:
|
您還懷疑嗎?
回顧一下,對(duì)于運(yùn)行 Linux 的 PowerPC 機(jī)器來說,使用一個(gè) Apple 分區(qū)映射是非常合理的。對(duì)于 Apple 分區(qū)映射的支持并沒有什么特殊,也有很好的文檔進(jìn)行介紹。這對(duì)于 MIPS 系統(tǒng)來說并不是非常典型,但是卻可以選擇與 Series1 系統(tǒng)兼容,后者是在 PowerPC 上運(yùn)行的。
嚴(yán)格來說,這仍然是一種專有格式;不過它已經(jīng)是大家都知道了的一種格式。不幸的是,這些分區(qū)使用的都不是 OS X 所熟悉的格式,但是我的 Mac Mini 可以讀取這個(gè)分區(qū)表。下面是這個(gè)分區(qū)表映射的內(nèi)容:
|
這為我們能夠期望得到什么內(nèi)容提供了很好的思想。首先,它好像是設(shè)計(jì)用來更新一個(gè)文件系統(tǒng),同時(shí)在另外一個(gè)文件系統(tǒng)上運(yùn)行,這樣能使更新更加安全。奇怪的是:這為文件系統(tǒng)提供了精確的塊偏移量和大小。這說明現(xiàn)在可以重新在 Linux 機(jī)器上裝上這個(gè)磁盤并查看這些文件系統(tǒng)的內(nèi)容了。
|
這顯示 Root 1 文件系統(tǒng)尚未格式化;它只是 256 MB 的空字節(jié)。而 Root 2 文件系統(tǒng)的內(nèi)容非常理想:
|
安全性
采用專用系統(tǒng)的缺點(diǎn)之一是,TiVo 具有一些旨在防止別人修改它的“安全性”特性。這是一個(gè)非常簡單的經(jīng)濟(jì)學(xué)問題 —— 以 100 美元的價(jià)格銷售具有硬盤和 TV 諧調(diào)器的通用 MIPS 系統(tǒng)的任何公司很快就破產(chǎn)了。對(duì)于現(xiàn)在來說,我們只是要了解一下 Linux 是如何在這個(gè)系統(tǒng)上運(yùn)行的,而不是了解如何修改它。
注意,ext2 文件系統(tǒng)在不同系統(tǒng)之間的兼容性意味著您可以選擇使用一個(gè)普通的 Linux 機(jī)器。您甚至可以設(shè)置一個(gè)交叉編譯器以及相關(guān)的工具,后面我們會(huì)更詳細(xì)地進(jìn)行介紹。然而,不要期望能夠很容易地修改內(nèi)容;盡管已經(jīng)可以這樣做了,但是這并不意味著這非常簡單。記住,這是一個(gè)專有的可以實(shí)現(xiàn)錄像功能的硬件。更不必說,有很多公司都非常希望難以對(duì)它做較大修改。
在這個(gè)特定的 TiVo 模型中,在加載內(nèi)核之前,要進(jìn)行一個(gè)硬件安全性檢查。然后,內(nèi)核本身具有一個(gè)內(nèi)嵌的 RAMdisk,其中包含了一些安全性特性;我們可以對(duì)在硬盤上找到的代碼進(jìn)行比較,例如 /var/utils/checkkernel.tcl 腳本。
值得指出的是,在原始安裝中有大量的額外空間。根文件系統(tǒng)使用了 54 MB 的空間,還有 182 MB 的剩余空間;/var 使用了 3 MB,還有 116 MB 的空閑空間。當(dāng)然,這樣做的目的是為了存儲(chǔ)大量的數(shù)據(jù),例如您需要監(jiān)視的程序。
相關(guān)推薦
技術(shù)專區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車電子
- 轉(zhuǎn)換器
- 電源管理
- 信號(hào)放大器
評(píng)論