linux 2.6Ô´´úÂëÇé¾°·ÖÎö±Ê¼Ç֮ϵͳÆô¶¯1
×ʼʱ£¬ramоƬÖаüº¬µÄÊÇËæ»úÊý¾Ý¡£µ±¿ªÊ¼Æô¶¯Ê±£¬cpuµÄÒ»¸öÒý½ÅÉÏ»á²úÉúÒ»¸öresetÂß¼Öµ¡£´Ëºó´¦ÀíÆ÷µÄһЩ¼Ä´æÆ÷ÉèÖóɹ̶¨µÄÊýÖµ£¬²¢Ö´ÐÐÔÚÎïÀíµØÖ·0xfffffff0´¦ÕÒµ½µÄ´úÂë¡£Ó²¼þ°ÑÕâ¸öµØÖ·Ó³É䵽ij¸öÖ»¶Á¡¢³Ö¾ÃµÄ´æ´¢Ð¾Æ¬ÖУ¬¸ÃоƬͨ³£³ÆÎªrom(read-only memoryÖ»¶ÁÄÚ´æ)¡£romËù´æ·ÅµÄ³ÌÐò¼¯ÔÚ80x86ÌåϵÖÐͨ³£½Ð×ö»ù±¾ÊäÈëÊä³öϵͳ£¨basic input/output system,BIOS£©£¬ÒòΪËü°üÀ¨¼¸¸öÖжÏÇý¶¯µÄµÍ¼¶¹ý³Ì¡£ËùÓвÙ×÷ϵͳÆô¶¯Ê±£¬¶¼ÒªÍ¨¹ýÕâЩ¹ý³Ì¶Ô¼ÆËã»úÓ²¼þÉ豸³õʼ»¯¡£µ±¼ÆËã»ú½øÈë±£»¤Ä£Ê½£¬¾Í²»ÔÙʹÓÃBIOS£¬¶øÊÇΪ¼ÆËã»úÉϵÄÿ¸öÓ²¼þÉ豸Ìṩ¸÷×ÔµÄÉ豸Çý¶¯³ÌÐò¡£ÒòΪbios¹ý³Ì±ØÐëÔËÐÐÔÚʵģʽÏ£¬ËùÒÔÁ½ÕßÖ®¼ä²¢²»Äܹ²Ïíº¯Êý¡£
BIOSʹÓÃʵģʽµÄµØÖ·£¬ÒòΪÔÚ¼ÆËã»ú¼ÓµçÆô¶¯Ê±Ö»ÓÐÕâЩ¿ÉÒÔʹÓá£Ò»¸öʵģʽµÄµØÖ·ÓÉÒ»¸öseg¶ÎºÍÒ»¸öoffÆ«ÒÆÁ¿×é³É¡£ÏàÓ¦µÄÎïÀíµØÖ·Èç´Ë¼ÆË㣺seg*16+off.ËùÒÔ£¬cpuѰַµç·²»ÐèҪȫ¾ÖÃèÊö·û±í£¬¾Ö²¿ÃèÊö·û±í»òÕßÒ³±í°ÑÂß¼µØÖ·×ª»»³ÉÎïÀíµØÖ·¡£¶ÔGDT,LDTºÍÒ³±í½øÐгõʼ»¯µÄ´úÂë±ØÐëÔÚʵģʽÏÂÔËÐС£
biosÆô¶¯¹ý³Ì£º
1¡¢¶Ô¼ÆËã»úÓ²¼þÖ´ÐÐһϵÁеIJâÊÔ£¬ÓÃÀ´¼ì²âÏÖÔÚ¶¼ÓÐʲôÉ豸ÒÔ¼°ÕâЩÉ豸ÊÇ·ñÕý³£¹¤×÷¡£Õâ¸ö½×¶Îͨ³£³ÆÎªpost£¨power-on self-test,Éϵç×Լ죩¡£ÔÚÕâ¸ö½×¶ÎÖлáÏÔʾһЩÐÅÏ¢¡£
2¡¢³õʼ»¯Ó²¼þÉ豸¡£Õâ¸ö½×¶ÎÔÚÏÖ´ú»ùÓÚpciµÄÌåϵ½á¹¹ÖÐÏàµ±ÖØÒª£¬ÒòΪËü¿ÉÒÔ±£Ö¤ËùÓеÄÓ²¼þÉ豸²Ù×÷²»»áÒýÆðirqÏßÓëi/o¶Ë¿ÚµÄ³åÍ»¡£Ôڴ˽׶κ󣬻áÏÖʵϵͳÖÐËù°²×°µÄËùÓÐpciÉ豸µÄÁÐ±í¡£
3¡¢ËÑË÷Ò»¸ö²Ù×÷ϵͳÀ´Æô¶¯¡£Êµ¼ÊÉÏ£¬¸ù¾ÝbiosµÄÉèÖã¬Õâ¸ö¹ý³Ì¿ÉÄÜÒªÊÔͼ·ÃÎÊϵͳÖеÄÈíÅÌ¡¢Ó²Å̺ÍCD-ROMµÄµÚÒ»¸öÉÈÇø£¨Òýµ¼ÉÈÇø£©¡£
4¡¢Ö»ÒªÕÒµ½Ò»¸öÓÐЧµÄÉ豸£¬¾Í°ÑµÚÒ»¸öÉÈÇøµÄÄÚÈÝ¿½±´µ½ramÖУ¬´ÓÎïÀíµØÖ·0x00007c00¿ªÊ¼µÄλÖã¬È»ºóÌø×ªµ½Õâ¸öµØÖ·´¦£¬¿ªÊ¼Ö´ÐиղÅ×°ÔØ½üÀ´µÄ´úÂë¡£
Òýµ¼³ÌÐòÊÇÓÉbisoÓÃÀ´°Ñ²Ù×÷ϵͳµÄÄÚºËÓ³Ïñ×°ÔØµ½ramÖÐËùµ÷ÓõÄÒ»¸ö³ÌÐò¡£
ÔÚbiosÖУ¬³õʼÒýµ¼½ö½öÊÇÆä¹¦ÄܵÄÒ»²¿·Ö£¬¶øÊDzÉÓóõʼÒýµ¼³ÌÐò¼ÓÒýµ¼ÉÈÇøµÄ·½°¸£¬Èø÷ÖÖ²Ù×÷ϵͳͨ¹ýÒýµ¼ÉÈÇø½øÒ»²½ÌṩÆä×ÔÉíµÄÒýµ¼ÊֶΡ£
ÔÚlinuxÖУ¬²¢²»Ê¹ÓÃbiosËùÌṩµÄÉ豸Çý¶¯£¬¶øÊÇÈÆ¿ªbios,´ÓÓ²¼þ½Ó¿Ú£¨¼Ä´æÆ÷£©ºÍÖжÏÏìÓ¦¿ªÊ¼³¹µ×µØÊµÏÖ×Ô¼ºµÄÉ豸Çý¶¯²ã¡£¹ÊÔÚlinuxÖУ¬biosµÄ×÷Óýö½öÊdzõʼÒýµ¼£¬ÒÔ¼°¼ÓµçÒÔºóµÄ×Ô¼ìÒÔ¼°ÏòÄÚºËÌṩ´Ë¹ý³ÌÖÐËѼ¯µ½µÄһЩÐÅÏ¢¡£
ÔÚʵ¼ÊʹÓÃÖУ¬°ÑÒ»¸öÓ²ÅÌ·Ö³ÉÈô¸É“·ÖÇø”£¬´Ó¶ø°ÑÒ»¸öÎïÀíµÄÓ²Å
Ïà¹ØÎĵµ£º
ÀýÒ»£º·¢ËÍ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 ......
Ubuntu LinuxÓÐÒ»¸öÓëÖÚ²»Í¬µÄÌØµã£¬ÄǾÍÊdzõ´ÎʹÓÃʱ£¬ÄãÎÞ·¨×÷ΪrootÀ´µÇ¼ϵͳ£¬ÎªÊ²Ã´»áÕâÑù£¿Õâ¾ÍÒª´ÓϵͳµÄ°²×°ËµÆð¡£¶ÔÓÚÆäËûLinuxϵͳÀ´Ëµ£¬Ò»°ãÔÚ°²×°¹ý³Ì¾ÍÉ趨rootÃÜÂ룬ÕâÑùÓû§¾ÍÄÜÓÃËüµÇ¼rootÕÊ»§»òʹÓÃsuÃüÁîת»»µ½³¬¼¶Óû§Éí·Ý¡£ÓëÖ®Ïà·´£¬UbuntuĬÈϰ²×°Ê±£¬²¢Ã»ÓиørootÓû§ÉèÖÿÚÁҲûÓÐÆôÓÃrootÕÊ» ......
ÄÚºËʹÓõĻù±¾Êý¾ÝÀàÐÍÖ÷ÒªÓУº int £º ±ê×¼µÄCÓïÑÔÕûÊýÀàÐÍ u32 £º 32λÕûÊýÀàÐÍ pid_t £º ÌØ¶¨Äں˶ÔÏópidµÄÀàÐÍ ÔÚ²»Í¬CPUÌåϵ½á¹¹ÉÏ£¬CÓïÑÔµÄÊý¾ÝÀàÐÍËùÕ¼ÓõĿռäÊDz»Ò»ÑùµÄ¡£ÔÚx86ϵÁнṹÏ£¬Êý¾ÝÀàÐÍÕ¼ÓõÄ×Ö½ÚÊýÈçϱíËùʾ£º arch char short int long ptr ......
¼ò¶øÑÔÖ®,²úÉú¶Î´íÎó¾ÍÊÇ·ÃÎÊÁË´íÎóµÄÄÚ´æ¶Î£¬Ò»°ãÊÇÄãûÓÐȨÏÞ£¬»òÕ߸ù±¾¾Í²»´æÔÚ¶ÔÓ¦µÄÎïÀíÄÚ´æ,ÓÈÆä³£¼ûµÄÊÇ·ÃÎÊ0µØÖ·.
Ò»°ãÀ´Ëµ,
¶Î´íÎó¾ÍÊÇÖ¸·ÃÎʵÄÄڴ泬³öÁËϵͳËù¸øÕâ¸ö³ÌÐòµÄÄÚ´æ¿Õ¼ä£¬Í¨³£Õâ¸öÖµÊÇÓÉgdtrÀ´±£´æµÄ£¬ËûÊÇÒ»¸ö48λµÄ¼Ä´æÆ÷£¬ÆäÖеÄ32λÊDZ£´æÓÉËüÖ¸ÏòµÄ
gdt±í£¬ºó13λ±£´æÏàÓ¦ÓÚgdtµÄϱ꣬×îºó3 ......
Ç°ÃæÀûÓÿª·¢°å´øµÄÏֳɵĶ«Î÷step by stepÈÃLinux 2.4.19ÔÚ¿ª·¢°åÉÏÅÜÆðÀ´ÁË£¬¶ÔÓÚ¿ª·¢µÄÁ÷³ÌÒ²ÓÐÁËÒ»¶¨µÄÈÏʶ¡£ÏÖÔÚÏë¶Ôÿһ²½½øÐÐÏêϸÉîÈëµÄ̽ÌÖ£¬ºÃºÃѧϰһÏ£¬°Ñ±Ê¼Ç¼Ç¼ÏÂÀ´£¬Ê¡µÃÍü¼ÇÁË¡£ÓÐЩÄÚÈÝÊÇ´Ó¿´¹ýµÄÊéÖÐÕªÒª¹ýÀ´µÄ£¬´ó²¿·ÖÊÇ×Ô¼ºÊµ¼ùºóµÄÐĵá£ÎÒÏë¼ÇµÃÏêϸµã£¬Ò²ºÃΪºóÃæ×ܽá´òºÃ»ù´¡¡£
------- ......