linuxÉ豸Çý¶¯³ÌÐò——¿éÉ豸Çý¶¯³ÌÐò
¿éÉ豸ÊÇÖ¸Êý¾Ý´«ÊäÒÔ¿éΪµ¥Î»µÄÉ豸£¬ÕâÀïÓ²¼þµÄ¿éÒ»°ã³ÆÎª“ÉÈÇø(sector)”£¬¿éÉ豸Çý¶¯³ÌÐòÌṩÁËÃæÏòÊý¾Ý¿éµÄÉ豸µÄ·ÃÎÊ£¬Ö§³ÖËæ»ú·ÃÎʵķ½Ê½£¬µ«²»¿ÉÓÉÓû§Ö±½Ó·ÃÎÊ¡£¹ØÓÚÉ豸½Úµã¡¢½ÚµãÎļþºÍÉ豸ÎļþÆäʵ¶¼Ö¸µÄÊÇÒ»¸ö¶«Î÷¡£
block_device_operations½á¹¹Ìå
ÔÚ¿éÉ豸Çý¶¯ÖУ¬ÓÐ1¸öÀàËÆÓÚ×Ö·ûÉ豸Çý¶¯ÖÐfile_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); //ioctl
int(*media_changed)(struct gendisk*); //½éÖʱ»¸Ä±ä£¿
int(*revalidate_disk)(struct gendisk*); //ʹ½éÖÊÓÐЧ
int(*getgeo)(struct block_device *, struct hd_geometry*);//Ìî³äÇý¶¯Æ÷ÐÅÏ¢
struct module *owner; //Ä£¿éÓµÓÐÕß
};
´ò¿ªºÍÊÍ·Å
int (*open)(struct inode *inode, struct file *filp);
int (*release)(struct inode *inode,struct file *filp);
Óë×Ö·ûÉ豸Çý¶¯ÀàËÆ£¬µ±É豸±»´ò¿ªºÍ¹Ø±Õʱ½«µ÷ÓÃËüÃÇ¡£
IO¿ØÖÆ
int (*ioctl)(struct inode *inode, struct file *filp, unsigned int cmd,unsigned long arg);
ÉÏÊöº¯ÊýÊÇioctl()ϵͳµ÷ÓõÄʵÏÖ£¬¿éÉ豸°üº¬´óÁ¿µÄ±ê×¼ÇëÇó£¬ÕâЩ±ê×¼ÇëÇóÓÉLinux¿éÉ豸²ã´¦Àí£¬Òò´Ë´ó²¿·Ö¿éÉ豸Çý¶¯µÄioctl()º¯ÊýÏ൱¶Ì¡£
gendisk½á¹¹Ìå
ÔÚLinuxÄÚºËÖУ¬Ê¹ÓÃgendisk£¨Í¨ÓôÅÅÌ£©½á¹¹ÌåÀ´±íʾ1¸ö¶ÀÁ¢µÄ´ÅÅÌÉ豸£¨»ò·ÖÇø£©
struct gendisk
{
int major; /* Ö÷É豸ºÅ*/
int first_minor; /*µÚ1¸ö´ÎÉ豸ºÅ*/
int minors; /* ×î´óµÄ´ÎÉ豸Êý£¬Èç¹û²»ÄÜ·ÖÇø£¬ÔòΪ1*/
char disk_name[32]; /* É豸Ãû³Æ*/
struct hd_struct **part; /* ´ÅÅÌÉϵķÖÇøÐÅÏ¢*/
struct block_device_operations *fops; /*¿éÉ豸²Ù×÷½á¹¹Ìå*/
struct request_queue *queue; /*ÇëÇó¶ÓÁÐ*/
void *private_data; /*˽ÓÐÊý¾Ý*/
sector_t capacity; /*ÉÈÇøÊý£¬512×Ö½ÚΪ1¸öÉÈÇø*/
…
}
Ôö¼Ógendisk
gendisk½á¹¹Ìå±»·ÖÅäÖ®ºó£¬ÏµÍ³»¹²»ÄÜʹÓÃÕâ´ÅÅÌ£¬ÐèÒªµ÷ÓÃÈçϺ¯ÊýÀ´×¢²áÕâ¸ö´ÅÅÌÉ豸¡£
void add_disk(struct gendisk *gd);
ÌØ±ðҪעÒâµÄÊǶÔadd_disk()µÄµ÷ÓñØÐë·¢ÉúÔÚÇý¶¯³ÌÐòµÄ³õʼ»¯¹¤×÷Íê³É²¢ÄÜÏìÓ¦´ÅÅ̵ÄÇëÇóÖ®ºó¡£
ÊÍ·Ågendisk
µ±²»ÔÙÐèÒªÒ»¸ö´ÅÅ
Ïà¹ØÎĵµ£º
¹²ÏíÎļþϵͳÎļþ´«Ê䣬ÊÇÍøÂçÕì¿ØÏîÄ¿ÖеÄÒ»¸öʵ¼Ê²Ù×÷¡£ËüÊÇΪÁ˵ÖÖÆÈëÇÖÕß½øÈëÄÚÍø¶øÌá³öµÄÒ»ÖÖ°²È«½â¾ö·½°¸¡£ÔÚʵ¼Ê´«Êä¹ý³ÌÖУ¬ÍØÆËͼÈçÏ£º
ʵ¼Ê»·¾³¾ùÔÚLinuxÖ÷»úϽøÐС£²ÉÓÃOCFS2Îļþ¼¯ÈºµÄ·½Ê½¡£ÍⲿÖ÷»úAºÍÄÚ²¿Ö÷»úBÖ®¼äµÄͨѶ£¬¾ùͨ¹ý¹²Ïí´æ´¢¿Õ¼äC½øÐнÓÊܺͷ¢ËÍ¡£ÕâÑù¼´Ê¹ÈëÇÖÕßÄÃÏÂÍⲿÖ÷»úA£¬Ò²ÎÞ·¨ÉøÍ¸ÄÚ ......
Ò»¡¢Óû§¹ÜÀí»ù´¡
ÔÚLinux»·¾³Ï¶ÔÓû§µÄ¹ÜÀíÓжàÖÖ·½Ê½£¬°üÀ¨Óñ༹¤¾ßVi¡¢emacsµÈ¶Ô/etc/passwd½øÐвÙ×÷»òÖ±½ÓʹÓÃ
addusr¡¢deleusrµÈÓû§¹ÜÀíÃüÁîÒÔ¼°Ê¹ÓÃpwconvÃüÁîʹ/etc/passwdÓëshadowÎļþ±£³ÖÒ»Ö¡£ÎÒÃÇÏÈÀ´¿´¿´LinuxÏÂÓÃ
»§¹ÜÀíµÄ³£ÓòÙ×÷¶¼×öÁËЩʲô°É¡£
1¡¢Ôö¼ÓÓû§
Ôö¼ÓÓû§ÓÐÈý¸ö¹ý³Ì:
(1) ÔÚ/etc ......
from£ºhttp://www.ibm.com/developerworks/cn/linux/l-usb/index1.html
¼¶±ð£º ³õ¼¶
ÕÔÃ÷ (carl__zhao@163.com), ÁªÏëÈí¼þÉè¼ÆÖÐÐÄǶÈëʽÑз¢´¦ÏµÍ³Éè¼Æ¹¤³Ìʦ
2003 Äê 7 ÔÂ 01 ÈÕ
USBÉ豸ԽÀ´Ô½¶à£¬¶øLinuxÔÚÓ²¼þÅäÖÃÉÏÈÔȻûÓÐ×öµ½ÍêÈ«¼´²å¼´Ó㬶ÔÓÚLinuxÔõÑùÅäÖúÍʹÓÃËûÃÇ£¬Ò²Ô½À´Ô½³ÉΪÀ§ÈÅÎÒÃǵÄÒ»´óÎÊÌâ¡£±¾ÎÄ× ......
MySQL :: Linux ÏÂ×Ô¶¯±¸·ÝÊý¾Ý¿âµÄ shell ½Å±¾
Linux ·þÎñÆ÷ÉϵijÌÐòÿÌì¶¼ÔÚ¸üРMySQL Êý¾Ý¿â£¬ÓÚÊǾÍÏëÆðдһ¸ö shell ½Å±¾£¬½áºÏ crontab£¬¶¨Ê±±¸·ÝÊý¾Ý¿â¡£Æäʵ·Ç³£¼òµ¥£¬Ö÷Òª¾ÍÊÇʹÓà MySQL ×Ô´øµÄ mysqldump ÃüÁî¡£
½Å±¾ÄÚÈÝÈçÏ£º
#!/bin/sh
# File: /home/mysql/backup.sh
# Database info
......
Ò»¡¢BootLoaderµÄ¸ÅÄî
BootLoaderÊÇϵͳ¼ÓµçÆôÔËÐеĵÚÒ»¶ÎÈí¼þ´úÂ룮»ØÒäÒ»ÏÂPCµÄÌåϵ½á¹¹ÎÒÃÇ¿ÉÒÔÖªµÀ£¬PC»úÖеÄÒýµ¼¼ÓÔØ³ÌÐòÓÉBIOS£¨Æä±¾ÖʾÍÊÇÒ»¶Î¹Ì¼þ³ÌÐò£©ºÍλÓÚÓ²ÅÌMBRÖеÄÒýµ¼³ÌÐòÒ»Æð×é³É¡£BIOSÔÚÍê³ÉÓ²¼þ¼ì²âºÍ×ÊÔ´·ÖÅäºó£¬½«Ó²ÅÌMBRÖеÄÒýµ¼³ÌÐò¶Áµ½ÏµÍ³µÄRAMÖУ¬È»ºó½«¿ØÖÆÈ¨½»¸øÒýµ¼³ÌÐò¡£Òý ......