尊龙凯时人生就是搏

Ê®·ÖÖÓÈÃÄãÏàʶ Linux ABI

lctt Òë×¢£º×òÌ죬almalinux ³Æ½« ·ÅÆú ¶Ô rhel µÄ 1:1 ¼æÈÝÐÔ£¬µ«½«¼á³Ö¶Ô rhel µÄ abi ¼æÈÝ£¬ÒÔ±ãÔÚ rhel ÉÏÔËÐеÄÈí¼þ¿ÉÒÔÎÞ·ìµØÔËÐÐÔÚ almalinux ÉÏ ¡ £¿ÉÄÜÓеÄͬÑâ¶Ô abi µÄ¿´·¨»¹²»ÊǺÜÇåÎú£¬Òò´Ë·­Òë´ËÎĹ©¸÷ÈËÏàʶ ¡£

Ðí¶à Linux ϲ»¶Õ߶¼ÊìϤ Linus Torvalds µÄ ÖøÃûÉêâÁ£º¡°ÎÒÃDz»ÆÆËðÓû§¿Õ¼ä¡±£¬µ«¿ÉÄܲ¢·Çÿ¸öÌýµ½Õâ¾ä»°µÄÈ˶¼ÇåÎúÆä¼ÄÒå ¡£

Õâ¸ö¡°µÚÒ»¹æÔò¡±ÌáÐÑ¿ª·¢Ö°Ô±¹ØÓÚÓ¦ÓóÌÐòµÄ¶þ½øÖƽӿڣ¨ABI£©µÄÎȹÌÐÔ£¬¸Ã½Ó¿ÚÓÃÓÚÓ¦ÓóÌÐòÓëÄÚºËÖ®¼äµÄͨѶºÍÉèÖà ¡£½ÓÏÂÀ´µÄÄÚÈÝÖ¼ÔÚʹ¶ÁÕßÊìϤ ABI µÄ¿´·¨£¬ÐðÊöΪʲô ABI µÄÎȹÌÐÔºÜÖ÷Òª£¬²¢ÌÖÂÛ Linux ÎÈ¹Ì ABI ÖаüÀ¨ÁËÄÄЩÄÚÈÝ ¡£Linux µÄÒ»Á¬ÔöÌíºÍÑݽøÐèÒª¶Ô ABI ¾ÙÐб任£¬ÆäÖÐһЩ±ä»»ÒýÆðÁËÕùÒé ¡£

ʲôÊÇ ABI £¿

ABI ÌåÏÖ Ó¦ÓóÌÐò¶þ½øÖƽӿÚApplications Binary Interface ¡£Ã÷È· ABI ¿´·¨µÄÒ»ÖÖ·½·¨ÊÇ˼Á¿ËüÓëÆäËû¿´·¨µÄÇø±ð ¡£¹ØÓÚÐí¶à¿ª·¢Ö°Ô±À´Ëµ£¬Ó¦ÓóÌÐò±à³Ì½Ó¿ÚApplications Programming Interface£¨API£©¸üΪÊìϤ ¡£Í¨³££¬¿âµÄÍ·ÎļþºÍÎĵµ±»ÒÔΪÊÇÆä API£¬ÒÔ¼°ÉÐÓÐÏñ HTML5 ÕâÑùµÄ±ê×¼Îĵµ ¡£Å²Óÿâ»ò½»Á÷×Ö·û´®ÃûÌÃÊý¾ÝµÄ³ÌÐò±ØÐè×ñÊØ API ÖÐËùÐÎòµÄÔ¼¶¨£¬²»È»¿ÉÄÜ»ñ×ÔÂúÍâµÄЧ¹û ¡£

ABI ÀàËÆÓÚ API£¬ÓÉÓÚËüÃÇ»®¶¨ÁËÏÂÁîµÄÚ¹ÊͺͶþ½øÖÆÊý¾ÝµÄ½»Á÷·½·¨ ¡£¹ØÓÚ C ³ÌÐò£¬ABI ͨ³£°üÀ¨º¯ÊýµÄ·µ»ØÀàÐͺͲÎÊýÁÐ±í¡¢½á¹¹ÌåµÄ½á¹¹£¬ÒÔ¼°Ã¶¾ÙÀàÐ͵ļÄÒ塢˳ÐòºÍ¹æÄ£ ¡£×èÖ¹ 2022 Ä꣬Linux ÄÚºËÈÔÈ»ÏÕЩÍêÈ«ÊÇ C ³ÌÐò£¬Òò´Ë±ØÐè×ñÊØÕâЩ¹æ·¶ ¡£

¡°ÄÚºËϵͳŲÓýӿڡ± µÄÐÎò¿ÉÒÔÔÚ¡¶Linux ÊÖ²áµÚ 2 ½Ú¡·ÖÐÕÒµ½£¬²¢°üÀ¨ÁË¿É´ÓÖÐÐļþÓ¦ÓóÌÐòŲÓõÄÀàËÆ mount ºÍ sync µÄ C °æ±¾º¯Êý ¡£ÕâЩº¯ÊýµÄ¶þ½øÖƽṹÊÇ Linux ABI µÄµÚÒ»¸öÖ÷Òª×é³É²¿·Ö ¡£¹ØÓÚÎÊÌâ ¡°Linux µÄÎÈ¹Ì ABI °üÀ¨ÄÄЩÄÚÈÝ £¿¡±£¬Ðí¶àÓû§ºÍ¿ª·¢Ö°Ô±µÄ»Ø¸²ÊÇ ¡°sysfs£¨/sys£©ºÍ procfs£¨/proc£©µÄÄÚÈÝ¡± ¡£¶øÏÖʵÉÏ£¬¹Ù·½ Linux ABI Îĵµ È·ÊµÖ÷Òª¼¯ÖÐÔÚÕâЩ ÐéÄâÎļþϵͳ ÉÏ ¡£

Ç°Ãæ×ÅÖØÏÈÈÝÁË Linux ABI ÔÚ³ÌÐòÖеÄÓ¦Ó÷½·¨£¬µ«Î´º­¸ÇÒ»ÂÉÖ÷ÒªµÄÈËΪÒòËØ ¡£ÕýÈçÏÂͼËùʾ£¬ABI µÄ¹¦Ð§ÐèÒªÄÚºËÉçÇø¡¢C ±àÒëÆ÷£¨Èç GCC »ò clang£©¡¢½¨ÉèÓû§¿Õ¼ä C ¿â£¨Í¨³£ÊÇ glibc£©µÄ¿ª·¢Ö°Ô±£¬ÒÔ¼°Æ¾Ö¤ ¿ÉÖ´ÐÐÓëÁ´½ÓÃûÌã¨ELF£© ½á¹¹µÄ¶þ½øÖÆÓ¦ÓóÌÐòÖ®¼äµÄÏàÖúÆð¾¢ ¡£

¿ª·¢ÉçÇøÄÚµÄÏàÖú

ΪʲôÎÒÃǹØ×¢ ABI £¿

À´×Ô Torvalds ×Ô¼ºµÄ Linux ABI µÄÎȹÌÐÔ°ü¹Ü£¬Ê¹µÃ Linux ¿¯ÐаæºÍСÎÒ˽ÈËÓû§Äܹ»×ÔÁ¦¸üÐÂÄںˣ¬¶ø²»ÊܲÙ×÷ϵͳµÄÓ°Ïì ¡£

ÈôÊÇ Linux ûÓÐÎÈ¹ÌµÄ ABI£¬ÄÇôÿ´ÎÄÚºËÐèÒªÐÞ²¹ÒÔ½â¾öÇå¾²ÎÊÌâʱ£¬²Ù×÷ϵͳµÄ´ó²¿·ÖÉõÖÁËùÓÐÄÚÈݶ¼ÐèÒªÖØÐÂ×°Öà ¡£ÏÔÈ»£¬¶þ½øÖƽӿڵÄÎȹÌÐÔÊÇ Linux µÄ¿ÉÓÃÐÔºÍÆÕ±é½ÓÄɵÄÖ÷ÒªÒòËØÖ®Ò» ¡£

Terminal output

ÈçÉÏͼËùʾ£¬Äںˣ¨ÔÚ linux-libc-dev ÖУ©ºÍ Glibc£¨ÔÚ libc6-dev ÖУ©¶¼ÌṩÁ˽ç˵ÎļþȨÏÞµÄλÑÚÂë ¡£ÏÔÈ»£¬ÕâÁ½¸ö½ç˵¼¯±ØÐèÒ»Ö£¡apt Èí¼þ°ü¹ÜÀíÆ÷»áʶ±ðÈí¼þ°üÌṩÿ¸öÎļþ ¡£Glibc ABI µÄDZÔÚ²»Îȹ̲¿·ÖλÓÚ bits/ Ä¿Â¼ÖÐ ¡£

Ôڴ󲿷ÖÇéÐÎÏ£¬Linux ABI µÄÎȹÌÐÔ°ü¹ÜÔË×÷ÓÅÒì ¡£Æ¾Ö¤ ¿µÎ¤¶¨ÂÉConway’s Law£¬ÔÚ¿ª·¢Àú³ÌÖзºÆðµÄ·³ÈËÊÖÒÕÎÊÌâÍùÍùÊÇÓÉÓÚ²î±ðÈí¼þ¿ª·¢ÉçÇøÖ®¼äµÄÎó½â»ò²»Í¬ËùÖ£¬¶øÕâЩÉçÇø¶¼Îª Linux ×ö³öÁËТ˳ ¡£²î±ðÉçÇøÖ®¼äµÄ½Ó¿Ú¿ÉÒÔͨ¹ý Linux °ü¹ÜÀíÆ÷µÄÔªÊý¾ÝÇáËɵؾÙÐÐÏëÏó£¬ÈçÉÏͼËùʾ ¡£

Y2038£ºÒ»¸ö ABI ÆÆËðµÄÀý×Ó

ͨ¹ý˼Á¿Ä¿½ñÕýÔÚ¾ÙÐеġ¢»ºÂý±¬·¢ µÄ ¡°Y2038¡± ABI ÆÆËðµÄÀý×Ó£¬¿ÉÒÔ¸üºÃµØÃ÷È· Linux ABI ¡£ÔÚ 2038 Äê 1 Ô£¬32 λʱ¼ä¼ÆÊýÆ÷½«»Ø¹öµ½È«Á㣬¾ÍÏñ½Ï¾É³µÁ¾µÄÀï³Ì±íÒ»Ñù ¡£2038 Äê 1 ÔÂÌýÆðÀ´»¹ºÜÒ£Ô¶£¬µ«¿ÉÒÔÒ»¶¨µÄÊÇ£¬ÏÖÔÚÏúÊÛµÄÐí¶àÎïÁªÍø×°±¸ÈÔ½«´¦ÓÚÔËÐÐ״̬ ¡£Ïñ½ñÄê×°ÖõĠÖÇÄܵç±í ºÍ ÖÇÄÜÍ£³µÏµÍ³ ÕâÑùµÄͨËײúÆ·¿ÉÄܽÓÄɵÄÊÇ 32 λ´¦ÀíÆ÷¼Ü¹¹£¬²¢ÇÒÒ²¿ÉÄܲ»Ö§³ÖÈí¼þ¸üР¡£

Linux ÄÚºËÒѾ­ÔÚÄÚ²¿×ªÏòʹÓà 64 λµÄ time_t ²»Í¸Ã÷Êý¾ÝÀàÐÍÀ´ÌåÏÖ¸üÍíµÄʱ¼äµã ¡£ÕâÒâζ×ÅÏñ time() ÕâÑùµÄϵͳŲÓÃÔÚ 64 λϵͳÉÏÒѾ­±ä»»ÁËËüÃǵĺ¯ÊýÊðÃû ¡£ÕâЩÆ𾢵ļèÄÑˮƽ¿ÉÒÔÔÚÄÚºËÍ·ÎļþÖУ¨ÀýÈç time_types.h£©ÇåÎúµØ¿´µ½£¬ÔÚÄÇÀï·Å×Åеĺ͠_old °æ±¾µÄÊý¾Ý½á¹¹ ¡£

Àï³Ì±í·­×ª

Glibc ÏîÄ¿Ò² Ö§³Ö 64 λʱ¼ä£¬ÄÇô¾Í´ó¹¦¸æ³ÉÁË£¬¶ÔÂ𠣿²»ÐÒµÄÊÇ£¬Æ¾Ö¤ Debian ÓʼþÁбíÖеÄÌÖÂÛ À´¿´£¬ÇéÐβ¢·ÇÔÆÔÆ ¡£¿¯ÐаæÃæÁÙÄÑÒÔÑ¡ÔñµÄÎÊÌ⣬ҪôΪ 32 λϵͳÌṩËùÓжþ½øÖÆÈí¼þ°üµÄÁ½¸ö°æ±¾£¬ÒªÃ´Îª×°ÖýéÖÊÌṩÁ½¸ö°æ±¾ ¡£ÔÚºóÒ»ÖÖÇéÐÎÏ£¬32 λʱ¼äµÄÓû§½«²»µÃ²»ÖØбàÒëÆäÓ¦ÓóÌÐò²¢ÖØÐÂ×°Öà ¡£ÕýÈçÍù³£Ò»Ñù£¬×¨ÓÐÓ¦ÓóÌÐò²ÅÊÇÒ»¸öÕæÕýµÄÍ·ÌÛÎÊÌâ ¡£

Linux ÎÈ¹Ì ABI À﾿¾¹°üÀ¨Ê²Ã´ÄÚÈÝ £¿

Ã÷È·ÎÈ¹Ì ABI ÓÐЩÐþÃî ¡£ÐèҪ˼Á¿µÄÊÇ£¬Ö»¹Ü´ó²¿·Ö sysfs ÊÇÎÈ¹Ì ABI£¬µ«µ÷ÊÔ½Ó¿ÚÒ»¶¨ÊDz»Îȹ̵Ä£¬ÓÉÓÚËüÃǽ«ÄÚºËÄÚ²¿Ì»Â¶¸øÓû§¿Õ¼ä ¡£Linus Torvalds ÔøÌåÏÖ£¬¡°²»ÒªÆÆËðÓû§¿Õ¼ä¡±£¬Í¨³£ÇéÐÎÏ£¬ËûÊÇÖ¸±£»¤ÄÇЩ ¡°Ö»ÏëËüÄÜÊÂÇ顱 µÄͨË×Óû§£¬¶ø²»ÊÇϵͳ³ÌÐòÔ±ºÍÄں˹¤³Ìʦ£¬ºóÕßÓ¦¸ÃÄܹ»ÔĶÁÄÚºËÎĵµºÍÔ´´úÂ룬ÒÔÏàʶ²î±ð°æ±¾Ö®¼ä±¬·¢ÁËʲôת±ä ¡£ÏÂͼչʾÁËÕâ¸öÇø±ð ¡£

Ê®·ÖÖÓÈÃÄãÏàʶ Linux ABIÎȹÌÐÔ°ü¹Ü

ͨË×Óû§²»Ì«¿ÉÄÜÓë Linux ABI µÄ²»Îȹ̲¿·Ö¾ÙÐн»»¥£¬µ«ÏµÍ³³ÌÐòÔ±¿ÉÄÜÎÞÒâÖÐÕâÑù×ö ¡£³ýÁË /sys/kernel/debug ÒÔÍ⣬sysfs£¨/sys£©ºÍ procfs£¨/proc£©µÄËùÓв¿·Ö¶¼ÊÇÎȹ̵Ä ¡£

ÄÇôÆäËû¶ÔÓû§¿Õ¼ä¿É¼ûµÄ¶þ½øÖƽӿÚÔõÑùÄØ£¬°üÀ¨ /dev ÖеÄ×°±¸Îļþ¡¢ÄÚºËÈÕÖ¾Îļþ£¨¿Éͨ¹ý dmesg ÏÂÁî¶ÁÈ ¡£©¡¢ÎļþϵͳԪÊý¾Ý»òÔÚÄÚºËµÄ ¡°ÏÂÁîÐС± ÖÐÌṩµÄ ¡°Ö¸µ¼²ÎÊý¡±£¨ÔÚÖ¸µ¼¼ÓÔسÌÐòÈç GRUB »ò u-boot Öпɼû£©ÄØ £¿ËäÈ»£¬¡°ÕâÒªÊÓÇéÐζø¶¨¡± ¡£

¹ÒÔؾÉÎļþϵͳ

³ýÁË Linux ϵͳÔÚÖ¸µ¼Àú³ÌÖзºÆð¹ÒÆðÖ®Í⣬ÎļþϵͳÎÞ·¨¹ÒÔØÊÇ×îÁîÈËʧÍûµÄÊÂÇé ¡£ÈôÊÇÎļþϵͳλÓÚ¸¶·Ñ¿Í»§µÄ¹Ì̬ӲÅÌÉÏ£¬ÄÇôÎÊÌâȷʵʮ·ÖÑÏÖØ ¡£µ±ÄÚºËÉý¼¶Ê±£¬Ò»¸öÄܹ»ÔÚ¾ÉÄں˰汾ϹÒÔØµÄ Linux ÎļþϵͳӦ¸ÃÈÔÈ»Äܹ»¹ÒÔØ£¬¶ÔÂ𠣿ÏÖʵÉÏ£¬¡°ÕâÒªÊÓÇéÐζø¶¨¡± ¡£

ÔÚ 2020 Ä꣬һλÊܵ½Î£ÏÕµÄ Linux ¿ª·¢Ö°Ô±ÔÚÄں˵ÄÓʼþÁбíÉÏ Ëß¿àµÀ£º

ÄÚºËÒѾ­½ÓÊÜÕâ¸ö×÷Ϊһ¸öÓÐÓõĿɹÒÔØÎļþϵͳÃûÌã¬Ã»ÓÐÈκιýʧ»òÈκÎÀàÐ͵ÄÖÒÑÔ£¬²¢ÇÒÒѾ­ÕâÑùÎȹ̵ØÊÂÇéÁ˶àÄê¡­¡­ÎÒÒ»Ö±ÆÕ¸÷´¦ÒÔΪ£¬¹ÒÔØÏÖÓеĸùÎļþϵͳÊôÓÚÄÚºËÓû§¿Õ¼ä»òÄÚºËÏÖÓÐϵͳ½çÏߵĹæÄ££¬ÓÉÄں˽ÓÊܲ¢±»ÏÖÓÐÓû§¿Õ¼äÀÖ³ÉʹÓõÄÄÚÈÝËù½ç˵£¬Éý¼¶ÄÚºËÓ¦¸ÃÓëÏÖÓÐÓû§¿Õ¼äºÍϵͳ¼æÈÝ ¡£

¿ÉÊÇÓÐÒ»¸öÎÊÌ⣺ÕâЩÎÞ·¨¹ÒÔصÄÎļþϵͳÊÇʹÓÃÒ»ÖÖÒÀÀµÓÚÄں˽ç˵£¬µ«²¢Î´±»ÄÚºËʹÓõıê¼ÇµÄרÓй¤¾ß½¨ÉèµÄ ¡£¸Ã±ê¼Çδ·ºÆðÔÚ Linux µÄ API Í·Îļþ»ò procfs/sysfs ÖУ¬¶øÊÇÒ»Ö֠ʵÏÖϸ½Ú ¡£Òò´Ë£¬ÔÚÓû§¿Õ¼ä´úÂëÖÐÚ¹Ê͸ñê¼ÇÒâζ×ÅÒÀÀµÓÚ¡°Î´½ç˵ÐÐΪ¡±£¬ÕâÊǸöÏÕЩ»áÈÃÿ¸öÈí¼þ¿ª·¢Ö°Ô±¶¼¸ÐÓ¦Õ½ÀõµÄ¶ÌÓï ¡£µ±ÄÚºËÉçÇøË¢ÐÂÆäÄÚ²¿²âÊÔ²¢×îÏȾÙÐÐеÄÒ»ÖÂÐÔ¼ì²éʱ£¬¡°man 2 mount¡± ϵͳŲÓÃͻȻ×îÏȾܾø¾ßÓÐרÖøÃûÌõÄÎļþϵͳ ¡£ÓÉÓÚ¸ÃÃûÌõĽ¨ÉèÕßÃ÷È·ÊÇһλÈí¼þ¿ª·¢Ö°Ô±£¬Òò´ËËûδÄÜ»ñµÃÄÚºËÎļþϵͳά»¤ÕßµÄͬÇé ¡£

Ê®·ÖÖÓÈÃÄãÏàʶ Linux ABIÊ©¹¤±ê¼ÇÉÏд×ÅÊÂÇéÖ°Ô±ÔÚÊ÷ÉϾÙÐÐÊÂÇé

Ï̻߳¯ÄÚºËµÄ dmesg ÈÕÖ¾

/dev Ä¿Â¼ÖеÄÎļþÃûÌÃÊÇ·ñ°ü¹ÜÎȹ̻ò²»ÎȹÌ £¿dmesg ÏÂÁî »á´ÓÎļþ /dev/kmsg ÖжÁÈ¡ÄÚÈÝ ¡£2018 Ä꣬һλ¿ª·¢Ö°Ô± Îª dmesg Êä³öʵÏÖÁËÏ̻߳¯£¬Ê¹ÄÚºËÄܹ»¡°ÔÚ´òӡһϵÁРprintk() ÐÂÎŵ½¿ØÖÆ̨ʱ£¬²»»á±»ÖÐÖ¹ºÍ/»ò±»ÆäËûÏ̵߳IJ¢·¢ printk() ×ÌÈÅ¡± ¡£ÌýÆðÀ´ºÜ°ô£¡Í¨¹ýÔÚ /dev/kmsg Êä³öµÄÿһÐÐÌí¼ÓÏß³Ì ID£¬ÊµÏÖÁËÏ̻߳¯ ¡£Ç×½ü¹Ø×¢µÄ¶ÁÕß½«Òâʶµ½Õâ¸ö¸Ä¶¯¸Ä±äÁË /dev/kmsg µÄ ABI£¬ÕâÒâζ×ÅÆÊÎö¸ÃÎļþµÄÓ¦ÓóÌÐòÒ²ÐèÒª¾ÙÐÐÏìÓ¦µÄÐÞ¸Ä ¡£ÓÉÓÚÐí¶à¿¯ÐаæûÓбàÒëÆôÓÃй¦Ð§µÄÄںˣ¬´ó´ó¶¼Ê¹Óà/bin/dmesg µÄÓû§¿ÉÄÜûÓÐ×¢Öص½Õâ¼þÊ£¬µ«Õâ¸ö¸Ä¶¯ÆÆËðÁË GDB µ÷ÊÔÆ÷ ¶ÁÈ¡ÄÚºËÈÕÖ¾µÄÄÜÁ¦ ¡£

ȷʵ£¬ÃôÈñµÄ¶ÁÕß»áÒÔΪ GDB µÄÓû§ÔËÆø²»¼Ñ£¬ÓÉÓÚµ÷ÊÔÆ÷ÊÇ¿ª·¢Ö°Ô±¹¤¾ß ¡£ÏÖʵÉϲ¢·ÇÔÆÔÆ£¬ÓÉÓÚÐèÒª¸üÐÂÒÔÖ§³ÖеĠ/dev/kmsg ÃûÌõĴúÂëλÓÚÄÚºË×Ô¼ºµÄ Git Ô´´úÂë¿âµÄ ¡°Ê÷ÄÚ¡± ²¿·Ö ¡£¹ØÓÚÒ»¸öÕý³£µÄÏîÄ¿À´Ëµ£¬µ¥¸ö´úÂë¿âÄڵijÌÐòÎÞ·¨Ð­Í¬ÊÂÇé¾ÍÊÇÒ»¸öÏÔ×ŵĹýʧ£¬Òò´ËÒѾ­ºÏ²¢ÁËÒ»·Ý Ê¹ GDB Äܹ»ÓëÏ̻߳¯µÄ /dev/kmsg Ò»ÆðÊÂÇéµÄ²¹¶¡ ¡£

ÄÇô BPF ³ÌÐòÄØ £¿

BPF ÊÇÒ»ÖÖÇ¿Ê¢µÄ¹¤¾ß£¬¿ÉÒÔÔÚÔËÐеÄÄÚºËÖмà¿ØÉõÖÁʵʱ¾ÙÐÐÉèÖà ¡£BPF ×î³õµÄÄ¿µÄÊÇͨ¹ýÔÊÐíϵͳÖÎÀíÔ±¼´Ê±´ÓÏÂÁîÐÐÐÞ¸ÄÊý¾Ý°ü¹ýÂËÆ÷£¬´Ó¶øÖ§³ÖʵʱÍøÂçÉèÖà ¡£Alexei Starovoitov ºÍÆäËûÈ˼«´óµØÀ©Õ¹ÁË BPF£¬Ê¹ÆäÄܹ»¸ú×Ùí§ÒâÄں˺¯Êý ¡£¸ú×ÙÏÔ×ÅÊÇ¿ª·¢Ö°Ô±µÄÁìÓò£¬¶ø²»ÊÇͨË×Óû§£¬Òò´ËËüÏÔÈ»²»ÊÜÈκΠABI °ü¹ÜµÄÔ¼Êø£¨Ö»¹Ü bpf() ϵͳŲÓà¾ßÓÐÓëÆäËûϵͳŲÓÃÏàͬµÄÎȹÌÐÔÔÊÐí£© ¡£ÁíÒ»·½Ã棬½¨Éèй¦Ð§µÄ BPF ³ÌÐòΪ¡°È¡´úÄÚºËÄ £¿é³ÉΪÀ©Õ¹Äں˵ÄÊÂʵ±ê×¼ÊֶΡ±ÌṩÁË¿ÉÄÜÐÔ ¡£ÄÚºËÄ £¿éʹװ±¸¡¢Îļþϵͳ¡¢¼ÓÃÜ¡¢ÍøÂçµÈÊÂÇéÕý³££¬Òò´ËÏÔ×ÅÊÇ¡°Ö»Ï£ÍûËüÊÂÇ顱µÄͨË×Óû§ËùÒÀÀµµÄÉèÊ© ¡£ÎÊÌâÊÇ£¬Óë´ó´ó¶¼¿ªÔ´ÄÚºËÄ £¿é²î±ð£¬BPF ³ÌÐò¹Å°åÉϲ»ÔÚÄÚºËÔ´´úÂëÖÐ ¡£

2022 Äê´º¼¾£¬Ò»¸öÌá°¸ ³ÉΪÁ˽¹µã£¬¸ÃÌá°¸ÌáÒéʹÓÃ΢ÐÍ BPF ³ÌÐò¶ø²»ÊÇ×°±¸Çý¶¯³ÌÐò²¹¶¡£¬¶ÔÆÕ±éµÄÈË»ú½Ó¿Ú×°±¸£¨ÈçÊó±êºÍ¼üÅÌ£©Ìṩ֧³Ö ¡£

Ëæºó¾ÙÐÐÁËÒ»³¡Ç¿ÁÒµÄÌÖÂÛ£¬µ«Õâ¸öÎÊÌâÏÔÈ»ÔÚ Torvalds ÔÚ¿ªÔ´·å»áÉϵÄ̸ÂÛ ÖлñµÃ½â¾ö£º

ËûÖ¸³ö£¬ÈôÊÇÄãÆÆËðÁË¡°Í¨Ë×£¨·ÇÄں˿ª·¢Ö°Ô±£©Óû§Ê¹ÓõÄÕæÊÊÓû§¿Õ¼ä¹¤¾ß¡±£¬ÄÇôÄãÐèÒªÐÞ¸´Ëü£¬ÎÞÂÛÊÇ·ñʹÓÃÁË eBPF ¡£

Ò»ÖÂÒâ¼ûËƺõÕýÔÚÐγÉ£¬¼´Ï£ÍûÆä BPF ³ÌÐòÔÚÄں˸üкóÈÔÄÜÕý³£ÊÂÇéµÄ¿ª·¢Ö°Ô± ½«ÐèÒª½«ÆäÌá½»µ½ÄÚºËÔ´´úÂë¿âÖÐÒ»¸öÉÐδָ¶¨µÄλÖà ¡£¾´Çë¹Ø×¢ºó¼ÌÉú³¤£¬ÒÔÏàʶÄÚºËÉçÇø¹ØÓÚ BPF ºÍ ABI ÎȹÌÐÔ½«½ÓÄÉʲôÑùµÄÕþ²ß ¡£

½áÂÛ

ÄÚºËµÄ ABI ÎȹÌÐÔ°ü¹ÜÊÊÓÃÓÚ procfs¡¢sysfs ºÍϵͳŲÓýӿÚ£¬µ«Ò²±£´æÖ÷ÒªµÄÆÆÀýÇéÐÎ ¡£µ±Äں˱任ÆÆËðÁË¡°Ê÷ÄÚ¡±´úÂë»òÓû§¿Õ¼äÓ¦ÓóÌÐòʱ£¬Í¨³£»áѸËٻعöÓÐÎÊÌâµÄ²¹¶¡ ¡£¹ØÓÚÒÀÀµÄÚºËʵÏÖϸ½ÚµÄרÓдúÂ룬ֻ¹ÜÕâЩϸ½Ú¿ÉÒÔ´ÓÓû§¿Õ¼ä»á¼û£¬µ«Ëü²¢Ã»ÓÐÊܵ½±£»¤£¬²¢ÇÒÔÚ·ºÆðÎÊÌâʱ»ñµÃµÄͬÇéÓÐÏÞ ¡£µ±Ïñ Y2038 ÕâÑùµÄÎÊÌâÎÞ·¨×èÖ¹ ABI ÆÆËðʱ£¬»áÒÔ¾¡¿ÉÄÜÎÈÖغÍϵͳ»¯µÄ·½·¨¾ÙÐйý¶É ¡£¶øÏñ BPF ³ÌÐòÕâÑùµÄй¦Ð§Ìá³öÁ˹ØÓÚ ABI ÎȹÌÐÔ½çÏßµÄÉÐδ½â´ðµÄÎÊÌâ ¡£

ÖÂл

лл Akkana Peck¡¢Sarah R. Newman ºÍ Luke S. Crawford ¶ÔÔçÆÚ°æʵÖÊÁϵÄÓÐÒæ̸ÂÛ ¡£

ÒÔÉϾÍÊÇÊ®·ÖÖÓÈÃÄãÏàʶ Linux ABIµÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡

ÃâÔð˵Ã÷£ºÒÔÉÏչʾÄÚÈÝȪԴÓÚÏàÖúýÌå¡¢ÆóÒµ»ú¹¹¡¢ÍøÓÑÌṩ»òÍøÂçÍøÂçÕûÀí£¬°æȨÕùÒéÓë±¾Õ¾Î޹أ¬ÎÄÕÂÉæ¼°¿´·¨Óë¿´·¨²»´ú±í尊龙凯时人生就是搏ÂËÓÍ»úÍø¹Ù·½Ì¬¶È£¬Çë¶ÁÕß½ö×ö²Î¿¼ ¡£±¾ÎĽӴýתÔØ£¬×ªÔØÇë˵Ã÷À´ÓÉ ¡£ÈôÄúÒÔΪ±¾ÎÄÇÖÕ¼ÁËÄúµÄ°æȨÐÅÏ¢£¬»òÄú·¢Ã÷¸ÃÄÚÈÝÓÐÈκÎÉæ¼°ÓÐÎ¥¹«µÂ¡¢Ã°·¸Ö´·¨µÈÎ¥·¨ÐÅÏ¢£¬ÇëÄúÁ¬Ã¦ÁªÏµ尊龙凯时人生就是搏ʵʱÐÞÕý»òɾ³ý ¡£

Ïà¹ØÐÂÎÅ

ÁªÏµ尊龙凯时人生就是搏

18523999891

¿É΢ÐÅÔÚÏß×Éѯ

ÊÂÇéʱ¼ä£ºÖÜÒ»ÖÁÖÜÎ壬9:30-18:30£¬½ÚãåÈÕÐÝÏ¢

QR code
sitemap¡¢ÍøÕ¾µØͼ