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

Linux kernel development Chapter2 ½ø³Ì¹ÜÀí

1 ½ø³Ì¹ÜÀíÏà¹Ø´úÂë
  1.1 thread_info½á¹¹£¬ÔÚÎļþ<asm/thread_info.h>Öж¨Òå
      struct thread_info {
           struct task_struct *task;
           struct exec_domain *exec_domain£»
           unsigned long flags;
           __u32 cpu;
           __s32 preempt_count;
           mm_segment_t addr_limit;
           u8 supervisor_stack[0];
        };
        ÿ¸öÈÎÎñµÄthread_info½á¹¹ÔÚÆäÄÚºËÕ»¶¥¶Ë·ÖÅ䣬ÆätaskÓòÖ¸Ïò¸ÃÈÎÎñµÄʼþtask_struct½á¹¹¡£
   1.2 ÈÎÎñ¶ÓÁУ¨task list£©
      Ë«ÏòÑ­»·Á´±í£¬Á´±íÿһÏî¶¼ÊÇÒ»¸ötask_struct(¶¨ÒåÔÚinclude/linux/sched.hÖÐ),¸Ã½ø³ÌÃèÊö·û°üº¬ÁËÒ»¸ö½ö½ø³ÌµÄËùÓÐÐÅÏ¢¡£
   1.3 slab
       linuxͨ¹ýslab»úÖÆ·ÖÅätask_struct½á¹¹£¬ÒÔ´ïµ½¶ÔÏó¸´Óúͻº´æ×ÅÉ«µÄÄ¿µÄ¡£
   1.4 pid
       linuxͨ¹ýpid£¨pid_tÀàÐÍ,integer)À´±êʾÿһ¸öÈÎÎñ½ø³Ì¡£ÎªÁËÓëÀϰ汾unixºÍlinux¼æÈÝ£¬pid×î´óֵΪ32767.Èç¹ûÐèÒª¸ü¶à½ø³Ì£¬¿ÉÒÔͨ¹ý
ÐÞ¸Ä/proc/sys/kernel/pid_maxÀ´Ìá¸ßÉÏÏÞ¡£
   1.5 currentºê
        currentºêÓÃÓÚ²éÕÒµ±Ç°ÕýÔÚÔËÐнø³ÌµÄ½ø³ÌÃèÊö·û¡£²»Í¬µÄÓ²¼þÌåϵ½á¹¹µÄʵÏÖ²»Í¬¡£
        ÔÚx86¼Ü¹¹ÖУ¬¼Ä´æÆ÷²»¶à£¬²»ÄÜʹÓÃרÃŵļĴæÆ÷Ö¸Ïòµ±Ç°½ø³ÌµÄtask_struct.ËüµÄ·½Ê½ÊÇͨ¹ýÔÚÄÚºËÕ»¶¥¶Ë´´½¨thread_info½á¹¹£¬¼ä½ÓµÄ
²éÕÒtask_struct½á¹¹£º
         £¨1£©Í¨¹ýÆÁ±ÎÕ»Ö¸Õ루esp£©µÄºó13¸öÓÐЧλ»ñµÃthread_info½á¹¹£¬ÔÚcurrent_thread_info()º¯ÊýÍê³É£º
        &n


Ïà¹ØÎĵµ£º

Linux Shell

 ShellÊÇϵͳµÄÓû§½çÃæ£¬ÌṩÁËÓû§ÓëÄں˽øÐн»»¥²Ù×÷µÄÒ»ÖÖ½Ó¿Ú¡£Ëü½ÓÊÕÓû§ÊäÈëµÄÃüÁî²¢°ÑËüËÍÈëÄÚºËÈ¥Ö´ÐС£
¡¡¡¡Êµ¼ÊÉÏShellÊÇÒ»¸öÃüÁî½âÊÍÆ÷£¬Ëü½âÊÍÓÉÓû§ÊäÈëµÄÃüÁî²¢ÇÒ°ÑËüÃÇË͵½Äںˡ£²»½öÈç´Ë£¬ShellÓÐ×Ô¼ºµÄ±à³ÌÓïÑÔÓÃÓÚ¶ÔÃüÁîµÄ±à¼­£¬ËüÔÊÐíÓû§±àдÓÉshellÃüÁî×é³ÉµÄ³ÌÐò¡£Shell±à³ÌÓïÑÔ¾ßÓÐÆÕͨ±à³ÌÓ ......

LinuxÀï³£¼ûÊõÓïµÄËõд

תÀ´µÄ£¬Ã»Ê¿ÉÒÔ¿´¿´
bin = BINaries
/dev = DEVices
/etc = ETCetera
/lib = LIBrary
/proc = PROCesses
/sbin = Superuser BINaries
/tmp = TeMPorary
/usr = Unix Shared Resources
/var = VARiable ?
FIFO = First In, First Out
GRUB = GRand Unified Bootloader
IFS = Internal Field Seperators
LILO ......

LinuxÄÚ´æ¹ÜÀíÖ®slab·ÖÅäÆ÷·ÖÎö(Ðø¶þ)

 Î壺kmem_cache_create£¨£©·ÖÎö
ÎÒÃÇÒÔÒ»¸öÀý×ÓÀ´¸ú×Ù·ÖÎöÒ»ÏÂslabµÄ»úÖÆ£º
ÏÂÃæÊÇÒ»¸ö²âÊÔÄ£¿éµÄ´úÂ룺
#include <linux/config.h>
#include <linux/module.h>
#include <linux/slab.h>
 
MODULE_LICENSE("GPL");
MODULE_AUTHOR("ericxiao <xgr178@163.com>");
MODULE_DESCRI ......

linuxϵͳÏÂrpm°üµÄ°²×°¡¢É¾³ý¡¢Ð§Ñé¡¢²éѯ

 µãÆÀ£º°²×°Èí¼þ°ü rpm  -i °üÈ«Ãû ɾ³ý rpm -e name(²»ÊǰüÃû) ²ÎÊý -ivh »ñµÃÒ»¸öÏêϸµÄ°²×°½ø³Ì --nodeps ºöÂÔÒÀÀµ¹ØÏµ --force Ç¿ÖÆ°²×° -U °üÃû:Éý¼¶°²×° -F ¸üв»¹ÜÊÇʲôֱ½Ó¸²¸Ç --replacepkgsÕâÑù RPM ½«ºöÂԸôíÎóÐÅÏ¢ -vih --repla
ÄÚÈÝÀ´×Ô: ½Å±¾Ö®¼Ò www.jb51.net
°²×°Èí¼þ°ü
rpm  -i °üÈ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ