ϵͳ
# uname -a # ²é¿´ÄÚºË/²Ù×÷ϵͳ/CPUÐÅÏ¢
# head -n 1 /etc/issue # ²é¿´²Ù×÷ϵͳ
°æ±¾
# cat /proc/cpuinfo # ²é¿´CPUÐÅÏ¢
# hostname # ²é¿´¼ÆËã»úÃû
# lspci -tv # ÁгöËùÓÐPCIÉ豸
# lsusb -tv # ÁгöËùÓÐUSBÉ豸
# lsmod # Áгö¼ÓÔØµÄÄÚºËÄ£¿é
# env # ²é¿´»·¾³±äÁ¿
×ÊÔ´
# free -m # ²é¿´ÄÚ´æÊ¹ÓÃÁ¿ºÍ½»»»ÇøÊ¹ÓÃÁ¿
# df -h ......
Ò»£®ºËÐÄÔ´³ÌÐòµÄÎļþ×éÖ¯£º
1£®LinuxºËÐÄÔ´³ÌÐòͨ³£¶¼°²×°ÔÚ/usr/src/linuxÏ£¬¶øÇÒËüÓÐÒ»¸ö·Ç³£¼òµ¥µÄ±àºÅÔ¼¶¨£ºÈκÎżÊýµÄºËÐÄ£¨ÀýÈç2.0.30£©¶¼ÊÇÒ»¸öÎȶ¨µØ·¢ÐеĺËÐÄ£¬¶øÈÎºÎÆæÊýµÄºËÐÄ£¨ÀýÈç2.1.42£©¶¼ÊÇÒ»¸ö¿ª·¢ÖеĺËÐÄ¡£
±¾ÎÄ»ùÓÚÎȶ¨µÄ2.2.5Ô´´úÂ룬µÚ¶þ²¿·ÖµÄʵÏÖÆ½Ì¨Îª Redhat Linux 6.0¡£
2£®ºËÐÄÔ´³ÌÐòµÄÎļþ°´Ê÷Ðνṹ½øÐÐ×éÖ¯£¬ÔÚÔ´³ÌÐòÊ÷µÄ×îÉϲãÄã»á¿´µ½ÕâÑùһЩĿ¼£º
¡ñArch £ºarch×ÓĿ¼°üÀ¨ÁËËùÓкÍÌåϵ½á¹¹Ïà¹ØµÄºËÐÄ´úÂë¡£ËüµÄÿһ¸ö×ÓĿ¼¶¼´ú±íÒ»ÖÖÖ§³ÖµÄÌåϵ½á¹¹£¬ÀýÈçi386¾ÍÊǹØÓÚintel cpu¼°ÓëÖ®Ïà¼æÈÝÌåϵ½á¹¹µÄ×ÓĿ¼¡£PC»úÒ»°ã¶¼»ùÓÚ´ËĿ¼£»
¡ñInclude: include×ÓĿ¼°üÀ¨±àÒëºËÐÄËùÐèÒªµÄ´ó²¿·ÖÍ·Îļþ¡£ÓëÆ½Ì¨Î޹صÄÍ·ÎļþÔÚ include/linux×ÓĿ¼Ï£¬Óë intel cpuÏà¹ØµÄÍ·ÎļþÔÚinclude/asm-i386×ÓĿ¼ÏÂ,¶øinclude/scsiĿ¼ÔòÊÇÓйØscsiÉ豸µÄÍ·ÎļþĿ¼£»
¡ñInit£º Õâ¸öĿ¼°üº¬ºËÐĵijõʼ»¯´úÂë(×¢£º²»ÊÇϵͳµÄÒýµ¼´úÂë)£¬°üº¬Á½¸öÎļþmain.cºÍVersion.c£¬ÕâÊÇÑо¿ºËÐÄÈçºÎ¹¤×÷µÄÒ»¸ö·Ç³£ºÃµÄÆðµã¡£
¡ñMm £ºÕâ¸öĿ¼°üÀ¨ËùÓжÀÁ¢ÓÚ cpu Ìåϵ½á¹¹µÄÄÚ´æ¹ÜÀí´úÂ룬Èçҳʽ´æ´¢¹ÜÀíÄÚ´æµÄ·ÖÅäºÍÊͷŵȣ»¶øºÍÌåϵ½á¹¹Ïà¹ØµÄÄÚ´ ......
#include<unistd.h>
¡¡¡¡¶¨Ò庯Êý£º
¡¡¡¡int execvp(const char *file ,char * const argv []);
¡¡¡¡º¯Êý˵Ã÷£º
¡¡¡¡execvp()»á´ÓPATH »·¾³±äÁ¿ËùÖ¸µÄĿ¼ÖвéÕÒ·ûºÏ²ÎÊýfile µÄÎļþÃû£¬ÕÒµ½ºó±ãÖ´ÐиÃÎļþ£¬È»ºó½«µÚ¶þ¸ö²ÎÊýargv´«¸ø¸ÃÓûÖ´ÐеÄÎļþ¡£
¡¡¡¡·µ»ØÖµ£º
¡¡¡¡Èç¹ûÖ´Ðгɹ¦Ôòº¯Êý²»»á·µ»Ø£¬Ö´ÐÐʧ°ÜÔòÖ±½Ó·µ»Ø-1£¬Ê§°ÜÔÒò´æÓÚerrnoÖÐ
#include<unistd.h>
void main()
{
char * argv[ ] ={"ls","-al",0};
printf("Hello\n");
execvp("ls",argv);
printf("bye\n");
}
²Â²ÂÔËÐнá¹û£¬ºÇºÇ£¬×¢Òâ½ø³Ì±»¸Ä±ä¡£
////////////////////////////////////////////////
#include <unistd.h>
¡¡¡¡º¯Êý¶¨Ò壺
¡¡¡¡int fork( void );
¡¡¡¡·µ»ØÖµ£º
¡¡¡¡×Ó½ø³ÌÖзµ»Ø0£¬¸¸½ø³ÌÖзµ»Ø×Ó½ø³ÌID£¬³ö´í·µ»Ø-1
#include <unistd.h>
#include <stdio.h>
int main(int argc, void ** argv )
{
int pid = fork();
if(pid == -1 ) {
printf("error!");
} else if( pid == 0 ) {
printf("This is the chi ......
¹ØÓÚread(...)·µ»ØÖµµÄÕýÈ·Åжϣºp30
File I/O µÄ read(...)º¯ÊýÓ÷¨£º
ÓÐÎÊÌâµÄ´úÂ룬ֻÅжϷµ»ØÖµÎª-1µÄÇé¿ö¡£
unsigned long word;
ssize_t nr;
/* read a couple bytes into 'word' from 'fd' */
nr = read (fd, &word, sizeof (unsigned long));
if (nr == -1)
/* error */
Indeed, a call to read( ) can result in many possibilities:
• The call returns a value equal to len. All len read bytes are stored in buf. The
results are as intended.
• The call returns a value less than len, but greater than zero. The read bytes are
stored in buf. This can occur because a signal interrupted the read midway, an
error occurred in the middle of the read, more than zero, but less than len bytes’
worth of data was available, or EOF was reached before len bytes were read.
Reissuing the read (with correspondingly updated buf and len values) will read the
remaining bytes into the rest of the buffer, or indicate the cause of the problem.
• The call returns 0. This indicates EOF. ......
Ôʼ¶¨Òå:include/linux/init.h
__initºÍ__exit±ê¼Çº¯Êý£¬__initdataºÍ__exitdata±ê¼ÇÊý¾Ý¡£
´Ëºê¶¨Òå¿ÉÖª±ê¼ÇºóµÄº¯ÊýÓëÊý¾ÝÆäʵÊǷŵ½ÁËÌØ¶¨µÄ£¨´úÂë»òÊý¾Ý£©¶ÎÖС£±ê¼ÇΪ³õʼ»¯µÄº¯Êý,±íÃ÷¸Ãº¯Êý¹©ÔÚ³õʼ»¯ÆÚ¼äʹÓá£ÔÚÄ£¿é×°ÔØÖ®ºó£¬Ä£¿é×°ÔØ¾Í»á½«³õʼ»¯º¯ÊýÈÓµô¡£ÕâÑù¿ÉÒÔ½«¸Ãº¯ÊýÕ¼ÓõÄÄÚ´æÊͷųöÀ´¡£
__exitÐÞÊδʱê¼Çº¯ÊýÖ»ÔÚÄ£¿éÐ¶ÔØÊ±Ê¹Óá£Èç¹ûÄ£¿é±»Ö±½Ó±à½øÄÚºËÔò¸Ãº¯Êý¾Í²»»á±»µ÷Óá£Èç¹ûÄں˱àÒëʱûÓаüº¬¸ÃÄ£¿é,Ôò´Ë±ê¼ÇµÄº¯Êý½«±»¼òµ¥µØ¶ªÆú¡£
_init²»ÊôÓÚcµÄ±ê×¼ÔÚÄں˴úÂëÀÕâ¸ö±íʾ°ÑÕâ¸öº¯Êý·ÅÔÚ.init.text sectionÀÔÚinclude/linux/init.hÀïÓж¨Òå
#define __init __attribute__ ((__section__ (".init.text")))
Õâ¸ösectionµÄ¿Õ¼äÊǻᱻ»ØÊյģ¬sectionÊǺÍÁ¬½ÓÓйصĸÅÄî ......
http://linux.vbird.org/linux_server/0140networkcommand.php
ʹÓ÷ÓÉ·½Ê½£¬Ê¹ÓÃrouteÃüÁî¡£
-- RouteÃüÁîµÄÕýÈ·Ó÷¨
ʹÓà Route ÃüÁîÐй¤¾ß²é¿´²¢±à¼¼ÆËã»úµÄ IP ·ÓÉ±í¡£Route ÃüÁîºÍÓï·¨ÈçÏÂËùʾ£º
route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]]
-f Çå³ýËùÓÐÍø¹ØÈë¿ÚµÄ·ÓÉ±í¡£
-p Óë add ÃüÁîÒ»ÆðʹÓÃʱʹ·ÓɾßÓÐÓÀ¾ÃÐÔ¡£
Command Ö¸¶¨ÄúÏëÔËÐеÄÃüÁî (Add/Change/Delete/Print)¡£
Destination Ö¸¶¨¸Ã·ÓɵÄÍøÂçÄ¿±ê¡£
mask Netmask Ö¸¶¨ÓëÍøÂçÄ¿±êÏà¹ØµÄÍøÂçÑÚÂ루Ҳ±»³Æ×÷×ÓÍøÑÚÂ룩¡£
Gateway Ö¸¶¨ÍøÂçÄ¿±ê¶¨ÒåµÄµØÖ·¼¯ºÍ×ÓÍøÑÚÂë¿ÉÒÔµ½´ïµÄǰ½ø»òÏÂÒ»Ô¾µã IP µØÖ·¡£
metric Metric Ϊ·ÓÉÖ¸¶¨Ò»¸öÕûÊý³É±¾Öµ±ê£¨´Ó 1 ÖÁ 9999£©£¬µ±ÔÚ·Óɱí(Óëת·¢µÄÊý¾Ý°üÄ¿±êµØÖ·×îÆ¥Åä)µÄ¶à¸ö·ÓÉÖнøÐÐÑ¡Ôñʱ¿ÉÒÔʹÓá£
if Interface Ϊ¿ÉÒÔ·ÃÎÊÄ¿±êµÄ½Ó¿ÚÖ¸¶¨½Ó¿ÚË÷Òý¡£ÈôÒª»ñµÃÒ»¸ö½Ó¿ÚÁбíºÍËüÃÇÏàÓ¦µÄ½Ó¿ÚË÷Òý£¬Ê¹Óà route print ÃüÁîµÄÏÔʾ¹¦ÄÜ¡£¿ÉÒÔʹÓÃÊ®½øÖÆ»òÊ®Áù½øÖÆÖµ½øÐнӿÚË÷Òý¡£
/? ÔÚÃüÁîÌáʾ·û´¦ÏÔʾ°ïÖú¡£
ʾÀý
ÈôÒªÏÔʾ IP ·ÓɱíµÄÈ«²¿ÄÚÈÝ£¬Çë¼üÈ룺
route print ......