linuxÏµĹ²Ïí¿â£¨¶¯Ì¬¿â£©ºÍ¾²Ì¬¿â
1.ʲôÊÇ¿â
ÔÚwindowsƽ̨ºÍlinuxƽ̨϶¼´óÁ¿´æÔÚ×Å¿â¡£
±¾ÖÊÉÏÀ´Ëµ¿âÊÇÒ»ÖÖ¿ÉÖ´ÐдúÂëµÄ¶þ½øÖÆÐÎʽ£¬¿ÉÒÔ±»²Ù×÷ϵͳÔØÈëÄÚ´æÖ´ÐС£
ÓÉÓÚwindowsºÍlinuxµÄ±¾Öʲ»Í¬£¬Òò´Ë¶þÕß¿âµÄ¶þ½øÖÆÊDz»¼æÈݵġ£
±¾ÎĽöÏÞÓÚ½éÉÜlinuxϵĿ⡣
2.¿âµÄÖÖÀà
linuxϵĿâÓÐÁ½ÖÖ£º¾²Ì¬¿âºÍ¹²Ïí¿â£¨¶¯Ì¬¿â£©¡£
¶þÕߵIJ»Í¬µãÔÚÓÚ´úÂë±»ÔØÈëµÄʱ¿Ì²»Í¬¡£
¾²Ì¬¿âµÄ´úÂëÔÚ±àÒë¹ý³ÌÖÐÒѾ±»ÔØÈë¿ÉÖ´ÐгÌÐò£¬Òò´ËÌå»ý½Ï´ó¡£
¹²Ïí¿âµÄ´úÂëÊÇÔÚ¿ÉÖ´ÐгÌÐòÔËÐÐʱ²ÅÔØÈëÄÚ´æµÄ£¬ÔÚ±àÒë¹ý³ÌÖнö¼òµ¥µÄÒýÓã¬Òò´Ë´úÂëÌå»ý½ÏС¡£
3.¿â´æÔÚµÄÒâÒå
¿âÊDZðÈËдºÃµÄÏÖÓеģ¬³ÉÊìµÄ£¬¿ÉÒÔ¸´ÓõĴúÂ룬Äã¿ÉÒÔʹÓõ«Òª¼ÇµÃ×ñÊØÐí¿ÉÐÒé¡£
ÏÖʵÖÐÿ¸ö³ÌÐò¶¼ÒªÒÀÀµºÜ¶à»ù´¡µÄµ×²ã¿â£¬²»¿ÉÄÜÿ¸öÈ˵ĴúÂ붼´ÓÁ㿪ʼ£¬Òò´Ë¿âµÄ´æÔÚÒâÒå·ÇͬѰ³£¡£
¹²Ïí¿âµÄºÃ´¦ÊÇ£¬²»Í¬µÄÓ¦ÓóÌÐòÈç¹ûµ÷ÓÃÏàͬµÄ¿â£¬ÄÇôÔÚÄÚ´æÀïÖ»ÐèÒªÓÐÒ»·Ý¸Ã¹²Ïí¿âµÄʵÀý¡£
4.¿âÎļþÊÇÈçºÎ²úÉúµÄÔÚlinuxÏÂ
¾²Ì¬¿âµÄºó׺ÊÇ.a£¬ËüµÄ²úÉú·ÖÁ½²½
Step 1.ÓÉÔ´Îļþ±àÒëÉú³ÉÒ»¶Ñ.o£¬Ã¿¸ö.oÀﶼ°üº¬Õâ¸ö±àÒëµ¥ÔªµÄ·ûºÅ±í
Step 2.arÃüÁºÜ¶à.oת»»³É.a£¬³ÉÎľ²Ì¬¿â
¶¯Ì¬¿âµÄºó׺ÊÇ.so£¬ËüÓÉgcc¼ÓÌض¨²ÎÊý±àÒë²úÉú¡£
ÀýÈç:
$ gcc -fPIC -c *.c $ gcc -shared -Wl,-soname, libfoo.so.1 -o libfoo.so.1.0 *.
5.¿âÎļþÊÇÈçºÎÃüÃûµÄ£¬ÓÐûÓÐʲô¹æ·¶
ÔÚlinuxÏ£¬¿âÎļþÒ»°ã·ÅÔÚ/usr/lib /libÏ£¬
¾²Ì¬¿âµÄÃû×ÖÒ»°ãΪlibxxxx.a£¬ÆäÖÐxxxxÊǸÃlibµÄÃû³Æ
¶¯Ì¬¿âµÄÃû×ÖÒ»°ãΪlibxxxx.so.major.minor£¬xxxxÊǸÃlibµÄÃû³Æ£¬majorÊÇÖ÷°æ±¾ºÅ£¬ minorÊǸ±°æ±¾ºÅ
6.ÈçºÎÖªµÀÒ»¸ö¿ÉÖ´ÐгÌÐòÒÀÀµÄÄЩ¿â
lddÃüÁî¿ÉÒԲ鿴һ¸ö¿ÉÖ´ÐгÌÐòÒÀÀµµÄ¹²Ïí¿â£¬
ÀýÈç
# ldd /bin/lnlibc.so.6
=> /lib/libc.so.6 (0×40021000)/lib/ld-linux.so.2
=> /lib/ld- linux.so.2 (0×40000000)
¿ÉÒÔ¿´µ½lnÃüÁîÒÀÀµÓÚlibc¿âºÍld-linux¿â
7.¿ÉÖ´ÐгÌÐòÔÚÖ´ÐеÄʱºòÈçºÎ¶¨Î»¹²Ïí¿âÎļþ
µ±ÏµÍ³¼ÓÔØ¿ÉÖ´ÐдúÂëʱºò£¬Äܹ»ÖªµÀÆäËùÒÀÀµµÄ¿âµÄÃû×Ö£¬µ«ÊÇ»¹ÐèÒªÖªµÀ¾ø¶Ô·¾¶
´Ëʱ¾ÍÐèҪϵͳ¶¯Ì¬ÔØÈëÆ÷(dynamic linker/loader)
¶ÔÓÚelf¸ñʽµÄ¿ÉÖ´ÐгÌÐò£¬ÊÇÓÉld-linux.so*À´Íê³ÉµÄ£¬ËüÏȺóËÑË÷elfÎļþµÄ
DT_RPATH¶Î—»·¾³±äÁ¿LD_LIBRARY_PATH—/etc/ld.so.cacheÎļþÁбí—/lib/,/usr/libĿ¼ÕÒµ½¿âÎļþºó½«ÆäÔØÈëÄÚ´æ
8.ÔÚа²×°Ò»¸ö¿âÖ®ºóÈçºÎÈÃϵͳÄܹ»ÕÒµ½Ëû
Èç¹û°²×°ÔÚ/lib»òÕß/usr/libÏ£¬ÄÇôldĬÈ
Ïà¹ØÎĵµ£º
LinuxʹÓôÓ1970Äê1ÔÂ1ÈÕ0ʱ0·Ö0ÃëÆ𵽿ª»úʱ¾¹ýµÄÃëÊý×÷Ϊ¿ª»úʱ¼ä, ÊÇÔÚmain.cºÍmktime.cÖнøÐгõʼ»¯µÄ.
1. linux/init/main.c
/*
* read current time from CMOS.
* ·ÃÎÊCMOSÐèҪͨ¹ý¶Ë¿Ú0x70, 0x71½øÐÐ.
* ¶ÁÊý¾Ýʱ,ÏÈÓÃOUTÖ¸ÁîÏò0x70·¢ËÍÒª¶ÁÈ¡×Ö½ÚµÄÆ«ÒÆλÖÃÖµ, È»ºóÓÃINÖ¸Áî´Ó0x71¶ÁÊý¾Ý. ......
ת×Ôhttp://hi.baidu.com/ln5336993/blog/item/9de4963e3dbad3e455e723c0.html
.tar
¡¡¡¡½â°ü£º tar xvf FileName.tar
¡¡¡¡´ò°ü£ºtar cvf FileName.tar DirName
¡¡¡¡£¨×¢£ºtarÊÇ´ò°ü£¬²»ÊÇѹËõ£¡£©
¡¡¡¡---------------------------------------------
¡¡¡¡.gz
¡¡¡¡½âѹ1£ºgunzip Fi ......
µ±Éϲã×¼±¸ºÃÒ»¸ö°üÖ®ºó£¬½»¸øÏÂÃæÕâ¸öº¯Êý´¦Àí
int dev_queue_xmit(struct sk_buff *skb)
{
struct net_device *dev = skb->dev;
struct netdev_queue *txq;
struct Qdisc *q;
int rc = -ENOMEM;
/* GSO will handle the following emulations directly. */
if (netif_needs_gso(dev, skb))
goto gso; ......
ÏÂÔØÐÂÄÚºËÒÔºó£¬ÏÈ°ÑLinux-2.6.18.2.tar.bz2 ¸´ÖƵ½/usr/src/ µÄÏÂÃæ
tar –jxvf Linux-2.6.18.2.tar.bz2 cd Linux-2.6.18.2 make mrproper °ÑÔÀ´±àÒë²úÉúµÄÀ¬»øɾ³ý
ÅäÖÃÄں˿ÉÒÔ¸ù¾ÝÐèÒªÓë°®ºÃʹÓÃÏÂÃæÃüÁîÖеÄÒ»¸ö£º
££make config £¨»ùÓÚÎı¾µÄ×îΪ´«Í³µÄÅäÖýçÃ棩
££make menuconfig £¨»ùÓÚÎı¾ ......