ARM Linux bootloader Æô¶¯¹ý³Ì
1. Òý ÑÔ
Linux ×î³õÊÇÓÉÈðµäºÕ¶ûÐÁ»ù´óѧµÄѧÉú Linus TorvaldsÔÚ1991 Ä꿪·¢³öÀ´µÄ£¬Ö®ºóÔÚ
GNUµÄÖ§³ÖÏ£¬Linux »ñµÃÁ˾޴óµÄ·¢Õ¹¡£ËäÈ» Linux ÔÚ×ÀÃæ PC »úÉÏµÄÆÕ¼°³Ì¶ÈÔ¶²»¼°Î¢
ÈíµÄ Windows ²Ù×÷ϵͳ£¬µ«ËüµÄ·¢Õ¹ËÙ¶ÈÖ®¿ì¡¢Óû§ÊýÁ¿µÄÈÕÒæÔö¶à£¬Ò²ÊÇ΢ÈíËù²»ÄÜÇá
Êӵġ£¶ø½üЩÄêÀ´ Linux ÔÚǶÈëʽÁìÓòµÄѸÃÍ·¢Õ¹£¬¸üÊǸø Linux ×¢ÈëÁËеĻîÁ¦¡£
Ò»¸öǶÈëʽ Linux ϵͳ´ÓÈí¼þ½Ç¶È¿´¿ÉÒÔ·ÖΪËĸö²¿·Ö£º
Òýµ¼¼ÓÔØ³ÌÐò£¨bootloader£©£¬Linux Äںˣ¬Îļþϵͳ£¬Ó¦ÓóÌÐò¡£
ÆäÖÐ bootloaderÊÇϵͳÆô¶¯»ò¸´Î»ÒÔºóÖ´ÐеĵÚÒ»¶Î´úÂ룬ËüÖ÷ÒªÓÃÀ´³õʼ»¯´¦ÀíÆ÷¼°
ÍâÉ裬Ȼºóµ÷Óà Linux Äںˡ£Linux ÄÚºËÔÚÍê³ÉϵͳµÄ³õʼ»¯Ö®ºóÐèÒª¹ÒÔØÄ³¸öÎļþϵͳ×ö
Ϊ¸ùÎļþϵͳ£¨Root Filesystem£©¡£¸ùÎļþϵͳÊÇ Linux ϵͳµÄºËÐÄ×é³É²¿·Ö£¬Ëü¿ÉÒÔ×öΪLinux ϵͳÖÐÎļþºÍÊý¾ÝµÄ´æ´¢ÇøÓò£¬Í¨³£Ëü»¹°üÀ¨ÏµÍ³ÅäÖÃÎļþºÍÔËÐÐÓ¦ÓÃÈí¼þËùÐèÒªµÄ
¿â¡£Ó¦ÓóÌÐò¿ÉÒÔ˵ÊÇǶÈëʽϵͳµÄ“Áé»ê”£¬ËüËùʵÏֵŦÄÜͨ³£¾ÍÊÇÉè¼Æ¸ÃǶÈëʽϵͳ
ËùÒª´ïµ½µÄÄ¿±ê¡£Èç¹ûûÓÐÓ¦ÓóÌÐòµÄÖ§³Ö£¬ÈκÎÓ²¼þÉÏÉè¼Æ¾«Á¼µÄǶÈëʽϵͳ¶¼Ã»ÓÐʵÓÃ
ÒâÒå¡£
´ÓÒÔÉÏ·ÖÎöÎÒÃÇ¿ÉÒÔ¿´³ö bootloader ºÍ Linux ÄÚºËÔÚǶÈëʽϵͳÖеĹØÏµºÍ×÷Óá£
BootloaderÔÚÔËÐйý³ÌÖÐËäÈ»¾ßÓгõʼ»¯ÏµÍ³ºÍÖ´ÐÐÓû§ÊäÈëµÄÃüÁîµÈ×÷Ó㬵«Ëü×î¸ù±¾µÄ
¹¦ÄܾÍÊÇΪÁËÆô¶¯ Linux Äںˡ£ÔÚǶÈëʽϵͳ¿ª·¢µÄ¹ý³ÌÖУ¬ºÜ´óÒ»²¿·Ö¾«Á¦¶¼ÊÇ»¨ÔÚ
bootloader ºÍ Linux Äں˵Ŀª·¢»òÒÆÖ²ÉÏ¡£Èç¹ûÄÜÇå³þµÄÁ˽â bootloader Ö´ÐÐÁ÷³ÌºÍ LinuxµÄÆô¶¯¹ý³Ì£¬½«ÓÐÖúÓÚÃ÷È·¿ª·¢¹ý³ÌÖÐËùÐèµÄ¹¤×÷£¬´Ó¶ø¼ÓËÙǶÈëʽϵͳµÄ¿ª·¢¹ý³Ì¡£¶øÕâÕýÊDZ¾ÎĵÄËùÒªÑо¿µÄÄÚÈÝ¡£
2. Bootloader
2.1 BootloaderµÄ¸ÅÄîºÍ×÷ÓÃ
BootloaderÊÇǶÈëʽϵͳµÄÒýµ¼¼ÓÔØ³ÌÐò£¬ËüÊÇϵͳÉϵçºóÔËÐеĵÚÒ»¶Î³ÌÐò£¬Æä×÷ÓÃ
ÀàËÆÓÚ PC »úÉ쵀 BIOS¡£ÔÚÍê³É¶ÔϵͳµÄ³õʼ»¯ÈÎÎñÖ®ºó£¬Ëü»á½«·ÇÒ×ʧÐÔ´æ´¢Æ÷£¨Í¨³£
ÊÇ Flash»ò DOC µÈ£©ÖеÄLinux Äں˿½±´µ½ RAM ÖÐÈ¥£¬È»ºóÌø×ªµ½Äں˵ĵÚÒ»ÌõÖ¸Áî´¦¼ÌÐøÖ´ÐУ¬´Ó¶øÆô¶¯ Linux Äںˡ£
Óɴ˿ɼû£¬bootloader ºÍ Linux ÄÚºËÓÐ×ÅÃܲ»¿É·ÖµÄÁªÏµ£¬ÒªÏëÇå³þµÄÁ˽â LinuxÄÚºË
µÄÆô¶¯¹ý³Ì£¬ÎÒÃDZØÐëÏȵÃÈÏʶ bootloaderµÄÖ´Ðйý³Ì£¬ÕâÑù²ÅÄܶÔǶÈëʽϵͳµÄÕû¸öÆô¶¯
¹ý³ÌÓÐÇåÎúµÄÕÆÎÕ¡£
2.2 BootloaderµÄÖ´Ðйý³Ì
²»Í¬µÄ´¦ÀíÆ÷Éϵç»ò¸´Î»ºóÖ´ÐеĵÚÒ»ÌõÖ¸ÁîµØÖ·²¢²»Ïàͬ£¬¶ÔÓÚ ARM ´¦ÀíÆ÷À´Ëµ£¬
¸ÃµØÖ·Îª 0x
Ïà¹ØÎĵµ£º
ÀýÒ»£º·¢ËÍ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 ......
Ëùν½ø³Ì¾ÍÊdzÌÐòÖ´ÐÐʱµÄÒ»¸öʵÀý. ËüÊÇÏÖ´ú²Ù×÷ϵͳÖÐÒ»¸öºÜÖØÒªµÄ³éÏó,ÎÒÃÇ´Ó½ø³ÌµÄÉúÃüÖÜÆÚ:´´½¨,Ö´ÐÐ,ÏûÍöÀ´·ÖÎöÒ»ÏÂLinuxÉϵĽø³Ì¹ÜÀíʵÏÖ.
Ò»:ǰÑÔ
½ø³Ì¹ÜÀí½á¹¹;
ÔÚÄÚºËÖÐ,ÿһ¸ö½ø³Ì¶ÔÓ¦Ò»¸ötask.¾ÍÊÇÒÔǰËù½²µÄPCB.ËüµÄ½á¹¹ÈçÏÂ(include/linux/sched.h):
struct task_struct {
  ......
Linux Ì×½Ó×Ö±à³ÌÖÐµÄ 5 ¸öÒþ»¼
ÔÚÒì¹¹»·¾³Öпª·¢¿É¿¿µÄÍøÂçÓ¦ÓóÌÐò
¼¶±ð£º Öм¶
M. Tim Jones
(mtj@mtjones.com
), ×ÊÉîÈí¼þ¹¤³Ìʦ, Emulex
2005 Äê 10 ÔÂ 08 ÈÕ
Socket API ÊÇÍøÂçÓ¦ÓóÌÐò¿ª·¢ÖÐʵ¼ÊÓ¦Óõıê×¼ API¡£¾¡¹Ü¸Ã API ¼òµ¥£¬µ«ÊÇ¿ª·¢ÐÂÊÖ¿ÉÄÜ»á¾ÀúһЩ³£¼ûµÄÎÊÌâ¡£±¾ÎÄʶ±ðһЩ×î³£¼ûµÄÒþ» ......
ubuntu×ö·þÎñÆ÷
ÔÚÉÏ´«ÎļþµÄʱºòĬÈÏÇé¿öÏÂÉÏ´«Îļþ´óСÏÞÖÆÊÇ2M
Èç¹ûÒªÉÏ´«´óÎļþµÄ»°ÐèÒªÉèÖÃÒ»ÏÂ/etc/php5/apache2/php.ini(ÎÒ°²×°µÄÊÇphp5£¬Èç¹û²»Êǵϰֱ½Ó³¢ÊÔÕÒµ½php.ini,ÊÂÏÈ˵ºÃ£¬Õâ¸öûÓвâÊÔ¹ý)
upload_max_filesize = 50M
post_max_size =50M
max_execution_time =600
max_input_time =600
memory_lim ......