linuxÄں˷ÖÎö ϵͳµ÷ÓÃʵÏÖ´úÂë·ÖÎö
×÷Õߣºe4gle
¡¡¡¡
¡¡¡¡by e4gle from http://e4gle.org
¡¡¡¡2001Äê6ÔÂ5ÈÕ
¡¡¡¡Æô¶¯Ôç¾Í¶ÁÍ꣬ÏÖÔÚΪÁËд±Ê¼ÇÔÙ´ÓÆô¶¯Ö®ºó´ÖÂԵĴóÌå¶ÁÒ»±é£¬»ù±¾¾ÍÊǼ¸¸ö´óÄ£¿é£ºÆô¶¯ºÍ³õʼ»¯£¬
¡¡¡¡ÖжÏÐźţ¬½ø³Ì¼°µ÷¶È£¬ÄÚ´æ¹ÜÀí£¬Îļþϵͳ£¬ÍøÂ磬Çý¶¯ºÍÄ£¿éµÈ£¬ÎÒÖ÷ÒªÒ²´ÓÕ⼸¿éÈëÊÖ¡£ÓÉÓÚÆô¶¯
¡¡¡¡²¿·ÖÔÚstart_kernelÖ®Ç°Ç£Éæµ½´óÁ¿µÄx86ÌåϵÏà¹ØµÄ»ã±à֪ʶ£¬ÐèÒª´óÁ¿µÄʱ¼ä£¬ÓÚÊÇÎÒÌø¹ý£¬ÏȰÑÎÕ
¡¡¡¡Õû¸öϵͳµÄ´óÌåÂöÂ磬Ȼºó×ö¶þ´Î£¬Èý´Î·ÖÎö¡£ÍøÂ粿·ÖµÄ·ÖÎö£¬ÎÒ»á´Ó4.4BSD-LiteµÄ´úÂëÖзÖÎö¡£
¡¡¡¡
¡¡¡¡ÏµÍ³µ÷Óãº
¡¡¡¡
¡¡¡¡ÏÈ˵һÏÂϵͳµ÷Óã¬Ææ¹ÖµÄºÜ£¬ËùÓеĶÁºË×ÊÁ϶¼Ã»ÓаÑϵͳµ÷Óõ¥¶ÀÌá³öÀ´Ëµ£¬ÎÒ¾õµÃ»¹ÊDZȽÏÖØÒªµÄ
¡¡¡¡¡£Óû§ºÍϵͳÄÚºËͨÐŵĹؼüµÄÊàŦ£¬²»¹ý·Ö°É£¬ºÇºÇ¡£×ÐϸÑо¿Ò»ÏÂËüµÄ»úÖÆ£¬×¼±¸»¨ÈýÌìʱ¼ä£¬ÊÖÍ·
¡¡¡¡ÓÐЩÊéºÍ×ÊÁÏ£¬°ïÖúÎÒÀí½â¡£
¡¡¡¡
¡¡¡¡¸ÅÄ£¨Ã÷Îúһϻù±¾¸ÅÄ
¡¡¡¡ÏµÍ³µ÷Ó÷¢ÉúÔÚÓû§½ø³Ì£¬Í¨¹ýÒ»Ð©ÌØÊâµÄº¯Êý£¨Èçopen£©À´ÇëÇóÄÚºËÌṩ·þÎñ£¬Õâʱ£¬Óû§½ø³Ì¹ÒÆð£¬
¡¡¡¡ÄÚºËÑéÖ¤Óû§ÇëÇ󣬳¢ÊÔÖ®ÐУ¬²¢°Ñ½á¹û·´À¡¸øÓû§½ø³Ì£¬½Ó×ÅÓû§½ø³ÌÖØÐÂÆô¶¯¡£ÕâЩ»úÖÆÔÚÒ»°ãµÄ±à
¡¡¡¡³ÌÊéÀï¶¼ÓУ¬ÎÒ¾ÍÊÇÀ´Í¨¹ýÔ´´úÂëµÄʵÏÖÀ´ÌÖÂÛÕâÖÖ»úÖÆ¡£
¡¡¡¡
¡¡¡¡¾ßÌåʵÏÖ´úÂ룺arch/i386/kernel/entry.S£¨Äں˰汾2.2.14£©
¡¡¡¡´Óentry.SµÄµÚ171ÐУ¬¾ÍÊÇsystem_call¿ªÊ¼£¬171-248ÐдúÂëÌù³öÀ´£¬·ÖÎöÒÔ×¢ÊÍÐÎʽ£º
¡¡¡¡
¡¡¡¡ENTRY(system_call) \\ËùÓÐϵͳµ÷ÓõÄÈë¿Úµã£¬²ÎÊýsystem_callÊÇËùÏ£Íû¼¤»îµÄϵͳµ÷ÓõÄÊý
¡¡¡¡pushl %eax# ±£´æorig_eax£¬Õâ¸öÖµ¾ÍÊÇÏ£Íûϵͳµ÷ÓÃÊý
¡¡¡¡SAVE_ALL
¡¡¡¡/*SAVE_ALLºê¶¨ÒåÈçÏ£º
¡¡¡¡#define SAVE_ALL cld; pushl %es; pushl %ds; pushl %eax; pushl %ebp; pushl %edi; pushl %esi; pushl %edx; pushl %ecx; pushl %ebx; movl $(__KERNEL_DS),%edx; movl %dx,%ds; movl %dx,%es;
¡¡¡¡ ËûµÄ×÷ÓÃÊÇÏȰÑËùÓмĴæÆ÷µÄֵѹջ£¬È»ºóÔÚsystem_call·µ»ØÖ®Ç°Ê¹ÓÃRESTORE_ALL°ÑÕ»´ÓÕ»Öе¯³ö
¡¡¡¡£¬ÔÚÕâÆäÖÐsystem_call¿ÉÒÔ¸ù¾ÝÐèÒª×ÓȥʹÓüĴæÆ÷µÄÖµ¡£ÈκÎËüµ÷ÓõÄcº¯Êý¶¼¿ÉÒÔ´ÓÕ»ÖвéÕÒµ½ËùÏ£
¡¡¡¡ÍûµÄ²ÎÊý£¬ÒòΪSAVE_ALLÒѾ°ÑËùÓмĴæÆ÷µÄÖµ¶¼Ñ¹ÈëÕ»ÖÐÁË */
¡¡¡¡------------------------------------------------------------------- -------------------------
¡¡¡¡GET_CURRENT(%ebx) /*ÀûÓÃGET_CURRENTºê´ÓebxÖÐÈ¡µÃµ±Ç°ÈÎÎñÖ¸Õ룬GET_CURRENTºê¶¨Òå
¡¡¡¡ÈçÏ£º
¡¡¡
Ïà¹ØÎĵµ£º
1. HCI²ãÐÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI) ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈÐÒé ......
Ò»£ºÇ°ÑÔ
×î½üÔÚÑо¿androidµÄsensor driver£¬Ö÷ÒªÊÇE-compass£¬ÆäÖÐÓõ½ÁËLinux input×Óϵͳ.ÔÚÍøÉÏÒ²¿´Á˺ܶàÕâ·½ÃæµÄ×ÊÁÏ£¬¸Ð¾õ»¹ÊÇÕâÆª·ÖÎöµÄ±È½ÏϸÖÂ͸³¹£¬Òò´Ë×ªÔØÒ»ÏÂÒÔ±ã×Ô¼ºÑ§Ï°£¬Í¬Ê±ºÍ´ó¼Ò·ÖÏí£¡
£¨ÕâÆª²©¿ÍÖ÷ÒªÊÇÒÔ¼üÅÌÇý¶¯ÎªÀýµÄ£¬²»¹ý½²½âµÄÊÇLinux Input Subsystem£¬¿ÉÒÔ×ÐϸµÄÑо¿Ò»Ï£¡£©
¼üÅÌÇý¶¯½«¼ì ......
ÔÚÏò´ó¼ÒÏêϸ½éÉÜlinux±àÒë֮ǰ£¬Ê×ÏÈÈôó¼ÒÁ˽âÏÂLinux½Å±¾ShellÃüÁȻºó½²½âÔÚshell½Å±¾ÖпÉÒÔʹÓÃÈÎÒâµÄunixÃüÁî¡£
Óï·¨»ù±¾½éÉÜ
1.¿ªÍ·
³ÌÐò±ØÐëÒÔÏÂÃæµÄÐпªÊ¼£¨±ØÐë·½ÔÚÎļþµÄµÚÒ»ÐУ©£º
#!/bin/sh
·ûºÅ#!ÓÃÀ´¸æËßϵͳËüºóÃæµÄ²ÎÊýÊÇÓÃÀ´Ö´ÐиÃÎļþµÄ³ÌÐò¡£ÔÚÕâ¸öÀý×ÓÖÐÎÒÃÇʹÓÃ/bin/shÀ´Ö´ÐгÌÐò¡£
µ±±à¼ºÃ ......
linuxϲ鿴gcc°æ±¾
gcc -v
Êä³ö½á¹ûÖÐ
Target: i486-linux-gnu
i486Ó¦¸ÃÊÇÐéÄâ»úµÄÎÊÌ⣬ÏÖÔÚÖ÷Á÷cpuÓ¦¸Ã¾ùΪi686.
i386,i486,i586·Ö±ðÊÇÕë¶Ô80386,80486,80586±àÒëµÄ°ü£¬i686¾Í±È½Ï¹ã·ºÁË£¬´Óp2¿ªÊ¼x86´¦ÀíÆ÷¾Í½øÈëÁËp6¹¹¼ÜµÄʱ´ú£¬Ò»Ö±µ½ÏÖÔÚ¶¼ÊÇp6¼Ü¹¹¡£Ð¼ܹ¹µÄcpuÏòϼæÈÝΪ¾É¼Ü¹¹±àÒëµÄÈí¼þ°ü.
i386.rpmÓëi686 ......
1. Linux ½Å±¾±àд»ù´¡
¡¡¡¡1.1 Óï·¨»ù±¾½éÉÜ
¡¡¡¡1.1.1 ¿ªÍ·
¡¡¡¡³ÌÐò±ØÐëÒÔÏÂÃæµÄÐпªÊ¼£¨±ØÐë·½ÔÚÎļþµÄµÚÒ»ÐУ©£º
¡¡¡¡#!/bin/sh
¡¡¡¡·ûºÅ#!ÓÃÀ´¸æËßϵͳËüºóÃæµÄ²ÎÊýÊÇÓÃÀ´Ö´ÐиÃÎļþµÄ³ÌÐò¡£ÔÚÕâ¸öÀý×ÓÖÐÎÒÃÇʹÓÃ/bin/shÀ´Ö´ÐгÌÐò¡£
¡¡¡¡µ±±à¼ºÃ½Å±¾Ê±£¬Èç¹ûÒªÖ´Ðиýű¾£¬»¹±ØÐëʹÆä¿ÉÖ´ÐС£
¡¡¡¡ÒªÊ¹½Å±¾¿ ......