´ÓºÎ´¦¿ªÊ¼ÔĶÁLinuxÔ´´úÂë(ת)
ÏñLinuxÄÚºËÕâÑùÅÓ´ó¶ø¸´ÔӵijÌÐò¿´ÆðÀ´È·ÊµÈÃÈËÍû¶øÉú磬ËüÏóÒ»¸öºÜ´óµÄÇò£¬Ã»ÓÐÆðµãºÍÖյ㡣ÔÚ¶ÁÔ´´úÂëµÄ¹ý³ÌÖУ¬Äã»áÓöµ½ÕâÑùµÄÇé¿ö£¬µ±¶Áµ½Äں˵Äijһ²¿·ÖʱÓÖ»áÉæ¼°µ½ÆäËü¸ü¶àµÄÎļþ£¬µ±·µ»Øµ½ÔÀ´µÄµØ·½Ïë¼ÌÐøÍù϶Áʱ£¬ÓÖÍüÁËÔÀ´¶ÁµÄÄÚÈÝ¡£ÔÚinternetÉÏ£¬ºÜ¶àÈËΪ´Ë¸¶³öÁ˺ܴóµÄŬÁ¦£¬ÖÆ×÷³öÁËÔ´´úÂëµ¼º½Æ÷£¬ÕâΪԴ´úÂëÔĶÁÌṩÁËÁ¼ºÃµÄÌõ¼þ£¬Õ¾µãΪ£ºhttp://lxr.linux.no/source£¬ÏÂÃæ¸ø³öÔĶÁÔ´´úÂëµÄһЩÏßË÷¡£
1. ϵͳµÄÆô¶¯ºÍ³õʼ»¯
ÔÚ»ùÓÚIntelµÄϵͳÉÏ£¬µ± loadlin.exe »ò LILO°ÑÄÚºË×°Èëµ½ÄÚ´æ²¢°Ñ¿ØÖÆÈ¨´«µÝ¸øÄÚºËʱ£¬Äں˿ªÊ¼Æô¶¯¡£¹ØÓÚÕâÒ»²¿·Ö£¬¿´arch/i386/kernel/head.S £¬head.S½øÐÐÌØ¶¨½á¹¹µÄÉèÖã¬È»ºóÌø×ªµ½init/main.cµÄmain()Àý³Ì¡£
2. ÄÚ´æ¹ÜÀí
ÄÚ´æ¹ÜÀíµÄ´úÂëÖ÷ÒªÔÚ/mm£¬µ«Ìض¨½á¹¹µÄ´úÂëÔÚarch/*/mm¡£È±Ò³Öжϴ¦ÀíµÄ´úÂëÔÚmm/memory.c £¬¶øÄÚ´æÓ³ÉäºÍÒ³¸ßËÙ»º´æÆ÷µÄ´úÂëÔÚmm/filemap.c¡£»º³åÆ÷¸ßËÙ»º´æÊÇÔÚmm/buffer.c ÖÐʵÏÖ£¬¶ø½»»»¸ßËÙ»º´æÊÇÔÚmm/swap_state.c ºÍ mm/swapfile.cÖÐʵÏÖ¡£
3. ÄÚºË
ÄÚºËÖУ¬Ìض¨½á¹¹µÄ´úÂëÔÚarch/*/kernel£¬µ÷¶È³ÌÐòÔÚkernel/sched.c£¬forkµÄ´úÂëÔÚkernel/fork.c£¬task_struct Êý¾Ý½á¹¹ÔÚ include/linux/sched.hÖС£
4. PCI
PCI αÇý¶¯³ÌÐòÔÚ drivers/pci/pci.c £¬Æä¶¨ÒåÔÚinclude/linux/pci.h¡£Ã¿Ò»Öֽṹ¶¼ÓÐÒ»Ð©ÌØ¶¨µÄ PCI BIOS ´úÂ룬 IntelµÄÔÚarch/alpha/kernel/bios32.c¡£
5. ½ø³Ì¼äͨÐÅ
ËùÓÐSystem V IPC ¶ÔÏóȨÏÞ¶¼°üº¬ÔÚ ipc_perm Êý¾Ý½á¹¹ÖУ¬Õâ¿ÉÒÔÔÚ include/linux/ipc.hÖÐÕÒµ½¡£ System V ÏûÏ¢ÊÇÔÚ ipc/msg.cÖÐʵÏÖ, ¹²ÏíÄÚ´æÔÚ ipc/shm.cÖУ¬ÐźÅÁ¿ÔÚ ipc/sem.cÖУ¬¹ÜµÀÔÚ ipc/pipe.cÖÐʵÏÖ¡£
6. Öжϴ¦Àí
Äں˵ÄÖжϴ¦Àí´úÂëÊǼ¸ºõËùÓеÄ΢´¦ÀíÆ÷ËùÌØÓеġ£Öжϴ¦Àí´úÂëÔÚ arch/i386/kernel/irq.cÖУ¬Æä¶¨Òå×ÓÔÚ include/asm-i386/irq.hÖС£
7. É豸Çý¶¯³ÌÐò
LinuxÄÚºËÔ´´úÂëµÄºÜ¶àÐÐÊÇÉ豸Çý¶¯³ÌÐò¡£LinuxÉ豸Çý¶¯³ÌÐòµÄËùÓÐÔ´´úÂë¶¼±£´æÔÚ/driver£¬¸ù¾ÝÀàÐͿɽøÒ»²½»®·ÖΪ£º
/block
¿éÉ豸Çý¶¯³ÌÐòÈçide(ÔÚide.c)¡£Èç¹ûÄãÏë¿´°üº¬ÎļþϵÍ
Ïà¹ØÎĵµ£º
ÀýÒ»£º·¢ËÍSignaling Packet£º
Signaling CommandÊÇ2¸öBluetoothʵÌåÖ®¼äµÄL2CAP²ãÃüÁî´«Êä¡£ËùÒÔµÃSignaling CommandʹÓÃCID 0x0001.
¶à¸öCommand¿ÉÒÔÔÚÒ»¸öC-frame£¨control frame£©Öз¢ËÍ¡£
Èç¹ûÒªÖ±½Ó·¢ËÍSignaling Command.ÐèÒª½¨Á¢SOCK_RAWÀàÐ͵ÄL2CAPÁ¬½ÓSocket¡£ÕâÑù²ÅÓлú»á×Ô¼ºÌî³äCommand Code£¬Identi ......
ת×Ôhttp://blog.163.com/ericxia_gnikam/blog/static/969208792008102545614453/
ÔÚLinux kernelµÄÔ´´úÂëÖУ¬¾³£Äܼûµ½if(likely(x))»òif(unlikely(x))Ö®ÀàµÄÓ÷¨£¬ÆäÈ·Çк¬ÒåÐèҪ˵Ã÷һϣ¬ÒÔ±ã¸üºÃµÄÀí½âkernelµÄÔ´´úÂë¡£
likelyÓëunlikelyÕâÁ½¸öºêÔÚlinux/compiler.hÖе͍ÒåÈçÏ£º
#define likely ......
Linux 2.6.19.x Äں˱àÒëÅäÖÃÑ¡Ïî¼ò½é
×÷Õߣº½ð²½¹ú
°æÈ¨ÉùÃ÷
±¾ÎÄ×÷ÕßÊÇһλ×ÔÓÉÈí¼þ°®ºÃÕߣ¬ËùÒÔ±¾ÎÄËäÈ»²»ÊÇÈí¼þ£¬µ«ÊDZ¾×Å GPL
µÄ¾«Éñ·¢²¼¡£ÈκÎÈ˶¼¿ÉÒÔ×ÔÓÉʹÓá¢×ªÔØ¡¢¸´ÖƺÍÔÙ·Ö·¢£¬µ«±ØÐë±£Áô×÷ÕßÊðÃû£¬Ò಻µÃ¶ÔÉùÃ÷ÖеÄÈκÎÌõ¿î×÷ÈκÎÐÎʽµÄÐ޸ģ¬Ò²²»µÃ¸½¼ÓÈÎºÎÆäËüÌõ¼þ¡£Äú¿É
ÒÔ×ÔÓÉÁ´½Ó¡¢ÏÂÔØ¡¢´ ......
Ê×ÏȰ²×°±ØÐèµÄ¿ª·¢
°ü
sudo apt-get install gcc g++ libgcc1 libg++ make gdb
°²×°MYSQLµÄCÓïÑÔ¿ª·¢°ü
sudo apt-get install libmysql++-dev libmysql++2c2a libmysqlclient15-dev libmysqlclient15off
°ÑlibÎļþ¿½±´µ½¹«ÓÃ
sudo cp /usr/lib/mysql/* /usr/lib/
½¨Á¢Ò»¸öÐÂÎļþtest.cpp
vim test.cpp
ÊäÈëÄÚÈÝ
......
Èç¹ûÔÚRed Hat 9°²×°Ê±ÒѾĬÈϰ²×°ÁËNFS×é¼þ£¬½ÓÏÂÀ´µÄ¹¤×÷Ö÷ÒªÊÇÅäÖÃÏà¹ØÎļþʹ·þÎñÆ÷ÌṩNFS·þÎñ£¬²½ÖèÈçÏ¡£
¡¡¡¡£¨1£©É趨ij̨¼ÆËã»úΪNFS·þÎñÆ÷£¬²¢ÔÚºǫ́Æô¶¯Ïà¹ØµÄÊØ»¤½ø³Ì£¨ÔÚ"·þÎñÅäÖÃ"ÖÐÆô¶¯£©¡£Ò»°ãÀ´Ëµ£¬Èç¹ûNFS·þÎñÆ÷ÒªÌṩ·þÎñ£¬±ØÐëÆô¶¯inet¡¢portmap¡¢nfsºÍmountÕâ4¸öÊØ»¤½ø³Ì²¢±£³ÖÔÚºó ......