From 612ac5ce97d9a1e571345a5656b95506b9c13cf5 Mon Sep 17 00:00:00 2001 From: Dongliang Mu Date: Mon, 8 Apr 2024 13:11:58 +0800 Subject: [PATCH] Booting: add images folder and fix the reference links Signed-off-by: Dongliang Mu --- Booting/images/bss.png | Bin 0 -> 7795 bytes Booting/images/kernel_first_address.png | Bin 0 -> 52170 bytes Booting/images/linear_address.png | Bin 0 -> 8238 bytes Booting/images/minimal_stack.png | Bin 0 -> 8152 bytes Booting/images/simple_bootloader.png | Bin 0 -> 5860 bytes Booting/images/stack1.png | Bin 0 -> 6914 bytes Booting/images/stack2.png | Bin 0 -> 8124 bytes Booting/images/try_vmlinuz_in_qemu.png | Bin 0 -> 6580 bytes Booting/images/video_mode_setup_menu.png | Bin 0 -> 11621 bytes Booting/linux-bootstrap-1.md | 14 +++++++------- Booting/linux-bootstrap-2.md | 2 +- Booting/linux-bootstrap-3.md | 2 +- 12 files changed, 9 insertions(+), 9 deletions(-) create mode 100644 Booting/images/bss.png create mode 100644 Booting/images/kernel_first_address.png create mode 100644 Booting/images/linear_address.png create mode 100644 Booting/images/minimal_stack.png create mode 100644 Booting/images/simple_bootloader.png create mode 100644 Booting/images/stack1.png create mode 100644 Booting/images/stack2.png create mode 100644 Booting/images/try_vmlinuz_in_qemu.png create mode 100644 Booting/images/video_mode_setup_menu.png diff --git a/Booting/images/bss.png b/Booting/images/bss.png new file mode 100644 index 0000000000000000000000000000000000000000..b7a1e9b5128002480fc69fb0d4b73cb85182a835 GIT binary patch literal 7795 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 U;+c9ypc6<_RS#Nt_tEqJ1IdZeMgRZ+ literal 0 HcmV?d00001 diff --git a/Booting/images/kernel_first_address.png b/Booting/images/kernel_first_address.png new file mode 100644 index 0000000000000000000000000000000000000000..ba746f9e2ab8f9217d59e25473f29a1977d2b8dc GIT binary patch literal 52170 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 literal 0 HcmV?d00001 diff --git a/Booting/images/linear_address.png b/Booting/images/linear_address.png new file mode 100644 index 0000000000000000000000000000000000000000..244de422bb1f12d230da2b1c13153c2801173788 GIT binary patch literal 8238 zcmeHMcT`i^zK+8nD1$I|Kw&Z{V4(;?q=bx7M0%4VEeHbA5~-0I9ik|RIDmBN2uKM5 zA=JczAT>$}EfA#z6MAR~B)o&(x$EBh?tNvg_s3gry_1u5)^2B?bh25(6sQCOF`PgkjT8{*$nA`JGcBNDx3hunWzhD{FT1G_xV6+TdY3O= zyE8mD8tjxf_5Ae`y-N?i|A!M#Z%h4f@&44+N8|VVpOs&WF|Gc^@=R{-uhG9&Qas-X z@t54OypGCAibgUmnE`bBnR0kWmB(!K<&aiB{{;+JB>S~cAx*vU1tyP z30hT#_R1%PW2$%k zFtBE|CY7)G-9}ZFRpPFJ8oqDS3-F?+lMJB?6+vC;Q`4_B0ydLv8)AXlWx^)2K7Z(eP+mrrYl~wT}bh33M62b zJglaWa_w4OA+O|+zb@fPE+vm{HM^RFV$)Nv9X66&?0}VD4=~7jCC4p{E4v=h;R}6W zi18RFNT$6!iHHsHcorr1dYwqcuach-Z_E{-aE^qCxll+=@a7|Q$LSa(%ynbdN@s8Mbh4p+b?jfKhR_9t(`!uL-2g5YPwptSkqSym{hXSA3hPHrosE9PX1{$ zXj8G}ERL%|NtjH%(g__ENnUVo`9Ncxs?}Own^A+Kir4&t^8jt5EJ{Y>bED!FXk&Qp_s2K$ zo5-lm6%&C$(Uz7~2{JJ4FGa7aafS%$)Ur^B>O-MZ&jqq*zPwjM2q?|A>cta-l7Y^! zFpt72fmbF^;)kEF_Eo+u*=Nif=ajf<*KK_k+Ko1T1UGNEM-O!1&Yn3_a!C+e&3rnM zw(tq|CBDyNvX?ath5C`hai)ah{-6`AF=JdZkJm5e*htvsU|=uq#|J1oB^RZP!J5Zqko=GM3AXWH-Tr6%j@ zT5x&9uCKzkC#gE!6E3*)wN5x8B4s`Ic=u$(&SXcY_W6oAL>Z=-)%vm0+yyY45fvH5 z;(@bO7qg<04x$DtZoGRS?0P7DOuYX~M{mU*u|RuUMW}3BX>O zIqern({fCV^P%_epLwW@ErGG3?{#1wLq9!nUw*z%7zBIhXWfVyJr^DU^}1wq)w_?E zO)18w$!&hH&U*r0gH)-A@< zOB|EyR>!jrT02;o|D5c<(l!UHo%keD(*l1#{uNE4g}naMwbqlRjJ0~x?5#clnf`V&p4fL>z8&191C}4Eo?4%PTb8+Z9Z&?lY@3lNv3?+@*o6cQV5no zRza;Qj!6F=ygac6XHd%Q$#0C=R?3-+46kGqppR$WW=kid_1YNW`h?)ZYK>c+EjQwf z+S4fn*C4AZ?RCQQ#la%Jb&B5da9Ibv`?)5XO&M;|TFEz-Mmx)BhTa+{9$h_&LavJP zZ^)XRtr-YXW3$;{?Ay2Ss2k|c_B-p8Qp2&**O}ko<~!o-z|D6M0?NSYM9?2(X1!TM z_W9l=Pyo5OV9I(`M+}xZ*=qN6=c1-$FX6bfZNAbxbp8 zHq|{d_?<9hb|8v!XBRP93xK`v5dIC&{|e&YQ2qa_{^`rvO!!gy?kE@rqltn-k)R6t z?x0BE`(4_w>NdO!1(M;n?D#ELzAI0NkKYfMQ&fcP1x>lZo~EXX!Q~Vb)V`OJlaIht zG|}Z|z?jW@^P>%g`T1vUDx5~^17GaQrp_|s{ygk z#76eT$oBSjW38p;`$9*=KWtm{$7>4wlu4W|217ZcP5HIAd+v4*2}?lQy@$D-QAyrH z;KU=2J?Bs}gIU!+_DaP?VWTlFPi|3uDbXo(QK*~RYOHxj8x)5Z*(k3zz8h9WC8hT= zK7PU2)XYgy>}_3JvZ;%8rz~CsFezn4MMc@!pBW`M$EJ|#)UA&FA{Q2jzEFwd+cO#N z58fL=*VE#ni1jb;a4U5~8gI9yq!xfL@6qe;aNL-AH9%=pt?%DjayQY-Qo^hj`lEc< z$;C0A@dxruEdw@By>pjRnR|DrM4Q7r#k!KY^m%!vL^Xl z>gbu8KEtnkCt6~qVA_g`ICpYpthnkhkB_!ledvr;enG+9rzqbBAp|1WD$KS?w13l# z^rRmWR#_}_B1+V}VV`<=FuaI2xoWKzv~5I6+G953N14fM5f%aWl?JvCIg~}}XlonFBM{~$ z3R~hb7W>A_eD~mEh1BT##(47^E7S*iU~HN^vm>EOIRP#RKH*M4rW}PA4ZW)OX3hF9 zS1Lrq1#?2Y0>@tVFrLm5_p}RZQX0?;V@;vfmX=+qDuuwi&(EI>U1avp*G@d)tTGqg zNR&FLa!aeW{bp3Eva}k_w(47-+=48{806N~>k}jumzKviXKMtIa?vKyB?@PXi^l4a zmu?N$g}cG$T1X~!?h)*op5&0=-$Oz|%uoo@g=*?6XcM_}i2#kF?_|Fi3Kgphz zZ7@dld<(F_S@X8%ilGH7m2)T&tqG#ySooDTejvH+Lu^eIFEl3=QdQO`Pc4}V+Bs@^ zF%nlMYenHr`!3A~`+tCH+8?N(Kal!;cz77ayVJsae1-?r+x0_kVL|j(PdxHa^@XxuOtqU1aaC_%4duM%f!G$rFcL_d$>_zhE_TgfJ zPzmSIv5d;qrV(A(vYF+mfzNhP9RYe2GZrZ#40Ga^dMT!5YK(uO1?UB^ z9}_c0W-H(sKK(hK@2PKfT;;pNLbyrn10gT2VK~%R!QcrjB5QjgYK7!|EpCz5=MIxc ztTL)P;O4ZYiEha|l-fOf;y&9Oa(lt&=QY>HElebQL!w0EL+wL`JR-0Bv`G-vPA61W zb{D*?!CcGRu3dWxZWR#^9D4&kn`J?rd>tePKB1~!M89a1Ag#L_cufYj3rwEZz z8=YuLgPxzuaGB@v0YjSGtig>cTv|XI_uX{H@UJRZVXkCKum!G96#j6(id`WpR8}5) zsAJ$-Gu*SE71ir?W`Q1KX?3eAW)y zd3WeUG|sEI9w+`@R`!AE@^k_wqPnP*lCx`SH{-Nd34*Hp<<$d|tkBtxV~d_v4Ulc{5cvap}`@+N`h`V;T}16hja5JP>sH`gLrFu-}k~0s+0H@Y?4lo z65T5#w7wzVdKyx0E75`cq=es^`$J$QEkiwLX0$`|MA{($mo~Fs77&j2R0OBHlxOgk zd(p9&o36L~xA5`@y7-CcM!0a$1k#WEvdnw*0-Kv|0-c_I`gFK9kU{HK*P{Ia(BU;p z-_^?DfNoD0(QN8#Ql~#b(*>20dY8MM9v}_+3tvtg5!{jN-w3qY4}TT#v7o=mc~j&+ zcD+0L>l;BQ^anB-^5YH(2R_(nc16WUQQ|X|13MnU-;iaP(y3FYz}V$wzdT@;b-vWp zR4{gY-1&PcI5-%Lt@Edg^Ml%(q-KCztgqkxJHHU6%+6gLB)3jfICZKRMI%;MS0~7t zs0pwAJhkvxBb)pFe#1=vkttN{tr28vN&jII?{n5+luDrKJh!zV*-;#xq7}THs}o}w ziD6$nbmWN6C*mgiy(cq}#G50upbduJ9Qq6W8zF{2Pl*(6Z;HFHwfIgzSp1rmRnYh& zSq1yrkG~CSdQzHhv%jc+y%u8(y>V14M{WzsOxQd!#6}4~sU8N5gJNN=E z^SrOl!z#!suhdx9_)gXN!*KT7P4aANdTLVI5PrLvpzqc3w~oTfSo$_Q&(XTcPO_cW zSmCe<-d10!{arFx-u9UCaOQ z{u1l-J)t&iDwAA?d(+Hcl1$!oAx+^T%*Eh>mO6wi<*>DLz1sG8Mjk0s88s;;qJVo+ zh6!2`_EHQFU9DgBqBY>VMob#*YJ9$wMYfb{p($xb67pNU<3F9tnUSgo?(^6b_u-i<{24G@{U|r-iRVLM+{9MgvxE7$GaZ*{y$pcmHaS1)z`uwv zFJiB($0^R8cl&K~QqB`ivFI?4?YL@t6z(|yZdElA%wcp$Jj&f@3GdcAeMSL$g`aO( zAD7uw`SLSMa-cMgJ-HmIC_z;}xi@F@HLLy!k@xJ`gvNawWmjS-Ej}qpEs)VCq)_YB zldngHu2X?^4NzI9v$KygGBOq#uXIhX+8vNky9)49ur^dvUK?v#XfD<_QC9UMjao?vZLk+8yZm<)iUWQn8Nv8#q1hNW^twi4PT)D*f7C@R3v z>CaI22NsXMzW!E-Di4LG`s#8yt0b24QgJN9GAYrj1^y6j+1B2}IQ;i4SIUtuc`)z; zR_v0@wK5Egva2=g9D9Z|nQvK!Ku8LSnH4Equc&ZjD>bhA}Uc06wH+%b}K&yOa#QJ8L0JZ-t*gF7w zLy-kgZ`}gk3XeWI+VE95hSdlB7r8};eOOq>@*-ZY=|5f)*h5CaSRz)+LH|P3r?OqPSrOr$s2~j zYVFc9jHL%Md7FrJ!#%!#QhkBgp$oHkz2II>O=q_!h0d!vASn@;oiJG;@-XQAG-yK~ z5SPyQ!4VXxX#w*R091yb{+tU7)kQN;iPyV3+er#kkqJMu$UXD7H7PTcL(!b8U*IPmSl7Ga0z$w<1|s`HBkY`h8SyZn~RH-z9g%K zPr9BW1jbU4va}V#??R{3)M7qeO0`MbwH%27;}0LY9{QXfW3at}?h6miE7MOPw`yxo15!0@Uy26mYfk}7QbQqP zf|7=sFD;=co-zK=Z4?K&u+zPWHkDt_lR4Za#q}Bgd;n=6 zd2Xria19mUAC3nKR_lYN4Xn@eIw~+7hK5%?f(CWSHy?-HnCF9aMGJwwxlRF5`Et?Y zy&_tyN1f*sn?igp+TOec$h>ivbBgEgJDh^SU|3Tdn_CCn`2PnN6{te<#L-=^c?vsz z74PKz`}cvH?`TQbjbFJT@R6Klaim$Zw^KDI=wH`*uk#jC?9~ zuCx7FiTh|MeQQ=b>b#MX8!-LAf3(&&((R_OkExFbUyPS&MleE{0(qJzd@yO6>g$vA zhEdK+HB4W1=PpMc{Z~VP_9Xs3|Kci)xL_y^nkA2I#! z%=MtSAEiNSNpjIY-5BtG3y^qxin<&G*zAVzH8E)dk?i#e`v6Z zh#-QuXyfDBun}up+xk08&WQU#UDhl)#>bpXk-LR!wySDtD26?6}t2+UoA^ zj%M_of2??aSj!CBbFEu_RHGxdZ94a|6QEQ#*52zBen<{QVRL{Bq zO6uQlUH+5Z%>Of0PMBp<)3SB?CP~@_*gZcPpkoto^G1NHhKrvoZ~-YRDW8*9x*)Hl zeC?c?hVprh^D1YQlr)r-3`6$h{oMc`)J+e!;D0>;DvOr_28iv2UL^W@^930umU1QIvS)1N)_qYf`ByXHQ+Jy0HLEGpr8=CQ32_KB29t;AwUR7 z3rOz)LXjF;=slG8g?rEc-TNzfS`1r&Ap7uQu2ormL|F1uR|F6K*^|e7DKj7WV*C5ayKzca~ z0(nb-K=V&PAcc=0&}Fxj3Oyy@1>I9kH3;a4_VWp!{T>A3ZPtL?Gki8gNj0-DARkuG zJ@4=vy4-mHK1?{xc&<;MyYx|?zHiBo!=a>?7w)r)GMGl1H=M-?vpLqz);pj$m{{U8 zP_3`DY`|A1AN6ksy?uFt&2`x4;{Gr(U_uJs#Oz@W4`x*bfxcHFYcGO8oiZTMT_Ug( z=qV7$i~b*k3OW#ImJ7z}Vd7FxJ9c(|6y=#bsC0Yg&iXsV)Qgj_r~qRL&hm4k1(p7R%R&7GHc^HS^XXv6io>?jhQq%B*>HEydEgaA;6Ib z8I5nyC%&iP*d$6Wb5{>Motmjs`Bc3Ly#-6>Df7tBsM>ovZ%!CMixkYQQo7&0dpGeO z_mm@Y#5=F-%a<=3#_0mTdF0c7W**@s{fr0X0V!Egh(DuxgEMHyUl9n?m(1Y0rzz+QYUeOb~g~EOcGA-Ps)!Kz5wl+5_B5_1%LVslB9*@#$`}hLK*?jg$>b&|mrsH+R zj0uZNJB5YB|m>ZVtVIg?3@L9)smyXJtR|AWL5d5(8)FscA z^`py;8K6qKl!^^ef^qi#pV2Y1 z6sBw=B73b$f3-2nq_C!z z<5yx*NUbXJofJ1Oz8xDu=Mw?mmtgt&BtbHtMQHr@@y6PaWOj>GKZAv!O`Mg3|BS0f zXLnL@Jcjb7PAqUQh{y*wnX8?R_Th^KoJ#oQ=H7mAOEwLo zO^tA>NawPwX?jq*d57^CvT5+3t}%-8t@F=O2h|K)^ub(iGLlP_R5LIH3uvCdMlfCu zl2C=Dy<%Rl_ihss9abQ>8q_viX2QAL^ADQtn7GLob|k&D!0g-jq87TYatE6jkfK+3 zi<8yc5!3V6x@h5xc3>%8sq#3qkBo1IDhj+@yjiqC{5&H-paVc2%~#c z!_j~_}H$H5k6rqz3Co>BBAaW(|$QoJGaC^q6wHyI38v$wkd)9Bm#$yMM`0dGd4l?@FA zB-xS&=YEG<#>UiF6Lw|V2M$T%<@TJ}x)|z1v1_km63D)7)Ehy}Fl)A3rM_NXUO!~n z7C$m1TN{_fVc5IcR#$dqI@G%o+%1X_(e6x|XUr92zQGnJm9d1&N_5t4{@l_ntIcQu z$x=H+>ecVRSEbquPpnjsi9S+nSd;FNF^g1cn~!@<&-M1l#rE_hkIGWSv$Dda9Xmo5 z-uBFE&ielSu{Q*2w7oAxI^Oilif7XNfprkR+E0>9oGDQM4v(dL{?mdzax~F;%q+;2 z$hpM{ous77r%Mq^ZBh>kzEy5?XYfcyHSo=OudVwrH4nuUNxIJ5eNJxWP0kXq=YcKu zK*QSE*wTI-O2uPl3pH6hWB8soel|E8r5XeUTU@z&-nC=HgDy0(RGKhRU(Ld*%kOBs z(ShUTtauR#xPKFWJ?3i!T$ChR@f`L2rjz)cfR=_1 zlb8V3#)0NG4q{kJp|`T(6V+g-=lXlyK-K~P^nyI^`~9T|J4;q$!;x!oHZs*;UL0PB zMPX*kTz(0;R)3V&iq6p&hNEgWT7pLQ)>3yicvJ^9xSq1ZZus>0-Z5g(p(8JAtfDi5 zA%p=knVP*r988;=-YBspwBik1Z2em5cDD=hT}xaQbT1`P^d~jXd(pp?oj30swT2qX zg^9}23GPlS$su-e4~d|khn!pgIsE~dZAVms{Q@43XFm>7@Zi_8DQji36IBz16z+aTATW25^l&VxH5{n<{8 zmrFyJn5FDp;uXs@==oPvrB0bM33cwX`-l@uEvf+36?$rx^YttzzyTowiTY|qC^`dv zF%v$^SwYt&1E@fvPk7Pa_oDywH}#(^|0h8j%fAbPpdl9l8v*rQGXHzIW9mOP@DGV& z)&HapNf{r)a4rr~7q5ZAu{|Thxug83@M~*}#_MeiM$HR1Ty#_Wv~Ee}42HZ?1y=T= zq)Y9VYG^>vxqD%Rg;-~P74VwzC@Qk~mM`~|eoS@-VANe=e7vJJ!)27?UFIQi66wj# zLDkZZwo9bH-zTBAuoe~}UfsC^2*fq{fxc+^V3+^+M0nG(S07gRJwHy+2-^2Y`1U9| z0rr+=29)Z*O?2f{3x?DyCzyTVfrW|GwJ8iZ%Us;u_$uw)97UI$*pwwRjWw51T4g3U z=iZoZf1M=!1jCBuv{;0kFjA4g zmHu-?ZDYp7IU`rRV79)PNKdaE(z3MD<9RzjAJd)QuNO6Jal(r+Y$Pq3=wscND%k zCI445>gkhzSVt8P^)Xd2+kK&P zZ&{$rjhh^?%Dher_qZT+Y+w*JVp942=k`tte9FB7=U2j^pQxT!@pT-DEdChe`jOp> zi3!oIHRY>t1ELZlX(4i_*Vd%$Ie6mhaCAX&Vc4Uo)BeLJz|;KR=jb^8ue@}Y^PkZ| zckI!}VM22+Ad+Z~{Lg6lZ`_+E7*7|d+I5>y%GUgX7G;0O6Saja3(>AS%Gt;ssjFa> zy~>30rB%1q)`hq-e`T06zAR^~hIyI0Dh>5L0#jBP!@^6w0BrZl3q>3uSF`%5vv>0{ zV;E_TnS*4OH`643E&A`Wx#>ZJX%#{oIkjQ*3* z;w!=Co717n0%Y4z4A1nW<*bA!MOSwOGHg1?KKmuwO@sq-cgtxgpRtnv;B?nedJ}@k<~AAeFD@#h=<(4 zTZi+Rweptbk`ll8EdkX*FyaNe2MC0Cb1;Cg+!c0M(l&*(eMns<&&*`r05~*pa96CN zxcG7iqY5&D_S~o0m*7T}i^09vT?^w2WM^gF9Q9v5b_&gMc$nf*$@HumUjU0tEUT!o z&C5Sc^PnLsscz%w1_FWi6b;OGN+Ty9bBEn8`_^7qAQ!Pf2WV>f0Wa$~1%T)F^hp3W z_XCBGks3fd8Ya^$IgS7Tu>Zx`{*48|-Tx8dkAXiPl^eaK0j8dJ$%6>KYbr{j2xfk2 z@GDx=wdzV!$WL^5`nZ@Jln6~5ajF{3cvPcC%Mi0eaPOP=n#^;T z(DH1&CpP_zQ$^}{Z){^Ft(-k?)0-$|9tJAK2_JfF`BKkaLXl>K3s7NJ2!2kkq6>aa zw{iwaPq0jm)aY%&laO1sMQP|uX?maF`qOW&CWP~Y*W{p^H=Av0;^N^J!#(N4Uv|lM zVae(TcLma{zS^1=V{7dArG9;5bh!ui;4IiR+HnKmi!!p5WB~V{5Ik4b0=LT))XXi3 zV&09KS@+#6U;yK$9TJ^&@qJnl73;Cz^?eUj&1ciCI{3D|1wIFYITsAF&$i1I!X1O; zz9LN+=XGW07PRiAkHnjZmFe%+*yX=!%9c&dHLx3Do;82yAT8(X{eEWAfKkonIh#sR zC=k_KF+MJw=zP`dX`^O}8v|-Ai*RG)wIV(~zwj4*zEc?=o|RNYAwO#-cql=^n&q&5 zrt%MycWx@dY>3^<^23lV_l0Gbp%B(W^W2?KJ=O8aPOlntpIIBkAOdqMT+1+*>%zrB zA&)ORFKD*%EO8==QxOsj9+1P_eA&A2-CcQE|ACVu+7XW*wLTbEQtcNpDtD5sL{JwUf2+-PPnA|w(XuH} zJ^{r4Zxz;mQ<@E3nj1<9qqC7AX+!QsZce2isBM#vlpBIp#BWrs=1mV4%p~*VeYoS9 zf4FTMk-r%bIB|h+DuZmU5eFn*ropt1fQhwMn3nz5>|S#%)Ezfhf2;CN^DlV|bZPtT zwN5}tTj)bI5#MuyAq>>(?r6aEUkbUbJgM_~Pv-UG0G9?F^efU! zxA(ed)u@LiPW~>$fVs4|PYMO8s&0^y;J5~!*zXA4Jl*_S(AWt;AHI$+yDP2y(OJ#s zABZulL8i{S5Kh8`zt>EA#$W#~;Q8>-*0Q;ANEuQ(7e+{cJ5lzhKGsR}lq8}ysJsk{ z-->bZfgN*K1Ix4%10N*H6lV*{wd;GwMK`(JF^d6kRWk#wQ$Pt%7XB?(m>8aPBdcFZ zXG%J$W2_IWfLx6KY&%Ylf8Rlrm2)rAL$U2;6W1F9pucj`k%YZo$6#r(;gXFvCiNsC z0UiRI=3C^Ax+MJOZE2JyyctpA^lU;XYEa*-IrXfJ-p{9^t}>+q;V01(Tx+M4dDDXN z+brPl{T&IlDICXY|NVTyYHW#GP(c0VYegzOU&qoOuRvln9Fx&ry^YMd)LzGRA(eh^ zr&3Pj3%{O3h3Qt32DMI7wbJi#P=$uI{kgqGpgtX!WEuFK91+6QqE*fRU0|+QO+|hJ zuT{xy`n>%??3k=k?~`sVUl(1xcd)QS3Dl*Zm|V**-%}EG+vH^vc|05`EU|BzEQZQD z7rovZ^Os8jH{dSuK-*%x!u-R;Tx!XKSXzx~_eLE|UCl^nG6_)Q6$v)UZ$X}Uttp=d z2o6gwAT66$)7jGWa^ORj8AQGpQ~VQQiXSGBVOiNmIUWl#@^Kz|iC+o#ri!NHT0D7a z7iz^ntWa>rKx;#En_J&K~aT478NkO=byawq#>X1_*saxim+AS3hL*h*juff zyByo4xZrw5>~+Yc#GTN?+*m$}5v3eBfR*k&3s!LW4N9yAc@b^vU6%6dlLj26@`J%Y zyvgFZniw0qeWE&;M4CCLRY;4W(Jl1qZPG5?mDsU07TZX8|HPEG{^iN`= zrP4NZ`>vl)wHD=DSi7V>sA=s6c@=|OTd7G+Zn8ZJ@H&K8jJmu+hc_FliYv9R#Q%Am zRDxkSEW^K>&~L0H?6a~t?W6aj1{o_en3y$KcBNu`2Xw|B+w^HiF%7CUZpWREwaM#b ztg8vL0w0ihh>>~0u9^3;b%U5?O7IW*x0kxJ*>cy0go(4JaONr_t%n8>S zM*4`e!H`3eOfXEivSxjoIP-184Zl(nlK>U%>6IrR?(h7lNCz7ybS-*y%qJ<~2EFWm zZfMe=hA(h}|D1}WaoQzzdm5HzZa-INCEIWVg^!HmC9_8bs%leR$>)>2SVanJY!nU3 zbI`V8PYLos3#VG8q{dEQLWmaDcAm4}ItNsZ-U_d*91fJL>3F^s{=J9SK^en%`6nn_ z-M3-Ial*4zfub+A>#nGs;OqJ_tvI|eZf0IK`!#N zrem}yN95u5QZYqv$w*vg+e#zcKI(w%dviN)aLf%{u_ZK8Er@1^dt5|Smup;&Z({V; z78!;>P9#vRa3ZQjIp{2L;4Fy`$kkTYjM8}4w3tw1B<0`VU!%EtwJ%g4k+P10Yl=K< z;Pjf0H{S;Q{w#Ma;!bZ>@H%Pr%t6FyCb#!NZex*(tQuz0lmrCcCH#(TMAo!&W`m_?Q zS8-xqh=|`CQwe0E4LDaS$nVw-RDm=|?=K@DYoZ>o?2};idaZ zDV(>Rg*3Sbv%GI?zwKvdm~BrV z8sWB%eg>4sY<>8+!>>DB)fL=fEMRn@*B(9c@ww7MWZA6Ig3q+CS@0A`lSRkVD*RB_ z*qBucceP(*7E|F$y~%`$m9~wu1*%qeDuLD2b}@3Sm-~6z<-nSO{&hzGb!PU+3whgS zfe_*!_P+Q*2m{n2&6+sO8%EHC)cfNZ{bc3}rKyb2r7KLbb7ejjRf~;IOUrr(0*dhQ zvCkFz*hAhp>%)b9BkOpeHu7mildM1DSI4OB*$oYXL`PeJBeRkM^>N=jZPE75Jyn@W zOJq8eXIL$_iI#N-iivKz((|>c#0edPCwniC8vrEDUT&uBiuk61_+ULgre$6+bsJz9 zR#hp*$<#Oq9N@^V9diKfvberI8WK<4#r3134mVm(Wp5*_5{!-vD?FzG$#mTEV@oZk zFln#afCs|LHZXWwukUMT9I2P>)XElD8!HtzPQ8Z?NkKWlu9e_$Ny0l3 z?-S-Z@Ze(Hs55vAXd2E0b<_zlLd90*MZV(VnJ>Q|ngi;j5G67@my_tPD0^rB+)xX* ziCQvIkkkXKwJ+mN^@o`{8z+PygX7~*r5AmC-Ii}^=`*`+^}6ENA?tU6+p{;ZY;}HQ zRWWi}1-$)!xP&hfZrFhqL~GqJ_M?~a@Be=sEDbm^V-KZDBMo;bE! zwq;f;8GG$M2E*J>D^QeHOWW(Kg+42*XA?pE5?$_F)XlD_g5i%ZavM3X1r|{U{0Khr!UvGi%hiHXr7Bp`l3x;6 zhaGBo=Hf@FTVkOspzC6g$))37>hXpBKU$*DkXg=iK)>O*-CCQ~FB4MJNg_oS0jy$S z=t0U>0Cfw0bVw~PFBd*vK{wvLltiMmx3o}yhcIRyKeV1et-!EM%%qrg)&6)G-$PYZ zpoi>F>oJY%FAa^i15moxrN*b)25X35<#=);-U;ZP2w9fFF&Iqa&y#?vD$0bM*Dhb! z$raaNTK@sm!aPiV1@!NgY68mtbzJ-ZHu$BDi~n^x{2!CxzemVBXyPSX;BFY1qlf)zq6nJO~3_V z<7oH%e-=;{!tenC95f9E2sz4qZWsN)-eow1Xh1KtMox5e1@@1c3xdMLB>R45$bZF(3lc zy8&rIDGGu?dMBcg5K3rLLP+v9_nz_YcpvZYjrVo;{+Mgdx#pU4&$`Brw}o1W9FRHy z0)a%XUNN%+fqwl00{xP+?^l3w*(hlQ0KdUZtW7|mill=(-g^N2#O*6~)*ujC2?UDz z69n1@NKvyO5K;pKn!5=CL7sy^$Ae$iT{i$2dv94qECieB( zUh}?ZdH?VnMkvSjSJBh^k$3*8I{e~u?#UY_7q24r`BpeD@7=oHTcEG?G%+#J??PWU z3@0eJs7l%}f{ZfraEVGfy83lEJa){zrK>wp)M@WQPMFd}CUhOv%M;@KY+rsqzTlkf zINxh)W@d&yS5cy+xaRgr$~W-sGixwZy{jSk`$iFSi8BOd*Q5Cv$D!kRe{Tp0`iOWe z{X$ocM9pN#T8G3ZBktBnw_xr^CT?c|K;a(4X^T)(adB}LrPVJlj_GINWbK=;;q;lX zX)i38-^mi}{NxL;VM`be03n1~ijC|`WoBI5fg&B5bI0WkdF@R6OvPFfSucF!=PjBs ziV@nhI-H$nBbp+d9dt%PLBa6(a998GU|LU#q_i4bc?KVbrW3IKQ^wE*_tTlKTRkjX zXxsSkmAfu2S*zbTpJ*@jF>`$|IhV9hm<^e*U{!nJ_ZuyYw2Tay-&Ia=x!+eJ45+8m zpw@?&%r_SJ)mbYl!4g|LU0To!DEW{Du;r4#D62#6RUcSwO3^X>J6*H=Ki&N-0Xjmu zLxtbm|8p?V3&6TX@}f8G&CGn(PU{%Dq><%ZQdu2SR+Rz@H=NI1;SdPH)!vB+Zap{L zr!O90<;Joc1RWA$hUo3-0s${L`(@7PE7r>7TcnGmCa+$Kl zhmNL7O}@pkyRyOZdK}xe-4C)J^OM%@@|94o@^4X+On=!SvVi{1St>oF=!u!yNu0v^ zqi*@HLwyxclS%b2Kj4)ovEZ4;HSwuFGc{X*`4G65i0R z*jUlr-C%DQavnZxSAqtHG#D7VxTIp$koN@3^>Lj`a#GmMuip|dt23>{ZdD(;;f1a7 zOVuymtspjz9Fs?H26Mjir?6_2{^jU5Kgng>4E>2%}|Cir{GG?64fysn;kM$PCa zjo&{Xex$E}pBwurX(D_f3nPbKzOyESna%j|iG8h9o1Pq@V`A+sCWV@E# z@InXbWM1uhL^{{U_xIJCfOITtuq(SUPcja*N4b!n$fQ62>_c$TwH2c|w^=qcpM!#0OA<*tyP zadG_;#j^a zTBH92x~{5ifS&$pXdxzR7{csP3^!VBuSjvh&SqrCCCcgb=XQ^OWq?QpQ`IBX1Qy?MSUQUipG9aV4# ze>oFA_O$a9Ns8ULm|DM7$180SPG_>~;dIQHDp8728SmTF^fTEPC=)H*cCIVMvwnwL zU!~R7x^?GnV9rzPlqK{w1^BL}h^0G_Cszes$YfQw?{3wBXJ@uQ#e#cBJes(G6nBGU zoB>4`3qE6tWXtf2!DqEszk2PKT&Ao%^i<_Rug2XTMSoXw;pviep_S4>;U>O0AV=%t zR;ucsRZysmmyj+v^oV$blzZ_pu3Ux?I<$_M44X*T^>A|A8cqoR(tvZL1K8$95Ketk zn-?9E1QZaXbbd+wQ$qAeZmh)Zl$Okk!Ax09I&&E;YW3)bl(zf&gU;O^kUUYnwWnX+ zC^QfV_>Rioc0K#FOV%bDBBwtA+W2=GM znlHmorMeR;!-l+oRyOLDL56~pZ-WJeyF8K+CfI;POQNr|wh;<%%u`^-hAI9dyPeqj zr86)=H4WY=2#xfo9KO<+{wyTWiJDb=P%VrnyecF{Kpw%J$I`kV#aR&EJeS7!sqI#8+e8d ze@BcU*fKkv31x^G*aJ)wwcOCq_Drhi4kMg|$U@I_=zr|P{db7YG2@hllQ2fjd=qwb>1sSAhQte{Jye`3F9E&(ioOU||O&9_w( z%iDJ3PpoV?pY%LK-1zikC4z2szBaHbH><~I_qvfLHEt()&LMWMrcj&N>!rp7H6AV| zkiKPGO2+^7@L^zc>$SFV+uE;ZqGPO-2Eqwb+j-{rm4TH_Uf)ka1ab#wL)`g}i<#Fd zpx(c4l?P$ZTB86%aifc?-C9gQUO4WFB1{bcC1pm|D9chg+_E zJlX+gePGs=zfhz2bL@2Ju4}OU)DH|YLN7mGwD|BmqlHZ9 z%i^h0s<4)*iP`cvLrvil7u``qa5Wg6SU~ z-MFFjSA)N zg;`N{LONCjJ$K9lDi4hTyOSkPwN~kRK@t4xl{4`tzp;b(?jDB9#V%y=2924%Exz)cq}vA+gkYTy)C12>B>+f&OseWhdAo0w0FBG#0P zZ=-74hqUTe^ol!F21C+LwhFgSmTA3q-LpSDk(EPpUax%+Se`6_nl6gHZrIO09s9K= zd#^h&ApCCO#DG0=Z{RmO#cwh-sYr8`zqneL%JPLHFGSQ}3Td;!iR|TTX2sF-N{edo z>#k(+?Z@*u2(tY3DaWVHLAK;y(t|~^^X4AG$AzW7r|+wv!Oelmg&A~!g;7800KN#F z_)RCAEWR_|aFRMCHEnrds+93_l_zP?fT1sg ztVafSO6NUTm=r~f28Hi^NU3Xtv_9+QToMKH?Q6vS58%Mv%=x>My@1VjNvx4#~RaDpYNaaAE=&6OfxUJB>!i?Adz7hSR<`U4?ijQ z*D`Uu@m`5_QEIa1yBhOkrYi;f1w8x@;XfYB4%|@@r`k7*)XuQpkm4FrlTB?hwH&Fh zRp}wBgsK+!TV(Y-ndEIhC@D*&S~FHqd8}$3xw^O>RCc6T_M-V?k!k~%>UCG$O!=YB z%dF{K_w^=gxw(%$(m_R0p_m%4&+st(57AobCaM>_rDzV$+Fx-9g}>gMD~82RY-P=X_!c?3>H!R#c(&OJM^Szaj@lxiQ|+bdol`hw)N2DpmB4M#(37S zx9$Un2$Rw`ar1z0%rOq(o{p%Cr6-mW)ox5L$~9(fnlFn*Sc_IOx{ofG13hP5DrA{C z*ZWUx>k!4TBA~d?S+sq+vKAEgBW#^9n))XEE5I;0Hs#QJ)mM^@l_`xQmpLKpX|p~g zbNz!9iqvuTIGyv`7@RB~ydT`^(okdyug$2?F=g{Qyt4--KRE5vwFb&5OqyN#I)5W* z8KT(g=~^|fM0RI5mjR&cCURIHYSGhiWH5JLNxGD_kC(hpj6n>UIMw>tw87IbWWt9C zjuUZ#6%XNF1=z#FDs=~M8vbBb(S{#x-roo$_cXqCBxliPHy*bv=E@al4F-e^M<72! z@MYTL^@giUTbKFX=bO1&qd2W_J6Q3|rmH?@4#|{W@PUf0oC}*Iwjb|SI7=N0aW}jH z3v)hTR^LCgsQwv+Z2#ajBXWLPJ6#5y+rAGkHUZ(2OBpr4YD>Ciuk1B;ykyXiwTazI z_@m+soF;DAypx&<-qjpSfNxgXe`O*`|M->e& zW|siwe5{@w8Q=gXZ;j70#x#rDu-811n2^jjCeoy%>q8Zh{Dd z0#MuTn-a`e=dDTr`~Q2S-^UzP7!O$kdvx}cEU_0qz8{lveN1{+LM`DY?ztJABGr?z zFC763f?l`mu1tirvIium&P6Mgj4q}_grek1v<7|M=N{eh@FZKP&IxRC+*}08(|>L*KpDS*hqy|WGRCzwrWO%6fi)q)+O_M(zGM=4)3(U zlkHuX3BvLY$rjN`^OuBz7RSB~sl0gRI8`c487HcGwO*|atfn(lPvBde@+u*3;PXsM-`Y#$2BiKJJ>TQS#hOo0`!Vz3(ME~b@BX= zHON^2Q5-+q2+77E&FeQGzSU2KZZs9{xfyy)auHu}>ex3MV@my`96LbWE_<~??M3Ap)D4@(29(o56wj|VK Qv}@Vb%TTk@OE(|<7jsIDBme*a literal 0 HcmV?d00001 diff --git a/Booting/images/stack1.png b/Booting/images/stack1.png new file mode 100644 index 0000000000000000000000000000000000000000..78d4c999e1f21cae1eb5aa7bae25905018783f97 GIT binary patch literal 6914 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 DMr{2t literal 0 HcmV?d00001 diff --git a/Booting/images/try_vmlinuz_in_qemu.png b/Booting/images/try_vmlinuz_in_qemu.png new file mode 100644 index 0000000000000000000000000000000000000000..5b44d6980a7a14185cdb0c96a598ec036e04da71 GIT binary patch literal 6580 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 literal 0 HcmV?d00001 diff --git a/Booting/images/video_mode_setup_menu.png b/Booting/images/video_mode_setup_menu.png new file mode 100644 index 0000000000000000000000000000000000000000..99162acec77ca3203aa9d2084f6e3108efa74938 GIT binary patch literal 11621 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 literal 0 HcmV?d00001 diff --git a/Booting/linux-bootstrap-1.md b/Booting/linux-bootstrap-1.md index 25e6d6f..28c4c4e 100644 --- a/Booting/linux-bootstrap-1.md +++ b/Booting/linux-bootstrap-1.md @@ -132,7 +132,7 @@ nasm -f bin boot.nasm && qemu-system-x86_64 boot 将看到: -![Simple bootloader which prints only `!`](https://github.com/0xAX/linux-insides/raw/master/Booting/images/simple_bootloader.png) +![Simple bootloader which prints only `!`](images/simple_bootloader.png) 在这个例子中,这段代码被执行在16位的实模式,起始于内存0x7c00。之后调用 [0x10](http://www.ctyme.com/intr/rb-0106.htm) 中断打印 `!` 符号。用0填充剩余的510字节并用两个Magic Bytes `0xaa` 和 `0x55` 结束。 @@ -245,7 +245,7 @@ X+08000 +------------------------+ 上面的公式中, `X` 是 kernel bootsector 被引导入内存的位置。在我的机器上, `X` 的值是 `0x10000`,我们可以通过 memory dump 来检查这个地址: -![kernel first address](https://github.com/0xAX/linux-insides/raw/master/Booting/images/kernel_first_address.png) +![kernel first address](images/kernel_first_address.png) 到这里,引导程序完成它的使命,并将控制权移交给了 Linux kernel。下面我们就来看看 kernel setup code 都做了些什么。 @@ -260,7 +260,7 @@ X+08000 +------------------------+ qemu-system-x86_64 vmlinuz-3.18-generic ``` -![Try vmlinuz in qemu](https://github.com/0xAX/linux-insides/raw/master/Booting/images/try_vmlinuz_in_qemu.png) +![Try vmlinuz in qemu](images/try_vmlinuz_in_qemu.png) 为了能够作为 bootloader 来使用, `header.S` 开始处定义了 [MZ] [MZ](https://en.wikipedia.org/wiki/DOS_MZ_executable) 魔术数字, 并且定义了 [PE](https://en.wikipedia.org/wiki/Portable_Executable) 头,在 PE 头中定义了输出的字符串: @@ -387,7 +387,7 @@ cs = 0x1020 这段代码首先将 `dx` 寄存器的值(就是当前`sp` 寄存器的值)4字节对齐,然后检查是否为0(如果是0,堆栈就不对了,因为堆栈是从大地址向小地址发展的),如果是0,那么就将 `dx` 寄存器的值设置成 `0xfffc` (64KB地址段的最后一个4字节地址)。如果不是0,那么就保持当前值不变。接下来,就将 `ax` 寄存器的值( 0x10000 )设置到 `ss` 寄存器,并根据 `dx` 寄存器的值设置正确的 `sp`。这样我们就得到了正确的堆栈设置,具体请参考下图: -![stack](https://github.com/0xAX/linux-insides/raw/master/Booting/images/stack1.png) +![stack](images/stack1.png) * 下面让我们来看 `ss` != `ds`的情况,首先将 setup code 的结束地址 [_end](http://lxr.free-electrons.com/source/arch/x86/boot/setup.ld?v=3.18#L52) 写入 `dx` 寄存器。然后检查 `loadflags` 中是否设置了 `CAN_USE_HEAP` 标志。 根据 kernel boot protocol 的定义,[loadflags](http://lxr.free-electrons.com/source/arch/x86/boot/header.S?v=3.18#L321) 是一个标志字段。这个字段的 `Bit 7` 就是 `CAN_USE_HEAP` 标志: @@ -413,11 +413,11 @@ Field name: loadflags 如果 `CAN_USE_HEAP` 被置位,那么将 `heap_end_ptr` 放入 `dx` 寄存器,然后加上 `STACK_SIZE` (最小堆栈大小是 512 bytes)。在加法完成之后,如果结果没有溢出(CF flag 没有置位,如果置位那么程序就出错了),那么就跳转到标号为 `2` 的代码处继续执行(这段代码的逻辑在1中已经详细介绍了),接着我们就得到了如下图所示的堆栈: -![stack](https://github.com/0xAX/linux-insides/raw/master/Booting/images/stack2.png) +![stack](images/stack2.png) * 最后一种情况就是 `CAN_USE_HEAP` 没有置位, 那么我们就将 `dx` 寄存器的值加上 `STACK_SIZE`,然后跳转到标号为 `2` 的代码处继续执行,接着我们就得到了如下图所示的堆栈: -![minimal stack](https://github.com/0xAX/linux-insides/raw/master/Booting/images/minimal_stack.png) +![minimal stack](images/minimal_stack.png) BSS段设置 -------------------------------------------------------------------------------- @@ -444,7 +444,7 @@ BSS 段用来存储那些没有被初始化的静态变量。对于这个段使 在这段代码中,首先将 [__bss_start](http://lxr.free-electrons.com/source/arch/x86/boot/setup.ld?v=3.18#L47) 地址放入 `di` 寄存器,然后将 `_end + 3` (4字节对齐) 地址放入 `cx`,接着使用 `xor` 指令将 `ax` 寄存器清零,接着计算 BSS 段的大小 ( `cx` - `di` ),然后将大小放入 `cx` 寄存器。接下来将 `cx` 寄存器除4,最后使用 `rep; stosl` 指令将 `ax` 寄存器的值(0)写入 寄存器整个 BSS 段。 代码执行完成之后,我们将得到如下图所示的 BSS 段: -![bss](https://github.com/0xAX/linux-insides/raw/master/Booting/images/bss.png) +![bss](images/bss.png) 跳转到 main 函数 -------------------------------------------------------------------------------- diff --git a/Booting/linux-bootstrap-2.md b/Booting/linux-bootstrap-2.md index 275b658..8bacf02 100644 --- a/Booting/linux-bootstrap-2.md +++ b/Booting/linux-bootstrap-2.md @@ -163,7 +163,7 @@ lgdt gdt * CPU根据`段选择子`从GDT中找到一个匹配的段描述符,然后将段描述符放入段寄存器的隐藏部分 * 在没有使用向下扩展段的时候,那么内存段的基地址就是`段描述符中的基地址`,段描述符的`limit + 1`就是内存段的长度。如果你知道一个内存地址的`偏移`,那么在没有开启分页机制的情况下,这个内存的物理地址就是`基地址+偏移` -![linear address](http://oi62.tinypic.com/2yo369v.jpg) +![linear address](images/linear_address.png) 当代码要从实模式进入保护模式的时候,需要执行下面的操作: diff --git a/Booting/linux-bootstrap-3.md b/Booting/linux-bootstrap-3.md index b3defc4..e839987 100644 --- a/Booting/linux-bootstrap-3.md +++ b/Booting/linux-bootstrap-3.md @@ -40,7 +40,7 @@ vga= 根据上面的描述,我们可以通过将 `vga` 选项写入 grub 或者写到引导程序的配置文件,从而让内核命令行得到相应的显示模式设置信息。这个选项可以接受不同类型的值来表示相同的意思。比如你可以传入 0XFFFD 或者 ask,这2个值都表示需要显示一个菜单让用户选择想要的显示模式。下面的链接就给出了这个菜单: -![video mode setup menu](http://oi59.tinypic.com/ejcz81.jpg) +![video mode setup menu](images/video_mode_setup_menu.png) 通过这个菜单,用户可以选择想要进入的显示模式。不过在我们进一步了解显示模式的设置过程之前,让我们先回头了解一些重要的概念。