Time of Update: 2018-07-25
非阻塞IO 和阻塞IO: 在網路編程中對於一個網路控制代碼會遇到阻塞IO 和非阻塞IO 的概念, 這裡對於這兩種socket 先做一下說明: 基本概念:
Time of Update: 2018-07-26
#include <netdb.h>#include <stdio.h>#include <sys/types.h>#include <stdlib.h>#include <sys/socket.h>#include <arpa/inet.h>#include <netinet/in.h>int main(int argc, char * argv[]){ if(argc != 2) {
Time of Update: 2018-07-26
和我們通常寫程式不同,如果僅僅是全域變數,雖然編譯核心的時候能串連成功,但是串連之後再就沒有辦法使用這個變數了 而模組的載入是運行時的,它引用某個變數時,核心需要解析它,否則模組不能工作,EXPORT_SYMBOL 的定義如下 fine __EXPORT_SYMBOL(sym, sec)
Time of Update: 2018-07-25
先準備java環境,安裝JDK。 下載地址:http://www.Oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 這裡不多介紹 2、下載jenkins至Linux伺服器 查看核心版本資訊:cat /proc/version ; more /etc/issue
Time of Update: 2018-07-26
嵌入式系統產品開發經常會遇到效能瓶頸,這時需要藉助外力,即各種工具,來找出問題點並及時解決。以下列出一些系統提供的工具: 1. top 個人最常用工具之一。top命令用於顯示實際的進程活動狀態,預設在5秒內收集CPU最密集的進程資訊,並輸出。預設的重新整理時間可以通過-d參數改變,如 top -d1 則每1秒重新整理list一次。top執行後有多個快速鍵,重要的有以下幾個: h:顯示線程狀態 r:執行renice命令,用於調整進程優先順序
Time of Update: 2018-07-26
1. TCP收發緩衝區預設值 [root@qljt core]# cat /proc/sys/net/ipv4/tcp_rmem 4096 87380 4161536(TCP接收緩衝區min,default,max) cat /proc/sys/net/ipv4/tcp_wmem 4096 16384 4161536(TCP發送緩衝區min,default,max) 2. UDP收發緩衝區預設值 [root@qljt core]# cat
Time of Update: 2018-07-26
說明:此博文是Kernel有關GDT,LDT以及LDT的相關源碼剖析,而對有關GDT,LDT以及IDT的詳細說明以及原理講解都可以在Intel IA-32架構手冊中查到。這裡不再贅述,(手冊地址) 1、描述符(64bits)分類 2、三者的關係 a、GDT,IDT都是全域的。LDT是局部的(在GDT中有它的描述符) b、GDT用來儲存描述符(門或非門);系統中幾個CPU,就有幾個GDT struct gdt_page { struct desc_struct
Time of Update: 2018-07-26
http://freeloda.blog.51cto.com/2033581/1280962 原創作品,允許轉載,轉載時請務必以超連結形式標明文章 原始出處 、作者資訊和本聲明。否則將追究法律責任。 http://freeloda.blog.51cto.com/2033581/1280962 大綱 一、前言 二、Keepalived 詳解 三、環境準備
Time of Update: 2018-07-26
linux下 監控USB #include <stdio.h>#include <stdlib.h>#include <string.h>#include <ctype.h>#include <sys/un.h>#include <sys/ioctl.h>#include <sys/socket.h>#include <linux/types.h>#include
Time of Update: 2018-07-26
在Linux中經常發現空閑記憶體很少,似乎所有的記憶體都被系統佔用了,表面感覺是記憶體不夠用了,其實不然。這是Linux記憶體管理的一個優秀特性,主要特點是,無論實體記憶體有多大,Linux
Time of Update: 2018-07-26
修改完後,輸入如下命令即可 ##@##:~/ source ~/.bashrc 之後bashrc檔案就可以使用。 註: 使用ssh登陸shell的時候,系統不會自動調用.bashrc檔案, 只是會自動的讀取 如下三個檔案: ~/.bash_profile , ~/.bash_login , ~/.profile 裡面其中一個而已。 因此,如果想讓系統每次登陸時候自動讀取檔案,可以將.bashrc檔案改為.bash_
Time of Update: 2018-07-26
寫這篇部落格的原因呢是因為自己在編寫基於Nginx磁碟緩衝管理程式,目前已經進入測試階段,關於這個程式的測試分為幾個主要步驟: 1.記憶體管理是否正確(因為這個程式本身開闢很多記憶體空間進行緩衝管理,同時這個程式程式本身就是基於C/C++開發的,記憶體管理機制一直是程式員頭痛的東西) 2.程式的健碩性如何(伺服器任何程式的基本要求就是要滿足高並發的要求,也就是說,如果達不到這個基本要求,程式並並不能成為伺服器) 針對第一點,以下將介紹幾款記憶體流失檢查工具
Time of Update: 2018-07-26
找了好多資料還是沒找到 擷取4G訊號強度的應用代碼 最後沒辦法了, 只能自己寫了 首先要知道AT指令是什麼 這個可以參考下面的串連: https://www.cnblogs.com/yuweifeng/p/5587473.html 如果4G裝置正常運行 在終端輸入下面命令會得到裝置當前的訊號 命令:cat /dev/ttyUSB2& echo -e "AT+CSQ\r\n" > /dev/ttyUSB2 得到: AT+
Time of Update: 2018-07-26
linux核心中的裝置 對於掛接在具體匯流排上外部裝置都有一個struct device與之對應,比如平台裝置有platform_device與之對應,其中platform_device結構體如下: struct platform_device {const char * name; //裝置名稱,要與driver的名字進行匹配,如果成功則進入驅動的探測函數int id;struct device dev;u32
Time of Update: 2018-07-26
http://soft.chinabyte.com/os/237/11428737.shtml (1)at命令 假如我們只是想 要讓特定任務運行一次,那麼,這時候就要用到at監控程式了。 設定at命令很簡單,指示定啟動並執行時間,那麼就會在哪個時候運行。at類似列印 進程,會把任務放到/var/spool/at目錄中,到指定時間運行它 。at命令相當於另一個shell,運行at time命令時,它發送一個個命令,可以輸入任意命令或者程式。at now +
Time of Update: 2018-07-26
SUID、SGID、STICKY簡介:在瞭解特殊許可權位前,先來瞭解一下安全上下文概念。 安全上下文: 進程運行時能夠訪問哪些資源或檔案,不取決於進程檔案的屬主屬組,而是取決於運行該命令的使用者身份的uid/gid,以該身份擷取各種系統資源。 特殊位作用: SUID:對一個可執行檔,不是以發起者身份來擷取資源,而是以可執行檔的屬主身份來執行。 SGID對一個可執行檔,不是以發起者身份來擷取資源,而是以可執行檔的屬組身份來執行。
Time of Update: 2018-07-26
背景:Linux下的硬體有很多,如何看網卡是啥樣的,音效卡是啥樣的有幾個USB口及品牌。 [root@emulMachine htdocs]# lspci |grep USB00:03.0 USB controller: Broadcom BCM5785 [HT1000] USB (rev 01)00:03.1 USB controller: Broadcom BCM5785 [HT1000] USB (rev 01)00:03.2 USB controller: Broadcom BCM5
Time of Update: 2018-07-26
這次我要說的是剩下的兩個工具。 emacs這是linux下的重量級的編輯器,其實它不只是一個編輯器,你可以把它當成一個整合式開發環境來看待,這在文章的最後會提到。emacs的設計理念就是一切以編輯為中心,它提供了對shell和其它一些工具的支援,但都是在其編輯環境下來完成的。對於一個字元型的編輯環境來說首先就是很多快速鍵,這與windows的習慣有很大不同,但要說明的一點是,在emacs中所有的操作都可以通過快速鍵來完成,而且當你完全讓它成為你生活的一部分的時候,它的效率是
Time of Update: 2018-07-26
#include <string.h> #include <errno.h> #include <stdio.h> int main(int argc, char ** argv) { int i = 0; for(i = 0; i < 256; i++) {
Time of Update: 2018-07-26
該命令的功能是將給出的檔案或目錄拷貝到另一檔案或目錄中,同MSDOS下的copy命令一樣,功能十分強大。 文法: cp [選項] 源檔案或目錄 目標檔案或目錄 說明:該命令把指定的源檔案複製到目標檔案或把多個源檔案複製到目標目錄中。 該命令的各選項含義如下: - a 該選項通常在拷貝目錄時使用。它保留連結、檔案屬性,並遞迴地拷貝目錄,其作用等於dpR選項的組合。 - d 拷貝時保留連結。 - f 刪除已經存在的目標檔案而不提示。 - i