Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

linuxÄÚºËÔ´ÂëÖг£¼ûºê¶¨Òå

1. gccµÄ__attribute__±àÒïÊôÐÔ
ÒªÁ˽âLinux Kernel´úÂëµÄ·Ö¶ÎÐÅÏ¢£¬ÐèÒªÁ˽âÒ»ÏÂgccµÄ__attribute__µÄ±àÒïÊôÐÔ£¬__attribute__Ö÷ÒªÓÃÓڸıäËùÉùÃ÷»ò¶¨ÒåµÄº¯Êý»òÊý¾ÝµÄÌØÐÔ£¬ËüÓкܶà×ÓÏÓÃÓڸıä×÷ÓöÔÏóµÄÌØÐÔ¡£±ÈÈç¶Ôº¯Êý£¬noline½«½ûÖ¹½øÐÐÄÚÁªÀ©Õ¹¡¢noreturn±íʾûÓзµ»ØÖµ¡¢pure±íÃ÷º¯Êý³ý·µ»ØÖµÍ⣬²»»áͨ¹ýÆäËü£¨ÈçÈ«¾Ö±äÁ¿¡¢Ö¸Õ룩¶Ôº¯ÊýÍⲿ²úÉúÈκÎÓ°Ïì¡£µ«ÕâÀïÎÒÃDZȽϸÐÐËȤµÄÊǶԴúÂë¶ÎÆð×÷ÓÃ×ÓÏîsection¡£
__attribute__µÄsection×ÓÏîµÄʹÓøñʽΪ£º
__attribute__((section("section_name")))
Æä×÷ÓÃÊǽ«×÷Óõĺ¯Êý»òÊý¾Ý·ÅÈëÖ¸¶¨ÃûΪ"section_name"ÊäÈë¶Î¡£
ÕâÀﻹҪעÒâÒ»ÏÂÁ½¸ö¸ÅÄÊäÈë¶ÎºÍÊä³ö¶Î
ÊäÈë¶ÎºÍÊä³ö¶ÎÊÇÏà¶ÔÓÚÒªÉú³É×îÖÕµÄelf»òbinaryʱµÄLink¹ý³Ì˵µÄ£¬Link¹ý³ÌµÄÊäÈë´ó¶¼ÊÇÓÉÔ´´úÂë±àÒïÉú³ÉµÄÄ¿±êÎļþ.o£¬ÄÇôÕâЩ.oÎļþÖаüº¬µÄ¶ÎÏà¶Ôlink¹ý³ÌÀ´Ëµ¾ÍÊÇÊäÈë¶Î£¬¶øLinkµÄÊä³öÒ»°ãÊÇ¿ÉÖ´ÐÐÎļþelf»ò¿âµÈ£¬ÕâЩÊä³öÎļþÖÐÒ²°üº¬ÓжΣ¬ÕâЩÊä³öÎļþÖеĶξͽÐ×öÊä³ö¶Î¡£ÊäÈë¶ÎºÍÊä³ö¶Î±¾À´Ã»ÓÐʲô±ØÈ»µÄÁªÏµ£¬ÊÇ»¥Ïà¶ÀÁ¢£¬Ö»ÊÇÔÚLink¹ý³ÌÖУ¬Link³ÌÐò»á¸ù¾ÝÒ»¶¨µÄ¹æÔò£¨ÕâЩ¹æÔòÆäʵÀ´Ô´ÓÚLink Script£©£¬½«²»Í¬µÄÊäÈë¶ÎÖØÐÂ×éºÏµ½²»Í¬µÄÊä³ö¶ÎÖУ¬¼´Ê¹ÊǶεÄÃû×Ö£¬ÊäÈë¶ÎºÍÊä³ö¶Î¿ÉÒÔÍêÈ«²»Í¬¡£
ÆäÓ÷¨¾ÙÀýÈçÏ£º
int  var __attribute__((section(".xdata"))) = 0;
ÕâÑù¶¨ÒåµÄ±äÁ¿var½«±»·ÅÈëÃûΪ.xdataµÄÊäÈë¶Î£¬£¨×¢Ò⣺__attribute__ÕâÖÖÓ÷¨ÖеÄÀ¨ºÅºÃÏñºÜÑϸñ£¬ÕâÀïµÄ¼¸¸öÀ¨ºÅºÃÏóÒ»¸öÒ²²»ÄÜÉÙ¡££©
static int __attribute__((section(".xinit"))) functionA(void)
{
 .....
}
Õâ¸öÀý×Ó½«Ê¹º¯ÊýfunctionA±»·ÅÈëÃû½Ð.xinitµÄÊäÈë¶Î¡£
ÐèÒª×Å֨עÒâµÄÊÇ£¬__attribute__µÄsectionÊôÐÔÖ»Ö¸¶¨¶ÔÏóµÄÊäÈë¶Î£¬Ëü²¢²»ÄÜÓ°ÏìËùÖ¸¶¨¶ÔÏó×îÖÕ»á·ÅÔÚ¿ÉÖ´ÐÐÎļþµÄʲô¶Î¡£
2. Linux KernelÔ´´úÂëÖÐÓë¶ÎÓйصÄÖØÒªºê¶¨Òå
£Á. ¹ØÓÚ__init¡¢__initdata¡¢__exit¡¢__exitdata¼°ÀàËÆµÄºê
 ´ò¿ªLinux KernelÔ´´úÂëÊ÷ÖеÄÎļþ£ºinclude/init.h£¬¿ÉÒÔ¿´µ½ÓÐÏÂÃæµÄºê¶¨Ò飺
#define __init  __attribute__ ((__section__ (".init.text")))  __cold
#define __initdata    __attribute__ (( __section__ (".init.data")))
#define __exitdata   __attribute__ (( __section__ (".exit.data")))
#define __exit_call  __attribute_used__ __attribute_


Ïà¹ØÎĵµ£º

ÔÚlinuxÏÂʵÏÖweb qqµÄ×ÀÃæ»¯


´´½¨×ÀÃæÍ¼±ê
Ŀǰ½«ÍøÂçÓ¦ÓÃÀ©Õ¹µ½×ÀÃæÊÇÒ»¸öÇ÷ÊÆ£¬´æÔÚןܶà½â¾ö·½°¸£¬±¾ÎÄÒÔ Mozilla Prism ΪÀý£¬ÀàËÆµÄ·½·¨Í¬ÑùÊÊÓÃÓÚ Google Chrome ¡£
1. µ½ Mozilla Prism µÄÍøÕ¾ÉÏÏÂÔØ Prism£¬µã»÷ Download Now Ö®ºó»áÌáʾÓÐÁ½ÖÖ£¬Ò»ÖÖÊÇÒÔ Mozilla Firefox À©Õ¹µÄ·½Ê½£¬ÊʺÏÒѾ­°²×°ÓÐ Firefox µÄÅóÓÑ£»Ò»Ö ......

ǶÈëʽLinuxϳ£ÓõĽ»²æ±àÒë·½·¨


ÒªÔÚǶÈëʽLinuxÏÂʹÓö¯Ì¬ÓïÑÔ£¬Ê×ÏÈÒª½â¾öµÄÊÇÓïÑÔ½âÊÍÆ÷»òÖ´ÐÐÒýÇæµÄ½»²æ±àÒëÎÊÌâ¡£
½»²æ±àÒëͨ³£ÓÐÒÔϼ¸ÖÖ;¾¶£º
1. Ö±½Óͨ¹ý½»²æ±àÒ빤¾ß£¬ÊÖ¹¤ÅäÖý»²æ±àÒë¡£½»²æ±àÒ빤¾ß¿ÉÒÔÀûÓÃÕâ¸ö½Å±¾À´×Ô¶¯Éú³É£º
http://kegel.com/crosstool/
´Ë·½·¨µÄºÃ´¦ÊǼò±ã¿ì½Ý£¬Ò»µ©crosstool×öºÃÒÔºó£¬ÐèҪʲô°üÖ±½Ó±àÒë¼´¿É£¬ ......

linux fg bg ctrl + z jobs & µÈÃüÁî

fg¡¢bg¡¢jobs¡¢&¡¢ctrl + z¶¼ÊǸúϵͳÈÎÎñÓйصģ¬ËäÈ»ÏÖÔÚ»ù±¾Éϲ»ÔõôÐèÒªÓõ½ÕâЩÃüÁµ«Ñ§»áÁËÒ²ÊǺÜʵÓõÄ
Ò»¡£& ×î¾­³£±»Óõ½
Õâ¸öÓÃÔÚÒ»¸öÃüÁîµÄ×îºó£¬¿ÉÒÔ°ÑÕâ¸öÃüÁî·Åµ½ºǫִ́ÐÐ
¶þ¡£ctrl + z
¿ÉÒÔ½«Ò»¸öÕýÔÚǰִ̨ÐеÄÃüÁî·Åµ½ºǫ́£¬²¢ÇÒÔÝÍ£
Èý¡£jobs
²é¿´µ±Ç°ÓжàÉÙÔÚºǫ́ÔËÐеÄÃüÁî
ËÄ¡£fg
½ ......

linuxÏÂglutµÄ°²×°

ÔÚlinuxÏÂopengl±à³Ì£¬Ê×ÏÈÐèÒª°²×°glut°ü¡£
1 °²×°glut
£¨1£©ÏÂÔØµØÖ·£º
http://fidelio.cacs.louisiana.edu/resources/linux/glut.zip
£¨2£©½«glut.zip½âѹ£º
unzip glut.zip
½âѹºó£¬ÀïÃæÓÐÒ»¸örpm°²×°°ü£¬Ò»¸ö²âÊÔÎļþ£¬Ò»¸öglut.h,Ò»¸ömakefile, Õ⼸¸öÎļþ¶¼·Ç³£ÖØÒª¡£
£¨3£©°²×°£º
rpm -i glut-3.7-8.i386. ......

linux ipÃüÁî

ip ÊǸöÃüÁ ip ÃüÁîµÄ¹¦Äܺܶ࣡»ù±¾ÉÏËüÕûºÏÁË ifconfig Óë route ÕâÁ½¸öÃüÁ²»¹ýip µÄ¹¦ÄܸüÇ¿´ó£¡ Èç¹ûÄúÓÐÐËȤµÄ»°£¬Çë×ÔÐÐ vi /sbin/ifup ¾ÍÖªµÀÕû¸ö ifup ¾ÍÊÇÀûÓà ip Õâ¸öÃüÁîÀ´ÊµÏֵġ£ÏÂÃæ½éÉÜÒ»ÏÂʹÓ÷½·¨
[root@linux ~]# ip [option] [¶¯×÷] [ÃüÁî]
²ÎÊý£º
option £ºÉ趨µÄ²ÎÊý£¬Ö÷ÒªÓУº
   ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ