Time of Update: 2018-12-04
自從我接觸linux,已經裝過,卸載過n次linux了。卸載linux很簡單的,只要刪除linux分區就可以了,不過對於引導grub是在linux分區的情況,還要修改硬碟mbr,否則刪除linux後,就無法在引導了。所以在刪除linux分區後要恢複mbr,有兩個方法:1。在dos或win命令列下運行fdisk /mbr ,可能會出現fdisk無法識別的命令,那時要先copy來一個fdisk.exe檔案了。2。在XP的故障恢複台中,運行命令fixmbr
Time of Update: 2018-12-04
在linux編寫程式的時候,對某對記憶體進行寫操作時,需要確保該記憶體是可寫,否則往裡面寫的話,就會出現記憶體防寫保護段錯誤,這樣程式就崩潰了,所以為了對這個記憶體位址操作時安全的(即記憶體是可寫的),可以通過下面方法進行檢查。 在Linux下面/proc/pid/maps,這個檔案裡面儲存了執行進程的所有記憶體映射情況以及記憶體屬性,在程式裡面可以通過讀該檔案進行判斷記憶體是否可寫。有些人會認為,有必要嗎,調用者要確保傳入的參數是正確的,聽起來也有道理,但在某些場合,就是因為使用者傳入參數出錯
Time of Update: 2018-12-04
最近準備將自己的m8手機,打造成一個android開發板,編譯了下linux2.6.27版本的核心,程式死在小值企鵝畫面,特去分析這個畫面,將分析過程貼出來。供大家參考下。start_kernel(main.c)->console_init->tty_initcon_init(vt.c)->update_screencomplete_change_console(vt_ioctl.c)->switch_screen#define update_screen(x)
Time of Update: 2018-12-04
最近在一些嵌入式開發群裡面或者論壇上看見一些朋友在討論怎麼在虛擬機器裡面使用minicom與開發板通訊,畢竟還有好多像我這樣在虛擬機器裡面用Linux的朋友。下面的方法僅是本人暫時使用並且還能行得通的方法,希望大家還能找到更好的方法,不過別忘了也給小弟通知一下啊,記得開源精神哦,? 開始之前先說一下自己的系統吧,其實沒什麼特別的估計大家也都是用這些吧。 VMWare5.5 Redhat9
Time of Update: 2018-12-04
作業系統:Linux sles10sp1 i6861. ffmpeg-0.8.14下載http://url.cn/ETZJSB2. faac編譯下載連結:http://url.cn/GBUh10參考連結http://www.blogjava.net/fly2008/archive/2009/10/14/298233.htmlhttp://comments.gmane.org/gmane.comp.video.ffmpeg.user/6840tar xvfz faac-1.28.tar.gzcd
Time of Update: 2018-12-04
轉載自:http://www.linuxidc.com/Linux/2011-02/32125.htm 最近一周學習了Linux 進程編程的知識,現對其總結如下。 在第一部分中我們先對進程的基本概念以及在Linux 中是如何來現實進程的進行介紹 Tiger-John說明 : 許多人在學習中只注重如何編程,卻忘了注重原理,不去深究其基本原理。其實作業系統的原理就好
Time of Update: 2018-12-04
我們都知道,在 Windows 上面,我們要麼讓一個程式作為服務在後台一直運行,要麼停止這個服務。而不能讓程式在前台後台之間切換。而 Linux 提供了 fg 和 bg 命令,讓我們輕鬆調度正在啟動並執行任務。假設你發現前台啟動並執行一個程式需要很長的時間,但是需要幹其他的事情,你就可以用 Ctrl-Z ,掛起這個程式,然後可以看到系統提示(方括弧中的是作業號):[1]+ Stopped /root/bin/rsync.sh然後我們可以把程式調度到後台執行:(bg 後面的數字為作業號)#bg 1
Time of Update: 2018-12-04
Linux動態庫、靜態庫載入基礎靜態庫 在linux環境中, 使用ar命令建立靜態庫檔案.如下是命令的選項: d -----從指定的靜態庫檔案中刪除檔案 m -----把檔案移動到指定的靜態庫檔案中 p -----把靜態庫檔案中指定的檔案輸出到標準輸出 q -----快速地把檔案追加到靜態庫檔案中 r -----把檔案插入到靜態庫檔案中 t
Time of Update: 2018-12-04
關於Linux核心代碼的真正接觸還是最近2個月,首先接觸這個最簡單的就是雙向鏈表了,這個鏈表可謂真的短小。原來有些時候,看這種經典代碼也是一種享受。在大學裡面寫的那些雙向鏈表那隻不過是學習而已。 #ifndef _LINUX_LIST_H#define _LINUX_LIST_H#ifdef __KERNEL__struct list_head {struct list_head *next, *prev;};#define LIST_HEAD_INIT(name) {
Time of Update: 2018-12-04
訊號量是一種用於提供不同進程或一個給定進程的不同線程間同步手段。在Posix中,已經有一套訊號介面,用於同一個進程中不同線程同步,其介面為:int sem_init(sem_t *sem, int pshared, unsigned int value);int sem_wait(sem_t *sem);int sem_trywait(sem_t *sem);int sem_timedwait(sem_t *sem, const struct timespec
Time of Update: 2018-12-04
#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <unistd.h>#include <dirent.h>#include <errno.h>#include <stdlib.h>#include <string.h>// 最大目錄深度#define MAX_DIR_DEPTH 64#define
Time of Update: 2018-12-04
寫一下關於函數調用棧的一些相關知識,對於在Linux下面進行c/c++開發,在問題定位時 查看調用棧資訊是一個非常常用的定位方法,因為根據調用關係,可以知道程式的執行流程是什麼樣子。如果 不能查看調用棧,光知道程式在某個函數出錯,還是比較難定位,假如這個函數在很多地方被調用,就很難知道是由於什麼情境導致錯誤發生的。所以通過查看調用棧,就可以知道調用關係,當然就知道是什麼情境導致問題發生。 在gdb裡面常用的命令式:bt
Time of Update: 2018-12-04
在Linux下,當一個服務程式啟動,如何查看這個服務進程記憶體佔用情況?這裡簡單列出以下linux命令是如何查看的,查看出來的資訊表示什麼意思1、首先你要找到你所有查看進程id,方法很多,這裡介紹本人常用的方法: 通過命令ps -ef查看當前系統所有進程資訊,然後找到自己關係的那個進程即可,當系統進程很多時,比較麻煩,加上grep命令進行刷選root@dremi-desktop:~# ps -efUID PID PPID C STIME TTY
Time of Update: 2018-12-04
ifconfig eth0 新IP 然後編輯/etc/sysconfig/network-scrIPts/ifcfg-eth0,修改IP 一、修改IP地址 [aeolus@db1 network-scrIPts]$ vi ifcfg-eth0 DEVICE=eth0 ONBOOT=yes BOOTPROTO=static IPADDR=219.136.241.211 NETMASK=255.255.255.128 GATEWAY=219.136.241.254 二、修改網關 vi
Time of Update: 2018-12-04
一般來說,目前新版的 Linux 預設可以支援的網路卡晶片集數量已經很完備了,很多網路卡晶片都已經被支援,例如RLT 8139 晶片 ( RealTek 8139 ) 的網路卡所以使用者可以很輕易的設定好他們的網路卡。不過,如果萬一不幸核心沒有支援該網路卡的話,那麼可以透過重新編譯核心或者編譯網路卡驅動模組 ( Modules ),並且載入該模組,今天就是這麼巧,碰到一個D-Link 的DFE-530TX,沒法,只有手動安裝網路卡驅動程式了.可以用命令: # dmesg |
Time of Update: 2018-12-04
Linux系統越來越受到電腦使用者的歡迎,於是很多人開始學習Linux時,學習linux,你可能會遇到linux核心問題,這裡將介紹linux核心中idle知識,在這裡拿出來和大家分享一下。 1.
Time of Update: 2018-12-04
1. 學會寫簡單的makefile 2. 編一應用程式,可以用makefile跑起來 3. 學會寫驅動的makefile 4. 寫一簡單char驅動,makefile編譯通過,可以insmod, lsmod, rmmod. 在驅動的init函數裡列印hello world, insmod後應該能夠通過dmesg看到輸出。 5. 寫一完整驅動, 加上read, write, ioctl, polling等各種函數的驅動實現。 在ioctl裡完成從使用者空間向核心空間傳遞結構體的實現。 6.
Time of Update: 2018-12-04
有了上次玩fedora的慘痛教訓後,這次我端正了態度,陳誠同學說得對,Linux是用來學的,不是用來玩的(真是的,又不早點說),儘管這次安裝fedora也並不順利(前後共安裝了3次才成功,目前GRUB引導還有問題,導致XP不能啟動),還是堅持下來了,有了一些安裝心得,在此跟大家分享下。1. Yum 外掛程式 * Presto 外掛程式Presto 外掛程式為 Fedora 使用者提供更快的下載速度,最小化的下載檔案:它只下載 rpm 包升級後的差異檔案而不是整個 rpm包。Presto
Time of Update: 2018-12-04
以前在linux上寫代碼都是用VS在windows下編譯通過然後再放到linux下用vi+gdb調式。感覺很悲劇,於是今天打算找個linux下的IDE。看了幾個文章對比了一下幾個linux下主流的IDE,最後選擇code::blocks,選擇它的原因主要:1. 開源支援大部分的linux,windows和mac os(如果好用,打算把VS都踢掉,太大太慢)2. 支援很多編譯器的項目Borland C++,、VC++、Inter C++
Time of Update: 2018-12-04
背景:項目需要,初期在windows上用的ICE,POCO和protobuf庫移植到arm-linux上去運行。閑話不說了進入正題:1. ICE3.3.1編譯大體過程:1) 先編譯出IceUtil.so2) 利用IceUtil.so編譯出ICE的解譯器程式slice2cpp,slice2java等。3) 用解譯器產生相關的.cpp和.h代碼用來編譯其他庫。1.1 在linux redhat enterparse6.1 上編譯ICE3.3.1/3.4.2(過程一樣)。1.1.1 下載ICE3.3.