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

LinuxÉ豸 £¨×ª£©

5.3.2  É豸ÀàÐÍ·ÖÀà
×ÝÀÀlinux/driversĿ¼£¬´ó¸Å»¹ÓÐ35¸öÒÔÉϵÄ×ÓĿ¼£¬Ã¿¸ö×ÓĿ¼»ù±¾ÉϾʹú±íÁËÒ»ÖÖÉ豸Çý¶¯£¬ÓÐatm¡¢block¡¢char¡¢misc¡¢input¡¢net¡¢usb¡¢sound¡¢videoµÈ¡£ÕâÀïÖ»ÃèÊöÔÚǶÈëʽϵͳÀïÃæÓõÃ×îΪ¹ã·ºµÄ3ÖÖÉ豸¡£
1£®×Ö·ûÉ豸£¨char device£©
×Ö·ûÉ豸ÊÇLinux×î¼òµ¥µÄÉ豸£¬¿ÉÒÔÏñÎļþÒ»Ñù·ÃÎÊ¡£³õʼ»¯×Ö·ûÉ豸ʱ£¬ËüµÄÉ豸Çý¶¯³ÌÐòÏòLinuxµÇ¼Ç£¬²¢ÔÚ×Ö·ûÉ豸ÏòÁ¿±íÖÐÔö¼ÓÒ»¸ödevice_structÊý¾Ý½á¹¹ÌõÄ¿£¬Õâ¸öÉ豸µÄÖ÷É豸±êʶ·ûÓÃ×öÕâ¸öÏòÁ¿±íµÄË÷Òý¡£Ò»¸öÉ豸µÄÖ÷É豸±êʶ·ûÊǹ̶¨µÄ¡£chrdevsÏòÁ¿±íÖеÄÿһ¸öÌõÄ¿£¬Ò»¸ödevice_structÊý¾Ý½á¹¹£¬°üÀ¨Á½¸öÔªËØ£ºÒ»¸öµÇ¼ÇÉ豸Çý¶¯³ÌÐòÃû³ÆµÄÖ¸ÕëºÍÒ»¸öÖ¸ÏòÒ»×éÎļþ²Ù×÷µÄÖ¸Õë¡£¿ÉÒԲο¼µÄ´úÂëÊÇinclude/linux/ major.h¡£
Ò»°ãÀ´ËµÏñÊó±ê¡¢´®¿Ú¡¢¼üÅ̵ÈÉ豸¶¼ÊôÓÚ×Ö·ûÉ豸¡£
2£®¿éÉ豸£¨block device£©
¿éÉ豸ÊÇÎļþϵͳµÄÎïÖÊ»ù´¡£¬ËüÒ²¿ÉÒÔÏñÎļþÒ»Ñù±»·ÃÎÊ¡£LinuxÓÃblkdevsÏòÁ¿±íά»¤ÒѾ­µÇ¼ÇµÄ¿éÉ豸Îļþ¡£ËüÏñchrdevsÏòÁ¿±íÒ»Ñù£¬Ê¹ÓÃÉ豸µÄÖ÷É豸ºÅ×÷ΪË÷Òý¡£ËüµÄÌõĿҲÊÇdevice_structÊý¾Ý½á¹¹¡£Óë×Ö·ûÉ豸²»Í¬µÄÊÇ£¬¿éÉ豸·ÖΪSCSIÀàºÍIDEÀà¡£ÏòLinuxÄں˵ǼDz¢ÏòºËÐÄÌṩÎļþ²Ù×÷¡£Ò»ÖÖ¿éÉ豸ÀàµÄÉ豸Çý¶¯³ÌÐòÏòÕâÖÖÀàÌṩºÍÀàÏà¹ØµÄ½Ó¿Ú¡£¿ÉÒԲο¼µÄ´úÂëÊÇfs/devices.c¡£
ÿһ¸ö¿éÉ豸Çý¶¯³ÌÐò±ØÐëÌṩÆÕͨµÄÎļþ²Ù×÷½Ó¿ÚºÍ¶ÔÓÚbuffer cacheµÄ½Ó¿Ú¡£Ã¿Ò»¸ö¿éÉ豸Çý¶¯³ÌÐòÌî³äblk_devÏòÁ¿±íÖеÄblk_dev_structÊý¾Ý½á¹¹¡£´ËÏòÁ¿±íµÄË÷ÒýÊÇÉ豸µÄÖ÷É豸ºÅ¡£ÆäÖÐblk_dev_structÊý¾Ý½á¹¹°üÀ¨Ò»¸öÇëÇóÀý³ÌµÄµØÖ·ºÍÒ»¸öÖ¸Õ룬ָÏòÒ»¸örequestÊý¾Ý½á¹¹µÄÁÐ±í£¬Ã¿Ò»¸ö¶¼±í´ïbuffer cacheÏòÉ豸¶Á/дһ¿éÊý¾ÝµÄÒ»¸öÇëÇó¡£
¿ÉÒԲο¼µÄÔ´´úÂëÊÇdrivers/block/ll_rw_blk.cºÍinclude/linux/blkdev.h¡£
µ±buffer cache´ÓÒ»¸öÒѵǼǵÄÉ豸¶Á/дһ¿éÊý¾Ý£¬»òÕßÏ£Íû¶Á¡¢Ð´Ò»¿éÊý¾Ýµ½ÆäËûλÖÃʱ£¬¾ÍÔÚblk_dev_structÖÐÔö¼ÓÒ»¸örequestÊý¾Ý½á¹¹¡£Ã¿¸örequestÊý¾Ý½á¹¹¶¼ÓÐÒ»¸öÖ¸ÏòÒ»¸ö»ò¶à¸öbuffer_headÊý¾Ý½á¹¹µÄÖ¸Õ룬ÿһ¸ö¶¼ÊǶÁ/дһ¿éÊý¾ÝµÄÇëÇó¡£Èç¹ûbuffer_headÊý¾Ý½á¹¹±»Ëø¶¨£¨buffer_cache£©£¬¿ÉÄÜ»áÓÐÒ»¸ö½ø³ÌÔڵȴýÕâ¸ö»º³åÇøµÄ×èÈû½ø³ÌÍê³É¡£Ã¿Ò»¸örequestÊý¾Ý½á¹¹¶¼ÊÇ´Óall_request±íÖзÖÅäµÄ¡£Èç¹ûrequestÔö¼Óµ½¿ÕµÄrequestÁбíÖУ¬¾Íµ÷ÓÃÇý¶¯³ÌÐòµÄrequestº¯Êý´¦ÀíÕâ¸örequest¶ÓÁУ¬·ñÔòÇý¶¯³ÌÐòÖ»ÊǼòµ¥µØ´¦Àírequest¶ÓÁÐÖеÄÿһ¸öÇëÇó¡£
¿éÉ豸Çý¶¯³ÌÐòºÍ×Ö·û


Ïà¹ØÎĵµ£º

Linux USBÇý¶¯¿ò¼Ü·ÖÎöÏÂ

probeÊÇusb×Óϵͳ×Ô¶¯µ÷ÓõÄÒ»¸öº¯Êý£¬ÓÐUSBÉ豸½Óµ½Ó²¼þ¼¯Ï߯÷ʱ£¬usb×Óϵͳ»á¸ù¾Ýproduction IDºÍvendor IDµÄ×éºÏ»òÕßÉ豸µÄclass¡¢subclass¸úprotocolµÄ×éºÏÀ´Ê¶±ðÉ豸µ÷ÓÃÏàÓ¦Çý¶¯³ÌÐòµÄprobe£¨Ì½²â£©º¯Êý£¬¶ÔÓÚskeletonÀ´Ëµ£¬¾ÍÊÇskel_probe¡£ÏµÍ³»á´«µÝ¸øÌ½²âº¯ÊýÒ»¸öusb_interface *¸úÒ»¸östruct usb_device_id *×÷Î ......

Linux patchµÄÓ÷¨

Linux patchµÄÓ÷¨
http://hi.baidu.com/issaria/blog/item/b04527ec816967d72f2e2184.html
2008-08-14 14:50
Ò²ÐíÖ»ÊÇÎÒÒ»¸öÈ˱Ƚϱ¿£¬Ã¿´ÎÅöµ½bug£¬ËäÈ»ÓÐÈ˸ø³ö²¹¶¡£¨patch£©£¬µ«ÊÇÈ´²»ÖªµÀÔõôʹÓá£Manual Page ( man patch )Ò²Ö»¸ø³ö patch -p(num) <patchfileÕâÑùµÄÓ÷¨£¬¾ßÌåÒ²²»ÖªµÀÔõÑùÈ·¶¨num£¬Èç¹ûÄãÒ²ÓÐ ......

LinuxÆô¶¯Ê±¼äµÄ¼«ÏÞÓÅ»¯

£¨1£©Ê×ÏÈÊǶÔLinuxÆô¶¯¹ý³ÌµÄ¸ú×ٺͷÖÎö£¬Éú³ÉÏêϸµÄÆô¶¯Ê±¼ä±¨¸æ¡£
¡¡¡¡½ÏΪ¼òµ¥¿ÉÐеķ½Ê½ÊÇͨ¹ýPrintkTime¹¦ÄÜΪÆô¶¯¹ý³ÌµÄËùÓÐÄÚºËÐÅÏ¢Ôö¼Óʱ¼ä´Á£¬±ãÓÚ»ã×Ü·ÖÎö¡£PrintkTime×îÔçΪCELFËùÌṩµÄÒ»¸öÄں˲¹¶¡£¬ÔÚºóÀ´µÄKernel 2.6.11°æ±¾ÖÐÕýʽÄÉÈë±ê×¼Äںˡ£ËùÒÔ´ó¼Ò¿ÉÄÜÔÚа汾µÄÄÚºËÖÐÖ±½ÓÆôÓøù¦ÄÜ¡£Èç¹ûÄãµÄLin ......

LinuxÄÚºËÖÐÓÃÓÚͬ²½µÄ¼¸ÖÖ»úÖÆ¼¯ÖÐÆðÀ´·ÖÎö

LinuxÄÚºËÖÐÓÃÓÚͬ²½µÄ¼¸ÖÖ»úÖÆ¼¯ÖÐÆðÀ´·ÖÎö£¬Ç¿µ÷ÁËËüÃÇÖ®¼äÔÚʵÏÖºÍʹÓÃÉϵIJ»Í¬¡£
¡¡¡¡Í¬²½Í¨³£ÊÇΪÁË´ïµ½¶àÏß³ÌЭͬµÄÄ¿µÄ¶øÉè¼ÆµÄÒ»ÖÖ»úÖÆ£¬Í¨³£°üº¬Òì²½ÐźŻúÖÆºÍ»¥³â»úÖÆ×÷ΪÆäʵÏֵĵײ㡣ÔÚLinux 2.4ÄÚºËÖÐÒ²ÓÐÏàÓ¦µÄ¼¼ÊõʵÏÖ£¬°üÀ¨ÐźÅÁ¿¡¢×ÔÐýËø¡¢Ô­×Ó²Ù×÷ºÍµÈ´ý¶ÓÁУ¬ÆäÖÐÔ­×Ó²Ù×÷ºÍµÈ´ý¶ÓÁÐÓÖÊÇʵÏÖÐźÅÁ¿µÄ ......

Linux²é¿´Ó²¼þÐÅÏ¢ÃüÁî

Linux²é¿´Ó²¼þÐÅÏ¢ÃüÁî
1.²é¿´CPUÐÅÏ¢
cat /proc/cpuinfo
2.²é¿´ÄÚ´æÐÅÏ¢
cat /proc/meminfo
free
vmstat
3.²é¿´Ó²ÅÌÐÅÏ¢
fdisk -l
df -lh
4.²é¿´Äں˰汾ÐÅÏ¢
cat /proc/version
uname -r
lsb_release -a
5.²é¿´ÎļþÕ¼Óÿռä
du
6.²é¿´ÏµÍ³ÐÅÏ¢
dmesg
7.²é¿´¶Ë¿ÚÐÅÏ¢
netstat
8.²é¿´32λ»¹ÊÇ64λ
ge ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ