Ïêϸ½²½â ¹ØÓÚLinux¾²Ì¬¿âºÍ¶¯Ì¬¿âµÄ·ÖÎö
»ù±¾¸ÅÄî
¿âÓж¯Ì¬Ó뾲̬Á½ÖÖ£¬¶¯Ì¬Í¨³£ÓÃ.soΪºó׺£¬¾²Ì¬ÓÃ.aΪºó׺¡£
ÀýÈ磺libhello.so libhello.a ΪÁËÔÚͬһϵͳÖÐʹÓò»Í¬°æ±¾µÄ¿â£¬¿ÉÒÔÔÚ¿âÎļþÃûºó¼ÓÉϰ汾ºÅΪºó׺,ÀýÈ磺 libhello.so.1.0,ÓÉÓÚ³ÌÐòÁ¬½ÓĬÈÏÒÔ.soΪÎļþºó׺Ãû¡£ËùÒÔΪÁËʹÓÃÕâЩ¿â£¬Í¨³£Ê¹Óý¨Á¢·ûºÅÁ¬½ÓµÄ·½Ê½¡£
ln -s libhello.so.1.0 libhello.so.1
ln -s libhello.so.1 libhello.so
1¡¢Ê¹Óÿâ
µ±ÒªÊ¹Óþ²Ì¬µÄ³ÌÐò¿âʱ£¬Á¬½ÓÆ÷»áÕÒ³ö³ÌÐòËùÐèµÄº¯Êý£¬È»ºó½«ËüÃÇ¿½±´µ½Ö´ÐÐÎļþ£¬ÓÉÓÚÕâÖÖ¿½±´ÊÇÍêÕûµÄ£¬ËùÒÔÒ»µ©Á¬½Ó³É¹¦£¬¾²Ì¬³ÌÐò¿âÒ²¾Í²»ÔÙÐèÒªÁË¡£È» ¶ø£¬¶Ô¶¯Ì¬¿â¶øÑÔ£¬¾Í²»ÊÇÕâÑù¡£¶¯Ì¬¿â»áÔÚÖ´ÐгÌÐòÄÚÁôÏÂÒ»¸ö±ê¼ÇÖ¸Ã÷µ±³ÌÐòÖ´ÐÐʱ£¬Ê×ÏȱØÐëÔØÈëÕâ¸ö¿â¡£ÓÉÓÚ¶¯Ì¬¿â½ÚÊ¡¿Õ¼ä£¬linuxϽøÐÐÁ¬½ÓµÄȱʡ²Ù×÷ÊÇÊ×ÏÈÁ¬½Ó¶¯Ì¬¿â£¬Ò²¾ÍÊÇ˵£¬Èç¹ûͬʱ´æÔÚ¾²Ì¬ºÍ¶¯Ì¬¿â£¬²»ÌرðÖ¸¶¨µÄ»°£¬½«Ó붯̬¿âÏàÁ¬½Ó¡£ ÏÖÔÚ¼ÙÉèÓÐÒ»¸ö½ÐhelloµÄ³ÌÐò¿ª·¢°ü£¬ËüÌṩһ¸ö¾²Ì¬¿âlibhello.a Ò»¸ö¶¯Ì¬¿âlibhello.so,Ò»¸öÍ·Îļþhello.h,Í·ÎļþÖÐÌṩsayhello()Õâ¸öº¯Êý /* hello.h */ void sayhello(); ÁíÍ⻹ÓÐһЩ˵Ã÷Îĵµ¡£
ÕâÒ»¸öµäÐ͵ijÌÐò¿ª·¢°ü½á¹¹ Ó붯̬¿âÁ¬½Ó linuxĬÈϵľÍÊÇÓ붯̬¿âÁ¬½Ó£¬ÏÂÃæÕâ¶Î³ÌÐòtestlib.cʹÓÃhello¿âÖеÄsayhello()º¯Êý
/*testlib.c*/
#include <>
#include <>
int main()
{
sayhello();
return 0;
}
ʹÓÃÈçÏÂÃüÁî½øÐбàÒë $gcc -c testlib.c -o testlib.o
ÓÃÈçÏÂÃüÁîÁ¬½Ó£º $gcc testlib.o -lhello -o testlib
Á¬½ÓʱҪעÒ⣬¼ÙÉèlibhello.o ºÍlibhello.a¶¼ÔÚȱʡµÄ¿âËÑË÷·¾¶ÏÂ/usr/libÏ£¬Èç¹ûÔÚÆäËüλÖÃÒª¼ÓÉÏ-L²ÎÊý ÓëÓ뾲̬¿âÁ¬½ÓÂ鷳һЩ£¬Ö÷ÒªÊDzÎÊýÎÊÌâ¡£»¹ÊÇÉÏÃæµÄÀý×Ó£º
$gcc testlib.o -o testlib -WI,-Bstatic -lhello
×¢£ºÕâ¸öÌØ±ðµÄ"-WI£¬-Bstatic"²ÎÊý£¬Êµ¼ÊÉÏÊÇ´«¸øÁËÁ¬½ÓÆ÷ld¡£Ö¸Ê¾ËüÓ뾲̬¿âÁ¬½Ó£¬Èç¹ûϵͳÖÐÖ»Óо²Ì¬¿âµ±È»¾Í²»ÐèÒªÕâ¸ö²ÎÊýÁË¡£ Èç¹ûÒªºÍ¶à¸ö¿âÏàÁ¬½Ó£¬¶øÃ¿¸ö¿âµÄÁ¬½Ó·½Ê½²»Ò»Ñù£¬±ÈÈçÉÏÃæµÄ³ÌÐò¼ÈÒªºÍlibhello½øÐо²Ì¬Á¬½Ó£¬ÓÖÒªºÍlibbye½øÐж¯Ì¬Á¬½Ó£¬ÆäÃüÁîӦΪ£º
$gcc testlib.o -o testlib -WI,-Bstatic -lhello -WI,-Bdynamic -lbye
2¡¢¶¯Ì¬¿âµÄ·¾¶ÎÊÌâ ΪÁËÈÃÖ´ÐгÌÐò˳ÀûÕÒµ½¶¯Ì¬¿â£¬ÓÐÈýÖÖ·½·¨£º
&nb
Ïà¹ØÎĵµ£º
¼Ù¶¨Äã»áCÓïÑÔ£¬¶øÇÒÃ÷°×CÓïÑÔÃæÏò¶ÔÏó±à³ÌµÄschme£¬¶Ô²Ù×÷ϵͳ£¨°üÀ¨µ÷¶È£¬ÄÚ´æ·ÖÅ䣬·ÖÒ³£¬Í¬²½£¬etc£©±È½ÏÁ˽⡣ÄÇôÄã¿ÉÒÔ°´ÕÕÈçÏÂ˳ÐòѧϰLinux Äںˡ£
1.¿´Linux Device DriverÕâ±¾Êé¡£ÕâÊÇΪÁËÈÃÄã¶®µÃ±àÒëÄÚºËÄ£¿éµÄ·½·¨¡£»¹ÓÐΪLinux¸÷ÖÖÉ豸ÁôÏÂһЩӡÏó¡£Í¬Ê±Ò»±é¿´ÊéÒ»±ß¿´Ä³Ð©É豸µÄÔ´´ú ......
http://blog.chinaunix.net/u/25764/showart_1882931.html
Òý£º±¾À´´òË㽫Õⲿ·ÖÄÚÈݲ¢Èëµ½¡¶The Linux Kernel Module Programming Guide±Ê¼Ç¡·ÖÐÈ¥£¬µ«ÊÇÏëÏÂÄÚ´æ¿Õ¼ä¹ÜÀí·ÃÎÊÏ൱»ù´¡ÖØÒª¶øÇÒÄÚÈÝÁ¿½Ï´ó£¬ËùÒԾ͵¥¶À¼Ç¼¡£ÔÚ¹ýÈ¥Ò»ÄêÀÓÉÓڳɹ¦¿ª·¢¹ý¼¸¸öÆÄΪ¸´ÔÓµÄÉ豸Çý¶¯£¬¾Í×ÔÒÔÎªÕÆÎÕÁËÇý¶¯¿ª·¢µÄ·½·¨ºÍ¼¼ÇÉ£¬ÊÂÊ ......
ÒýÓÃhttp://www.linuxtone.org/html/76/t-2776.html
ÓÐʱºònginx£¬apache£¬mysql£¬php±àÒëÍêÁËÏë¿´¿´±àÒë²ÎÊý¿ÉÒÔÓÃÒÔÏ·½·¨
nginx±àÒë²ÎÊý£º
#/usr/local/nginx/sbin/nginx -V
CODE:
nginx version: nginx/0.6.32
built by gcc 4.1.2 20071124 (Red Hat 4.1.2-42)
configure arguments: --user=www --group=www --p ......
1.ϵͳºÍƽ̨ÊìϤ
ÔÚÒ»¸öÐÂµÄÆ½Ì¨ÉÏ¿ª·¢»òÕßÒÆÖ²Ò»¿îÈí¼þµÄʱºò£¬Ê×ÏÈÓ¦¸Ã³ä·Öƽ̨»òÕß
²Ù×÷ϵͳµÄ¸÷ÖÖÊôÐÔ£¬ÕâЩÊôÐÔ°üÀ¨µ«²»½öÏÞÓÚ£º
1)ϵͳµÄÈÎÎñµ÷¶È£¬ÈÎÎñ¼äµÄͨÐÅ»úÖÆ
ÈÎÎñµ÷¶È°üÀ¨ÊÇ·ñÊǶàÈÎÎñʵʱ²Ù×÷ϵͳ£¬ÈÎÎñÒÔºÎÖÖ·½Ê½´æÔڵģ¬ÈçºÎÌí¼ÓºÍ¹ÜÀíÈÎÎñ£¿ÈÎÎñ¼äµÄÓÅÏȼ¶ÈçºÎÉèÖã¿ÈÎÎñ¼äµÄÓÅÏȼ¶ÉèÖã¿ÈÎÎñ¶ÑÕ»£¿ ......
from: http://cc.byexamples.com/20070520/tap-the-interrupt-signal/
When you hit control+c, you are actually send a SIGINT ( Interrupt signal ) to your program. By default, your program will be terminated after receiving SIGINT. But you can change the way of handling Interrupt signal.
Some of the a ......