Time of Update: 2018-12-04
分別採用TCP或UDP協議編寫一個遠端資料備份伺服器,運行用戶端將本地檔案備份到遠端伺服器中。伺服器的功能:接受用戶端請求,把用戶端的檔案進行備份(可以備份到指定的檔案夾)。用戶端的功能:與遠程伺服器進行串連,在串連後把本地的檔案發送給遠程備份伺服器。開發環境:fedora13,vim,gcccopyserver.c檔案#include<stdio.h>#include<unistd.h>#include<sys/stat.h>#include<fcnt
Time of Update: 2018-12-04
#include<unistd.h>#include<stdio.h>#include<sys/types.h>#include<sys/socket.h>#include<netinet/in.h>#include<netdb.h>int main(int argc,char *argv[]){if(argc!=4){printf("please input %s <host> <start>
Time of Update: 2018-12-04
Windows與Linux中的換行是不一樣的,已經遇到過好幾次問題了~批量建立使用者的時候,新使用者不能登入,因為我的文本是在Windows下產生的,換行是Windows格式,而Linux中使用newusers命令匯入到passwd檔案,是直接複製過去的~不能一行一行的改啊~呵呵,剛剛學到了一招。 字元檔案在兩個系統之間拷貝之後,可以使用dos2unix或者是unix2dos命令來轉換,會將兩個系統中不同的東西轉換到目標系統的格式。在Linux中輸入命令之後,會提示安裝~很小很簡單~
Time of Update: 2018-12-04
一篇非常不錯關於彙編編程的總結http://www.acsu.buffalo.edu/~charngda/x86assembly.html<understanding strict aliasing> 一篇不錯的關於C/C++中aliasing的分析http://cellperformance.beyond3d.com/articles/2006/06/understanding-strict-aliasing.html<linux slub分配器淺析>http:/
Time of Update: 2018-12-04
1,編譯核心,略2,將modules安裝到指定路徑,命令如下 make INSTALL_MOD_PATH=xxx modules_install 安裝完畢後,在xxx/lib/modules下會出現新核心的modules目錄
Time of Update: 2018-12-04
linux x86 平台上的 ASE15.5 的 dat檔案,拷貝到windows x86 平台上的ASE15.5中,是可以使用的。 只需要簡單的修改master.dat中的device路徑即可。 通過更改sysdevices的phyname來實現。 將sysdatabases系統資料表中status - 64 之後, 利用dbcc checkdb,dbcc checkalloc,dbcc checkcatalog 檢查各個資料庫。 沒有錯誤。 說明:
Time of Update: 2018-12-04
下載ntfs-3g最新版http://download.csdn.net/source/1905843該版本已包含fuse,無需另外下載編譯 解壓tar -xzf ntfs-3g-2009.11.14.tgz 編譯./configuremakemake install # or 'sudo make install' if you aren't root 掛載windows盤例如現在情況是c為主要磁碟分割ntfs,d,e為邏輯分區,分別為fat32和ntfs格式 先建立檔案夾mkdir
Time of Update: 2018-12-04
聲明:1、目前我對“壓力測試”和“負載測試”這兩個概念的區別還不清楚,所以使用“並發測試”一詞代替2、示範分別使用ab和webbench對phpinfo()的頁面進行100並發持續5秒鐘測試 首先來看一下最受歡迎的、隨apache一起打包發布的ab,使用簡單方便可以看出測試結果較為詳細,除了幾項主要資料外還包含很多項參考資料。 接下來看下使用起來更為簡單易懂的webbench可以看出測試結果與ab相比要簡單了許多,只包含了幾個主要資料。
Time of Update: 2018-12-04
waitpid waitpid(等待子進程中斷或結束) 表標頭檔 #include<sys/types.h> #include<sys/wait.h> 定義函數 pid_t waitpid(pid_t pid,int * status,int options); 函數說明 waitpid()會暫時停止目前進程的執行,直到有訊號來到或子進程 結束。如果在調用 wait()時子進程已經結束,則 wait()會立即 返回子進程結束狀態值。
Time of Update: 2018-12-04
這篇延續上一篇的內容,通過幾個典型情境來分析dm-ioband的工作流程。第一個情境是 http://sourceforge.net/apps/trac/ioband/wiki/dm-ioband/man/examples 中的example 1,首先調用命令建立兩個ioband device,# echo "0 $(blockdev --getsize /dev/sda1) ioband /dev/sda1 1 0 0 none weight 0 :80" | dmsetup create
Time of Update: 2018-12-04
dm-ioband並沒有整合在mainstream kernel裡,需要打patch才能用,而且,必須是kernel社區的源碼,像我用紅帽子的kernel打patch是會報錯的。。。http://sourceforge.net/apps/trac/ioband/wiki/dm-ioband下載patch完了之後打上,然後make menuconfig,這時在lvm/raid/devicemapper下面把ioband模組勾選上,重新編譯安裝核心,重啟之後lsmod | grep
Time of Update: 2018-12-04
1. /proc/sys/net/core/rmem_max — 最大的TCP資料接收緩衝2. /proc/sys/net/core/wmem_max — 最大的TCP資料發送緩衝3. /proc/sys/net/ipv4/tcp_timestamps — 時間戳記在(請參考RFC 1323)TCP的包頭增加12個位元組4. /proc/sys/net/ipv4/tcp_sack — 有選擇的應答5. /proc/sys/net/ipv4/tcp_window_scaling —
Time of Update: 2018-12-04
cfq_queue的屬性中,包括workload priority:IDLE, BE, RT,包括workload type:ASYNC, SYNC_NOIDLE, SYNC。同時cfq_queue雖然基於CFQ調度器,但其內部的演算法還是基於dead-line的cfq_group包含了多個紅/黑樹狀結構service tree,對應不同workload priority, workload type一些工具性質的函數:cfq_find_cfqg(struct cfq_data *cfqd,
Time of Update: 2018-12-04
先來看下traffic control在核心裡是如何?的,首先核心在發送資料時,最終會調用到dev_queue_xmit, struct Qdisc *q if (q->enqueue) { rc = __dev_xmit_skb(skb, q, dev, txq); goto out; } 如果q->enqueue函數不為空白,此時就進入traffic control的邏輯,下面調用__dev_xmit_skbstatic
Time of Update: 2018-12-04
檢測linux主機是否運行 xen,其原理是讀取 CPUID 來判斷,Xen 原始碼下面有一段檢測是否是 Xen 的 C 語言代碼 tools/misc/xen-detect.c,這段代碼提供了一個很好的例子,重寫了代碼,用宏替代了函數。xentest.c#include <stdio.h>#include <string.h> #define HYPERVISOR_INFO 0x40000000 #define CPUID(idx, eax, ebx, ecx,
Time of Update: 2018-12-04
一、從使用者態訪問系統調用通常,系統調用靠C庫支援。使用者程式通過包含標準標頭檔並和C庫連結,就可以使用系統調用。但如果你僅僅寫出系統調用,glibc庫恐怕並不提供支援。這裡有一個好訊息還有一個壞訊息,好訊息是Linux本身提供了一組宏定義linux/include/asm-x86_64/unistd.h檔案中。壞訊息是在2.6.20之後的核心版本取消了這一系列的宏,導致一開始編譯源檔案的時候出錯,最後在2.6.18中找到了這段代碼。其實這段彙編主要的作用就是將系統調用號傳遞給EAX寄存器,同時
Time of Update: 2018-12-04
Linux作業系統核心編譯詳解[zt]時間:2005-06-19 作者:易捷 來源:易捷http://www.uplinux.com/www/dev/02/185.shtml 核心簡介 核心,是一個作業系統的核心。它負責管理系統的進程、記憶體、裝置驅動程式、檔案和網路系統,決定著系統的效能和穩定性。
Time of Update: 2018-12-04
Linux下的SDL圖片瀏覽#include "SDL.h"//#include "SDL_ttf.h"#include "SDL_rotozoom.h"#include "SDL_image.h"#include "math.h"#include "string.h"#define MAX 16#define BMP_NAME "icon.bmp"#define ICON "sample.bmp"#define TITLE_NAME "TestSDL"#define ICON_NAME "
Time of Update: 2018-12-04
寫函數write ssize_t write(int fd,const void *buf,size_t nbytes)write函數將buf中的nbytes位元組內容寫入檔案描述符fd.成功時返回寫的位元組數.失敗時返回-1. 並設定errno變數. 在網路程式中,當我們向通訊端檔案描述符寫時有倆種可能. 1)write的傳回值大於0,表示寫了部分或者是全部的資料.
Time of Update: 2018-12-04
2.6核心中的initrd.img採用cpio壓縮,不再是2.4核心使用的ext2格式,無法使用mount -o loop 掛載。需要使用gunzip解壓縮,然後再使用cpio解包cp /boot/initrd-***.img initrd.img.gzgunzip initrd.img.gzmkdir initrdmv initrd.img initrdcd initrdcpio -ivmd ../initrd.new.imggzip