切到文字模式tty下,預設是不打開Num Lock,用起VIM時很不方便
---以下純轉錄---
要在開機時自動設定 NumLock,則在/etc/rc.d/rc.sysinit中加入以下內容:
for tty in /dev/tty[1-9]*; do
setleds -D +num < $tty
done
來源網址:Tips:在linux環境下啟動時打開numlock
2008年7月27日 星期日
2008年7月8日 星期二
Linux Socket 程式-行程間通訊簡介
- 同一主機上,不同程序間的通訊:IPC ( Inter-Process Communication)
- 不同主機上,不同程序間的通訊:網路應用程式(Network Programming)
- Pipe 函式
int pipe( int fd[2] ) ;
傳回值:如果OK,傳回0;如果錯誤,傳回-1
- 先瞭解 單一行程中的PIPE-單向資料流的設計
- fork之後,單一行程中的PIPE
- 關閉適當描述子後,兩個行程間的pipe
- 在了解運用兩條PIPE-雙向資料流的設計
- 提供雙向資料流的兩個PIPE
- 簡單的主從式範例:用兩個PIPE實作
Linux環境下的Socket programming
大陸網站看來的,http://www.chinalinuxpub.com/read.php?wid=180
什麼是Socket
Socket接口是TCP/IP網絡的API,Socket接口定義了許多函數或例程,程序員可以用它們來開發TCP/IP網絡上的應用程序。要學Internet上的TCP/IP網絡編程,必須理解Socket接口。
Socket接口設計者最先是將接口放在Unix操作系統裡面的。如果瞭解Unix系統的輸入和輸出的話,就很容易瞭解Socket了。網絡的 Socket數據傳輸是一種特殊的I/O,Socket也是一種文件描述符。Socket也具有一個類似於打開文件的函數調用Socket(),該函數返 回一個整型的Socket描述符,隨後的連接建立、數據傳輸等操作都是通過該Socket實現的。常用的Socket類型有兩種:流式Socket (SOCK_STREAM)和數據報式Socket(SOCK_DGRAM)。流式是一種面向連接的Socket,針對於面向連接的TCP服務應用;數據 報式Socket是一種無連接的Socket,對應於無連接的UDP服務應用。
Socket建立
為了建立Socket,程序可以調用Socket函數,該函數返回一個類似於文件描述符的句柄。socket函數原型為:
int socket(int domain, int type, int protocol);
domain指明所使用的協議族,通常為PF_INET,表示互聯網協議族(TCP/IP協議族);type參數指定socket的類型: SOCK_STREAM 或SOCK_DGRAM,Socket接口還定義了原始Socket(SOCK_RAW),允許程序使用低層協議;protocol通常賦值"0"。 Socket()調用返回一個整型socket描述符,你可以在後面的調用使用它。
Socket描述符是一個指向內部數據結構的指針,它指向描述符表入口。調用Socket函數時,socket執行體將建立一個Socket,實際上"建立一個Socket"意味著為一個Socket數據結構分配存儲空間。Socket執行體為你管理描述符表。
兩個網絡程序之間的一個網絡連接包括五種信息:通信協議、本地協議地址、本地主機端口、遠端主機地址和遠端協議端口。Socket數據結構中包含這五種信息。
什麼是Socket
Socket接口是TCP/IP網絡的API,Socket接口定義了許多函數或例程,程序員可以用它們來開發TCP/IP網絡上的應用程序。要學Internet上的TCP/IP網絡編程,必須理解Socket接口。
Socket接口設計者最先是將接口放在Unix操作系統裡面的。如果瞭解Unix系統的輸入和輸出的話,就很容易瞭解Socket了。網絡的 Socket數據傳輸是一種特殊的I/O,Socket也是一種文件描述符。Socket也具有一個類似於打開文件的函數調用Socket(),該函數返 回一個整型的Socket描述符,隨後的連接建立、數據傳輸等操作都是通過該Socket實現的。常用的Socket類型有兩種:流式Socket (SOCK_STREAM)和數據報式Socket(SOCK_DGRAM)。流式是一種面向連接的Socket,針對於面向連接的TCP服務應用;數據 報式Socket是一種無連接的Socket,對應於無連接的UDP服務應用。
Socket建立
為了建立Socket,程序可以調用Socket函數,該函數返回一個類似於文件描述符的句柄。socket函數原型為:
int socket(int domain, int type, int protocol);
domain指明所使用的協議族,通常為PF_INET,表示互聯網協議族(TCP/IP協議族);type參數指定socket的類型: SOCK_STREAM 或SOCK_DGRAM,Socket接口還定義了原始Socket(SOCK_RAW),允許程序使用低層協議;protocol通常賦值"0"。 Socket()調用返回一個整型socket描述符,你可以在後面的調用使用它。
Socket描述符是一個指向內部數據結構的指針,它指向描述符表入口。調用Socket函數時,socket執行體將建立一個Socket,實際上"建立一個Socket"意味著為一個Socket數據結構分配存儲空間。Socket執行體為你管理描述符表。
兩個網絡程序之間的一個網絡連接包括五種信息:通信協議、本地協議地址、本地主機端口、遠端主機地址和遠端協議端口。Socket數據結構中包含這五種信息。
如何存取VM ware 機器內的資料到PC上面
目前發現有兩各方法:
(1) 使用 winSCP
(2) 利用 Samba (設定一次一勞永逸)
===========================================
(1) 使用 winSCP
=============================================
另外依各更簡單的方法
(2) 利用 Samba (設定一次一勞永逸)
(1) 使用 winSCP
(2) 利用 Samba (設定一次一勞永逸)
===========================================
(1) 使用 winSCP
- 到這裡去看如何使用 WinSCP 簡易教學(Mini User Guide) http://www.ascc.sinica.edu.tw/winscp
- 灌好上述軟體後,到你的虛擬機器去設定你的網路卡
- 請看下面圖片Eathnet請設定 Host-only
- 然後下指令 ifconfig 找到你的網路IP 例如 下面圈起來的地方
- 接著打開winscp 登入你的虛擬機器,接著應該就會如上面教學的樣子可以連接兩個系統了
- 請點圖片可以放大
=============================================
另外依各更簡單的方法
(2) 利用 Samba (設定一次一勞永逸)
- 接著請跟著我在VMware裡面這樣做
- # vi /etc/samba/smb.conf
- 然後 找到裡面有 [homes] 的地方在下面 browseable 改成 yes
- 在下面加一行字 path = /root /*這裡是你要分享的資料夾*/
- 在 [global] 中加入 一行 netbios name = XXX /*自訂網路電腦名稱*/
- 然後存檔離開
- 請再重新開機 # reboot
- 這樣就可以了....
- 到PC的我的電腦上的網址列 打 \\XXX
- 登入帳號及密碼就是你的VMware的帳號密碼 例如 root /root
- 然後你就可以看到分享的資料夾了,你就可以在PC上直接打一打程式碼丟上去就可以了
- 點圖可以放大
2008年7月4日 星期五
ARM 的第一隻組合語言
嵌入式處理器架構
使用工具:IAR.ARM.ADS1.2
我的第一隻組合語言,哈哈!!!
=============================
;ARM ASM Example
;
AREA ARMex, CODE, READONLY
ENTRY
start
MOV r0,#10
MOV r1,#3
ADD r0,r0,r1
stop
MOV r0,#0x18
LDR r1,=0x20026
SWI 0x123456
END
使用工具:IAR.ARM.ADS1.2
我的第一隻組合語言,哈哈!!!
=============================
;ARM ASM Example
;
AREA ARMex, CODE, READONLY
ENTRY
start
MOV r0,#10
MOV r1,#3
ADD r0,r0,r1
stop
MOV r0,#0x18
LDR r1,=0x20026
SWI 0x123456
END
Linux device driver 的種類
Linux device driver 的種類:
(1) Char module
- open, read, write, close
- 像檔案一樣存取,ex: /dev/console ; /dev/ttys0
- 只能循序存取
(2) Block module
- 一個block (512bytes)
- request queue . 無read, write
↑___command - hot plug(熱插拔)
(3) Network module (機構獨樹一格,無法掌控、不可預期)
- 封包收發時機? 不可預期
Kernel Module V.S. Programs
Programs : begin with main()
Kernel Module: begin with init_module() ; end by cleanup_module()
Insert ==> init_module()
Remove ==> cleanup_module()
訂閱:
文章 (Atom)