VirtualBox¹Ù·½ÍøÕ¾£ºhttp://www.virtualbox.org/
ÒÔÏÂΪubuntu Ϊƽ̨µÄ°²×°¡¢ÅäÖá¢Ê¹Óã¬ÆäʵÔÚ¸÷¸ö·¢ÐаæÖеÄʹÓö¼²î²»¶à£¬Ö»ÊÇÔÚÏÂÔØµÄʱºòÐèÒªÏÂÔØÏà¶ÔÓ¦Ö÷ϵͳƽ̨µÄ°²×°°ü¼´¿É¡£
»·¾³ÐèÇó£º
VirtualBoxÐèÒªkernel modulesµÄÖ§³Ö£¬ËùÒÔϵͳÖбØÐëÒªÏȰ²×°kernel-devel£¬Èç¹ûûÓа²×°µÄ£¬fedoraϵͳ¿ÉÒÔʹÓÃsudo apt-get install À´°²×°¡£
CODE:sudo apt-get install install kernel-devel-ÕýÈ·µÄ°æ±¾ºÅ
ÏÂÔØ£º
virtualBoxÍøÕ¾Òѽ«ÏÂÔØÁ¬½Ó×ªÒÆµ½SUN donwload centerÁË,ÔÚ http://www.virtualbox.org/wiki/Downloads ÉÏÁ¬½Ó“Binaries (all platforms)”¼´¿ÉÁ¬½Óµ½ÏÂÔØÒ³Ãæ£¬Ñ¡ÔñÏàÓ¦µÄÖ÷»úƽ̨£¬Í¬ÒâÏÂÔØÐÒé¼´¿ÉÏÂÔØ.
°²×°£º
ÔËÐÐǰÅäÖãº
Ê×ÏÈÐèÒª½¨Á¢¡¢²¢ÇÒÆô¶¯VirtualBox kernel module£¬Ö´ÐУº
CODE:sudo /etc/rc.d/init.d/vboxdrv setup(×¢Ò⣬ubuntuϵÄÃû×Ö²»Ò»Ñù£¬Êä½øÈëinit.dÀï²é¿´ÊÇÄ ......
Linux¶àÏ̱߳à³Ì¼¼Êõ×ܽá
1
¡¢Ï̵߳Ĵ´½¨¡¢ÖÕÖ¹¼°¿ØÖÆ£º
Èκνø³ÌÔÚÆô¶¯Ê±¾ÍÒÑÓÐÁËÒ»¸öÖ÷Ị̈߳¬Èç¹ûÐèÒªÔÙÉú³ÉÏß³ÌÔòʹÓÃ
pthread_create
º¯Êý£¬Ôڸú¯ÊýÖпÉÒÔÖ¸¶¨Ï̵߳ÄÊôÐÔ¡¢Ïß³ÌÀý³Ì¡¢´«¸øÏß³ÌÀý³ÌµÄ²ÎÊý¡£Ïß³ÌÀý³ÌÊÇÒ»¸öÓû§×Ô¶¨ÒåµÄº¯Êý£¬¼°Ïß³ÌÖ´ÐеĴúÂë¡£µ±Ïß³ÌÀý³Ì·µ»ØÊ±£¬Ïß³ÌÔò½áÊøÔËÐУ¬Ò²¿ÉÒÔÏÔʾµ÷ÓÃ
pthread_exit
À´Í˳ö¡£Ïß³ÌÔÚ´´½¨ºó¿ÉÒÔÓÃ
pthread_self
º¯Êý»ñÈ¡Ïß³Ì
ID
¡£º¯Êý
pthread_join
ʹµÃ½ø³ÌµÈ´ýÏ̵߳ÄÖÕÖ¹£¬µ÷ÓÃ
pthread_join
ºó½ø³Ì½«±»¹ÒÆð£¬Ö±µ½Ö¸¶¨µÄij¸öỊ̈߳¨ÔÚ
pthread_join
µÄ²ÎÊý
thread
ÖÐÖ¸¶¨£©ÖÕÖ¹¡£¶ø
pthread_detach
º¯ÊýÕýºÃÏà·´£¬ËüʹµÃ½ø³Ì²»±ØµÈ´ýÏ̵߳ĽáÊø£¬´Ó¶øÔÊÐí½ø³Ì¼ÌÐøÖ´ÐбðµÄ²Ù×÷£¬±»
detach
µÄÏß³ÌÔÚÖ´ÐнáÊøºóÆäÕ¼ÓõÄ×ÊÔ´ÓÉϵͳ×Ô¶¯Êջء£
2
¡¢Ï̼߳äµÄ»¥³â£º
»¥³â²Ù×÷
£¬¾ÍÊǶÔij¶Î´úÂë»òij¸ö±äÁ¿Ð޸ĵÄʱºòÖ»ÄÜÓÐÒ»¸öÏß³ÌÔÚÖ´ÐÐÕâ¶Î´úÂ룬ÆäËûÏ̲߳»ÄÜͬʱ½øÈëÕâ¶Î´úÂë»òͬʱÐ޸ıäÁ¿¡£
pthread
³£ÓÃ
pthread_mutex
»¥³âÌåÀ´ÊµÏÖÏ̻߳¥³â²Ù×÷¡£
pthread_mutex_init
º¯ÊýÓÃÓÚ³õʼ»¯Ò»¸ö»¥ ......
#include <sys/select.h>
#include <sys/time.h>
#include
<sys/types.h>
#include <unistd.h>
int select(int
nfds,fd_set *readfds,fd_set *writefds, fd_set *except fds,struct timeval
*timeout)
void FD_SET(int fd,fd_set *fdset)
void FD_CLR(int fd,fd_set
*fdset)
void FD_ZERO(fd_set *fdset)
int FD_ISSET(int fd,fd_set
*fdset)
¼ÌÐøÇ°ÃæµÄ
LinuxÍøÂç±à³Ì-¿Í»§¶ËÓë·þÎñÆ÷¶ËͨÐÅ(Echo)
£¬½Ó׎²¹ØÓÚ¿Í»§¶ËÓë·þÎñÆ÷¶ËµÄÒ첽ͨѶ
Ò»°ãµÄÀ´Ëµµ±ÎÒÃÇÔÚÏòÎļþ¶Áдʱ,½ø³ÌÓпÉÄÜÔÚ¶Áд³ö×èÈû,Ö±µ½Ò»¶¨µÄÌõ¼þÂú×ã.
±ÈÈçÎÒÃÇ´ÓÒ»¸öÌ×½Ó×Ö¶ÁÊý¾Ýʱ,
¿ÉÄÜ»º³åÇøÀïÃæÃ»ÓÐÊý¾Ý¿É¶Á (ͨÐŵĶԷ½»¹Ã»ÓÐ
·¢ËÍÊý¾Ý¹ýÀ´),Õâ¸öʱºòÎÒÃǵĶÁµ÷ÓþͻáµÈ´ý(×èÈû)Ö±µ½ÓÐÊý¾Ý¿É¶Á.
Èç¹ûÎÒÃDz» Ï£Íû×èÈû,ÎÒÃǵÄÒ»¸öÑ¡ÔñÊÇÓÃselectϵͳµ÷ÓÃ.
Ö»ÒªÎÒÃÇÉèÖúÃselectµÄ¸÷¸ö²ÎÊý,
ÄÇôµ±Îļþ¿ÉÒÔ¶ÁдµÄʱºòselect»Ø"֪ͨ"ÎÒÃÇ Ëµ¿ÉÒÔ¶ÁдÁË.
readfdsËùÓÐÒª¶ÁµÄÎļþÎļþÃèÊö·ûµÄ¼¯ºÏ
writefdsËùÓÐÒªµÄдÎļþÎļþÃèÊö·ûµÄ¼¯ºÏ
&nbs ......
ÔÚlinux²éѯ·Óɵķ½·¨ÓкܶàÖÖ¡£ÏÂÃæ½éÉÜÒ»ÖÖ´Óiproute¿ªÔ´Èí¼þÖÐÌáÈ¡³öÀ´µÄÒ»ÖÖ·½·¨¡£ÔÚubuntu904ϱàÒ룬ÔËÐÐͨ¹ý¡£
±àÒë: gcc -o reqroute iproute_linux.c
ʹÓÃ: ./reqroute 1.2.3.4
½á¹û:source:1.3.4.5
Gateway:192.168.1.3
Dev:eth0
Ô´´úÂëÈçÏ£º
iproute_linux.h
typedef unsigned char __u8;
typedef short __s16;
typedef unsigned int __u32;
typedef struct{
__u8 family;
__u8 bytelen;
__s16 bitlen;
__u32 flags;
__u32 data[8];
} inet_prefix;
static struct{
int tb;
int cloned;
int flushed;
char *flushb;
int flushp;
int flushe;
struct rtnl_handle *rth;
int protocol, protocolmask;
int scope, scopemask;
int type, typemask;
int tos, tosmask;
int iif, iifmask;
int oif, oifmask;
int realm, realmmask;
inet_prefix rprefsrc;
inet_prefix rvia;
inet_prefix rdst;
inet_pr ......
Linux shell½Å±¾È«ÃæÑ§Ï°
1. Linux ½Å±¾±àд»ù´¡
1.1 Óï·¨»ù±¾½éÉÜ
1.1.1 ¿ªÍ·
³ÌÐò±ØÐëÒÔÏÂÃæµÄÐпªÊ¼£¨±ØÐë·½ÔÚÎļþµÄµÚÒ»ÐУ©£º
#!/bin/sh
¡¡¡¡·ûºÅ#!ÓÃÀ´¸æËßϵͳËüºóÃæµÄ²ÎÊýÊÇÓÃÀ´Ö´ÐиÃÎļþµÄ³ÌÐò¡£ÔÚÕâ¸öÀý×ÓÖÐÎÒÃÇʹÓÃ/bin/shÀ´Ö´ÐгÌÐò¡£
¡¡¡¡µ±±à¼ºÃ½Å±¾Ê±£¬Èç¹ûÒªÖ´Ðиýű¾£¬»¹±ØÐëʹÆä¿ÉÖ´ÐС£
¡¡¡¡ÒªÊ¹½Å±¾¿ÉÖ´ÐУº
±àÒë chmod +x filename ÕâÑù²ÅÄÜÓÃ./filename À´ÔËÐÐ
1.1.2 ×¢ÊÍ
¡¡¡¡ÔÚ½øÐÐshell±à³Ìʱ£¬ÒÔ#¿ªÍ·µÄ¾ä×Ó±íʾעÊÍ£¬Ö±µ½ÕâÒ»ÐеĽáÊø¡£ÎÒÃÇÕæ³ÏµØ½¨ÒéÄúÔÚ³ÌÐòÖÐʹÓÃ×¢ÊÍ¡£
Èç¹ûÄúʹÓÃÁË×¢ÊÍ£¬ÄÇô¼´Ê¹Ï൱³¤µÄʱ¼äÄÚûÓÐʹÓøýű¾£¬ÄúÒ²ÄÜÔں̵ܶÄʱ¼äÄÚÃ÷°×¸Ã½Å±¾µÄ×÷ÓÃ
¼°¹¤×÷ÔÀí¡£
1.1.3 ±äÁ¿
¡¡¡¡ÔÚÆäËû±à³ÌÓïÑÔÖÐÄú±ØÐëʹÓñäÁ¿¡£ÔÚshell±à³ÌÖУ¬ËùÓеıäÁ¿¶¼ÓÉ×Ö·û´®×é³É£¬²¢ÇÒÄú²»ÐèÒª¶Ô±äÁ¿
½øÐÐÉùÃ÷¡£Òª¸³Öµ¸øÒ»¸ö±äÁ¿£¬Äú¿ÉÒÔÕâÑùд£º
#!/bin/sh
#¶Ô±äÁ¿¸³Öµ£º
a="hello world"
# ÏÖÔÚ´òÓ¡±äÁ¿aµÄÄÚÈÝ£º
echo "A is:"
echo $a
ÓÐʱºò±äÁ¿ÃûºÜÈÝÒ×ÓëÆäËûÎÄ×Ö»ìÏý£¬±ÈÈ磺
num=2
echo "this is the $numnd"
Õâ²¢²»»á´òÓ¡³ö"this is the 2nd"£¬¶ø½ö½ö´òÓ¡"this is the "£ ......
±¾ÎÄÊÇ Unix/Linux ϵͳ¹ÜÀí×Ô¶¯»¯ÏµÁÐÖеÄһƪ£¬Ö÷Òª½²ÊöÈçºÎʵÏÖ´ÅÅÌ I/O ×Ô¶¯»¯¼à¿Ø¡£
´ÅÅÌ I/O ¼à¿ØÊÇ Unix/Linux ϵͳ¹ÜÀíÖÐÒ»¸ö·Ç³£ÖØÒªµÄ×é³É²¿·Ö¡£Ëü¿ÉÒÔ¼à¿ØÍÌÍÂÁ¿¡¢Ã¿Ãë I/O Êý¡¢´ÅÅÌÀûÓÃÂÊ¡¢·þÎñʱ¼äµÈÐÅÏ¢£¬²¢ÇÒÔÚ·¢ÏÖÒ쳣ʱ£¬·¢Ë͸澯ÐÅÏ¢¸øÏµÍ³¹ÜÀíÔ±£¬±ãÓÚϵͳ¹ÜÀíÔ±½øÐе÷ÕûÊý¾Ý²¼¾ÖµÈ¹ÜÀí»î¶¯ÒÔ´ïµ½ÓÅ»¯ÏµÍ³×ÜÌåÐÔÄܵÄÄ¿µÄ¡£
²»Í¬µÄ²Ù×÷ϵͳ¼à¿Ø´ÅÅÌ I/O µÄÃüÁî¿ÉÄÜÂÔÓв»Í¬¡£±¾ÎĽ«½éÉÜ Unix/Linux ²Ù×÷ϵͳ´ÅÅÌ I/O ¹ÜÀíÃüÁî¼°Ïà¹ØÐÅÏ¢£¬²¢½²Êö Unix/Linux ²Ù×÷ϵͳÉÏ´ÅÅÌ I/O ¹ÜÀí¼à¿ØµÄ×Ô¶¯»¯½Å±¾ÊµÏÖ¡£
Unix/Linux ´ÅÅÌ I/O ÐÔÄÜ¼à¿ØÃüÁî
´ÅÅÌ I/O ÐÔÄÜ¼à¿ØÖ¸±êºÍµ÷ÓÅ·½·¨
ÔÚ½éÉÜ´ÅÅÌ I/O ¼à¿ØÃüÁîǰ£¬ÎÒÃÇÐèÒªÁ˽â´ÅÅÌ I/O ÐÔÄÜ¼à¿ØµÄÖ¸±ê£¬ÒÔ¼°Ã¿¸öÖ¸±êµÄËù½ÒʾµÄ´ÅÅÌij·½ÃæµÄÐÔÄÜ¡£´ÅÅÌ I/O ÐÔÄÜ¼à¿ØµÄÖ¸±êÖ÷Òª°üÀ¨£º
Ö¸±ê 1£ºÃ¿Ãë I/O Êý£¨IOPS »ò tps£©
¶ÔÓÚ´ÅÅÌÀ´Ëµ£¬Ò»´Î´ÅÅ̵ÄÁ¬Ðø¶Á»òÕßÁ¬ÐøÐ´³ÆÎªÒ»´Î´ÅÅÌ I/O, ´ÅÅÌµÄ IOPS ¾ÍÊÇÿÃë´ÅÅÌÁ¬Ðø¶Á´ÎÊýºÍÁ¬ÐøÐ´´ÎÊýÖ®ºÍ¡£µ±´«ÊäС¿é²»Á¬ÐøÊý¾Ýʱ£¬¸ÃÖ¸±êÓÐÖØÒª²Î¿¼ÒâÒå¡£
Ö¸±ê 2£ºÍÌÍÂÁ¿£¨Throughput£©
Ö¸Ó²ÅÌ´«ÊäÊý¾ÝÁ÷µÄËÙ¶È£¬´«ÊäÊý¾ÝΪ¶Á³öÊý¾ÝºÍдÈëÊý¾ÝµÄºÍ¡£Æäµ¥Î»Ò»°ãΪ Kbps, M ......