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