原创 Netlink 內核實現分析(一):創建

Netlink 是一種IPC(Inter Process Commumicate)機制,它是一種用於內核與用戶空間通信的機制,同時它也以用於進程間通信(Netlink 更多用於內核通信,進程之間通信更多使用Unix域套接字)。在一般情況下

原创 Netlink 內核實現分析(二):通信

在前一篇博文《Netlink 內核實現分析(一):創建》中已經較爲詳細的分析了Linux內核netlink子系統的初始化流程、內核netlink套接字的創建、應用層netlink套接字的創建和綁定流程,本文來詳細的分析一下內核是如何實現n

原创 Generic Netlink內核實現分析(二):通信

前一篇博文中分析了Generic Netlink的消息結構及內核初始化流程,本文中通過一個示例程序來了解Generic Netlink在內核和應用層之間的單播通信流程。 示例程序:demo_genetlink_kern.c(內核模塊)、d

原创 樹莓派啓用看門狗watchdog

樹莓派內核默認沒有啓用看門狗功能,當內核掛死時將進入“死機”狀態或kgdb調試狀態,並不會自動重啓系統。本文爲樹莓派開啓看門狗功能並通過內核線程週期性喂狗,當出現系統崩潰時會自動重啓Linux系統。 環境說明:(1)單板:樹莓派b    

原创 ARM Linux啓動流程分析——內核自解壓階段

本文整理了ARM Linxu啓動流程的第一階段——內核自解壓,內核版本爲3.12.35。我以手上的樹莓派b(ARM11)爲平臺示例來分析uboot跳轉到Linux內核運行後做了哪些初始化動作,以及如何轉入真正的內核開始運行。 內核版本

原创 Linux內核調試技術——kprobe使用與實現

Linux kprobes調試技術是內核開發者們專門爲了便於跟蹤內核函數執行狀態所設計的一種輕量級內核調試技術。利用kprobes技術,內核開發人員可以在內核的絕大多數指定函數中動態的插入探測點來收集所需的調試狀態信息而基本不影響內核原有

原创 ARM Linux啓動流程分析——start_kernel前啓動階段(彙編部分)

本文整理了ARM Linxu啓動流程的第二階段——start_kernel前啓動階段(彙編部分),內核版本爲3.12.35。我以手上的樹莓派b(ARM11)爲平臺示例來分析Linux內核在自解壓後到跳轉運行start_kernel之前所做