ÖÆ×÷¿ÉÒÆ¶¯µÄlinuxϵͳ(Ubuntu)
1¡¢¹âÅÌÆô¶¯£¬°²×°¸´ÖƵ½Òƶ¯Ó²ÅÌ£¬½«grub°²×°µ½dev/sda¡£
2¡¢¸´ÖÆÍêºóÖØÆô£¬¹âÅÌÆô¶¯£¬°²×°Æô¶¯½çÃæÊäÈërescue£¬½øÈë¼±¾Èģʽ£¬Ñ¡Ôñ¹ÒÔØ·ÖÇøÊ±£¬Ñ¡ÔñϵͳËùÔÚÓ²Å̺ͷÖÇø¡£
3¡¢ctrl-Alt-F2£¬´ò¿ªÐ´°¿Ú¡£
CODE:mount -tproc proc /target/proc
chroot /target
su
4¡¢nano /etc/mkinitramfs/modules
¼ÓÈ룺ehci-hcd
CODE:usb-storage
scsi_mod
sd_mod
5¡¢nano /etc/mkinitramfs/initramfs.conf
ÔÚÇ°Ãæ¼ÓÉÏ£ºWAIT=12
6¡¢mkinitramfs -o /boot/initrd.img-2.6-…… /lib/modules/2.6……
7¡¢nano /boot/grub/menu.lstÐÞ¸Ämenu.lst:root (?.?)¸ÄΪϵͳËùÔÚ·ÖÇø¡£
8¡¢ÖØÆð£¬½øÈëBIOS,Ñ¡Ôñusb-hddÆô¶¯£»Ã»ÓÐÕâÏîµÄ»°£¬ÔÚdisk sequenceÀïµ÷Õû´ÅÅÌÐòÁУ¬
½«usbÓ²Å̵÷µ½±¾µØÓ²ÅÌǰ£¬ÈõçÄÔ´ÓusbÆô¶¯£»Èç¹ûrpÌ«²î£¬Ö÷°åµÄdisk sequenceÀïûÓÐ
ÈϳöÒÆ¶¯Ó²ÅÌ£¬Ö»ÓÐÖÆ×÷grubÈíÅÌ£¬È»ºóÓÃÐéÄâÈíÅÌÆô¶¯¡£³É¹¦´ÓÒÆ¶¯Ó²ÅÌÆô¶¯ºó£¬¼ÌÐø°²
×°¹ý³Ì£¬Ö±µ½Íê³É£¬½øÈëϵͳ¡£
9¡¢¾¹ýÊý´Î²âÊÔ£¬ÏµÍ³µÄÒÆ¶¯ÐÔÄܷdz£ºÃ£¬ÔÚ²»Í¬µçÄÔÉÏÕý³£Ê¹Óã¬Ö»ÊÇ¿ªÊ¼²»ÄÜÆô¶¯
xwindows£¬Ê¹ÓÃÃüÁ
CODE:sudo dpkg-reconfigure -phigh ......
¹þÏ£±í£¨Hashtable£©ÓÖ³ÆÎª“É¢ÖÔ£¬HashtableÊÇ»á¸ù¾ÝË÷Òý¼üµÄ¹þÏ£³ÌÐò´úÂë×éÖ¯³ÉµÄË÷Òý¼ü£¨Key£©ºÍÖµ£¨Value£©Åä¶ÔµÄ¼¯ºÏ¡£Hashtable ¶ÔÏóÊÇÓɰüº¬¼¯ºÏÖÐÔªËØµÄ¹þϣͰ£¨Bucket£©Ëù×é³ÉµÄ¡£¶øBucketÊÇHashtableÄÚÔªËØµÄÐéÄâ×ÓȺ×飬¿ÉÒÔÈô󲿷ּ¯ºÏÖеÄËÑѰºÍ»ñÈ¡¹¤×÷¸üÈÝÒס¢¸ü¿ìËÙ¡£
¹þÏ£º¯Êý£¨Hash Function£©Îª¸ù¾ÝË÷Òý¼üÀ´·µ»ØÊýÖµ¹þÏ£³ÌÐò´úÂëµÄËã·¨¡£Ë÷Òý¼ü£¨Key£©ÊDZ»´æ´¢¶ÔÏóµÄijЩÊôÐÔÖµ£¨Value£©¡£µ±¶ÔÏó¼ÓÈëÖÁ Hashtableʱ£¬Ëü´æ´¢ÔÚÓë¶ÔÏó¹þÏ£³ÌÐò´úÂëÏà·ûµÄ¹þÏ£³ÌÐò´úÂëÏà¹ØµÄBucketÖС£µ±ÔÚHashtableÄÚËÑѰֵʱ£¬¹þÏ£³ÌÐò´úÂë»áΪ¸ÃÖµ²úÉú£¬²¢ÇÒ»áËÑѰÓë¸Ã¹þÏ£³ÌÐò´úÂëÏà¹ØµÄBucket¡£ÀýÈ磬studentºÍteacher»á·ÅÔÚ²»Í¬µÄBucketÖУ¬¶ødogºÍgod»á·ÅÔÚÏàͬµÄ BucketÖС£ËùÒÔµ±Ë÷Òý¼üÊÇΨһ´ÓHashtable»ñÈ¡ÔªËØµÄÐÔÄÜʱ±íÏÖ»á½ÏºÃ¡£HashµÄËÄ´óÓŵãÈçÏÂËùʾ¡£
ÊÂÏȲ»ÐèÒªÅÅÐò¡£
ËÑѰËÙ¶ÈÓëÊý¾Ý¶àÉÙÎ޹ء£
Êý×ÖÇ©ÃûµÄÃÜÂë¼¼Êõ±£ÃÜÐÔ£¨Security£©¸ß¡£
¿É×öÊý¾ÝѹËõ£¨Data Compression£©£¬ÒÔ½ÚÊ¡¿Õ¼ä¡£
¶Á¹ýLinuxÄÚºËÔ´ÂëµÄÈË¿ÉÄܶ¼»á·¢ÏÖ£¬ÆäÖв¢Ã»ÓÐÌ«¶à¸´ÔÓµÄÊý¾Ý½á¹¹£¬×÷Ϊ»ù´¡Êý¾Ý½á¹¹µÄË«ÏòÁ´±í£¨list£© ......
List_Head
²Ù×÷ϵͳÄں˾³£ÐèҪά»¤Êý¾Ý½á¹¹¡£ÄÚºËÓбê×¼µÄÑ»·Á´±í¡¢Ë«ÏòÁ´±íµÄʵÏÖ¡£ÔÚ<Linux/list.h>ÎļþÖж¨ÒåÁËÒ»¸ölist_headÀàÐͼòµ¥½á¹¹£º
struct list_head {
struct list_head *next, *prev;
};
ͨÓÃÁ´±íµÄ³£ÓÃÓÃ;Êǽ«Ä³Ò»¸öÊý¾Ý½á¹¹±¾Éí´®³ÉÁ´±í£¬»ò½«Ä³Ð©Á´±íÓëÒ»¸öÊý¾Ý½á¹¹ÁªÏµÆðÀ´£¬ÕâÁ½ÖÖÇé¿öʵÖÊÉ϶¼ÊÇÓɽṹlist_head×é³ÉÁ´±í£¬Ö»ÊÇlist_headËù“±³¸º”µÄ¸ºÔز»Ò»Ñù¡£ÏÂÃæ·Ö±ð¾ÙÀý˵Ã÷ÕâÁ½ÖÖÓÃ;¡£
ÒÔÏÂʾÀý˵Ã÷ÁËÈçºÎ½«Ä³Ò»¸öÊý¾Ý½á¹¹±¾Éí´®³ÉÁ´±í£¬²¢¶ÔÁ´±í½øÐвÙ×÷£¬Í¬Ê±»¹ËµÃ÷list_head½á¹¹µÄʵÏÖÓëʹÓá£
ʾÀý£º½«Ä³Ò»¸öÊý¾Ý½á¹¹±¾Éí´®³ÉÁ´±í¡£
£¨1£©¼ÓÈëlist_head½á¹¹³ÉÔ±¡£
¼ÙÉèÓÐÒ»¸öexample_struct½á¹¹ÐèÁ¬½Ó³ÉÁ´±í£¬Òò¶øÔÚÆä½á¹¹ÀïÃæ¼ÓÉÏlist_head³ÉÔ±£¬¾Í×é³ÉÁ˽ṹÁ´±í£¬ÈçÏ£º
struct example_struct {
struct list_head list;
int priority;
……//ÆäËû³ÉÔ±
};
ÔÚexample_struct½á¹¹ÖеÄlist³ÉÔ±£¬ÓÃÀ´½«example_struct½á¹¹´®³ÉÁ´±í¡£¿ÉÀí½âΪlist_head“±³¸º”µÄ¸ºÔØÊÇexample_struct½á¹¹¡£
£¨2£© ......
Linux ÄÚºËÖвÉÓÿɼÓÔØµÄÄ£¿é»¯Éè¼Æ£¨LKMs£¬Loadable Kernel
Modules£©£¬Ò»°ãÇé¿öϱàÒëµÄLinux
ÄÚºËÊÇÖ§³Ö¿É²åÈëʽģ¿éµÄ£¬Ò²¾ÍÊǽ«×î»ù±¾µÄºËÐÄ´úÂë±àÒëÔÚÄÚºËÖУ¬ÆäËûµÄ´úÂë¿ÉÒÔÑ¡ÔñÔÚÄÚºËÖУ¬»òÕß±àÒëΪÄں˵ÄÄ£¿éÎļþ¡£³£¼ûµÄÇý¶¯³ÌÐòÒ²ÊÇ×÷ΪÄÚºË
Ä£¿é¶¯Ì¬¼ÓÔØµÄ¡£
Ä£¿éÏà¹ØÃüÁî
lsmod Áгöµ±Ç°ÏµÍ³¼ÓÔØµÄÄ£¿é
rmmod ½«µ±Ç°Ä£¿éÐ¶ÔØ
insmod¡¢modprobe
ÓÃÓÚ¼ÓÔØµ±Ç°Ä£¿é¡£µ«insmod²»»á×Ô¶¯½â¾öÒÀ´æ¹ØÏµ£¬¶ømodprobe¿ÉÒÔ¸ù¾ÝÄ£¿é¼äµÄÒÀ´æ¹ØÏµÒÔ¼° /etc/modules.conf
ÎļþÖеÄÄÚÈÝ×Ô¶¯²åÈëÄ£¿é
mknod ´´½¨Ïà¹ØÄ£¿é
Linux ϵͳµÄÉ豸Îļþ·ÖΪÈýÀࣺ¿éÉ豸Îļþ¡¢×Ö·ûÉ豸ÎļþºÍÍøÂçÉ豸Îļþ¡£
·
¿éÉ豸Îļþͨ³£Ö¸Ò»Ð©ÐèÒªÒԿ飨Èç512 ×Ö½Ú£©µÄ·½Ê½Ð´ÈëµÄÉ豸£¬ÈçIDE Ó²ÅÌ¡¢
SCSIÓ²ÅÌ¡¢¹âÇýµÈ¡£
·
×Ö·ûÐÍÉ豸Îļþͨ³£Ö¸¿ÉÒÔÖ±½Ó¶Áд£¬Ã»Óлº³åÇøµÄÉ豸£¬Èç²¢¿Ú¡¢ÐéÄâ¿ØÖÆÌ¨µÈ¡£
· ÍøÂçÉ豸Îļþͨ³£ÊÇÖ¸ÍøÂçÉ豸·ÃÎʵÄBSD
socket½Ó¿Ú£¬ÈçÍø¿¨µÈ¡£
É豸ºÅ
É豸ºÅÊÇÒ»¸öÊý×Ö£¬ËüÊÇÉ豸µÄ±êÖ¾¡£¾ÍÈçÇ°ÃæËùÊö£¬Ò»¸öÉ豸Îļþ£¨Ò²¾ÍÊÇÉ豸½Úµã£©
¿ÉÒÔͨ¹ý
mknodÃüÁîÀ´´´½¨£¬ÆäÖÐÖ¸¶¨ÁËÖ÷É豸ºÅºÍ´ÎÉ豸ºÅ¡£Ö÷É豸ºÅ±íÃ÷Ä³Ò ......
ÔÚLinux 2.6ÄÚºËÖУ¬devfs±»ÈÏΪÊǹýʱµÄ·½·¨£¬²¢×îÖÕ±»Åׯú£¬udevÈ¡´úÁËËü¡£DevfsµÄÒ»¸öºÜÖØÒªµÄÌØµã¾ÍÊÇ¿ÉÒÔ¶¯Ì¬´´½¨É豸½áµã¡£ÄÇÎÒÃÇÏÖÔÚÈçºÎͨ¹ýudevºÍsysÎļþϵͳ¶¯Ì¬´´½¨É豸½áµãÄØ£¿
ÓÃudevÔÚ/dev/϶¯Ì¬Éú³ÉÉ豸Îļþ£¬ÕâÑùÓû§¾Í²»ÓÃÊÖ¹¤µ÷ÓÃmknodÁË¡£
ÀûÓõÄkernel API£º
class_create : ´´½¨class
class_destroy : Ïú»Ùclass
class_device_create : ´´½¨device
class_device_destroy : Ïú»Ùdevice
×¢Ò⣬ÕâЩAPIÊÇ2.6.13¿ªÊ¼Óеģ¬ÔÚ2.6.13֮ǰ£¬Ó¦µ±Ê¹ÓÃ
class_simple_create
class_simple_destroy
class_simple_device_add
class_simple_device_remove
ÕâһϵÁУ¬Ò²¾ÍÊÇldd3µÚ14ÕÂÃèÊöµÄ¡£ Ïê¼û:
https:/ n.net/Articles/128644/
Output:
===========================================
[root@localho ......
ºÍÆäËû²Ù×÷ϵͳһÑù£¬Linux°üº¬½ø³Ìµ÷¶ÈÓë½ø³Ì¼äͨÐÅ(IPC)¡¢ÄÚ´æ¹ÜÀí(MMU)¡¢ÐéÄâÎļþϵͳ(VFS)¡¢ÍøÂç½Ó¿ÚµÈ£¬ÏÂͼ¸ø³öÁËLinuxµÄ×é³É¼°Æä¹ØÏµ£º
LinuxÄÚºËÔ´´úÂë°üÀ¨¶à¸öĿ¼£º
¡¡¡¡£¨1£©arch£º°üÀ¨Ó²¼þÌØ¶¨µÄÄں˴úÂ룬Èçarm¡¢mips¡¢i386µÈ£»
¡¡¡¡£¨2£©drivers£º°üº¬Ó²¼þÇý¶¯´úÂ룬Èçchar¡¢cdrom¡¢scsi¡¢mtdµÈ£»
¡¡¡¡£¨3£©include£ºÍ¨ÓÃÍ·Îļþ¼°Õë¶Ô²»Í¬Æ½Ì¨Ìض¨µÄÍ·Îļþ£¬Èçasm-i386¡¢asm-armµÈ£»
¡¡¡¡£¨4£©init£ºÄں˳õʼ»¯´úÂ룻
¡¡¡¡£¨5£©ipc£º½ø³Ì¼äͨÐÅ´úÂ룻
¡¡¡¡£¨6£©kernel£ºÄں˺ËÐÄ´úÂ룻
¡¡¡¡£¨7£©mm£ºÄÚ´æ¹ÜÀí´úÂ룻
¡¡¡¡£¨8£©net£ºÓëÍøÂçÐÒéÕ»Ïà¹ØµÄ´úÂ룬Èçipv4¡¢ipv6¡¢ethernetµÈ£»
¡¡¡¡£¨9£©fs£ºÎļþϵͳÏà¹Ø´úÂ룬Èçnfs¡¢vfatµÈ£»
¡¡¡¡£¨10£©lib£º¿âÎļþ£¬ÓëÆ½Ì¨Î޹صÄstrlen¡¢strcpyµÈ£¬ÈçÔÚstring.cÖаüº¬£º
char * strcpy(char * dest,const char *src)
{
¡¡¡¡¡¡ char *tmp = dest;
¡¡¡¡
¡¡¡¡¡¡ while ((*dest++ = *src++) != '')
¡¡¡¡¡¡¡¡¡¡¡¡¡¡/* nothing */;
¡¡¡¡¡¡ return tmp;
}
£¨11£©Documentation£ºÎĵµ¡£
¡¡¡¡ ÔÚLinuxÄں˵ÄʵÏÖÖУ¬ÓÐһЩÊý¾Ý½á¹ ......