Linux核心編程(The Linux Kernel Primer)書

第二章 linux核心探索工具集。核心中常見資料類型(鏈表,樹,尋找),彙編樣本,內聯彙編,核心探索工具(objdump/readelf、hexdump、nm、objcopy、ar)、printk、dmesg、var/log/messages、__init、likely()/unlikely()。第三章

linux 32位平台,檔案大小受限於2G的解決方案

 公司的asterisk系統已經發生了兩次crash,檢查日誌,都是在記錄檔寫滿到2G後自動執行轉儲時,日誌還在寫繼續寫入而導致的。google以後,發現了下面這邊文章,贊!解決了檔案大小限於2G的問題,轉帖到自己的空間保留。突破Linux上面ftell函數2GB的檔案大小限制http://www.demix.cn/h?z=28507在 32 位元的 Linux 上面寫超過 2GB 的檔案會發生錯誤,甚至導致程式終止執行。這是因為 Linux 的系統內部處理檔案時用的指標定義為 long,而

深入理解linux核心 書

第一章

ubuntu11.10下linux核心主機編譯

        目前,最新的linux核心版本為3.3版,開始我下載的是2.6.23版發現在這個版本的ubuntu下編譯不了,說是這個內建的gcc4.6編譯器版本不支援核心編譯的一些屬性,但是修改之後還是不對,錯誤越來越多。試了一上午,沒有結果,決定改用其他版本核心,我選用了linux2.6.35.13版。對比其與之前版本的差別,發現檔案結構及makefile等內容均有較大差別。1.直接去官網下載,或者使用wget命令下載核心2.我的格式是tar.bz2,解壓縮命令為tar xvfj ....,

linux下編譯工具的用途

GNU binutils是一組二進位工具集。Binutils是GNU工具之一,它包括連接器、彙編器和其他用於目標檔案和檔案的工具,它是二進位代碼的處理維護工具。包括:addr2line ar gprof nm objcopy objdump ranlib size strings

linux核心調試

三大協助命令:XXX -h(xxx –help)man -a XXXinfo XXX arm-elf-XXX

Linux核心入門(五)——必要的硬體知識

要想弄懂Linux核心的工作原理,就必須懂點基本的硬體知識。這裡我們主要介紹Intel 80x86系列CPU保護模式下最核心的組件中幾個寄存器的作用,這些寄存器在Linux核心運行時起著至關重要的作用。至於其他那些各式各樣的硬體裝置,我們在講解裝置驅動時會針對具體的驅動程式來介紹的。首先,大家先看看CPU的主要架構: EU(通用寄存器、運算器和控制器)執行組件:完成指令所要求的功能。SU(段寄存器、段轉換器)分段組件:完成執行單元的地址請求,

Linux核心入門(四)—— 核心組合語言規則

    任何一個用進階語言編寫的作業系統,其核心原始碼中總有少部分代碼是用組合語言編寫的。讀過Unix Sys V原始碼的讀者都知道,在其約3萬行的核心代碼中用組合語言編寫的代碼約2000行,分成不到20個副檔名為.s和.m的檔案,其中大部分是關於中斷與異常處理的底層程式,還有就是與初始化有關的程式以及一些核心代碼中調用的公用子程式。

Linux核心入門(六)—— __attribute__ 機制

GNU C的一大特色(卻不被初學者所知)就是__attribute__機制。__attribute__是用來設定函數屬性(Function Attribute)、變數屬性(Variable Attribute)和類型屬性(Type Attribute)。__attribute__書寫特徵是:__attribute__前後都有兩個底線,並切後面會緊跟一對原括弧,括弧裡面是相應的__attribute__參數。__attribute__文法格式為:__attribute__ ((attribute-

Linux核心入門(七)—— 必要的編譯知識

所有的核心代碼,基本都包含了include/linux/compile.h這個檔案,所以它是基礎,涵蓋了分析核心所需要的一些列編譯知識,本博就分析分析這個檔案裡的代碼:#ifndef __LINUX_COMPILER_H#define __LINUX_COMPILER_H#ifndef

Linux頁框級記憶體管理處理細節

弄清楚夥伴系統演算法的原理以後,我們就可以開開心心地處理頁框了。 我們可以通過6個稍有差別的函數和宏請求頁框。一般情況下,他們都返回第一個所分配頁的線性地址,或者分配失敗則返回NULL。alloc_pages(gfp_mask, order):用這個函數請求2order 個連續的頁框。他返回第一個所分配頁框描述符的地址,或者如果失敗,則返回NULL。alloc_page(gfp_mask):用於獲得一個單獨頁框的宏,它其實只是alloc_pages(gfp_mask,

Linux核心入門(一)——體系架構

Linux是一套免費使用和自由傳播的類Unix作業系統,它最先用於基於x86系列CPU的電腦上。這個系統是由世界各地的成千上萬的程式員設計和實現的。其目的是建立不受任何商品化軟體的著作權制約的、全世界都能自由使用的Unix相容產品。我們不去介紹作業系統的曆史了,也不管作業系統這門學科上對作業系統的分類了,閑話少說,Linux作業系統只是一個非常新的作業系統。它不拘泥於某種特定的作業系統類型,從核心上講,它是一個分時作業系統,但又具備即時作業系統的特性;從體繫上講,它是一個單核心作業系統,但又具備

Linux下Bluetooth編程

1. HCI層協議概述:HCI提供一套統一的方法來訪問Bluetooth底層。:   從圖上可以看出,Host Controller Interface(HCI)  就是用來溝通Host和Module。Host通常就是PC, Module則是以各種物理串連形式(USB,serial,pc-card等)串連到PC上的bluetooth

sourceinsight建立linux源碼瀏覽

用Source Insight建立一個Linux核心代碼工程具體步驟如下:(一)開啟Source Insight,單擊【項目】按鈕,彈出下拉式功能表。(二)單擊【新項目】按鈕,彈出【新項目】對話方塊,輸入項目名和存放路徑,單擊【確定】按鈕。(三)彈出【添加刪除檔案】對話方塊,在核心原始碼路徑下選擇全部

Linux kernel Low Level debug

如果你運氣不太好,那麼第一次啟動kernel,最多看見uncompressing linux...ok, booting the

Linux核心入門(二)——使用者態向核心態切換

那麼,程式什麼時候使用使用者棧,什麼時候使用核心棧呢?對,系統調用。也就是執行printf、open、read、write執行C語言庫函數時,其最終會用到對應的系統調用,如sys_open、sys_read等。這時候就切換到核心棧。1 Linux的堆棧切換我們針對80x86來討論,其實Linux只在四個地方用了它的堆棧段(由ss+esp指向其棧底地址):• 系統引導初始化臨時實模式下使用的堆棧• 進入保護模式後提供核心程式始化使用的堆棧,該堆棧也是後來進程0使用的使用者態堆棧•

備份一個Linux系統硬碟 II

<備份一個Linux系統硬碟 I>解決了第一次系統複製問題,可是隨著原系統的運行和發展,這兩個硬碟的內容的差距也會越來越大。我們可以每天在低峰訪問時間,比如半夜2點,同步一個備份硬碟和原系統。#! /bin/sh# sync backup system# written by Visual.Weirootdirlist=`ls /`skiplist="boot dev mnt proc

Philips TEA5761 Radio Linux driver for N800

AM/FM Radio driver patch for N800. Compile Tested Only. Please test ifone has access to N800.From: Trilok Soni <soni.trilok at gmail.com>Date: Fri, 16 Feb 2007 00:09:08 +0530Subject: [PATCH] : OMAP: Philips TEA5761 Radio driver for N800- Taken

ARM Linux Driver how to work with DMA

下面是arm linux中一個申請DMA buffer的例子,DMA需要uncached virtual address space,同時映射的實體記憶體需要是連續的,所以需要特定的函數來協助我們。info->data_buff = dma_alloc_coherent(&pdev->dev, MAX_BUFF_SIZE,&info->data_buff_phys, GFP_KERNEL);if (info->data_buff == NULL)

SAMSUNG SOC SD IROM writer for Linux

已經測試過在Fedora10上運行順利,需要root許可權才可以執行#! /bin/bash# written by cpuwolf@gmail.com 2010mountpt=/media/diskdevicename=sdbsdcard=/dev/$devicenameif test $# -le 0 ; thenecho "Error: needs IROM image path"exit 1fiinfile="$1"if [ -e $infile ] ; thenecho "IROM

總頁數: 3662 1 .... 721 722 723 724 725 .... 3662 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.