×ðÁú¿­Ê±¹ÙÍøµÇ¼

LinuxÄÚºËÔ´´úÂë´æ·ÅλÖÃÏê½â

LinuxÄÚºËÔ´´úÂë´æ·ÅλÖÃÏê½â

LinuxÄÚºËÔ´´úÂëÊÇLinux²Ù×÷ϵͳµÄ½¹µã²¿·Ö£¬Ëü°üÀ¨Á˲Ù×÷ϵͳµÄÖÖÖÖ¹¦Ð§µÄʵÏÖ´úÂë¡£ÒªÏàʶLinuxÄÚºËÔ´´úÂëµÄ´æ·ÅλÖã¬ÎÒÃÇÊ×ÏÈÐèÒªÏàʶLinuxÄں˵Ä×éÖ¯½á¹¹¡£

LinuxÄÚºËÔ´´úÂëͨ³£´æ·ÅÔÚ /usr/src/linux »ò /usr/src/linux- Ŀ¼Ï¡£ÔÚÕâ¸öĿ¼ÖУ¬°üÀ¨Á˸»ºñµÄ×ÓĿ¼ºÍÖÖÖÖÔ´´úÂëÎļþ¡£

arch Ŀ¼£ºÕâ¸öĿ¼Ï´æ·ÅÁËÓëÓ²¼þ¼Ü¹¹Ïà¹ØµÄ´úÂ롣ÿ¸öÖ§³ÖµÄÓ²¼þ¼Ü¹¹¶¼»áÓÐÒ»¸ö¶ÔÓ¦µÄ×ÓĿ¼£¬ºÃ±Èarch/x86ÓÃÓÚ´æ·Åx86¼Ü¹¹µÄ´úÂë¡£

block Ŀ¼£ºÕâ¸öĿ¼´æ·ÅÁË¿é×°±¸Çý¶¯Ïà¹ØµÄ´úÂ룬ÈÏÕæÖÎÀí¿é×°±¸µÄ¶Áд²Ù×÷¡£

fs Ŀ¼£ºÕâ¸öĿ¼°üÀ¨ÁËÎļþϵͳÏà¹ØµÄ´úÂ룬°üÀ¨ÖÖÖÖÎļþϵͳµÄʵÏÖ£¬ºÃ±ÈExt4¡¢XFS¡¢BtrfsµÈ¡£

include Ŀ¼£ºÕâ¸öĿ¼°üÀ¨ÁËÖÖÖÖÍ·Îļþ£¬½ç˵ÁËÄÚºËÖÐʹÓõÄÊý¾Ý½á¹¹¡¢ºê½ç˵µÈ¡£

kernel Ŀ¼£ºÕâ¸öĿ¼°üÀ¨ÁËÄں˵Ľ¹µã´úÂ룬ÀýÈçÀú³ÌÖÎÀí¡¢ÄÚ´æÖÎÀí¡¢µ÷ÀíÆ÷µÈ¡£

³ýÁËÉÏÊöĿ¼Í⣬ÉÐÓÐÐí¶àÆäËûĿ¼ºÍÎļþ£¬ÈçdriversÓÃÓÚ´æ·Å×°±¸Çý¶¯´úÂ룬initÓÃÓÚ´æ·ÅÄں˳õʼ»¯Ïà¹ØµÄ´úÂ룬mmÓÃÓÚ´æ·ÅÄÚ´æÖÎÀíÏà¹ØµÄ´úÂëµÈµÈ¡£

ÏÂÃ棬ÎÒÃÇÒÔÉó²éÀú³ÌÖÎÀíÏà¹ØµÄ´úÂëΪÀý£¬¸ø³öÏêϸµÄ´úÂëʾÀý£º

Àú³ÌÖÎÀíÏà¹ØµÄ´úÂëÒ»Ñùƽ³£´æ·ÅÔÚ kernel Ŀ¼Ï嵀 pid.c ºÍ sched.c µÈÎļþÖС£ÒÔÏÂÊÇÒ»¸ö¼òÆÓµÄʾÀý£º

pid.c:

#include <linux/pid.h>
#include <linux/sched.h>

struct pid *find_get_pid(pid_t nr)
{
    struct pid *pid;

    rcu_read_lock();
    pid = __find_get_pid(nr);
    if (pid)
        get_pid(pid);
    rcu_read_unlock();

    return pid;
}

µÇ¼ºó¸´ÖÆ

sched.c:

#include <linux/sched.h>
#include <linux/sched/signal.h>

void wake_up_process(struct task_struct *p)
{
    if (p->state == TASK_UNINTERRUPTIBLE) {
        set_task_state(p, TASK_RUNNING);
    }
}

µÇ¼ºó¸´ÖÆ

ÕâÊÇÒ»¸ö¼òÆÓµÄʾÀý£¬Õ¹Ê¾ÁËÔÚÄÚºËÔ´´úÂëÖÐÔõÑùʵÏÖÑ°ÕҺͽÐÐÑÀú³ÌµÄ¹¦Ð§¡£ËäÈ»£¬ÏÖʵµÄ´úÂëÒªÖØ´óµÃ¶à£¬Éæ¼°µ½Ðí¶àϸ½ÚºÍ½çÏßÇéÐΡ£

×ÜÖ®£¬LinuxÄÚºËÔ´´úÂë´æ·ÅλÖÃÏê½â£¬Ï£ÍûÉÏÊöÚ¹ÊͺÍʾÀýÄܹ»×ÊÖú¶ÁÕ߸üºÃµØÃ÷È·LinuxÄں˵Ä×éÖ¯½á¹¹ºÍ´úÂë´æ·ÅλÖá£ÒªÉîÈëÏàʶÄÚºËÔ´´úÂ룬ÐèÒª×ÐϸÑо¿ÏêϸµÄĿ¼ºÍÎļþ£¬ÒÔ¼°ËüÃÇÖ®¼äµÄ¹ØϵºÍ½»»¥¡£

ÒÔÉϾÍÊÇLinuxÄÚºËÔ´´úÂë´æ·ÅλÖÃÏê½âµÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡

ÃâÔð˵Ã÷£ºÒÔÉÏչʾÄÚÈÝȪԴÓÚÏàÖúýÌå¡¢ÆóÒµ»ú¹¹¡¢ÍøÓÑÌṩ»òÍøÂçÍøÂçÕûÀí£¬°æȨÕùÒéÓë±¾Õ¾Î޹أ¬ÎÄÕÂÉæ¼°¿´·¨Óë¿´·¨²»´ú±í×ðÁú¿­Ê±¹ÙÍøµÇ¼ÂËÓÍ»úÍø¹Ù·½Ì¬¶È£¬Çë¶ÁÕß½ö×ö²Î¿¼¡£±¾ÎĽӴýתÔØ£¬×ªÔØÇë˵Ã÷À´ÓÉ¡£ÈôÄúÒÔΪ±¾ÎÄÇÖÕ¼ÁËÄúµÄ°æȨÐÅÏ¢£¬»òÄú·¢Ã÷¸ÃÄÚÈÝÓÐÈκÎÉæ¼°ÓÐÎ¥¹«µÂ¡¢Ã°·¸Ö´·¨µÈÎ¥·¨ÐÅÏ¢£¬ÇëÄúÁ¬Ã¦ÁªÏµ×ðÁú¿­Ê±¹ÙÍøµÇ¼ʵʱÐÞÕý»òɾ³ý¡£

Ïà¹ØÐÂÎÅ

ÁªÏµ×ðÁú¿­Ê±¹ÙÍøµÇ¼

18523999891

¿É΢ÐÅÔÚÏß×Éѯ

ÊÂÇéʱ¼ä£ºÖÜÒ»ÖÁÖÜÎ壬9:30-18:30£¬½ÚãåÈÕÐÝÏ¢

QR code
ÍøÕ¾µØͼ