linuxÄÚºË(2.6)ÖеÄ˫ѻ·Á´±ídzÎö
Linux 2.6ÄÚºËÁ´±íÊý¾Ý½á¹¹µÄʵÏÖ
ÔÚ¼ÆËã»ú¿ÆÑ§ÖУ¬Á´±íÊǷdz£Í¨ÓõÄÊý¾Ý½á¹¹£¬¹á´©ÓÚÕû¸ölinuxµÄÄںˡ£ÔÚlinuxÄÚºËÖУ¬Á´±íͨ³£ÒÔ
˫ѻ·Á´±íµÄ·½Ê½³öÏÖ¡£ËùÓÐÁ´±íµÄ´úÂëÔÚinclude/linux/list.hÎļþÖС£
¶¨ÒåÈçÏ£º
struct list_head {
struct list_head *next, *prev;
};
ÕâÀïµÄlist_headûÓÐÊý¾ÝÓò¡£ÔÚLinuxÄÚºËÁ´±íÖУ¬²»ÊÇÔÚÁ´±í½á¹¹Öаüº¬Êý¾Ý£¬¶øÊÇÔÚÊý¾Ý½á¹¹Öаüº¬Á´±í¡£
list.h»¹¶¨ÒåÁËÐí¶àʹÓõĺêºÍÄÚÁªº¯Êý£¬ÏÂÃæ½éÉܼ¸¸öµäÐ͵ģº
#define LIST_HEAD_INIT(name) { &(name), &(name) }
#define LIST_HEAD(name) \
struct list_head name = LIST_HEAD_INIT(name)
static inline void INIT_LIST_HEAD(struct list_head *list)
{
list->next = list;
list->prev = list;
}
ÔÚlinuxµÄºê¶¨ÒåÖУ¬Ê±³£Óõ½do{}while(0)£¬ÕâÊÇΪÁË·½±ãÔٺ궨ÒåÖаüº¬¶àÐдúÂ룬
¹ØÓÚÕâ¸öµÄ˵Ã÷ÔÚÍøÉÏ¿ÉÒÔÕÒµ½ºÜ¶àÏêϸµÄ½éÉÜ¡£
ÔÚºêINIT_LIST_HEADÖУ¬½«Ëü³õʼ»¯ÎªÇ°ºó¶¼Ö¸Ïò×Ô¼º
ÔÚlinuxÄں˵ÄÁ´±íÖУ¬Ò»¸ö¿ÕÁ´±í¶¨ÒåÈçÏ£º head->nextÖ¸ÏòÁ´±íµÄÍ·ÔªËØ¡£
list.hÖл¹¶¨ÒåÁË list_add() £¬ list_add_tail()£¬list_del()µÈ»ù±¾µÄÁ´±í²Ù×÷º¯Êý£¬¶¼ÊDZȽϼòµ¥µÄ
CÓïÑÔÕâÀï²»ÏêÊö¡£
ÔÚlist.hÖм«ÆäÓÐÓõÄÒ»¸öºêÊÇlist_for_each_entry
#define list_for_each_entry(pos, head, member) \
for (pos = list_entry((head)->next, typeof(*pos), member); \
prefetch(pos->member.next), &pos->member != (head); \
pos = list_entry(pos->member.next, typeof(*pos), member))
Ëü¿ÉÒÔ±éÀúÕû¸öÁ´±í£¬ÔÚlinuxÓõķdz£¹ã·º£¬ÀýÈçµ±CPU¿ªÊ¼¹¤×÷ʱ£¬¼¤»îÔÚ¹¤×÷¶ÓÁÐÖеÄÿ¸ö½ø³Ì
-----------------------------------------------------------------------------
kernel/workqueue.c
59 struct workqueue_struct {
60 struct cpu_workqueue_struct cpu_wq[NR_CPUS];
61 const char *name;
62 struct list_head list; /* Empty if single thread */
63 };
...
466 case CPU_ONLINE:
467 /* Kick off worker threads. */
468 list_for_each_entry(wq, &workqueues, list)
469 &nb
Ïà¹ØÎĵµ£º
Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖÐÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀÐÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......
Ò»£ºÇ°ÑÔ
×î½üÔÚÑо¿androidµÄsensor driver£¬Ö÷ÒªÊÇE-compass£¬ÆäÖÐÓõ½ÁËLinux input×Óϵͳ.ÔÚÍøÉÏÒ²¿´Á˺ܶàÕâ·½ÃæµÄ×ÊÁÏ£¬¸Ð¾õ»¹ÊÇÕâÆª·ÖÎöµÄ±È½ÏϸÖÂ͸³¹£¬Òò´Ë×ªÔØÒ»ÏÂÒÔ±ã×Ô¼ºÑ§Ï°£¬Í¬Ê±ºÍ´ó¼Ò·ÖÏí£¡
£¨ÕâÆª²©¿ÍÖ÷ÒªÊÇÒÔ¼üÅÌÇý¶¯ÎªÀýµÄ£¬²»¹ý½²½âµÄÊÇLinux Input Subsystem£¬¿ÉÒÔ×ÐϸµÄÑо¿Ò»Ï£¡£©
¼üÅÌÇý¶¯½«¼ì ......
/ :¸ùĿ¼£¬ÊÇFHS½á¹¹ÖеÄ×î¶¥²ãĿ¼¡£ÆäËüËùÓÐĿ¼¶¼ÊÇËüµÄ×ÓĿ¼£¬Ëü×ÜÊÇÒÔ¶ÀÁ¢µÄ·ÖÇø¹ÒÔØ¡£ÆäËüËùÓв»ÊÇÒÔ¶ÀÁ¢·ÖÇø¹ÒÔØµÄĿ¼¶¼°üº¬Ôڴ˸ùĿ¼·ÖÇø¡£
/bin:°üº¬Ò»Ð©ÓÐÓõÄÃüÁîÐй¤¾ß¡£²»Äܱ»µ¥¶À¹ÒÔØÎªÒ»¸ö·ÖÇø£¬·ñÔòÓûָ´ÅÌÐÞ¸´ÏµÍ³Ê±½«²»ÄÜ·ÃÎÊÕâЩÃüÁî¡£
/boot:°üº¬LinuxÆô¶¯Îļþ£¬°üº¬LinuxϵͳµÄÄÚº ......
yumÊÇʲô?(linuxÃüÁî)
Ò». yumÊÇʲô
yum = Yellow dog Updater, Modified
Ö÷Òª¹¦ÄÜÊǸü·½±ãµÄÌí¼Ó/ɾ³ý/¸üÐÂRPM°ü.
ËüÄÜ×Ô¶¯½â¾ö°üµÄÒÐÀµÐÔÎÊÌâ.
ËüÄܱãÓÚ¹ÜÀí´óÁ¿ÏµÍ³µÄ¸üÐÂÎÊÌâ
×¢:ΪʲôҪʹÓÃyum¶ø²»ÓÃapt,×î¼òµ¥µÄÔÒò,Fedora×Ô´ø
¶þ. yumÌØµã
*¿ÉÒÔͬʱÅäÖöà¸ö×ÊÔ´¿â(Repository)
*¼ò½àµÄÅäÖÃÎļ ......
Linux·þÎñcannot change directory´íÎó½â¾ö·½·¨
ÔÚ°²×°Íêvsftp·þÎñºóµÇ½ʱ¿ÉÄÜÓöµ½cannot change directoryºóÃæÊǵǽÕßµÄĿ¼µÄ´íÎó¡£ÕâÊÇÒòΪSEÉèÖõĹرÕÁËftpµÄÔÒò¡£
ʹÓÃÃüÁî
getsebool ftpd_disable_trans
¿ÉÒԲ鿴µ±Ç°µÄ״̬Èç¹û²»ÊÇon
ÄÇôÊÇÊäÈëÃüÁî
setsebool ftpd_disable_trans 1
µ±È»Ò²¿ÉÒÔ¼ÓÈë-P² ......