遠程系統更新升級是什麼原理?

比如特斯拉,iOS,安卓系統的更新升級原理,既然硬體是不變的,卻改變和增添了很多功能,這是怎麼做到的?


看到這個問題把我嚇了一跳…哥們你不會連繫統更新都不知道是什麼東西吧…

我們知道計算機系統主要由硬體系統和軟體系統構成,軟體系統主要由系統軟體和應用軟體構成。系統軟體就可以簡單地理解為操作系統,應用軟體就可以簡單地理解為各種App。

那麼這個問題就很好解決了。你肯定知道各種App是可以更新的,無非就是下載個新的版本然後覆蓋安裝就好了。操作系統不也一樣嗎?它不過就是一個大型的App而已。更新的時候也是下載一個新的安裝包,然後把舊文件替換成更新後的文件就可以了。


硬體是不變的,但是硬體的使用和調度是可變的。

我手上有根魚竿,今天我只知道它能用來釣魚,所以它的功能就是「釣魚」;過了幾天,我突然發現它還能用來釣龍蝦,那麼我就可以對魚竿進行重新的功能定義(調度),也就是「釣魚、釣龍蝦」,這就是實現了所謂的調度策略的更新。

那麼手機上或者電腦的硬體都是我們無法直接用手操作的,那我們怎麼讓這些產品為我們所用?操作系統就應運而生,也就是一種實現硬體統一調度的控制平台,有了它我們就可以利用操作系統對硬體的控制能力實現可以達到的各種目標。

但是不論什麼操作系統,它雖然掌控了所有的手機硬體的調度權利,但是在操作系統本身完成的過程中我們並沒有一次性實現所有可能的調度功能,比如在之前沒有操作系統會讓你的手機聽筒當做音響來播放音頻使用,但是現在假如在硬體支持的條件下,我們通過更改操作系統的調度策略或者實現的方式,我們就可以實現更多的功能,比如現在有的手機已經可以用聽筒作為副揚聲器使用了。

除了硬體調度策略之外,純軟體的調度策略也是一樣的。比如操作界面的實現,假如在日後研發團隊認為另一種交互模式更加方便快捷,那麼就可能可以在不改變硬體調度方式的情況下完全通過改變軟體層面的實現來更改或者添加刪除功能(比如交換兩個圖標的位置)。

我們所謂的系統更新,就是這樣一個硬體控制平台的變化,硬體仍然會通過原來的指令模式實現自己的工作,但是對於硬體上層平台的更改,很大程度上並不依賴於硬體本身的變化,所以也不存在硬體不變的情況下憑空捏造一個功能的說法了。


系統升級就是軟體升級啊。雖然硬體不變,但是在一樣的硬體基礎上,通過更新軟體程序來實現更多的功能。

服務端如果有更新,會推送給客戶端,通過文件下載的方式把更新文件下載到本地,然後更新程序會處理安裝更新文件實現系統的更新。


更新內容下載到本地

進入另一種模式

刷寫存儲


OTA


我好像明白提問者的疑惑。比如說手機上的閃光燈。他本來只是用來照相補光用的。但是系統升級之後他可以當成手電筒來用了。這就是硬體沒變,功能增加了。比如說自動泊車功能,本來需要在屏幕上,或者哪裡點幾下才可以啟動。那現在系統更新增加語音識別數據包。你就可以聲控自動波車了。


這部分計算機做的其實也沒太高深,因為操作系統廣義上也是軟體,和更新其他軟體沒有本質區別。

舉個栗子:

你訂了一份報紙,送到指定地址的信箱,這樣就會去固定的信箱去拿報紙,每次重新啟動引導就是這樣的。

結果今天發現裡邊夾了廣告,於是感覺了內容升級。

投遞員的工作就是OTA或者其他升級的方式咯。

準備夾廣告還是其他內容就是廠商的事咯。

夾完廣告給你打個電話,就是發布升級公告,默默地夾了就是自動更新。

廣告單獨分開夾還是印在頭版上就是...手動滑稽


就是把一個新的系統下載下來,然後重新安裝到手機中的過程,當然實際有很多細節。

安卓系統,是軟體層面的東西,硬體不變,增加了功能,這就是軟體的功勞。

手機可以簡單地分為三層,最底下是硬體層,中間是系統層,上面是應用層。系統是用來調度硬體,為它們分配任務的。系統更新時,系統層和應用層都會更新,系統層更新一般表現為省電優化和性能優化,應用層更新則表現為應用功能的變化。

安卓系統都擁有必要的能使應用正常運行的條件,因此對於所有應用都無需關心硬體是什麼樣的,系統已經把它封裝好了。


OTA


推薦閱讀:

軟萌貓咪養成記 – KleptoCats #iOS #Android
iPhone上有什麼軟體類似鎚子的遠程協助?
三星galaxy S5和HTC ONE(M8)哪款更適合入手?
iOS 7 中的 Safari 圖標是不是非常丑?
說一下 iOS 簡中翻譯的事情

TAG:iOS | Android | 特斯拉汽車TeslaMotors | 電子技術 |