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Õâ¸ö¹¤¾ß£¬¶øÇÒ½øÐÐÁ˱àÒëµÄʱºòµ
Ïà¹ØÎĵµ£º
ʹÓÃTAB¼ü
ÓÃÊó±ê¿½±´ºÍÕ³ÌùÌá¸ß²Ù×÷ËÙ¶È ×ó¼üÍ϶¯---¿½±´ Öмüµã»÷---Õ³Ìù
1¡¢mkdir ½¨Á¢ÐÂĿ¼Ãû ¼Ó“." ÔÚĿ¼ÃûǰΪÒþ²ØĿ¼£¨ls -a¿É²é¿´£©
rm -rf Ŀ¼Ãû ɾ³ýĿ¼¼°×ÓĿ¼ rm -- -eeɾ³ý-eeÎļþ »òÕß rm "ÎļþÃû"
2¡¢m ......
ͳ¼ÆijÎļþ¼ÐÏÂÎļþµÄ¸öÊý
ls -l |grep "^-"|wc -l
ͳ¼ÆijÎļþ¼ÐÏÂĿ¼µÄ¸öÊý
ls -l |grep "^£ä"|wc -l
ͳ¼ÆÎļþ¼ÐÏÂÎļþµÄ¸öÊý£¬°üÀ¨×ÓÎļþ¼ÐÀïµÄ¡£
ls -lR|grep "^-"|wc -l
ͳ¼ÆÎļþ¼ÐÏÂĿ¼µÄ¸öÊý£¬°üÀ¨×ÓÎļþ¼ÐÀïµÄ¡£
ls -lR|grep "^d"|wc - ......
trap [-lp] [arg] [sigspec ...]
µ± shell ÊÕµ½ÐźŠsigspec ʱ£¬ÃüÁî arg ½«±»¶ÁÈ¡²¢Ö´ÐС£Èç¹ûûÓиø³ö arg »òÕ߸ø³öµÄÊÇ -,
ËùÓÐÖ¸¶¨µÄÐźű»ÉèÖÃΪËüÃǵijõʼֵ (½øÈë shell ʱËüÃǵÄÖµ)¡£Èç¹û arg ÊÇ¿Õ×Ö·û´®£¬ sigspec Ö¸¶¨µÄÐźű»
shell ºÍËüÆô¶¯µÄÃüÁîºöÂÔ¡£Èç¹û arg ²»´æÔÚ£¬²¢ÇÒ¸ø³öÁË -p ÄÇôÓëÿ¸ö sigspec ......
ͨ¹ýʹÓà tr£¬Äú¿ÉÒԷdz£ÈÝÒ×µØʵÏÖ sed µÄÐí¶à×î»ù±¾¹¦ÄÜ¡£Äú¿ÉÒÔ½« tr ¿´×÷Ϊ sed µÄ£¨¼«Æ䣩¼ò»¯µÄ±äÌ壺Ëü¿ÉÒÔÓÃÒ»¸ö×Ö·ûÀ´Ìæ»»ÁíÒ»¸ö×Ö·û£¬»òÕß¿ÉÒÔÍêÈ«³ýȥһЩ×Ö·û¡£ÄúÒ²¿ÉÒÔÓÃËüÀ´³ýÈ¥Öظ´×Ö·û¡£Õâ¾ÍÊÇËùÓÐ tr ËùÄܹ»×öµÄ¡£
trÓÃÀ´´Ó±ê×¼ÊäÈëÖÐͨ¹ýÌæ»»»òɾ³ý²Ù×÷½øÐÐ×Ö·ûת»»¡£trÖ÷ÒªÓÃÓÚɾ³ýÎļþÖÐ ......
ǶÈëʽLinux²Ù×÷ϵͳѧϰ¹æ»®
ARM+LINUX·Ïߣ¬Ö÷¹¥Ç¶ÈëʽLinux²Ù×÷ϵͳ¼°ÆäÉÏÓ¦ÓÃÈí¼þ¿ª·¢Ä¿±ê£º
£¨1£© ÕÆÎÕÖ÷Á÷ǶÈëʽ΢´¦ÀíÆ÷µÄ½á¹¹ÓëÔÀí£¨³õ²½¶¨Îªarm9£©
£¨2£© ±ØÐëÕÆÎÕÒ»¸öǶÈëʽ²Ù×÷ϵͳ £¨³õ²½¶¨Îªuclinux»òlinux,°æ±¾´ý¶¨£©
£¨3£© ±ØÐëÊìϤǶÈëʽÈí¼þ¿ª·¢Á÷³Ì²¢ÖÁÉÙ×öÒ ......