[發明專利]操作系統發生核心崩潰情況下讀取完整核心日志的方法有效
| 申請號: | 201210444344.2 | 申請日: | 2012-11-08 |
| 公開(公告)號: | CN103809989B | 公開(公告)日: | 2017-07-11 |
| 發明(設計)人: | 陳業新;卞永才 | 申請(專利權)人: | 英華達(南京)科技有限公司;英華達股份有限公司 |
| 主分類號: | G06F9/445 | 分類號: | G06F9/445;G06F11/28 |
| 代理公司: | 上海專利商標事務所有限公司31100 | 代理人: | 陳亮 |
| 地址: | 211153 江蘇省南*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 操作系統 發生 核心 崩潰 情況 讀取 完整 日志 方法 | ||
技術領域
本發明有關于在操作系統發生核心崩潰后,讀取核心日志的方法,尤指一種中央處理單元被進行復位重置后,即能完整導出核心日志的方法。
背景技術
由于Linux具有自由軟件(Free Software)與開放原始碼(Open Source)等特性,意即,只要使用者或企業是遵循GNU通用公眾授權條款(GNU General Public License,簡稱GNU GPL或GPL)的內容,便能夠自由地使用Linux核心(或稱為Linux內核)的所有底層原始碼,亦能夠自由地修改系統軟件與再發布修改后的系統軟件。由于Linux能供使用者(企業或個人)自由地對其進行最大程度的定制,因此,Linux能成為各種開放或封閉式系統的平臺,且應用于中間件(Middleware)或嵌入式系統(Embedded system)上,故,目前有眾多電子產品(如:電腦、智慧型手機、導航系統)的系統軟件是采用Linux核心所開發設計完成,例如Android 系統即為其一代表性作品。
一般言,在Linux核心運行的過程中,若應用程序發生非致命的執行時期錯誤(nonfatal runtime errors)時,Linux核心能對前述的錯誤情況予以處理,且允許應用程序執行完畢后,再產生錯誤結果訊息,但當發生硬件錯誤(如:irq conflict、bad block、high temperature),或是應用程序發生除零(Divide By Zero)、存儲器訪問越界(Access Denied)、緩沖區溢位(Buffer Overflow)等不可恢復的錯誤(或稱,致命錯誤(fatal error))時,則可能會造成核心崩潰(KERNEL PANIC),令Linux核心無法正常運行,進而發生當機情況。因此,使用者通常需讀取核心日志的內容,以能了解核心崩潰的發生原因,進而順利解決問題。所謂的“核心日志”是指,Linux核心于運行時,其會記錄系統的執行過程資訊,并將這些執行過程資訊保存在一個內部緩沖區中,記錄內容大抵包括:事件發生的日期與時間、發生此事件的主機名稱或來源IP、啟動此事件的服務名稱或函式名稱、該訊息的實際數據內容…等,以供使用者能藉由“核心日志”的內容,得知終端裝置的各個軟、硬件的工作狀態。
承上所述,在未發生核心崩潰的情況下,使用者能使用“cat/proc/kmsg”命令輸出核心日志,以查看Linux核心的運行狀況。但若系統發生核心崩潰的情況時,則可能造成前述“cat/proc/kmsg”命令無法輸出完整的核心日志,令使用者無法正確地判斷出發生核心崩潰的原因。因此,針對核心崩潰的情況,Linux核心本身提供了panic機制與kdump機制,茲就前述兩種機制簡單說明如下:
(1)panic機制:當核心崩潰的情況發生時,由于Linux核心不知目前的程序該如何執行下一步驟,因此,其會將此時所能獲取到的所有資訊顯示出來,但實際上,顯示內容多寡會因造成核心崩潰的各種原因有所差異。舉例而言,當核心崩潰的類型是hard panic,使用者能使用“/var/log/messages”命令取得堆迭追蹤(stack trace)訊息;又,使用者尚能搜索應用程序日志,以取得各個應用程序的運作過程;最后,使用者能自行記錄終端裝置的屏幕上所顯示的dump資訊。另,當核心崩潰的類型是soft panic,Linux核心會產生一個包含核心符號(kernel symbols)數據的dump資訊,該dump資訊會記錄于/var/log/messages中,又,使用者能透過ksymoops工具生成ksymoops檔案,以將核心符號數據轉換成可供判讀的數據。
(2)kdump機制(即,核心崩潰轉儲機制):當核心崩潰的情況發生時,會啟動kexec程序,將操作系統的當前核心(即,發生核心崩潰的核心,后續稱前一個核心)引導至另一個備份核心。此時,前一個核心運行時的存儲器鏡像內容,會被保存至/proc/vmcore中,使用者能透過“cp”命令或“scp”命令,將vmcore檔復制至磁片上,并在重啟操作系統后,透過分析工具對vmcore檔進行分析,查找出導致前一個核心發生核心崩潰的原因。
綜上所述可知,無論是panic機制或kdump機制,均需先行對Linux核心進行相關設定,且使用者亦需額外下達多個命令,才能取得核心日志,造成使用上的不便利性。因此,如何設計出一種更為方便的輸出核心日志的方法,令使用者不需對系統核心進行繁復的額外設定,即成為相關業者的重要課題。
發明內容
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于英華達(南京)科技有限公司;英華達股份有限公司,未經英華達(南京)科技有限公司;英華達股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210444344.2/2.html,轉載請聲明來源鉆瓜專利網。





