Linux那些事兒之我是隨身碟(1)小城故事

這個故事中使用的是2.6.10的核心代碼.Linux核心代碼目錄中, 所有去裝置驅動程式有關的代碼都在drivers/目錄下面,在這個目錄中我們用ls命令可以看到很多子目錄.localhost:/usr/src/linux-2.6.10/drivers # lsKconfig   atm        cdrom    eisa      ide       macintosh  message  net       parport  s390    tc         w1Makefile 

Linux那些事兒之我是隨身碟(2)Makefile不是Make Love

出來混,遲早要還的.從前在複旦,混了四年,沒有學到任何東西,每天就是逃課,上網,玩遊戲,睡覺.畢業的時候,身邊的人讀研的讀研,出國的出國,找工作的吧,去麥肯錫的去麥肯錫,去IBM的去IBM.而自己卻一無所長,沒有任何技能,直到這時候才發現那四年欠了很多債,早知今日,何必當初.幸運的是,我還有一張複旦的文憑,依靠著這張文憑,混進了Intel.然而,工作以後,更是發現當初在校期間沒有好好讀書其實真是在欠債,當初沒學,工作以後還是要學,的確是遲早要還的,逃是逃不掉的.畢業的時候,人家跟我說Makefi

Linux那些事兒之我是隨身碟(4)想到達明天,現在就要啟程

既然知道了怎麼編寫一個模組,那麼編寫裝置驅動程式自然也就不難了.我相信,每一個會寫模組的人都不會覺得寫裝置驅動有困難.對自己行不行不確定的話,可以去問一下葛優,他准說:"(神州行),我看行."真的,我沒說假話.寫驅動不是什麼難事,你完全可以很自信的說,你已經可以寫Device Driver了.對,沒錯,飄柔,就這麼自信.前面說了每一個模組都是以module_init開始,以module_exit結束,那麼我們就來看一下隨身碟的驅動的這個模組.在茫茫人海中,我們很容易找到這個檔案:drivers/

linux下設定開機自動啟動程式的方法

1.開機啟動時自動運行程式Linux載入後, 它將初始化硬體和裝置驅動, 然後運行第一個進程init。init根據設定檔繼續引導過程,啟動其它進程。通常情況下,修改放置在 /etc/rc或 /etc/rc.d 或 /etc/rc?.d 目錄下的指令檔,可以使init自動啟動其它程式。例如:編輯 /etc/rc.d/rc.local 檔案,在檔案最末加上一行"xinit"或"startx",可以在開機啟動後直接進入X-Window。2.登入時自動運行程式用

Linux進程管理之ps命令

實驗環境:Vmware 7.0.0 build-203739作業系統:Ubuntu 10.10ps命令用來顯示某一時間點進程的資訊,這些資訊是靜態。如果想動態查看當前系統啟動並執行程式資訊,可以使用top命令。ps命令的參數多如牛毛,而且分帶“-”和不帶“-”的參數。在man手冊中,有這麼一段話,介紹了 ps -aux和 ps aux的區別POSIX 和UNIX標準中,ps -aux 命令將列印所有屬於x使用者的進程。如果x使用者不存在,那麼ps -aux將會解釋成 ps

Linux那些事兒之我是隨身碟(5)外面的世界很精彩

看代碼之前,我曾經認真的思考過這麼一個問題,我需要關注的僅僅是drivers/usb/storage/目錄下面那相關的3000多行代碼嗎?就是這樣幾個檔案就能讓一個個不同的隨身碟在Linux下面工作起來嗎? 像一開始那樣把這個目錄比作一個小城的話,也許,城裡的月光很漂亮,她能夠把人的夢照亮,能夠溫暖人的心房.但我們真的就能廝守在這個城裡,一生一世嗎?很不幸,問題遠不是這樣簡單.外面的世界很精彩,作為隨身碟,她需要與usb core打交道,需要與scsi

ARM Linux 下增加系統調用(不推薦的方法)

一.核心來源程式的檔案組織: 1.Linux核心來源程式通常都安裝在/usr/src/linux下,而且它有一個非常簡單的編號約定:任何偶數的核心(例如2.0.30)都是一個穩定地發行的核心,而任何奇數的核心(例如2.1.42)都是一個開發中的核心。本文基於穩定的2.2.5原始碼,第二部分的實現平台為 Redhat Linux 6.0。 2.核心來源程式的檔案按樹形結構進行組織,在來源程式樹的最上層你會看到這樣一些目錄: ●Arch

Linux那些事兒之我是隨身碟(7)狂歡是一群人的孤單

Linux裝置模型中三個很重要的概念就是匯流排,裝置,驅動.即bus,device,driver,而實際上核心中也定義了這麼一些資料結構,他們是struct bus_type,struct device,struct

Linux那些事兒之我是隨身碟(8)匯流排,裝置,和驅動(上)

struct bus_type中為devices和drivers準備了兩個鏈表,而代表device的結構體struct device中又有兩個成員,struct bus_type *bus和struct device_driver *driver,同樣,代表driver的結構體struct device_driver同樣有兩個成員,struct bus_type *bus和struct list_head devices,struct device和struct

Linux那些事兒之我是EHCI(3) pci match 和 probe

pci_bus_type 定義如下, struct bus_type pci_bus_type = ...{    .name        = "pci",    .match        = pci_bus_match,    .uevent        = pci_uevent,    .probe        = pci_device_probe,    .remove        = pci_device_remove,    .suspend    = pci_device_

Linux那些事兒之我是隨身碟(10)我是誰的他?

probe,disconnect,id_table,這三個咚咚中首先要登場亮相的是id_table,它是幹嘛用的呢?我們說過,一個device只能綁定一個driver,但driver並非只能支援一種裝置,道理很簡單,比如我有兩塊隨身碟,那麼我可以一起都插入,但是我只需要載入一個模組,usb-storage,沒聽說過插入兩塊隨身碟就得載入兩次驅動程式的,除非這兩塊隨身碟本身就得使用不同的驅動程式.也正是因為一個模組可以被多個裝置共用,才會有模組計數這麼一個說法.ok,既然一個driver可以支援多

ubuntu[linux]下find命令的具體應用

通過檔案名稱尋找:   這個方法說起來就和在WINDOWS下尋找檔案一樣容易理解了。如果你把這個檔案放在單個的檔案夾裡面,只要使用常見的“ls"命令就能方便的尋找出來,那麼使用“find”命令來尋找它就不能給你留下深刻的印象,畢竟“find”命令的強大功能不止這個。如果知道了某個檔案的檔案名稱,而不知道這個檔案放到哪個檔案夾,甚至是層層套嵌的檔案夾裡。舉例說明,假設你忘記了httpd.conf這個檔案在系統的哪個目錄下,甚至在系統的某個地方也不知道,則這是可以使用如下命令:find  / 

ARM linux系統調用的實現原理

大家都知道linux的應用程式要想訪問核心必須使用系統調用從而實現從usr模式轉到svc模式。下面咱們看看它的實現過程。系統調用是os作業系統提供的服務,使用者程式通過各種系統調用,來引用核心提供的各種服務,系統調用的執行讓使用者程式陷入核心,該陷入動作由swi非強制中斷完成。at91rm9200處理器對應的linux2.4.19核心系統調用對應的非強制中斷定義如下:#if defined(__thumb__) //thumb模式#define __syscall(name) \"push

Linux 的核心調試

※ 調試工作艱苦,是核心級開發區別於使用者級開發的一個顯著特點。※ 駕馭核心調試的能力,很大程度上取決於經驗和對整個作業系統的把握。 一、調試前的準備   核心級bug具有行為不可靠,定義不清晰或者說很難再現的諸多特定,為核心級的bug跟蹤和調試帶來了很大的困難。   ※ 對於一些定義不清楚地bug,問題的關鍵就是找到bug的源頭,很多時候,當你精確地重現一個bug的時候,你就離成功不遠了。 二、核心中的bug  

linux 頁面的回收

關於頁面的使用在之前的一些文章中,我們瞭解到linux核心會在很多情況下分配頁面。1、核心代碼可能調用alloc_pages之類的函數,從管理物理頁面的夥伴系統(管理區zone上的free_area空閑鏈表)上直接分配頁面(見《linux核心記憶體管理淺析》)。比如:驅動程式可能用這種方式來分配緩衝;建立進程時,核心也是通過這種方式分配連續的兩個頁面,作為進程的thread_info結構和核心棧;等等。從夥伴系統分配頁面是最基本的頁面分配方式,其他的記憶體配置都是基於這種方式的;2、核心中的很多

linux設定時間伺服器

周海漢

linux查看使用者登入狀態

一, w命令 該命令用於顯示登入到系統的使用者情況,w命令功能強大,它不但可以顯示有誰登入到系統,還可以顯示出這些使用者當前進行中的工作,並且統計資料相對who命令來說更加詳細和科學.w命令的顯示項目按以下順序排列:目前時間,系統啟動到現在的時間,登入使用者的數目,系統在最近1秒、5秒和15秒的平均負載。然後是每個使用者的各項資料,項目顯示順序如下:登入帳號、終端名稱、遠程主機名稱、登入時間、空閑時間、JCPU、PCPU、當前正在運行進程的命令列。其中JCPU時間指的是和該終端(tty)串連的所

ARM Linux Boot Sequence

  ARM Linux Boot SequenceThe following traces the Linux boot sequence for ARM-based systems in the 2.6.18 kernel. It looks at just the earliest stages of the boot process, until the generic non-processor-specific start_kernel function is called. The

linux x86 kernel中的 memcpy 實現

static __always_inline void *__memcpy(void *to, const void *from, size_t n){int d0, d1, d2;asm volatile("rep ; movsl\n\t" "movl %4,%%ecx\n\t" "andl $3,%%ecx\n\t" "jz 1f\n\t" "rep ; movsb\n\t" "1:" : "=&c" (d0), "=&D" (

subversion伺服器支援windows和linux。

 在linux下,使用命令啟動服務:svnserve -d -r /svnroot-d 表示--daemon,即關掉執行命令的視窗,服務繼續存在。 -r 表示--root,即指定庫的根目錄。而在windows下,用同樣的命令也可以,只是關掉cmd視窗後,服務也消失了。這個問題的解決辦法,在subversion的1.4版以前,是用svn windows service wrapper,將其封裝為服務。而svn1.4以後,是可以直接支援以伺服器啟動的。方法就是利用windows

總頁數: 3662 1 .... 942 943 944 945 946 .... 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.