Linux¿éÉ豸Çý¶¯(1) ¿éÇý¶¯ÖÐÏà¹ØµÄ½á¹¹Ìå¼°Æä²Ù×÷
1.×Ö·ûÉ豸Óë¿éÉ豸IO²Ù×öµÄÇø±ð
1)¿éÉ豸ֻÄÜÒÔ¿éΪµ¥Î»½ÓÊÕÊäÈë·µ»ØÊä³ö,¶ø×Ö·ûÉ豸ÔòÒÔbyteΪµ¥Î».´ó¶àÊýÉ豸ÊÇ×Ö·ûÉ豸,ËûÃDz»ÐèÒª»º³å²¢ÇÒ²»ÒԹ̶¨¿é´óС½øÐвÙ×÷.
2)¿éÉ豸¶ÔÓÚIOÇëÇóÓжÔÓ¦µÄ»º³åÇø,ËùÒÔËûÃÇ¿ÉÒÔÑ¡ÔñÒÔʲô˳Ðò½øÐÐÏìÓ¦.×Ö·ûÉ豸ÎÞÐ뻺³åÇÒ±»Ö±½Ó¶Áд.
3)×Ö·ûÉ豸ֻÄܱ»Ë³Ðò¶Áд,¿éÉ豸¿ÉÒÔËæ»ú·ÃÎÊ.
2.block_device_operations½á¹¹Ìå
block_device_operationsÃèÊöÁ˶ԿéÉ豸µÄ²Ù×÷µÄ¼¯ºÏ
struct block_device_operations {
int (*open) (struct inode *, struct file *);/*´ò¿ª*/
int (*release) (struct inode *, struct file *);/*ÊÍ·Å*/
int (*ioctl) (struct inode *, struct file *, unsigned, unsigned long);
long (*unlocked_ioctl) (struct file *, unsigned, unsigned long);
long (*compat_ioctl) (struct file *, unsigned, unsigned long);
int (*direct_access) (struct block_device *, sector_t, unsigned long *);
int (*media_changed) (struct gendisk *);/*½éÖʱ»¸Ä±ä?*/
int (*revalidate_disk) (struct gendisk *);/*ʹ½éÖʸıä*/
int (*getgeo)(struct block_device *, struct hd_geometry *);/*Ìî³äÇý¶¯Æ÷ÐÅÏ¢*/
struct module *owner;/*Ä£¿éÓµÓÐÕß,Ò»°ã³õʼ»¯ÎªTHIS_MODULE*/
};
¹ØÓÚblock_device_operationsµÄ²Ù×÷:
&nb
Ïà¹ØÎĵµ£º
ÂÜÀòÊÀ½ç ¸úÄúÒ»Æð¿´ÊÀ½ç http://lolier.info/ ¹Ø¼ü×Ö ºìÆì,linux,ÏÂÔØ ºìÆìLinux×ÀÃæ°æ 6.0 SP3 µÄÓ¢ÎÄÃû³ÆÎªRed Flag Linux Desktop 6.0 SP3,²úÆ·´úºÅ(Code Name)ÊÇSuetJade¡£»ù±¾ÏµÍ³»ùÓÚºìÆì×ÀÃæ°æ 6.0 SP2¡£SuetJadeÊǺìÆìÈí¼þ¹«Ë¾Õë¶ÔÔºìÆìLinux×ÀÃæ°æ 6.0 SP2 ²úÆ·´æÔÚµÄÎÊÌâ,ÒÔ¼°µç×ÓÕþÎñ¡¢½ÌÓý¡¢SMBÓÈÆäÊÇOEMµÈÁì ......
ÎÒÃÇʹÓõÄLinuxºÍWindows¿É²»Ì«Ò»Ñù£¬ÓÃtopÃüÁîµÃ³öÀ´µÄ¿ÉÄܲ»ÊÇÕæÊµÊ¹ÓõÄÄڴ棬ÓÃfreeÃüÁîµÚ¶þÐвÅÊÇÏµÍ³ÕæÊµÊ¹ÓõÄÄÚ´æ¡£Èç¹û·¢ÏÖPHP-CGI°ÑÄãµÄÄÚ´æÕ¼ÂúÁ˿ɲ»Òª¾ª»ÅŶ¡£
Page cacheºÍbuffer cacheÒ»Ö±ÒÔÀ´ÊÇÁ½¸ö±È½ÏÈÝÒ×»ìÏýµÄ¸ÅÄÔÚÍøÉÏÒ²ÓкܶàÈËÔÚÕù±çºÍ²ÂÏëÕâÁ½¸öcacheµ½µ×ÓÐÊ²Ã´Çø±ð£¬ÌÖÂÛµ½×îºóҲһֱûÓÐÒ»¸ ......
Ï̳߳Ø
£º¼òµ¥µØËµ£¬Ï̳߳Ø
¾ÍÊÇÔ¤ÏÈ´´½¨ºÃÒ»ÅúỊ̈߳¬·½±ã¡¢¿ìËٵش¦ÀíÊÕµ½µÄÒµÎñ¡£±ÈÆð´«Í³µÄµ½À´Ò»¸öÈÎÎñ£¬¼´Ê±´´½¨Ò»¸öÏß³ÌÀ´´¦Àí£¬½ÚÊ¡ÁËÏ̵߳Ĵ´½¨ºÍ»ØÊյĿªÏú£¬ÏìÓ¦¸ü¿ì£¬Ð§ÂÊ
¸ü¸ß¡£
ÔÚlinuxÖУ¬Ê¹ÓõÄÊÇposixÏ߳̿⣬Ê×ÏȽéÉܼ¸¸ö³£Óõĺ¯Êý£º
1 Ï̵߳Ĵ´½¨ºÍÈ¡Ïûº¯Êý
pthread_create
´´½¨
pthread_join
......
ΪÁ˴nfsϵͳ,...ËùÒÔ ±ØÐëÔÚÄÚºËÒÆÖ²ºÃÍø¿¨Çý¶¯. ÎÒ¿¿.ÕÕÏÂÃæ×ö,Ò»´ÎÄܳɹ¦.
ÎÒµÄÖ÷°åÊÇÓÑÉÆÖ®±Û 2410. »·¾³ÊÇ vmware+ubuntu
LINUX2.6.14ÏÂCS8900µÄÒÆÖ²£¨Fs2410£©
1.
(ÎļþÔÚÎÒµÄÏÂÔØ°æÓÐ)
¿½±´Îļþcs8900.c cs8900.hµ½ linux2.6.14.1/drivers/net
½øÈëĿ¼cs8900
cp cs8900.c ../linux-2.6.14.1/dri ......
½øÈë/boot/grub
ÐÞ¸Ägrub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, ......