原创 shell入門之變量

1,變量建立 變量名稱不能以數字開頭 var=5 var=hello 可以直接賦值數字和字符串,本質上其實都是字符串,declare -i var變爲整數 添加一個變量set 也可省略,shell變量,只是當前shell和子shel

原创 許可證加解密

license服務器 根據菜單選項製作明文,包括了:     序列號:基於硬件特殊mac計算     signature:文件利用公鑰計算     功能選項:url過濾,病毒掃描,雲查殺等一些特有服務功能     pem:.pem這種文件

原创 fopen fclose fwrite fread

  fopen 系統會自動分配緩存,讀取文件需要的io次數會變少,速度更快 不過很不幸的是會有多進程或者多線程的錯亂問題,因此需要加鎖保證執行正確 常用鎖方式:flock,fcntl,lockf  lock.l_type = F_WRLC

原创 文件操作:open write read lseek

#include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <stdio.h> #include <unistd.h> int main

原创 一文掌握MAKEFILE和GCC

CC :=g++ LD :=g++ SRCDIR := src BUILDDIR := build TARGET :=bin/target SRCEXT:=cpp SOURCES:=$(shell find $(SRCDIR) -type

原创 ISO鏡像

ISO文件加載過程     類似grub,ISO有個引導程序ISOLinux.bin     啓動menulist,尋找isolinux.cfg配置文件      ISO安裝過程     ks.cfg是安裝過程的配置文件,可以通過圖形工

原创 系統的PANIC

panic並沒有什麼大不了的,就是禁搶佔,善後, 禁止了搶佔實際上就禁止了調度,因爲禁止搶佔的情況下除非自己放棄cpu才能調度, 但是我們看看那個死循環根本沒有放棄cpu的意思。 發生panic無非就兩種情形,一個是在中斷上下文,另一個是

原创 計算機的硬件速度總結

計算機的硬件速度總結 CPU-3GHZ     每秒執行    3*10^9次/s,也就是1ns執行3次,時鐘週期約0.3ns     光速是        3*10^8m/s=0.3m/ns        0.3ns光行走0.1m=10

原创 網絡IO select epoll

    int iResult = recv(s, buffer,1024);         /*設置非阻塞模式,立即返回*/         int iResult = ioctlsocket(s, FIOBIO, (unsigned

原创 硬件和軟件

最近在寫shell腳本,晚上在回家的路上,突然想起該怎麼把linux和硬件聯繫到一起呢?請看幾個對話 R師傅: 其實對我碼農來講,唯一可以看到的硬件連接就是USB了,因爲鍵盤是碼農寫軟件和Linux系統交互的平臺,幾乎也是唯一通道,原來

原创 進程棧調用

進程的虛擬內存中的標準內存段佈局 4G        0xffff ffff     kernel space, user code write or read segmentation fault 3G        0xbfff ff

原创 易懂的7種排序算法解析和理解

    找最值 每次確定一個最值位置,找最值,就是一個全局遍歷過程, 交換找最大值,中間可能有序 對比找最大值,必須全部找出 交換找最大值,保留中間狀態 bubble        對比交換,遍歷0-i可以確定第i+1位置,最值   

原创 系統內存和進程內存

===系統內存=== 系統內存的使用情況可以用以下公式表示: MemTotal = MemFree +【Slab+ VmallocUsed + PageTables + KernelStack + HardwareCorrupted +

原创 收發包過程

物理連接,物理標識,網絡標識,端口標識,數據標識 星形聯結,mac地址,ip地址,服務端口,數據協議 ===dns請求爲例 應用層構造DNS包,告訴udp層數據目的8.8.8.8的端口53 udp層構造udp包,數據就是dns包內容,目的

原创 數組和鏈表safe

 數組 數組是需要使用連續內存時候申請的一種內存,int a[10],聲明定義必須制定大小 int a[]可作爲參數傳入是代表a的首地址 訪問數組內的數據:a[1]下表方式,其實也是一個地址取值,去a+1的地址上取值*(a+1) 一個數據