Time of Update: 2018-12-03
突然覺得學了這麼久的核心驅動,都沒有很深入看核心匯流排底層的實現。簡單看過了最低版本的核心的源碼,總算可以稍微理清一些頭緒了。現在回過頭來,把這一部分的知識給補上去。 Linux裝置的模型有:匯流排(bus)、裝置(device)和驅動(driver),還有類(class)。其中匯流排是處理器與裝置之間通道,在裝置模型中,所有的裝置都通過匯流排相連;裝置是對於一個裝置的詳細資料描述,驅動是裝置的相關驅動。其基本關係如下:bus 相當於一個容器,是device
Time of Update: 2018-12-03
這個問題困擾我至少2個星期了,反反覆複查了很多資料,今天終於能配置完成,現在要寫下來激動啊,差點就氣餒了。 要求:我想做ipp2p的流量控制測試,所以要在公司內部搭建一個測試環境。在我同公司的網之間搭建一台雙網卡的linux機器,具體硬體架設圖是這樣的 互連網|公司的內部網段192.168.4.0(網關是192.168.4.1)|eth1(IP 192.168.4.129)linux主機(雙網卡)eth2(IP 111.111.112.111)|我自己的電腦XP系統(IP 111.111
Time of Update: 2018-12-03
我原來用的是雙系統:Windows XP+Redhat Fedora3,用grub引導。由於操作失誤,偶把引導程式搞壞了,兩個系統都進不去,鬱悶。怎麼辦?先google吧。在網上搜了一通之後,發現有好多關於引導恢複的文章。偶就說下我的步驟吧,作個備忘錄:1. 用Linux安裝盤1引導系統2. 按F5,在boot:游標下輸入linux rescue,進入補救模式3. 運行chroot /mnt/sysimage4. 運行/sbin/grub-install /dev/hda恢複grubOK!
Time of Update: 2018-12-03
select系統調用是用來讓我們的程式監視多個檔案控制代碼(file descriptor)的狀態變化的。程式會停在select這裡等待,直到被監視的檔案控制代碼有某一個或多個發生了狀態改變。 文 件在控制代碼在Linux裡很多,如果你man某個函數,在函數傳回值部分說到成功後有一個檔案控制代碼被建立的都是的,如man socket可以看到“On success, a file descriptor for the new socket is returned.”而man 2 open可以看到“
Time of Update: 2018-12-03
iptables實現連接埠轉寄的過程設我們有一台電腦,有兩塊網卡,eth0連外網,ip為1.2.3.4;eth1連內網,ip為192.168.0.1.現在需要把發往地址1.2.3.4的81連接埠的ip包轉寄到ip地址192.168.0.2的8180連接埠,設定如下:1. iptables -t nat -A PREROUTING -d 1.2.3.4 -p tcp -m tcp --dport 81 -j DNAT --to-destination192.168.0.2:81802.
Time of Update: 2018-12-03
使用Linux的朋友肯定都不會對本文所談的內容陌生,在Linux系統裡,通常不會開機自動掛載Windows檔案系統下的分區。Ubuntu系統下要點擊Windows分區才會掛載,Fedora下則甚至要輸入root密碼才能開啟。我總結了兩種方法實現Windows分區的自動掛載。第一種,通過fstab檔案:首先要瞭解Windows分區的裝置代號。現在的電腦硬碟一般是SCSI硬碟,這裡假設Windows安裝在C盤,接著C盤是D、E盤,C為主要磁碟分割,D、E為邏輯分區,那麼Windows檔案系統裡的C盤
Time of Update: 2018-12-03
作者:北南南北來自:LinuxSir.Org提要:在已有的Linux作業系統中,安裝另一個開源作業系統,我們一般是先構建新作業系統的chroot基礎環境,然後chroot進入新構建的作業系統環境來安裝和配置。這種構建和安裝作業系統的方法,對於我們學習和研究作業系統結構和原理應該說比較重要。本文舉了簡單的例子,以Fedora Core 5.0 為基礎,通過chroot來構建Slackware 10.2;目錄1、chroot方式安裝作業系統的目的和用途;2、通過chroot
Time of Update: 2018-12-03
核心啟動卡在Uncompressing Linux..... done, booting the kernel.這好像是個老生常談的問題了。成因在網上也羅列了很多種,可這次我碰到的,卻沒百度出解決方案,糾結了我很久才解決。我先把造成Uncompressing Linux..... done, booting the kernel.的常見的幾種可能再羅列一下1、機器碼不匹配解決方案:在配置核心時開啟debug Kernel hacking -> Kernel low-level
Time of Update: 2018-12-03
萬事皆有緣由,還是先從我遇到的這個問題說起~~~問:有一個主執行程式main,其中實現了函數foo(),同時調用動態庫liba.so中的函數bar(),而動態庫liba.so中也實現了foo()函數,那麼在執行的時候如果在bar()中調用foo()會調用到哪一個?在main()中調用呢?直接給答案:如果是在Linux上,liba.so中的foo()函數是一個匯出的(extern)”可見”函數,那麼調用會落入主程式裡,這對於liba.so的作者來說實在是個災難,自己辛辛苦苦的工作竟然被自己人視而不
Time of Update: 2018-12-03
查看所有的locale語言view plain copy# locale -a # locale -a|grep en ■ 查看當前作業系統使用的語言view plain copy# echo $LANG ■ 設定系統locale語言為中文環境(永久生效)# vi /etc/sysconfig/i18nview plain copyLANG="zh_CN.UTF-8" ■ 設定系統locale語言為英文環境(永久生效)view plain copyLANG="en_US.UTF-
Time of Update: 2018-12-03
HugePages是通過使用大頁記憶體來取代傳統的4kb記憶體頁面,使得管理虛擬位址數變少,加快了從虛擬位址到物理地址的映射以及通過摒棄記憶體頁面的換入換出以提高記憶體的整體效能。尤其是對於8GB以上的記憶體以及較大的Oracle SGA size,建議配值並使用HugePage特性。本文基於x86_64 Linux下來描述如何配值 HugePages。 有關HugePages的特性請參考:Linux HugePage 特性 1、為什麼需要配值HugePages
Time of Update: 2018-12-03
Time of Update: 2018-12-03
首先需要下載adb for linux的工具包platform-tools-linux.tar.gz 解壓到任何地方,不要刪除掉就是了然後建立並編輯一個檔案sudo vi /etc/udev/rules.d/70-android.rules在裡面寫入:如果你的系統是10.10,或者11.04(11.10沒有測試),則寫入下面這句SUBSYSTEM==”usb”, ATTR{idVendor}==”04e8“, MODE=”0666″如果你的系統版本是10.04 就改為下面一句SUBSYSTEM=
Time of Update: 2018-12-03
一般來說對於需要大量cpu計算的進程,當前端壓力越大時,CPU利用率越高。但對於I/O網路密集型的進程,即使請求很多,伺服器的CPU也不一定很到,這時的服務瓶頸一般是在磁碟的I/O上。比較長見的就是,大檔案頻繁讀寫的cpu開銷遠小於小檔案頻繁讀寫的開銷。因為在I/O輸送量一定時,小檔案的讀寫更加頻繁,需要更多的cpu來處理I/O的中斷。在Linux/Unix下,CPU利用率分為使用者態,系統態和空閑態,分別表示CPU處於使用者態執行的時間,系統核心執行的時間,和空閑系統進程執行的時間。平時所說的
Time of Update: 2018-12-03
昨天晚上郎師兄打電話說,我的結果檔案他開啟是亂碼,問我是不是字元編碼沒處理好。早晨早早的來到實驗室,請教了下同學,才知道linux shell 設定檔中預設的字元集編碼為UTF-8 。UTF-8是unicode的一種表達方式,gb2312是和unicode都是字元的編碼方式,所以說gb2312跟utf-8的概念應該不是一個層次上的。在LINUX上進行編碼轉換時,可以利用iconv命令實現,這是針對檔案的,即將指定檔案從一種編碼轉換為另一種編碼。
Time of Update: 2018-12-03
? *.Z compress 程式壓縮的檔案;? *.bz2 bzip2 程式壓縮的檔案;? *.gz gzip 程式壓縮的檔案;? *.tar tar 程式打包的資料,並沒有壓縮過;? *.tar.gz tar 程式打包的檔案,其中並且經過 gzip 的壓縮Z compress 程式壓縮的檔案 PS:因為現在已經不常用,所以不作介紹gzip, zcat[root@linux ~]# gzip [-cdt#] 檔名[root@linux ~]# zcat 檔名.gz
Time of Update: 2018-12-03
linux下需要的軟體:gd-1.8.4-11、gd-devel-1.8.4-11、libpng-1.2.2-16、libpng-devel-1.2.2-16、libpng10-1.0.13-8、libpng10-devel-1.0.13-8、perl-5.8.0-88、zlib-1.1.4-8、zlib-devel-1.1.4-8、httpd-2.0.40-21、gcc-3.2.2-5、net-snmp-5.06-17、mrtg-2.14.5.tar.gz 需下載:http://people.
Time of Update: 2018-12-03
一、安裝telnet軟體包(通常要兩個) 1、 telnet-clIEnt (或 telnet),這個軟體包提供的是 telnet 用戶端程式; 2、 telnet-server ,這個軟體包提供的是 telnet 伺服器端程式; 安裝之前先檢測是否這些軟體包已安裝,方法如下: [root@wljs root]#rpm –q telnet或[root@wljs root]#rpm –q telnet-client [root@wljs root]#rpm –q
Time of Update: 2018-12-03
這裡列舉了一些你可以用來快速執行常見任務的鍵盤快捷操作。這些操作不僅限於所列出的內容,要瞭解更多命令列和鍵盤的的快捷操作,請訪問: http://sunsite.dk/linux-newbie/lnag_commands.html#shortcuts [Ctrl] + [Alt] + [Backspace] = 殺死你當前的 X 會話。殺死圖形化案頭會話,把你返回到登入螢幕。如果正常退出步驟不起作用,你可以使用這種方法。 [Ctrl] + [Alt] + [Delete] =
Time of Update: 2018-12-03
最近有不少客戶就嵌入式系統開發入門方面提出了一些問題,我們感覺很有代表性,所以英創工程師把這些問題進行了匯總解答,希望能對想做嵌入式開發的工程師有一點協助。 1. 進行嵌入式開發必須弄懂ARM彙編指令集嗎? 書店裡有很多入門級的書,第一章不是介紹ARM指令集,就是介紹ARM的CPU資源,這給很多初學者一個很不好的直觀感覺,就是學習ARM一定要把組合語言和CPU資源搞明白。然而,這兩個方面,沒有實際的去做一下,只是紙上談兵,怎麼又搞得明白呢,於是,讓很多初學者,知難而退。