Time of Update: 2018-12-03
此文以ubuntu為例step1:安裝apache21)查看 查看apache是否已安裝:apachectl -v 若安裝顯示Server version: Apache/2.2.22 (Ubuntu)2)安裝 若未安裝,鍵入這條命令:sudo apt-get install apache23)檢驗 成功安裝後,在瀏覽器鍵入http://主機ip/ 若顯示It
Time of Update: 2018-12-03
linux下的進程通訊手段基本上是從Unix平台上的進程通訊手段繼承而來的。而對Unix發展做出重大貢獻的兩大主力AT&T的貝爾實驗室及BSD(加州大學伯克利分校的伯克利軟體發布中心)在處理序間通訊方面的側重點有所不同。前者對Unix早期的處理序間通訊手段進行了系統的改進和擴充,形成了“system V IPC”,通訊進程局限在單個電腦內;後者則跳過了該限制,形成了基於套介面(socket)的處理序間通訊機制。Linux則把兩者繼承了下來,示:示: 其中,最初Unix IPC包括:管道、
Time of Update: 2018-12-03
今年的主要工作就是把linux kernel好好學習一下,目前編譯的問題不大,下面就是一些具體的移植工作。下面介紹一下涉及的主要相關工作:(1) skyeye 國產的虛擬機器模擬工具(2)ulibc 主要是簡單的libc庫,涉及記憶體、檔案、進程建立等等(3)busybox 涉及/bin, /sbin下面的主要命令(4)linux kernel, 也就是www.kernel.org下面的核心代碼。 後續的相關工作會在部落格中跟蹤。
Time of Update: 2018-12-03
1.訪問codesourcery官方網站下載最新的ARM交叉編譯工具鏈,當前最新版本是arm-2009q3:http://www.codesourcery.com/sgpp/lite/arm/portal/package5383/public/arm-none-linux-gnueabi/arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz22.解壓$ tar -jxvf
Time of Update: 2018-12-03
Linux下hello.ko核心模組製作的全過程1. linux系統用的是Redflag 6.0 SP1 :ftp://ftp.redflag-linux.com/pub/redflag/dt6sp1/SP1/redflag-6-sp1.iso,
Time of Update: 2018-12-03
linux下安裝virtualbox的一般方法1. 下載安裝檔案,我們就下載所有linux下都可以用的安裝檔案 下載連結:http://dlc.sun.com.edgesuite.net/virtualbox/4.1.0/VirtualBox-4.1.0-73009-Linux_x86.run2. 安裝virtualbox 命令列裡進入VirtualBox-4.1.0-73009-Linux_x86.run所在的檔案夾,執行命令:sh
Time of Update: 2018-12-03
1, 安裝 Module-Init-ToolsModule-Init-Tools 的內容安裝的程式:depmod, insmod, insmod.static, lsmod (連結到 insmod), modinfo, modprobe (連結到 insmod), rmmod (連結到 insmod)簡要描述depmod建立一個可載入核心模組的依賴關係檔案,modprobe 用它來自動載入模組。insmod向正在啟動並執行核心載入模組 insmod.staticinsmod
Time of Update: 2018-12-03
1,Boot Loader 編譯環境搭建第一步: 在編譯Boot Loader之前,首先要確保已經安裝了交叉編譯工具鏈,可以利用which arm-linux-gcc 命令進行檢測.進入/mnt/cdrom/Toolchain 目錄下,將xscalev1_liod_qt_2.3.7.tar.gz 工具鏈解壓到/usr/local/ 目錄下面,如2
Time of Update: 2018-12-03
出發點:Android電視棒實現DLNA功能採用JAVA版本的cyberlink的話,缺點明顯,SSDP協議裝置發現有延時(有時還發現不了裝置)體驗差,基於Linux電視棒可以控制硬體成本在100元以下,而且c語言實現的cyberlink DLNA協議棧不存在裝置發現不了的情況,本文記錄記錄linux下實現dlna碰到的一攬子問題1. DLNA的DMR方案方案1: MediaGateForCC
Time of Update: 2018-12-03
基於OS的電子類產品通常會把kernel燒到norfash裡,因為可以按位元組進行讀寫,但是norflash的價格要比nand flash的價格貴,而且nand flash是基於塊讀寫的,如一次性讀寫512位元組(block).如果是MLC的nand flash是按頁讀取的,一頁差不多有4K byte, 那如何基於nand flash啟動內容呢? 這裡的實現步驟如下:1. 目前部分nand flash controller晶片會預設把nand
Time of Update: 2018-12-03
實現web server時,通過建立一個線程池來並發處理用戶端的http請求,代碼如下: for(i = 0; i < THREAD_POOL_SIZE; i++){pthread_create(&thread_pool[i], NULL, (void*)&worker, (void*)i);pthread_detach(thread_pool[i]);} 線程並發處理如下:void* worker(int n){struct server_struct *request;
Time of Update: 2018-12-03
tar1) tar調用gzip gzip是GNU組織開發的一個壓縮程式,.gz結尾的檔案就是gzip壓縮的結果。與gzip 相對的解壓程式是gunzip。tar中使用-z這個參數來調用gzip。下面來舉例說明一下 : # tar -czf all.tar.gz *.jpg 這條命令是將所有.jpg的檔案打成一個tar包,並且將其用gzip壓縮,產生一個 gzip壓縮過的包,包名為all.tar.gz # tar -xzf all.tar.gz 這條命令是將上面產生的包解開。
Time of Update: 2018-12-03
Step1:vi /etc/sysconfig/network-scripts/ifcfg-p4p1修改ip資訊,修改或加入:BOOTPROTO="static" # static or DHCPIPADDR=172.18.66.77PREFIX=24 #子網ONBOOT="yes" Step2:vi /etc/sysconfig/network定義主機名稱,加入網關出口:HOSTNAME=linux_hostGATEWAY=172.18.66.254Step3: vi /etc/resolv.
Time of Update: 2018-12-03
查看記憶體資訊, cat /proc/meminfo, 同理查看cpu資訊, cat /proc/cpuinfo, 有時會有這樣疑問,比如4核究竟是2cpu*雙核呢,還是1cpu*四核呢?有一個簡單的方法: 有多少個processor,就有多少個core, 有多少個cpu, 就看最後一個processor的physical id+1舉個例:processor : 0vendor_id : GenuineIntelcpu family : 6model
Time of Update: 2018-12-03
主機:Windows 7旗艦版,VMware7.1.2,Fedora9編譯環境:arm-linux-gcc 4.4.3Linux版本:linux-2.6.32.2busybox版本:busybox-1.19.4目標板:友善之臂micro2440編譯使用核心模組的方法:編寫一個簡單的Linux核心模組Hello World,hello.c內容如下: #include <linux/init.h>#include <linux/module.h>MODULE_LICENSE(
Time of Update: 2018-12-03
#include <stdio.h>#include <string.h>#include <sys/types.h>#include <sys/socket.h>#include <sys/ioctl.h>#include <netinet/in.h>#include <net/if.h>#include <net/if_arp.h>#include
Time of Update: 2018-12-03
1.訊號的產生 Linux下的訊號可以類比於DOS下的INT或者是Windows下的事件。 訊號事件的發生有兩個來源:一個是硬體的原因(比如按下了鍵盤),一個是軟體的原因(比如使用系統函數或者是命令發出訊號)。 List all signal: #> man 7 signal2. 三種異常中斷訊號 2.1 SIGSEGV (Segment fault) 意味著指標所對應的地址是無效地址,沒有實體記憶體對應該地址 2.2 SIGTERM
Time of Update: 2018-12-03
1. 模組(驅動程式) 模組(module)是在核心空間啟動並執行程式,實際上是一種目標對象檔案,可以動態裝載到系統中作為核心的一部分運行。 Linux下對於一個硬體的驅動,可以有兩種方式: 1.1 直接載入到核心代碼 啟動核心時就會驅動此硬體裝置。 1.2 以模組方式載入 編譯產生一個.o檔案。當應用程式需要時再載入進核心空間運行。2. Linux系統的檔案類型 Linux檔案系統包括:
Time of Update: 2018-12-03
由於各種的I/O負載情形各異,Linux系統中檔案系統的預設配置一般來說都比較中庸,強調普遍適用性。然而在特定應用下,這種配置往往在I/O效能方面不能達到最優。因此,如果應用對I/O效能要求較高,除了採用效能更高的硬體(如磁碟、HBA卡、CPU、MEM等)外,我們還可以通過對檔案系統進行效能調優,來獲得更高的I/O效能提升。總的來說,主要可以從三個方面來做工作:1、Disk相關參數調優2、檔案系統本身參數調優3、檔案系統掛載(mount)參數調優 當然,負載情況不同,需要結合理論分析與充分的測試
Time of Update: 2018-12-03
摘錄自"UNIX程式設計的藝術"一書KEEP IT SIMPLE, STUPID! 編寫只做一件事情,並且要做好的程式;編寫可以在一起工作的程式,編寫處理文字資料流的程式,因為這是通用的介面。這就是UNIX哲學.所有的哲學真正的濃縮為一個鐵一樣的定律,高明的工程師的神聖的“KISS 原則”無處不在。大部分隱式的UNIX哲學不是這些前輩所說的,而是他們所做的和UNIX自身建立的例子。從整體上看,我們能夠抽象出下面這些觀點: 1、 模組性原則:寫簡單的,通過乾淨的介面可被串連的組件。