設計系統更新補丁的注意點,設計系統更新補丁

來源:互聯網
上載者:User

設計系統更新補丁的注意點,設計系統更新補丁
通常我們開發出一個系統,是肯定要經常升級的。升級就意味著對代碼或者資料結構的修改,當然一般情況下一個系統開發出來應該盡量少的修改資料結構的。
那麼,當別人當前使用的不是最新的版本,我們應該如何提供更新補丁供使用者升級呢?


版本號碼
第一,毫無疑問,每次放出一個版本的下載,都應該有一個對應的版本號碼以供區分。這樣如果目前使用者的版本和最新發行的版本不一致,就說明他應該更新了。


提供更新補丁
第二,如何提供更新補丁。第一種方法:只提供修改了的檔案,並且修改的檔案應該根據系統的目錄進行打包。比如我修改了系統目錄中admin檔案夾中的index.php檔案,那麼補丁裡不能直接存放indxe.php,而是要建立一個admin檔案夾,把修改完的index.php檔案存進後再將admin目錄打包。第二種方法:不管修改了多少檔案都將系統整體打包。補丁包裡面應該附帶有詳細的更新說明以及更新方法。


如何讓使用者更新
第三,如何讓使用者更新。對於這兩種方法都是讓使用者下載補丁後覆蓋原檔案,當然基於保險考慮應該提示使用者備份原檔案。可以單獨讓使用者下載更新包或者提供線上更新。


資料結構更新
第四,資料結構的更新。這個與更新代碼不一樣,稍微特別了點。因為資料庫裡面可能已經有資料了,所以肯定不能刪除原資料庫,再產生新的資料庫。那麼怎麼辦呢?只能通過修改語句對特定的表進行操作,比如添加或者刪除欄位,新增一個表或者刪除一個表等。


跨版本更新
第五,版本跨度大如何升級。有的使用者可能使用的版本非常舊,與最新版之間間隔了多個版本,怎麼升級?最保險的就是一個補丁一個補丁的進行安裝;如果要一次性安裝怎麼辦,那就必須要根據不同的版本製作不同的安裝包,因為從版本1到版本2可能只改動了1個檔案,從版本2到版本3可能也只改動了1個檔案,但是從版本1到版本3就改動了2個檔案了,所以根據不同的版本製作不同的安裝包是必要的也是必須的。


總之,提供更新補丁最重要的一點就是要能夠準確判斷目前的版本與最新版本的區別,然後下載對應的補丁。對資料結構的改動應該謹慎,一般情況下可以有新增(表或欄位),但要盡量避免刪除。


系統問題

Windows系統出現記憶體錯誤

使用Windows作業系統的人有時會遇到這樣的錯誤資訊:“0X????????指令引用的0x00000000記憶體,該記憶體不能written”,然後應用程式被關閉。如果去請教一些“高手”,得到的回答往往是“Windows就是這樣不穩定”之類的義憤和不屑。其實,這個錯誤並不一定是Windows不穩定造成的。本文就來簡單分析這種錯誤的常見原因。

一、應用程式沒有檢查記憶體配置失敗

程式需要一塊記憶體用以儲存資料時,就需要叫用作業系統提供的“功能函數”來申請,如果記憶體配置成功,函數就會將所新開闢的記憶體區地址返回給應用程式,應用程式就可以通過這個地址使用這塊記憶體。這就是“動態記憶體分配”,記憶體位址也就是編程中的“指標”。

記憶體不是永遠都招之即來、用之不盡的,有時候記憶體配置也會失敗。當分配失敗時系統函數會返回一個0值,這時傳回值“0”已不表示新啟用的指標,而是系統嚮應用程式發出的一個通知,告知出現了錯誤。作為應用程式,在每一次申請記憶體後都應該檢查傳回值是否為0,如果是,則意味著出現了故障,應該採取一些措施挽救,這就增強了程式的“健壯性”。

若應用程式沒有檢查這個錯誤,它就會按照“思維慣性”認為這個值是給它分配的可用指標,繼續在之後的運行中使用這塊記憶體。真正的0地址記憶體區儲存的是電腦系統中最重要的“中斷描述符表”,絕對不允許應用程式使用。在沒有保護機制的作業系統下(如DOS),寫資料到這個地址會導致立即死機,而在健壯的作業系統中,如Windows等,這個操作會馬上被系統的保護機制捕獲,其結果就是由作業系統強行關閉出錯的應用程式,以防止其錯誤擴大。這時候,就會出現上述的“寫記憶體”錯誤,並指出被引用的記憶體位址為“0x00000000”。

記憶體配置失敗故障的原因很多,記憶體不夠、系統函數的版本不匹配等都可能有影響。因此,這種分配失敗多見於作業系統使用很長時間後,安裝了多種應用程式(包括無意中“安裝”的病毒程式),更改了大量的系統參數和系統檔案之後。

二、應用程式由於自身BUG引用了不正常的記憶體指標

在使用動態分配的應用程式中,有時會有這樣的情況出現:程式試圖讀寫一塊“應該可用”的記憶體,但不知為什麼,這個預料中可用的指標已經失效了。有可能是“忘記了”向作業系統要求分配,也可能是程式自己在某個時候已經登出了這塊記憶體而“沒有留意”等等。登出了的記憶體被系統回收,其訪問權已經不屬於該應用程式,因此讀寫操作也同樣會觸發系統的保護機制,企圖“違法”的程式唯一的下場就是被操作終止運行,回收全部資源。電腦世界的法律還是要比人類有效和嚴厲得多啊!

像這樣的情況都屬於程式自身的BUG,你往往可在特定的操作順序下重現錯誤。無效指標不一定總是0,因此錯誤提示中的記憶體位址也不一定為“0x00000000”,而是其他隨機數字。

如果系統經常有所提到的錯誤提示,下面的建議可能會有協助:

1.查看系統中是否有木馬或病毒。這類程式為了控制系統往往不負責任地修改系統,從而導致作業系統異常。平常應加強資訊安全意識,對來源不明的可執行程式絕不好奇。

2.更新作業系統,讓作業系統的安裝程式重新拷貝正確版本的系統檔案、修正系統參數。有時候作業系統本身也會有BUG,要注意安裝官方發行的升級程式。

3.試用新版本的應用程式

偶爾出現,是程式衝突,與偶爾藍屏差不多,沒什麼關係的。
經常出現就危險了,後果很嚴重,往往是廢了半天勁,還得重裝系統!
該記憶體不能read written常見原因及解決方案
1 記憶體條壞了 更換記憶體條
2......餘下全文>>
 
監控系統設計需要注意的幾點

是大型監控系統:1.光端機的位置分布要合理(離攝像機位置不要過遠)不超過300米,方便施工就可以啦!
 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.