尊龙凯时人生就是博

Ê®·ÖÖÓÈÃÄãÏàʶ 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¡¢ÍøÕ¾µØͼ