LinuxÎļþϵͳѡÔñ
ͨ¹ý×ÛºÏʹÓöàÖÖ±ê×¼ÎļþϵͳBenchmarks¶ÔExt3, Ext4, Reiserfs, XFS, JFS, Reiser4µÄÐÔÄܲâÊԶԱȣ¬¶Ô²»Í¬Ó¦ÓÃÑ¡ÔñºÏÊʵÄÎļþϵͳ¸ø³öÒÔÏ·½°¸£¬¹©´ó¼Ò²Î¿¼¡£ÎļþϵͳÐÔÄܲâÊÔÊý¾Ý¼û¸½±í¡£
1¡¢´óÁ¿Ð¡Îļþ£¨LOSF, Lost of small files£©I/OÓ¦ÓÃ(ÈçСͼƬ)
Reiserfs(Ê×Ñ¡), Ext4ÎļþϵͳÊʺÏÕâÀà¸ºÔØÌØÕ÷£¬IOµ÷¶ÈË㷨ѡÔñdeadline£¬block size = 4096, ext4¹Ø±ÕÈÕÖ¾¹¦ÄÜ¡£
reiserfs mount²ÎÊý£º-o defaults, async, noatime, nodiratime, notail, data=writeback
ext4 mount²ÎÊý£º-o defaults, async, noatime, nodiratime, data=writeback, barrier=0
¹Ø±Õext4ÈÕÖ¾£ºtune2fs -O^has_journal /dev/sdXX
2¡¢´óÎļþI/OÓ¦ÓÃ(ÈçÊÓÆµÏÂÔØ¡¢Á÷ýÌå)
EXT4ÎļþϵͳÊʺϴËÀà¸ºÔØÌØÕ÷£¬IOµ÷¶ÈË㷨ѡÔñanticipatory, block size = 4096, ¹Ø±ÕÈÕÖ¾¹¦ÄÜ£¬ÆôÓÃextent(default)¡£
mount²ÎÊý£º-o defaults, async, noatime, nodiratime, data=writeback, barrier=0
¹Ø±Õext4ÈÕÖ¾£ºtune2fs -O^has_journal /dev/sdXX
3¡¢SSDÎļþϵͳѡÔñ
EXT4/Reiserfs¿ÉÒÔ×÷ΪSSDÎļþϵͳ£¬µ«Î´¶ÔSSD×öÓÅ»¯£¬²»Äܳä·Ö·¢»ÓSSDÐÔÄÜ£¬²¢Ó°ÏìSSDʹÓÃʱ¼ä¡£
Btrfs¶ÔSSD×÷ÁËÓÅ»¯£¬mountͨ¹ý²ÎÊýÆôÓᣵ«BtrfsÈÔ´¦ÓÚʵÑé½×¶Î£¬Éú²ú»·¾³½÷É÷ʹÓá£
JFFS2/Nilfs2/YAFFSÊdz£ÓõÄflash file system£¬ÔÚǶÈëʽ»·¾³¹ã·ºÓ¦Ó㬽¨ÒéʹÓá£ÐÔÄÜĿǰ»¹Î´×÷²âÊÔÆÀ¹À¡£
¼òµ¥·ÖÎöÒ»ÏÂÑ¡ÔñReiserfsºÍext4ÎļþϵͳµÄÔÒò£º
1¡¢Reiserfs
¡¡´óÁ¿Ð¡Îļþ·ÃÎÊ£¬ºâÁ¿Ö¸±êÊÇIOPS£¬ÎļþϵͳÐÔÄÜÆ¿¾±ÔÚÓÚÎļþÔªÊý¾Ý²Ù×÷¡¢Ä¿Â¼²Ù×÷¡¢Êý¾ÝѰַ¡£reiserfs¶ÔСÎļþ×÷ÁËÓÅ»¯£¬²¢Ê¹ÓÃB+ tree×éÖ¯Êý¾Ý£¬¼ÓËÙÁËÊý¾ÝѰַ£¬´ó´ó½µµÍÁËopen/create/delete/closeµÈϵͳµ÷ÓÿªÏú¡£mountʱָ¶¨noatime, nodiratime, notail£¬¼õÉÙ²»±ØÒªµÄinode²Ù×÷£¬notail¹Ø±Õtail package¹¦ÄÜ£¬ÒԿռ任ȡ¸ü¸ßÐÔÄÜ¡£Òò´Ë£¬¶ÔÓÚËæ»úµÄСI/O¶Áд£¬reiserfsÊǺܺõÄÑ¡Ôñ¡£
2¡¢Ext4
¡¡´óÎļþ˳Ðò·ÃÎÊ£¬ºâÁ¿Ö¸±êÊÇIOÍÌÍÂÁ¿£¬ÎļþϵͳÐÔÄÜÆ¿¾±ÔÚÓÚÊý¾Ý¿é²¼¾Ö(layout)¡¢Êý¾ÝѰַ¡£Ext4¶Ôext3Ö÷Òª×÷ÁËÁ½·½ÃæµÄÓÅ»¯:
¡¡Ò»ÊÇinodeÔ¤·ÖÅä¡£ÕâʹµÃinode¾ßÓкܺõľֲ¿ÐÔÌØÕ÷£¬Í¬Ò»Ä¿Â¼Îļþinode¾¡Á¿·ÅÔÚÒ»Æð£¬¼ÓËÙÁËĿ¼ѰַÓë²Ù×÷ÐÔÄÜ¡£Òò´ËÔÚСÎļþÓ¦Ó÷½ÃæÒ²¾ßÓкܺõÄÐÔÄܱíÏÖ¡£
¡¡¶þÊÇextent/delay/multiµÄÊý¾Ý¿é·ÖÅä²ßÂÔ¡£ÕâЩ²ßÂÔʹµÃ´óÎļþµÄÊý¾Ý¿é±£³ÖÁ¬Ðø´æ´¢ÔÚ´ÅÅÌÉÏ£¬Êý¾ÝѰַ´ÎÊý´ó
Ïà¹ØÎĵµ£º
ÔÚx86ƽ̨ÉÏ£¬linuxÄÚºËÓÃÁËÒ»¸ö±È½Ï¸´Ôӵįô¶¯ÐÒ鹿·¶£¬Ö÷ÒªÓÉÓÚÀúÊ·ÔÒò£¬ÔçÆÚÏë°ÑÄÚºË×ö³É¿ÉÆô¶¯Ó³Ïñ£¬¸´ÔӵļÆËã»úÄÚ´æÄ£ÐͺÍÓÉÓÚʵģʽDOS³ÉΪÖ÷Á÷²Ù×÷ϵͳ¶øÓ°ÏìµÄ.
ÏÖÔÚÓÐÏÂÁÐÆô¶¯ÐÒé´æÔÚ£º
¾É°æÄںˣºÖ»Ö§³ÖzImageºÍImage.
2.00£ºÔö¼ÓbzImageºÍinitrdÖ§³Ö£¬Ò²ÓµÓÐÁËÒ»ÖÖÕý¹æ»¯µÄ·½·¨À´ÊµÏÖÆô¶ ......
ARM+LINUX·Ïߣ¬Ö÷¹¥Ç¶ÈëʽLinux²Ù×÷ϵͳ¼°ÆäÉÏÓ¦ÓÃÈí¼þ¿ª·¢Ä¿±ê£º
£¨1£©ÕÆÎÕÖ÷Á÷ǶÈëʽ΢´¦ÀíÆ÷µÄ½á¹¹ÓëÔÀí£¨³õ²½¶¨Îªarm9£©
£¨2£©±ØÐëÕÆÎÕÒ»¸öǶÈëʽ²Ù×÷ϵͳ£¨³õ²½¶¨Îªuclinux»òlinux,°æ±¾´ý¶¨£©
£¨3£©±ØÐëÊìϤǶÈëʽÈí¼þ¿ª·¢Á÷³Ì²¢ÖÁÉÙ×öÒ»¸öǶÈëʽÈí¼þÏîÄ¿¡£
´ÓÊÂǶÈëʽÈí¼þ¿ª·¢µÄºÃ´¦ÊÇ ......
µÚÒ»´ÎÔÚLinuxÉϰ²×°OracleµÄʱºòÅöµ½Õâ¸öÎÊÌ⣬ºÇºÇ¡£Ö®Ç°ÔÚLinuxÉϰ²×°Oracleʱ£¬Ò»°ã¶¼Ê¹ÓÃRedHatϵÁеÄLinux£¬ÔÚ°²×°¹ý³ÌÖУ¬ÐèÒª×ö´óÁ¿µÄ°²×°Ç°Öù¤×÷£¬Èç°²×°RPM°ü£¬´´½¨×éºÍÓû§£¬ÐÞ¸ÄÄں˲ÎÊý£¬Ð޸Ļ·¾³±äÁ¿µÈ¡£Õâ´ÎʹÓõÄÊÇRedFlagµÄAsianux 3£¬¶øÇÒ×Ô´øOracleµÄ°²×°¸¨Öú¹¤¾ßOrana ......
understanding linux usb ehci device driver£¨2£©
understanding linux usb ehci device driver(2)
lm_tom@163.com
2. linux ehci device driver(ehci hcd)
2.1. linux usb subsystem arch overview(host)
2.2. ehci_hcd
2.3. ehci ʵÏֵĽӿÚ
2.3.1. ehci_pci_setup() (hc_driver->reset)
2.3.2. ehci_run() ( ......
Ò»¡¢POSIX Ïß³ÌÏê½â
1¡¢
Ò»ÖÖÖ§³ÖÄÚ´æ¹²ÏíµÄ¼ò½Ý¹¤¾ß
2¡¢³Æ×÷»¥³â¶ÔÏóµÄÐ¡ÍæÒâ
3¡¢Ê¹ÓÃÌõ¼þ±äÁ¿Ìá¸ßЧÂÊ
¶þ¡¢PosixÏ̱߳à³ÌÖ¸ÄÏ
1¡¢
Ï̴߳´½¨ÓëÈ¡Ïû
2¡¢
Ïß³Ì˽ÓÐÊý¾Ý
3¡¢Ïß³Ìͬ²½
4¡¢Ïß³ÌÖÕÖ¹
5¡¢ÔÓÏî
......