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

LinuxÖеÄÄÚ´æ·ÖÅäºÍÊÍ·ÅÖ®slab·Ö¸îÆ÷

  slab·ÖÅäÆ÷ÐÎÏóµØËµ¾ÍÊÇÏÈÓÉ»ï°é»úÖÆÉêÇë¿ÕÏÐÄÚ´æ¿Õ¼ä£¬È»ºóslab·ÖÅäÆ÷ÔÙ°ÑÕâ¸öÄÚ´æ¿Õ¼ä½øÐзָ°´Í¬Ñù´óСÀ´½øÐзָ×îºóÔÙÓÃһЩÊý¾Ý½á¹¹À´½øÐйÜÀí¡£ÉÏÃæÖ»ÊÇÐÎÏóµØËµ·¨¡£ÎÒÃÇÆ½Ê±°ÑÓÉslab½øÐзָîºóµÄÄÚ´æÎÒÃdzÆÖ®Îª¸ßËÙ»º´æÄÚ´æ¡£ÕâÑù¿´À´¾ÍÖªµÀËùνµÄ¸ßËÙ¾ÍÊÇ˵²»ÊÇÿ´Î·ÖÅäºÍÊÍ·ÅÄÚ´æ¶¼ÒªÕÒ»ï°é»úÖÆ£¬¿ÉÒÔÏÈ·ÃÎÊÕâЩ¸ßËÙÄÚ´æµÄ£¬ºÍÎÒÃÇÇ°ÃæÎÄÕÂÖÐÌáµ½µÄÀäÈÈÇøÊÇÒ»¸ö×÷Óõġ£ÎÒÃǻᷢÏÖÎÒÃÇÔ­À´ËµµÄÀäÈÈÇøºÍ»ï°é»úÖÆ£¬¶¼ÊÇÒÔҳΪµ¥Î»½øÐзÖÅäµÄ¡£Õâ¾ÍÓеãÏÞÖÆÁË£¬ÎªÊ²Ã´ÎÒ²»¿ÉÒÔÔÙ°´Ð¡µãµÄÄÚ´æÈ¥·ÖÅäÄØ£¿ËùÒԾͲúÉúÁËslab·ÖÅäÆ÷ÁË¡£
  µ±ÎÒÃÇ´Ó¸ßËÙ»º´æÄÚ´æÖзÖÅä¶ÔÏóʱ£¨ÕâÀïÎÒÃDz»ÔÙ˵ÄÚ´æÒ³ÁË£¬ÎÒÃǸÃΪ¶ÔÏ󣬼´ÄÚ´æ¶ÔÏ󣩣¬Ê×Ïȼì²é¶ÔÓ¦´¦ÀíÆ÷µÄ¸ßËÙ»º´æÄÚ´æÕóÁÐÖÐÊÇ·ñÓÐδʹÓõÄÄÚ´æ¶ÔÏó¡£Ê²Ã´ÊÇ´¦ÀíÆ÷µÄ¸ßËÙ»º´æÄÚ´æÕóÁУ¿--kmem_cache_t½á¹¹ÀïÃæÒ²ÎªÃ¿¸ö´¦ÀíÆ÷Ô¤ÁôÒ»¸ö¸ßËÙ»º³åÄÚ´æÕóÁУ¨struct array_cache£©£¬ÎÒÃǶ¼ÊÇÓÃÆä³ÉÔ±*array[NR_CPUS]Õâ¸öÖ¸ÕëÊý×éÀïÃæµÄÿ¸ö³ÉÔ±¶¼ÊÇÖ¸Ïòstruct array_cache½á¹¹±äÁ¿£¬½ô¸úÔÚstruct array_cache½á¹¹ºóÃæµÄÊÇÁ¬Ðø´æ·ÅµÄ¸Ãstruct array_cache½á¹¹Ö¸¶¨¸öÊýµÄ¶ÔÏóÖ¸Õ룬ÕâЩָÕëÖ¸ÏòµÄ¶ÔÏó¾ÍÊǽ«À´Òª±»·ÖÅäµÄ¿Õ¼ä¡£kmem_cache_t½á¹¹¾ÍÊÇËãÊÇÎÒÃÇ˵µÄ¸ßËÙ»º´æÄÚ´æµÄÃèÊö½á¹¹¡£
  Èç¹ûÎÒÃÇ·¢ÏÖ¶ÔÓ¦´¦ÀíÆ÷µÄ¸ßËÙ»º´æÄÚ´æÕóÁÐÖÐÓÐδʹÓõÄÄÚ´æ¶ÔÏó£¬Ö±½Ó°ÑÎÒÃǸղÅ˵µÄstruct arrary_cache½á¹¹Ö¸¶¨¸öÊýµÄ¶ÔÏóÖ¸Õë´«¸øµ÷ÓÃÕß¡£Èç¹ûûÓУ¬ÄÇôÊ×ÏȲéÕÒ¹²Ïí¸ßËÙ»º´æÄÚ´æÕóÁÐÖÐÊÇ·ñÓпÉÓõĶÔÏó£¬ÔÚ¸ßËÙ»º´æÄÚ´æÃèÊö½á¹¹£¨struct kmem_cache_t£©ÖÐÓÐÒ»¸ö³ÉÔ±¿ÉÒÔ·ÃÎʵ½Ëü£¬¾ÍÊÇstruct kmem_list3 listsÖеÄshare³ÉÔ±¡£ÆäʵÕâ¸öÊÇÕæÕý¶à¸öcpuµÄʱºò²Å»á²ÉÈ¡µÄ·½°¸¡£Èç¹û·¢ÏÖÕâÀïÓпÉÓÃÄÚ´æ¶ÔÏóµÄ»°£¬ÎÒÃÇÏȰÑÄÚ´æ¶ÔÏóµÄµØÖ·¸´ÖƵ½¶ÔÓ¦´¦ÀíÆ÷µÄ¸ßËÙ»º´æÄÚ´æÕóÁÐÖУ¬ÔÙ´Ó´¦ÀíÆ÷µÄ¸ßËÙ»º´æÄÚ´æÕóÁÐÖзÖÅä¶ÔÏó¡£
  Ò»°ãÇé¿öÈç¹û¹²Ïí¸ßËÙ»º´æÄÚ´æÕóÁÐÖÐҲûÓпÉÓöÔÏóʱ£¬ÎÒÃǾÍÈ¥²éÕÒ²¿·Ö¿ÕÏкÍÈ«²¿¿ÕÏÐslabÁÐ±í¡£struct kmem_list3 listsÊǸßËÙ»º´æÄÚ´æÃèÊö½á¹¹struct kmem_cache_tµÄ³ÉÔ±£¬Õâ¸öÁ´±í½á¹¹¾ÍÊÇÓÃÀ´ÃèÊöÉÏÊöµÄslabÁÐ±í¡£Á´±í½á¹¹ÃèÊöÁËÈýÖÖ¸ßËÙ»º´æÄڴ浥룬ÓÉÒ»¸östruct slab½á¹¹¹ÜÀíµÄÒ»×éÌØ¶¨´óСµÄÄÚ´æ¶ÔÏó½Ð×öÒ»¸ö¸ßËÙ»º´æÄڴ浥룬һ¸öÄڴ浥λ°üÀ¨Ò»Ð©´óСһÖµÄÄÚ´æ¶ÔÏó¡¢Ò»Ð©É«¿é£¨²»»á±»µ÷Óõģ¬Ö»ÊÇÆðµ½¶ÔÆëµÄÓÃ;£©¡¢Ò»¸östruct slab½á¹¹¡¢Óëÿ¸öÄ


Ïà¹ØÎĵµ£º

Book Note: Linux Device Driver Dos and Don'ts

Book Note: Linux Device Driver Dos and Don'ts
http://janitor.kernelnewbies.org/docs/driver-howto.html
what a hardened (robust) device
driver should mean and how it should be implemented and measured.
1.3 Robust device drivers
-Follows the Linux CodingStyle.
-Efficient in managing faults and ha ......

Linux»»ÐÐÎÊÌâ

WindowsÓëLinuxÖеĻ»ÐÐÊDz»Ò»ÑùµÄ£¬ÒѾ­Óöµ½¹ýºÃ¼¸´ÎÎÊÌâÁË¡«ÅúÁ¿Ð½¨Óû§µÄʱºò£¬ÐÂÓû§²»ÄܵǼ£¬ÒòΪÎÒµÄÎı¾ÊÇÔÚWindowsÏÂÉú³ÉµÄ£¬»»ÐÐÊÇWindows¸ñʽ£¬¶øLinuxÖÐʹÓÃnewusersÃüÁîµ¼Èëµ½passwdÎļþ£¬ÊÇÖ±½Ó¸´ÖƹýÈ¥µÄ¡«²»ÄÜÒ»ÐÐÒ»Ðеĸİ¡¡«ºÇºÇ£¬¸Õ¸Õѧµ½ÁËÒ»ÕС£
×Ö·ûÎļþÔÚÁ½¸öϵͳ֮¼ä¿½±´Ö®ºó£¬¿ÉÒÔʹÓÃdos2unix» ......

linux±àÒë³öÏÖ´íÎó

ÒýÓãºhttp://blog.chinaunix.net/u/12207/showart_2061214.html
¹ØÓÚ2.6.31Óöµ½µÄÎÊÌâ
´íÎóÌáʾ1£º
drivers/built-in.o(.init.text+0x3bad): In function `con_init':
include/trace/events/kmem.h:47: undefined reference to `.L1452'
½â¾ö£º
vi /usr/src/linux/drivers/char/vt.c ÕÒµ½static int __init con_init ......

linuxÏÂntpʵÏÖ

#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#define NTP_SERVER "clock.via.net"
#define ......

linux ¿ªÆô¹Ø±Õ·À»ðǽ

Çл»µ½rootÓû§ÏÂ,
service iptables status  ÓÃÓڲ鿴ÊÇ·ñÓпªÆô·À·½Ç½.
service iptables stop    ÓÃÓڹرշÀ»ðǽ.
service iptables start   ÓÃÓÚ´ò¿ª·À»ðǽ.
·À»ðǽµÄ¿ªÆôÓÐʱ»áÏÞÖÆÍⲿ·ÃÎÊ·þÎñÆ÷ÉϵĶ˿Úʧ°Ü. ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ