Linux之檔案編程(四)

Linux檔案編程之安裝檔案系統 前言:         可能我們機子上都按了兩個作業系統Linux作業系統和XP,那麼我們一般都可以在Linux下訪問XP下的檔案,但是我們卻不能在XP下訪問Linux,這是為什麼呢?   一.安裝檔案系統  1.由於 Ext2/Ext3是 Linux 的標準檔案系統,所以系統把EXT2 檔案系統的磁碟分割做為系統的根檔案系統,EXT2 以外的檔案系統(如 Window的 FAT32

《Linux那些事兒之我是USB》我是隨身碟(11)從協議中來到協議中去

從協議中來,到協議中去(上)在structusb_driver中,.probe和.disconnect的原型如下:836     int(*probe) (struct usb_interface *intf,837                      const struct usb_device_id *id);838839    void(*disconnect) (struct usb_interface

Linux學習技巧

1、學習使用Linux,先記住一個自助式命令: man   man -f [command]   man -k [command]   man X [command] (其中'X'為數字,代表man -f [command]查詢結果中,提示該command處於Mannual的第幾部分部分)2、學習使用DOS,先記住一個自助式命令: ?   [command] /?  (查詢該命令的使用方法)3、學習使用gdb,先記住一個自助式命令: help   help [topic]  

Windows下用wingrub引導安裝linux (2)

 一.安裝wingrub1. 雙擊wingrub 的安裝程式,如所示:2. 選擇安裝的位置,如所示:單擊Install 安裝完成。選擇時,不一定要選放有linux鏡像的分區,可以選C盤,即(hd0,0)。二.Wingrub的配置A.選擇Tools--àInstall Grub如所示:在彈出的視窗中做如下配置,最後單擊Istall完成安裝。B.在Stem Drive右邊的下拉框中選擇C,再選擇BOOT.INI 並在title中寫入一個名稱,這裡寫grub,在TimeOut中寫入10 如所示。注意:

linux core dump配置與調試

Linux Core Dump 配置與調試 1.core檔案的產生開關和大小限制--------------------------------- 1)使用ulimit -c命令可查看core檔案的產生開關。若結果為0,則表示關閉了此功能,不會產生core檔案。 2) 使用ulimit -cfilesize命令,可以限制core檔案的大小(filesize的單位為kbyte)。若ulimit

LINUX core dump 詳解

1. 前言:有的程式可以通過編譯, 但在運行時會出現Segment fault(段錯誤). 這通常都是指標錯誤引起的.但這不像編譯錯誤一樣會提示到檔案->行, 而是沒有任何資訊, 使得我們的調試變得困難起來.2. gdb:有一種辦法是, 我們用gdb的step, 一步一步尋找. 這放在短小的代碼中是可行的, 但要讓你step一個上萬行的代碼, 我想你會從此厭惡程式員這個名字, 而把他叫做調試員.我們還有更好的辦法, 這就是core file.3.

linux2.4與2.6核心模組的Makefile模版

# Makefile 2.4KDIR=/lib/modules/$(shell uname -r)/buildOBJS=mymodule.oCFLAGS=-D__KERNEL__ -I$(KDIR)/include -DMODULE -D_KERNEL_SYSCALLS__ -DEXPORT_SYMTAB -O2 -fomit-frame-pointer -Wall -DMODVERSIONS -include

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

Linux裝置模型中三個很重要的概念就是匯流排、裝置和驅動,即bus、device和driver。而實際上核心中也定義了這麼一些資料結構,他們是structbus_type,struct device,struct device_driver,這三個重要的資料結構都來自同一個地方,稱include/linux/device.h。我們知道匯流排有很多種,如PCI匯流排、SCSI匯流排、USB匯流排,所以我們會看到Linux核心代碼中出現pci_bus_type,scsi_bus_type,usb_

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

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

Linux核心常用的一些宏

一、中斷類:     1. 中斷類型: 在request_irq(irq, handler, flags, devname, dev_id)中使用 #define SA_SHIRQ 共用中斷(舊版本的,2.6.19之前的核心) #define IRQF_SHARED 共用中斷(新版本的) #define SA_INTERRUPT 快速中斷(舊版本的) #define IRQF_DISABLED

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

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

linux字元裝置cdev_init系列函數

核心中每個字元裝置都對應一個 cdev 結構的變數,下面是它的定義:linux-2.6.22/include/linux/cdev.hstruct cdev { struct kobject kobj; // 每個 cdev 都是一個 kobject struct module *owner; // 指向實現驅動的模組 const struct file_operations *ops; // 操縱這個字元裝置檔案的方法 struct list_

《Linux那些事兒之我是USB》我是隨身碟(9)匯流排、裝置和驅動(下)

bus上的兩張鏈表記錄了每一個裝置和驅動,那麼裝置和驅動這兩者之間又是如何聯絡起來的呢?此刻,必須拋出這樣一個問題,先有裝置還是先有驅動?在以前,先有的是裝置,每一個要用的裝置在電腦啟動之前就已經插好了,插放在它應該在的位置上,然後電腦啟動,然後作業系統開始初始化,匯流排開始掃描裝置。每找到一個裝置,就為其申請一個struct device結構,並且掛入匯流排中的devices鏈表中來,然後每一個驅動程式開始初始化,開始註冊其struct

Linux進程學習之exit()和_exit()函數

                                                                                  Linux進程學習之exit()和_exit()函數 進程就好比人一樣有其生命,我們通過fork()函數來建立一個進程,那麼我們又是如何來中止進程呢。 進程退出 1.在Linux中任何讓一個進程退出 進程退出表示進程即將結束。在Linux中進程退出分為了正常退出和異常退出兩種。 1>正常退出 a.

Windows XP硬碟安裝Linux ISO 的方法 (1)

 現在很多人的系統是windows xp的.考慮到最近linux很火.呵呵.所以眾菜鳥們躍躍欲試..拿起武器開始操刀..想讓xp和linux共存.殊不知習慣了windows一路next的朋友們,面對linux可不能一路next了...   今天幫同學在他電腦上裝linux.由於沒有系統硬碟.所以就網上自己下載的iso鏡像檔案.呵呵.本人本著能省則省的原則,還是到網上下了個鏡像檔案. 

linux輸入子系統介紹

linux系統提供了input子系統,按鍵、觸控螢幕、鍵盤、滑鼠等輸入裝置都可以利用input介面函數來實現裝置驅動。在linux核心中,input裝置用input_dev結構體描述,試用input子系統實現輸入裝置驅動的時候,驅動的核心工作是向系統報告按鍵、觸控螢幕、鍵盤、滑鼠等輸入事件(event,通過input_event結構體描述),不再需要關心檔案操作介面,因為input子系統已經完成了檔案操作介面。驅動報告的事件經過InputCore和Eventhandler最終到達使用者空間。通過

《Linux那些事兒之我是USB》我是隨身碟(12)夢開始的地方

對於整個usb-storage模組,usb_stor_init()函數是它的開始,然而,對於隨身碟驅動程式來說,它真正驅使隨身碟工作卻是始於storage_probe()函數。兩條平行線只要相交,就註定開始糾纏一生,不管中間是否短暫分離。USB

《Linux那些事兒之我是USB》我是隨身碟(13)裝置花名冊

storage_probe這個函數挺有意思,總長度不足100行,但是幹了許多事情,這就像足球場上的後腰,比如切爾西的馬克萊萊,在場上並不起眼,但是卻為整個團隊做出了卓越的貢獻。我們繼續看storage_probe的代碼:972    mutex_init(&(us->dev_mutex));973     init_MUTEX_LOCKED(&(us->sema));974    init_completion(&(us->notify));975   

《Linux那些事兒之我是USB》我是隨身碟(14)冰凍三尺非一日之寒

羅馬不是一天建成的。在讓隨身碟工作之前,其實我們的驅動做了很多準備工作。我們繼續跟著感覺走,storage_probe(),972行至975行,一系列的以init_*命名的函數在此刻被調用,這裡涉及了一些鎖機制,等待機制,不過只是初始化,暫且不理睬,到後面用到時再細說,不過請記住,這幾行每一行都是有用的。後面自然會用得著。此時,我們先往下走,978行的associate_dev()和989行的get_device_info(),這兩個函數是我們目前需要看的。先看associate_dev()函數

總頁數: 3662 1 .... 759 760 761 762 763 .... 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.