linux 0.11 ÄÚºËѧϰ setup.s
²Î¿¼×ÊÁÏ LinuxÄÚºËÍêȫעÊÍ.pdf
ÍøÉÏÏà¹Ø×ÊÁÏ
! setup³ÌÐòµÄÖ÷Òª×÷ÓÃÊÇÀûÓÃrom biosµÄÖжÏÀ´¶ÁÈ¡»úÆ÷ϵͳ²ÎÊý£¬²¢½«ÕâЩÊý¾Ý±£´æÔÚ0x90000
! ¿ªÊ¼µÄλÖÃ(¸²¸ÇµôÁËbootsect³ÌÐòËùÔÚµÄλÖÃ)£¬ËùÈ¡µÃµÄ²ÎÊý±»Äں˵ÄÏà¹Ø³ÌÐòʹÓá£×¢ÒâÔÚbootsect
! ÖÐÒѾ½«¸ÃÄ£¿éºÍsystem¡¢Ä£¿é¼ÓÔØµ½ÄÚ´æÖС£
! È»ºósetup³ÌÐò½«systemÄ£¿é´ÓµØÖ·0x10000-0x8fff(µ±Ê±ÈÏΪÄں˵Ä×î´óÖµ)Õû¿éÒÆ¶¯µ½ÄÚ´æµÄ¾ø¶ÔµØÖ·
! 0x00000´¦¡£½ÓÏÂÀ´¼ÓÔØÖжÏÃèÊö·û±í¼Ä´æÆ÷idtrºÍÈ«¾ÖÃèÊö·û±ígdtr£¬¿ªÆôa20µØÖ·Ïߣ¬ÖØÐÂÉèÖÃÁ½¸ö
! ÖжϿØÖÆÐ¾Æ¬£¬½«Ó²¼þÖն˺ÅÖØÐÂÉèÖã¬×îºóÉèÖÃcpuµÄ¿ØÖƼĴæÆ÷cr0£¬´Ó¶ø½øÈë32λµÄ±£»¤Ä£Ê½£¬²¢
! ÇÒÌø×ªµ½systemÄ£¿é×îÇ°ÃæµÄhead.s³ÌÐò´¦¿ªÊ¼¼ÌÐøÔËÐС£
!
! ΪÁËÄÜÈÃhead.sÔÚ32λµÄ±£»¤Ä£Ê½ÏÂÔËÐУ¬±¾³ÌÐòÉèÖÃÁËÖжÏÃèÊö·û±íidtºÍÈ«¾ÖÃèÊö·û±ígdt£¬²¢ÔÚgdt
! ÖÐÉèÖÃÁ˵±Ç°Äں˴úÂë¶ÎµÄÃèÊö·ûºÍÊý¾Ý¶ÎµÄÃèÊö·û¡£ÔÚÏÂÃæµÄhead.s³ÌÐòÖлá¸ù¾ÝÄں˵ÄÐèÒªÖØÐÂÉèÖÃ
! ÕâЩÃèÊö·û±í¡£
!
!
! setup.s (C) 1991 Linus Torvalds
!
! setup.s is responsible for getting the system data from the BIOS,
! and putting them into the appropriate places in system memory.
! both setup.s and system has been loaded by the bootblock.
!
! This code asks the bios for memory/disk/other parameters, and
! puts them in a "safe" place: 0x90000-0x901FF, ie where the
! boot-block used to be. It is then up to the protected mode
! system to read them from there before the area is overwritten
! for buffer-blocks.
!
! NOTE! These had better be the same as in bootsect.s!
INITSEG = 0x9000 ! we move boot here - out of the way£¬ÔÀ´µÄbootsect¶Î
SYSSEG = 0x1000 ! system loaded at 0x10000 (65536).systemËùÔÚ¶Î
SETUPSEG = 0x9020 ! this is the current segment£¬±¾³ÌÐòËùÔÚ¶Î
.globl begtext, begdata, begbss, endtext, enddata, endbss
.text
begtext:
.data
begdata:
.bss
begbss:
.text
entry start
start:
! ok, the read went well so we get current cursor position and save it for
! posterity.
! Õû¸ö¶Á´ÅÅ̵Ĺý³Ì¶¼ºÜ˳Àû£¬ÏÖÔÚ½«¹â±êλÖñ£´æÒÔ±¸ºó
Ïà¹ØÎĵµ£º
ÀýÒ»£º·¢ËÍ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 ......
µ±Ê¹ÓÃDSLÁ¬½ÓÉÏÍøÊ±£¬Èç¹ûÄãʹÓÃÊÇÓй̶¨»ò¾²Ì¬IPµØÖ·µÄDSLÁ¬½Ó£¬ÄÇôÅäÖò½ÖèºÍÇ°ÃæµÄ“ÍøÂçÅäÖÔÖÐÃèÊöµÄÊÇÒ»ÑùµÄ¡£Äã°ÑÒÔÌ«Íø½Ó¿ÚÁ¬½Óµ½DSL modemÉÏ£¬ÅäÖÃISPÌṩµÄIPµØÖ·£¬×ÓÍøÑÚÂ룬¹ã²¥µØÖ·£¬ºÍÍø¹ØÐÅÏ¢¡£ÖØÆôÍøÂçÉ豸ºóÄã¾ÍÓ¦¸ÃÁ¬ÉÏÍøÁË¡£¼Çס£¬Äã¿ÉÄÜ»¹ÐèÒªÕýÈ·µØÅäÖÃDNS·þÎñÆ÷¡£Èç ......
1¡¢ÍøÂçÂýµÄÔÒò£ºÍøÂçÎÊÌâ¾³£ÒÔÁ½ÖÖÐÎʽ³öÏÖ¡£µÚÒ»ÖÖÊÇÀ´×ÔÔ¶³Ì·þÎñÆ÷µÄÂýËÙÏìÓ¦£¬µÚ¶þÖÖÊÇÍêȫʧȥÁ¬½Ó¡£ÍøÂçÂýµÄ¸ùÔ´Ö÷ÒªÓÐÍø¿¨µÄË«¹¤ºÍËٶȵIJ»¼æÈÝ¡¢ÍøÂçÓµÈû¡¢²»Á¼µÄ·ÓÉ¡¢ÏßÀÂÎÊÌâ¡¢µç×è»òµç²¨¸ÉÈÅ¡¢Ô¶¶Ë·þÎñÆ÷¸ºÔعýÖØ¡¢DNSÅäÖò»µ±¡£Á¬½Ó¶ªÊ§µÄ¸ùÔ´Ö÷ÒªÓеçÔ´ÎÊÌâ¡¢Ô¶¶ËµÄ·þÎñÆ÷»ò³ÌÐò±»¹Øµô¡ ......
GCC±àÒ빤¾ßÔÚRed Hat/Fedora Core·¢ÐаæÖÐĬÈÏÒѾ°²×°£¬Òò´Ë²»ÐèÒªÔÙ°²×°¡£ÔÚUbuntu·¢ÐаæÖУ¬´ò¿ªshell£¬Ê¹ÓÃÏÂÃæµÄÃüÁî¿ÉÒÔ·½±ãµÄ°²×°GCC±àÒëÆ÷(\$ΪÃüÁîÐÐÌáʾ·û)£º
¡¡¡¡$ sudo apt-get install build-essential
¡¡¡¡¸ÃÃüÁî¿ÉÒÔ°ÑËùÐèÒªgcc¡¢g++±àÒëÆ÷ºÍmake¹¤¾ß¼°ÆäÒÀÀµµÄÆäËüÈí¼þ°ü×Ô¶¯°²×°²¢ÅäÖúá£
&nb ......
1. ÎļþϵͳµÄ¶¨Òå
Èý¸ö·½Ã棺
ijÖÖÎļþ¸ñʽ¡¢ÒÔijÖÖ¸ñʽ´æ´¢µÄÉ豸¡¢Ä³ÖÖ¹ÜÀíÎļþµÄ»úÖÆ¡£
2. VFSÓëÎļþϵͳ
VFSÊÇÐéÄâÎļþϵͳµÄËõд¡£²»Í¬µÄÎļþϵͳÓв»Í¬µÄ¸ñʽ¡¢¹ÜÀí»úÖÆºÍʵÏÖ¡£VFSÔòÊǸ÷ÖÖÎļþϵͳ±ØÐë×ñÊØµÄAPI¹æ·¶¡£
3. ½ø³ÌÓëÎļþϵͳ
task_structÖÐÓÐÁ½¸öÖ¸Õ룬һ¸öÖ¸Ïòfs_struct£¬¼Ç¼ÁËÎļþϵͳÏà¹ØµÄÊ ......