Time of Update: 2018-12-05
整理:Wilbur Lang何謂 core?在使用半導體作為記憶體的材料前,人類是利用線圈當作記憶體的材料(發明 者為王安),線圈就叫作 core ,用線圈做的記憶體就叫作 core memory。如今 ,半導體工業澎勃發展,已經沒有人用 core memory 了,不過,在許多情況下, 人們還是把記憶體叫作 core 。 何謂 core dump?我們在開發(或使用)一個程式時,最怕的就是程式莫明其妙地當掉。雖然系 統沒事,但我們下次仍可能遇到相同的問題。於是這時作業系統就會把程式當掉
Time of Update: 2018-12-05
在linux上編程時,很多時候會用到一些非標準的庫(即自己裝上去的庫),這些非標準的庫安裝位置可能不盡相同,這就給我們編寫程式時帶來了麻煩。本文就是旨在替和我一樣的菜鳥解決這一問題,水平有限,行文難免謬誤,望大蝦們不吝賜教。在linux上編程時,很多時候會用到一些非標準的庫(即自己裝上去的庫),這些非標準的庫安裝位置可能不盡相同,這就給我們編寫程式時帶來了麻煩。本文就是旨在替和我一樣的菜鳥解決這一問題,水平有限,行文難免謬誤,望大蝦們不吝賜教。1。標頭檔的位置gcc預設會在/usr/includ
Time of Update: 2018-12-05
Time of Update: 2018-12-05
轉載自水木清華 歡迎大家補充1. 請推薦一些好的Linux核心參考書?2. 原始碼問題2.1 如何得到某一版本的Linux核心原始碼?2.2 請問xx命令、xx庫的源碼是哪個檔案?2.3 linux-2.x.x.tar.gz.sign 檔案有什麼用途?2.4 請推薦一些原始碼查看工具?2.5 核心patch如patch-2.6.3怎麼用?2.6 如何統計linux核心有多少行代碼?2.7 xx結構的定義在哪個核心源檔案中?2.8
Time of Update: 2018-12-05
環境:被攻陷的Linux主機(拿到root許可權)-----類比為我內網的一台Linux伺服器 192.168.0.105hack的操作用機-----我的電腦 192.168.1.101反彈到公網的伺服器-----我自己的公網伺服器 61.160.2xx.xxx滲透測試用的windows測試機 192.168.1.109工具:packetr-static Linux下的htran.exe windows下的sockcap
Time of Update: 2018-12-05
首先感謝如下兩篇的blog,讓我走出了很大的一個誤區:http://www.cppblog.com/kongque/archive/2011/01/18/138765.aspxhttp://blog.csdn.net/zjwoody/article/details/7882240在我的一個項目中,因為需要與串口通訊,每次讀寫都需要延時usleep(1000)=1ms,但是通訊量非常大,每一次工作這樣的通訊大概有300次左右,這樣算下耗時應該是300ms左右。但是通過strace列印出系統函數調用
Time of Update: 2018-12-05
十足的菜鳥問題,今天終於想通了一點點。引子:通常在寫代碼時先要包含一通標頭檔,這些標頭檔們在什麼地方呢?這個問題起源於課題中需要操作OK6410的PWM寄存器,查了許多文獻說需要ioremap()映射,需要包含 asm/io.h。那時還沒搞清楚核心編程和應用程式編程的區別(哈哈夠菜吧),在使用者應用程式中 #include <asm/io.h> 報錯未找到,後來才知道#include <asm/io.h>
Time of Update: 2018-12-05
為什麼建立核心代碼樹?菜鳥簡單的以為,好比為某戶型的房子(某個版本的Linux)設計門窗,那麼當然需要根據該戶型房子的具體參數進行設計了,或者說核心模組要基於核心版本或者該版本的核心代碼。那麼核心的編譯是要基於某個Linux版本原始碼並產生與該版本相適應的核心模組,建立核心樹即提供該版本Linux相關的東西及需要的檔案。據網上所查,產生代碼樹過程大致如下:1、將程式碼封裝拷到 /usr/src 目錄下,使用超級使用者登入,解壓,出現(例如)linux2.6.28 的子目錄,即Linux2.6.2
Time of Update: 2018-12-05
引子:使用OK6410 通過 IMU_EV30 採集 ADIS16405 的資料,採集頻率為100Hz,需要10ms的定時器。首先考慮了a POSIX per-process timer,後發現板子負擔輕的時候還行,負擔重了定時很不精確,最後使用PWM定時器解決了問題。現總結一下。1、a POSIX per-process timerinclude <signal.h> //
Time of Update: 2018-12-05
核心模組的代碼檔案檔案 yyyy.c (yyyy可以與模組xxxx同名也可以不同名)(類似模板的東西) #ifndef __KERNEL__#define __KERNEL__#endif#ifndef MODULE //直接添加到核心時去掉,產生模組時保留#define MODULE#endif #include <*.h>...MODULE_LICENSE("GPL");
Time of Update: 2018-12-05
引子:
Time of Update: 2018-12-05
本文介紹Linux下GDB調試器常用的基本命令。測試均在Ubuntu12.10下完成。先看看GDB調試的:對應的原始碼://插入排序,GDB調試測試代碼#include <stdio.h>int x[10],//存放輸入資料 y[10],//工作空間數組 num_inputs,//輸入數組長度 num_y = 0;//y中當前元素個數//函數//功能:從參數中提取輸入資料void get_args(int ac,char **av){
Time of Update: 2018-12-05
Linux關機應該採用正確的關機方法。Windows由於是單使用者、“假多”任務的情況,所以即使你的電腦關機,也不會對別人造成影響。不過在Linux中,由於每個程式都是在後台執行的,因此,在你看不到的螢幕背後可能有很多人同時在你的主機上工作。而且,若不順利關機可能會造成檔案系統的損毀。所以,正常情況下,要關機時需要注意下面幾件事情:(1)查看系統的使用狀態。要看目前有誰線上,可以用who命令。要看網路的聯機狀態,可以用netstat -a命令。要看後台執行那個的程式可以執行ps-aux命令。(2
Time of Update: 2018-12-05
我們在一個線程中經常會建立另外的新線程,如果主線程退出,會不會影響它所建立的新線程呢?下面就來討論一下。 1、 主線程等待新線程先結束退出,主線程後退出。正常執行。執行個體代碼:#include "apue.h"#include <pthread.h>pthread_t ntid;//線程IDvoid printids(const char *s){ pid_t pid; pthread_t tid; pid = getpid();
Time of Update: 2018-12-05
生產者消費者編程實現,採用了線程池以及訊號量技術。線程的概念就不多說,首先說一下多線程的好處:多線程技術主要解決處理器單元內多個線程執行的問題,它可以顯著減少處理器單元的閑置時間,增加處理器單元的吞吐能力。 那麼為什麼又需要線程池呢? 我們知道應用程式建立一個對象,然後銷毀對象是很耗費資源的。建立線程,銷毀線程,也是如此。因此,我們就預先產生一些線程,等到我們使用的時候在進行調度,於是,一些"池化資源"技術就這樣的產生了。一般一個簡單線程池至少包含下列組成部分。1) 線程池管理器(
Time of Update: 2018-12-05
Linux下面的串連檔案有2種:一種是類似與Windows的捷徑功能的檔案,可以讓我們快速串連到目標檔案,稱為符號串連(symbolic link);另一種則是通過檔案系統的inode串連產生新檔案名稱,而不是產生新檔案,稱為硬串連(hard link)。一、hard
Time of Update: 2018-12-05
http://blogold.chinaunix.net/u3/101649/showart.php?id=2073912 按以上步驟得出結論如下:Copy linux kernel from 0x00060000 to 0x30008000, size = 0x00500000 ... donezImage magic = 0x016f2818Setup linux parameters at 0x30000100linux command line is: "noinitrd
Time of Update: 2018-12-05
上篇我們知道,kernel初始化後將啟動init進程,那麼這個進程將幹些什麼呢?除此之外,kernel還需要做些什麼事情呢?(想想檔案系統、根存放裝置是在什麼時候初始化的呢?)先從檔案系統初始化說起。以前一直不明白,有了kernel為何還需要一個檔案系統?經過反覆琢磨,明白一個道理,kernel載入到記憶體後,kernel運行起來是沒有問題的,但是如果沒有Root
Time of Update: 2018-12-05
ubuntu linux 下 adb 串連andoid 裝置失敗的處理以及刷機 原帖在:http://www.hiapk.com/bbs/thread-3342-1-1.html在ubuntu 9.04下通過usb串連g1,使用adb時,會返回無法找到裝置,解決辦法如下:1) 在終端運行 lsusb會發現結果有會有如下類似記錄:Bus 002 Device 015: ID 0bb4:0c02 High Tech Computer Corp.2) sudo gedit
Time of Update: 2018-12-05
1、#arp -a > /etc/ethers將ip和mac地址匯入ethers2、#vi /etc/ethers編輯檔案格式,ethers檔案內容必須格式如下多餘的全部刪除,改成形式ip mac192.168.1.X XX:XX:XX:XX:XX192.168.1.X XX:XX:XX:XX:XX...//注意mac大寫,而且沒有O只有零,ip和mac空格3、#vi /etc/rc.d/rc.local //開啟並顯示 /etc/rc.d/rc.local檔案,啟動項檔案#i