linuxÄں˵ÄһЩԤ¶¨Òå
ËùÓеÄÄں˴úÂ룬»ù±¾¶¼°üº¬ÁËlinux\compile.hÕâ¸öÎļþ£¬ËùÒÔËüÊÇ»ù´¡£¬´òËãÏÈ·ÖÎöÕâ¸öÎļþÀïµÄ´úÂë¿´¿´£¬ÓпÕÔÙ·ÖÎö·ÖÎöÆäËüµÄ´úÂë¡£
Ê×ÏÈÓ¡ÈëÑÛÁ±µÄÊǶÔ__ASSEMBLY__Õâ¸öºêµÄÅжϣ¬Õâ¸ö±äÁ¿Êµ¼ÊÊÇÔÚ±àÒë»ã±à´úÂëµÄʱºò£¬ÓɱàÒëÆ÷ʹÓÃ-DÕâÑùµÄ²ÎÊý¼Ó½øÈ¥ µÄ£¬AFLAGSÕâ¸ö±äÁ¿Ò²¶¨ÒåÁËÕâ¸ö±äÁ¿£¬gcc»á°ÑÕâ¸öºê¶¨ÒåΪ1¡£ÓÃÔÚÕâÀÊÇÒòΪ»ã±à´úÂëÀ²»»áÓõ½ÀàËÆÓÚ__userÕâÑùµÄÊôÐÔ£¨¹ØÓÚ __userÕâÑùµÄÊôÐÔÊÇÔõô»Ø×ÓÊ£¬±¾ÎĺóÃæ»áÌáµ½£©£¬ÒòΪÕâÑùµÄÊôÐÔÊÇÔÚ¶¨Ò庯ÊýµÄʱºò¼ÓµÄ£¬ÕâÑù±ÜÃâ²»±ØÒªµÄÔÚ±àÒë»ã±à´úÂëʱºòµÄÒýÓá£
½ÓÏÂÀ´ÊÇÒ»¸ö¶Ô__CHECKER__Õâ¸öºêµÄÅжϣ¬ÕâÀïÐèÒª½²µÄ¶«Î÷±È½Ï¶à¡£
µ± ±àÒëÄں˴úÂëµÄʱºò£¬Ê¹ÓÃmake C=1»òC=2µÄʱºò£¬»áµ÷ÓÃÒ»¸ö½ÐSparseµÄ¹¤¾ß£¬Õâ¸ö¹¤¾ß¶ÔÄں˴úÂë½øÐмì²é£¬Ôõô¼ì²éÄØ£¬¾ÍÊÇ¿¿¶ÔÄÇЩÉùÃ÷¹ýSparseÕâ¸ö¹¤¾ßËùÄÜʶ±ðµÄÌØ ÐÔµÄÄں˺¯Êý»òÊDZäÁ¿½øÐмì²é¡£ÔÚµ÷ÓÃSparseÕâ¸ö¹¤¾ßµÄͬʱ£¬ÔÚSparse´úÂëÀ»á¼ÓÉÏ#define __CHECKER__ 1µÄ×ÖÑù¡£»»¾ä»°Ëµ£¬¾ÍÊÇ£¬Èç¹ûʹÓÃSparse¶Ô´úÂë½øÐмì²é£¬ÄÇôÄں˴úÂë¾Í»á¶¨Òå__CHECKER__ºê£¬·ñÔò¾Í²»¶¨Òå¡£
ËùÒÔÕâÀï¾ÍÄÜ¿´³öÀ´£¬ÀàËÆÓÚ__attribute__((noderef, address_space(1)))ÕâÑùµÄÊôÐÔ¾ÍÊÇSparseÕâ¸ö¹¤¾ßËùÄÜʶ±ðµÄÁË¡£
ÄÇôÕâЩ¸öÊôÐÔÊǸÉʲôÓõÄÄØ£¬ÎÒÒ»¸ö¸ö×ö½éÉÜ¡£
Õâ ÑùµÄÊôÐÔ˵Ã÷£¬ÓÐÒ»²¿·ÖÔÚgccµÄÎĵµÀﻹûÓмӽøÈ¥£¬ÖÁÉÙÎÒÔÚgcc 4.3.2µÄÌØÐÔÀïûÓп´µ½£¬ÍøÉÏÓиçÃÇÎÊÀàËÆµÄÎÊÌ⣬Greg¶ÔËû½øÐÐÁ˽â´ð£¬È»ºóËû¶ÔGreg±§Ô¹ÎĵµµÄÊ£¬Greg¶ÔËû˵£¬ËûÓÐʱ¼ä±§Ô¹µÄ»°£¬»¹²» Èç×Ô¼ºÀ´¸üÐÂÎĵµ¡£Ëû²»ÄܶÔÒ»¸öÃâ·Ñ¹¤¾ßµÄÎĵµÓÐÈç´ËÖ®¸ßµÄÒªÇ󣬳ý·ÇËû¸¶·Ñ¡£
# define __user __attribute__((noderef, address_space(1)))
__userÕâ¸öÌØÐÔ£¬¼´__attribute__((noderef, address_space(1)))£¬ÊÇÓÃÀ´ÐÞÊÎÒ»¸ö±äÁ¿µÄ£¬Õâ¸ö±äÁ¿±ØÐëÊǷǽâ³ý²Î¿¼£¨no dereference£©µÄ£¬¼´Õâ¸ö±äÁ¿µØÖ·±ØÐëÊÇÓÐЧµÄ£¬¶øÇÒ±äÁ¿ËùÔڵĵØÖ·¿Õ¼ä±ØÐëÊÇ1£¬¼´Óû§³ÌÐò¿Õ¼äµÄ¡£
ÕâÀï°Ñ³ÌÐò¿Õ¼ä·Ö³ÉÁË3¸ö²¿·Ö£¬0±íʾnormal space£¬¼´ÆÕͨµØÖ·¿Õ¼ä£¬¶ÔÄں˴úÂëÀ´Ëµ£¬µ±È»¾ÍÊÇÄÚºË¿Õ¼äµØÖ·ÁË¡£1±íʾÓû§µØÖ·¿Õ¼ä£¬Õâ¸ö²»Óöི£¬»¹ÓÐÒ»¸ö2£¬±íʾÊÇÉ豸µØÖ·Ó³Éä¿Õ¼ä£¬ÀýÈçÓ²¼þÉ豸µÄ¼Ä´æÆ÷ÔÚÄÚºËÀïËùÓ³ÉäµÄµØÖ·¿Õ¼ä¡£
ËùÒÔÔÚÄں˺¯ÊýÀÓÐÒ»¸öcopy_to_userµÄº¯Êý£¬º¯ÊýµÄ²ÎÊý¶¨Òå¾ÍʹÓÃÁËÕâÖÖ·½Ê½¡£µ±È»£¬ÕâÖÖÌØÐÔ¼ì²é£¬Ö»Óе±»úÆ÷Éϰ²×°ÁËSparseÕâ¸ö¹¤¾ß£¬¶øÇÒ½øÐÐÁ˱àÒëµÄʱºòµ
Ïà¹ØÎĵµ£º
DHCPÊÇDynamic Host Configuration ProtocolµÄÓ¢ÎÄËõд£¬·Òë¹ýÀ´¾ÍÊǶ¯Ì¬Ö÷»úÅäÖÃͨѶÐÒé¡£ËüµÄ¹¦ÄܾÍÊÇÎªÍøÂçÁ¬½Ó¶¯Ì¬·ÖÅäIPµØÖ·£¬ËüÔÊÐí¿Í»§¶Ë¼ÆËã»úÏòÍøÂç·þÎñÆ÷×Ô¶¯»ñÈ¡ÍøÂçÉèÖá£DHCP·þÎñÆ÷ʹµÃÍøÂç¹ÜÀíÔ±ÔÚ¹ÜÀíÍøÂçÖÐÔÚÍøÂçÖÐÔö¼Ó¡¢É¾³ýÍøÂç½Úµã»òÕßÖØÐÂÅäÖÃÍøÂçʱ£¬¹¤×÷±äµÃ·Ç³£¼òµ¥£¬ÎÞÐëÊÖ¹¤µÄ·ÖÅäIPµØÖ ......
umask()º¯Êý£º´Ëº¯ÊýµÄÖ÷Òª×÷ÓÃÊÇÔÚ´´½¨ÎļþʱÉèÖûòÕ߯Á±ÎµôÎļþµÄһЩȨÏÞ¡£Ò»°ãÓëopen()º¯ÊýÅäºÏʹÓá£openº¯ÊýÔÐÍ£º
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
int open( const char * pathname, int flags);
int open( const char ......
¶¯Ì¬¿âµÄÏÔʽµ÷ÓÃ
ÏÔʽµ÷Óõĺ¬ÒåÊÇ´úÂë³öÏÖ¿âÎļþÃû£¬Óû§ÐèÒª×Ô¼ºÈ¥
´ò¿ªºÍ¹ÜÀí¿âÎļþ¡£ÆäÒªµãΪ:
¢Å°Ñdlfcn.hϵͳͷÎļþ°üº¬½øÀ´
¢ÆÓÃdlopenº¯Êý´ò¿ª¿âÎļþ£¬²¢Ö¸¶¨´ò¿ª·½Ê½
dllopeµÄµÄµÚÒ»¸ö²ÎÊýΪ¹²Ïí¿âµÄÃû³Æ£¬½«»áÔÚÏÂÃæÎ»ÖòéÕÒÖ¸¶¨µÄ¹²Ïí¿â¡£
¢Ù»·¾³±äÁ¿LD_LIBRARY_PATHÁгöµÄÓ÷ֺżä¸ôµ ......
ͳ¼ÆÄ³Îļþ¼ÐÏÂÎļþµÄ¸öÊý
ls -l |grep "^-"|wc -l
ͳ¼ÆÄ³Îļþ¼ÐÏÂĿ¼µÄ¸öÊý
ls -l |grep "^£ä"|wc -l
ͳ¼ÆÎļþ¼ÐÏÂÎļþµÄ¸öÊý£¬°üÀ¨×ÓÎļþ¼ÐÀïµÄ¡£
ls -lR|grep "^-"|wc -l
ͳ¼ÆÎļþ¼ÐÏÂĿ¼µÄ¸öÊý£¬°üÀ¨×ÓÎļþ¼ÐÀïµÄ¡£
ls -lR|grep "^d"|wc - ......
Fedora 8.0(linux)ÓÃRPM°²×°gcc
ǰһÕó×°ÁËÒ»¸öFedora 8.0£¬¾ÓÈ»½«gccÑ¡Ïîûѡ£¬ÏÖÔÚÏëÔÚLinux»·¾³Ïµ÷ÊÔc³ÌÐò£¬Ö»ÓÐÔÙ°²×°gcc±àÒëÆ÷¡£ÔÚFedora 8.0°²×°µÄÔ´ÎļþÖУ¬ÕÒµ½PackageÎļþ¼Ð£¬ÀïÃæ°²×°gcc±àÒëÆ÷µÄÎļþ£¬Fedora 8.0µÄgcc ÊÇversion 4.12 £¨20070925£©¡£
°²×°Ë³Ðò:
£¨1£©rpm -ivh kernheaders-2.6 ......