Booting Linux: the History and the Future Werner Almesberger Werner
Total Page:16
File Type:pdf, Size:1020Kb
¢¡£¡¥¤§¦©¨ ¦©¨£ ¦¤¡! #"%$&¨ '%¤# ()¤§ § *+-,/.#+-,103254+7698:+-,/;<+-, =>©?A@B>/?/C DFEHGI>/JLKM>/?LN7>©?OP>©QSRC TVU WYX#.#+[Z<\^]_ZM`<`<` ´ µ7¶d·S¸B¹º»¼Y·B½¹:¶ abdcfehg7ijSe ªyUB>¥KYlnlfoFQB?AlST>/JAJTl7@uJLpHJoAJlh^ow~mlIGrqs¾wlh?QuUuqhJL>/J/®Fw¿À EHl7qh{Bpt@BNoLUu>Ipt@nS[±h>©?A@B>/EpH@-oLl GI>©GIlh?Av¯qf@M{¨Quq7JLJLpH@BN Tl7@-oL?AlhE§oAl¯p¬o9 _qf@u{§ÂÁh&pt@BptoLp|qfEHpHépH@BN)oLUu>1@Bl7?LGrqfE:lhQY>©?L} qsoAptl7@>/@n-pH?Alh@BGI>©@-o9CÄnlhGI> lf oLUB>)QYl7JAJLptKBEH>)~yqÀvnJoAl kmlnlfoLpH@BNrqf@3lhQY>©?VqsoApt@uNIJLvSJwoA>©GxGI>9qf@uJyoAlIGz>9{Sp|qsoL>¥KY>} QY>©?Llh?AGIJmoAUB>/JL>¥JwoA>©QuJqf?A>{B>©QBp|T¦oA>/{3pt@3©uN7B?A>¿7C ow~m>©>©@q[uJMqfEHEtv7>©?AvKuqhJLp|Tf dqh@u{?L>97u>©@-oLEHvB@B?A>©EHpt} qfKuEt>£JLvSJwoA>©G>/@n-pH?Alh@BGI>©@-o1>hC NuC£oAUB>1ykmLB oLUu> B@uToLpHlh@uqhEtptowv?A>/-BpH?A>/{KnvoAUB>)lhQY>©?VqsoApt@uNJLvSJwoA>©Gpto} JL>©Etw Yqh@u{3oLUB>Jl7Gz>©oLpHGI>/JF?VqsoAUB>©?PJl7QBUBp|JwoApHT/qsoL>9{ J>©oLBQuJ uJL>©?VJy~pHJLUoLl£T?A>/qfoL>7C Hardware startup B?AlhGoAUB>UnBGKBEt>PKM>/NhpH@B@BpH@BN7JdlfoAUB>PRulhQBQnvIKYl-lhomJL>/T} Firmware (BIOS) oLl7?/ foLUB>pH@nS!KYlnlfo§QB?AlnT©>/JAJUuqhJNh?Als~@&?ApHTVUB@uToLpHlh@S} qfEHptowvh h~ptoLUI7>©?VJLqfoLpHEt>yKYl-lho_Etl-qh{S>/?AJy5w 7D w¡& ¢£y¤ k §>oVTfC¥¦ yJ>/h>/?AqhEdKYlnlfo£pHGIqhNh>lh?AGrqsoAJ/ :qh@u{qh@ Boot selector pH@uT?A>/q7JpH@BNsqf?Apt>©owvlh&lhQY>©?VqsoLpHlh@MJIoLUuqfo3T/qf@§KY>¨{Slh@u> Boot loader NMCEHl7qh{S} >©7>©@KM>©lh?A>1oAUB>)JvSJoL>©Gp|JBEHEtvKYlnlfoA>/{ _>7C Legacy OS pH@BN£lf_{S?ApHh>©?GzlS{SuEt>9JKY>l7?L>&GIl7B@-oLpH@BNroLUu>&?LlnlhoF©uEH> JLvnJoL>/G C Linux−capable Linux loader boot loader ªyUB>KYl-lho)QB?LlST©>/JAJp|J)qfE|JLlKY>/Tl7GIpt@BNGIlh?A>{Sp¬«£T©BE¬o ~ptoLUoLpHGI>h®¯@B>/~°QY>©?ApHQBUB>©?VqfE|JI~ptoLUpt@-oA>©?A>/JoLpH@BNB@uT¦} Linux kernel oLpHlh@MqfEHp¬owv&qh@u{JLlhGI>©oLpHGz>9J>©h>/@!GIlh?A>mpt@-oL>/?L>9JwoApt@uNPQB?AlhKB} EH>©GrJ_N7>o:~p|{S>©EHvI{S>©QBEHlsvh>9{Iqf@u{I@B>/>/{IoAl&KY>JuQBQMl7?oA>/{ Mount initrd uJL>©?VJ_T?A>/qfoL>@B>/~§qf@u{rT©lhGIQBEHpHT/qsoL>9{IJvSJoL>©GTl7@S©uN7B?Aqf} oLpHlh@MJmqh@u{3JwoAptEHE<@B>©>9{£oAlzKY>qfKBEH> oLlzKMlnlfo9 Bqf@u{1EHq7JwoyKBSo @BlhoEH>/q7Jwo9 @B>/~B@MT¦oLpHlh@MqfEHp¬owv¯p|J&T©lh@uJoAqh@7oAEtv¯q7{B{S>9{¯oAl /linuxrc oLUu>±h>©?A@B>/E5 hqh@u{IJl7GI>mlhMpto/ ->hC NuC^@B>©~©uEH>FJvSJoL>©GrJ/ hT©qh@ qfE|JLlIqf²Y>9T¦oyoLUu>¥KMlnlfoFQu?LlST>9JLJ/C Linux kernel Mount root file system DFEHE-oLUB>yTl7GIQBEtp|T©qfoLpHlh@uJoLUu>dKYlnlfo^Qu?LlST>9JLJ^Uuq7JoAlUuqh@u{SEH> qf?A>z>©h>/@[~mlh?VJL>{SB?ApH@BN)JvSJoL>©Gpt@uJoAqhEtE|qsoAptl7@ KY>/T©qhuJL> /sbin/init q¯E|qf?ANh>r@nBGKM>/?lhFQMl-JLJLpHKBEt>Tlh@B©uNhB?VqsoAptl7@uJ&GuJoKY> Tl7@uJLpH{S>/?L>9{ hKuSoyJoLl7?AqhNh>FJLQuqhT©>Fp|J:EHptGIptoL>9{C§B?A>/-B>©@-oAEtv System runs qzJpH@BNhEH> RulhQuQ-v£{BpHJL±£Uuq7J:oAlrJS«£T©>Pl7?moLUB> ©u?VJwoFJoL>/QuJ©C ^pHNhu?L>I¿h®§kmlnlfoFQB?AlST>9JLJmlsh>/?LnpH>©~¥C ªyUBp|JmQuqfQY>©?{S>9JLT©?LpHKM>9J_oAUB>KMlnlhomQB?AlST>9JLJdB@u{S>/?pH@-B< oLUu>TVUuqhEtEH>©@BN7>/JyptoPUuq7JoAlrqhT©>h Mqh@u{ UBls~³pto>©7lhEHh>/{oAl GI>©>©ooLUu>©G C km>9Jp|{S>/JoLUupHJPUBp|JwoAlh?ApHT/qfEls7>©?Anpt>/~¥ u~UBp|TVU =§UBpHEt>zoAUBpHJ QuqhQM>/?lST©uJ>9J GIqhpt@uEtv)l7@¯oLUu>p|ÅhÆ7Ç1qf?VTVUBpt} qfE|JLl1pHEtEHuJoL?VqsoL>9JN7>©@B>/?AqhE{B>/JLptN7@¨Tl7@uT>/QSoAJ/ Jl7GI>!GIlh?A> oL>9T¦oAB?L>7 hGrqf@nv!T©lh@uT©>©QSoVJ§qfE|Jl¥qhQBQBEHv&oLllhoLUB>/?_qf?VTVUBp¬oA>/T} ?A>/T>/@-oq7{B{SptoLpHlh@uJqh?L>¥{Sp|JATuJAJ>9{1pH@){S>oVqfpHE5C oLu?L>9JJBQuQMl7?oA>/{3Knv1pH@nSC i¢§©¨ e Yg ¢¡£ ¤¦¥ ªyUBp|J QB?AlhKBEH>©G p|J)JLlhEHh>/{ÄKnv§oLUB>pH@BptoL?V{ Gz>9TVUuqf@upHJLG £ ~UBp|TVU¯qfEHEtls~FJoLUB>uJ>!lf_q D¦,{SpHJL±3KM>©lh?A>&GIlhB@-o} £ pH@BN oLUB>qhT¦oAuqfE:?Llnlfo¥©MEt>£JLvSJwoA>©G CªyUBp|J D-, {Sp|J±[pHJ ªyUB>©u?AJo:QBUMqhJL>FpHJ:oLUu>P{Sl7GIqhpt@rlhKMlnlhodEHl7qh{B>©?VJ©CªyUB>©v EHl7qh{B>/{KnvoAUB>¯KYl-lho1EHl7qh{B>©?9CÄpH@Bp¬oA?A{p|J1{B>/JAT?AptKY>/{pH@ UuqÀ7>¥oLl?L>©oL?Apt>/h>¥oAUB>!±7>©?A@B>©E>S>/T©SoAqhKBEH>!qf@u{¯QMl-JLJLptKuEtv JL>/T¦oAptl7@3ÅuC qh{u{Sp¬oAptl7@uqfE{BqfoAq?AlhG JLlhGI>¨JoLl7?AqhNh>¯GI>/{BpHqu F>hC NuCq {Sp|J±< ^lh??AlhGqh@>©noL>©?A@uqhE_Jl7B?AT©>h >7C NMCI?Ll7G q3KMlnlho =§UBpHEt>mpH@Bp¬oA?A{Uuq7JQB?Alsh>/@¥oLlPKM>y7>©?AvPuJL>uE5 soAUB>{S>/JLpHNh@ JL>©?Ah>©?dlh@roAUB> @B>ow~mlh?A±< hEHl7qh{roLUB>/Gxqso:oAUB> ?LpHNhU-odGI>/G} lfuoLUB>yGI>/TVUuqh@Bp|JG³uJL>/{&oLl Gzl7B@-o^oAUB>y?Llnlho©uEH>mJLvSJwoA>©G lh?Av)EHlnT/qsoAptl7@ GrqÀv-KY>rTVUuqf@uNh>&oAUB>r>S>9TSoAptl7@¨GIlS{S>Ilf qs oA>©?FpH@BptoL?V{ UuqhJT©lhGIQBEH>oA>/{ ptoAJ~mlh?A±£~yqhJy@B>/h>©?P7up¬oA> oLUu>¥QB?LlST©>/JAJl7?/ nqf@u{ JoAqh?oyoLUu>¥±h>©?A@B>/E5C JAqsoLp|JqhT¦oAlh?AvhCDFE|JlM 7lhoLUB>/?:TVUuqf@uNh>/J_pt@IoAUB>F±h>/?L@u>©EBGrqh{B> pto pH@uT?A>/q7JpH@BN7Etv){Spt«£TBEtooLl3uJ>!oLUuqfo¥Gz>9TVUuqf@upHJLG pt@q kmlnlfo Etl-qh{S>/?AJÄowvnQBp|T©qfEHEHv QM>/?l7?LG Jl7Gz> q7{B{SptoLpHlh@uqhE ) T©Et>9qf@.*y~yqÀvhCn>/ToLpHlh@0/F{Sp|JLT©uJAJ>9J<oLUBl-J>:pHJAJu>/JpH@¥GIlh?A> oAq7J±SJ/ /EHpH±h>§QB?AlsnpH{SpH@BNmoLUu>_±h>/?L@B>/Ef~ptoLU¥Quqh?AqhGz>©oL>/?AJ<JLuTVU {S>©oAqfpHEÂC qhJzpH@Slh?AGrqsoAptl7@?A>oL?ApH>©h>9{?AlhG oAUB>3©u?LG~mqh?L>lh?zoLUu> KYl-lhodTl7GIGIqh@u{zEtpH@B>7C§SlhGI>FKYl-lho:EHl7qh{B>©?VJ§T©qf@£qhEHJLl¥qhTo qhJ§q KYlnlfo:JL>©EH>/T¦oAlh?_qh@u{zEtl-qh{lfoLUu>©?§lhQY>©?VqsoApt@uNJLvSJwoA>©GrJ/C 546_e:g ¢¡21 3 ªyUB>3{SSoLpH>/JzlhFKMlnlfoIEHl7qh{B>©?VJ!qf@M{Jl7GI>1Tl7GzGIl7@{S>} JLptN7@uJPqh?L>z{Sp|JLT©uJLJL>/{¨pt@[GIlh?A>{S>©oAqfpHE#pt@J>9T¦oAptl7@ÁSC&D@ pH@7oA?LlS{SMT¦oLpHlh@oLl KYl-lho_Tlh@MT>©QBoAJ#lh@pHÅ7ÆhÇPpt@zNh>/@B>©?VqfEnT©qh@ ªyUB?A>©>@B>/~ TVUuqhEtEH>©@uNh>/JyqÀ~yqfptodoAUB>¥KYl-lhoFQB?AlnT©>/JAJmpt@3oLUu> KY>lhB@u{3pH@¬¿ C SoAB?L>7®m¿9§oLUB>©M?LG~mqh?L>qf@M{rqf@nv!Uuqh?A{B~mqh?L>moLUu>FKMlnlho EHl7qh{B>©?VJyUuqÀh>oAl£pt@-oA>©?LqhT>!~p¬oAU)~ptEHEN7?Lls~ GIlh?A>B@uT¦} oLpHlh@MqfEHp¬owv87 qh@u{ Spt^oAUB>QuqhJopHJqh@nv£pt@M{SpHT/qsoAptl7@lhoLUu> i §g© ©¨ ¢¡ SoAB?L>7 -q?Ap|TVUB>©?_JL>o:lhKBBN7J§oLlnluCy5Á7©uEH>JvSJoL>/GIJ:Tlh@B} oAqhpt@upt@BN±h>/?L@B>/EPpHGrqfN7>/J~ptEHEKM>9TlhGI>GIlh?A>¨Tl7GzQuEt>©< £ >hC NuC¾wl7B?L@MqfEHpt@BN£©uEt>JvSJoL>©GrJlh? Dw! <qf@M{¯Tl7?L?A>/ToLEHv P@uT©>oAUB>)±h>/?L@u>©EypHJI?AB@B@upt@BNM :pto£pt@up¬oApHqhEtpHé>9JIp¬oVJrpt@-oA>©?L} pH@7oA>©?AQB?A>oLpH@BN¨oLUB>/pt?ITl7@7oA>©@-o~pHEHEmKY>3h>©?Av{Sp¬«£T©BE¬oIl7? @uqhEy{uqsoAqJoL?AuT¦oAB?L>9J© d{S>oA>/T¦oVJIUuqf?V{S~yqf?A>T©lhGIQMl7@B>©@-oVJ KYl-lho!EHl7qh{B>©?VJ©CÅ-QY>©lhQuEt>£~pHEHEd~yqf@-o&oAl¯Etl-qh{±h>/?L@u>©E|J qf@M{q7T¦oAptsqsoA>/J oAUB>£Tl7?L?A>/JLQMl7@u{SpH@BN {S?LpHh>/?AJ/ >oVTfCH ^u@7oAptE ?AlhGlfoAUB>©?I>©nlhoLp|TJLlhu?AT©>/J/ §>hC NuC?AlhGoAUB>3@B>ow~mlh?A±< pto >/h>©@-oAuqfEHEtv KY>/T©lhGI>/JP?L>9qh{Sv3oAl?AB@¯uJL>©?L} JQuq7T>&Qu?Llh} uJLpt@uNIqIJL>/T©B?L>¥T©lh@B@B>9T¦oAptl7@C Nh?VqfGrJ/C1km>l7?L>IptoT©qh@JoAqh?o¥oAUB>£uJL>©?L} JQuq7T>I>©@nnpH?Ll7@S} GI>©@-o/ Spto@B>©>9{BJmoLlzQB?AlsnpH{S> ptoy~ptoLU q!©uEt>¥JLvSJwoA>©G BJlzpto Uuq7JmoLlrGIlhB@-oyoLUu>¥?Llnlfoy©uEH>&JLvnJoL>/G ©u?VJwo9C New hard− and firmware @l7?A{S>/?¥oLl¨Gzl7B@-o!oAUB>1?Alnlfo¥©uEH>JLvSJwoA>©G oLUB>±h>©?A@B>/E @B>/>/{BJzow~ml¨oAUBpH@BN7J/®ptor@B>©>9{BJzoLl±n@Bls~ oAUB> GI>/{Sp|q¨l7@ ~UBp|TVUoLUB>£?Alnlfo¥©uEH>1JLvSJwoA>©Gp|J¥EHlST©qsoA>/{ #qf@M{[pto!@B>/>/{BJ @¯oLUB>zGIl7JoT©lhGIGIlh@ {S?Apt7>©?VJoAlqhT/T>9JLJoLUuqfoPGI>/{BpHquC Boot Tl7@S©uN7B?AqfoLpHlh@ §~Uu>©@oLUB> ?Al-lho©MEt>)JLvnJoL>/GpHJrJLpHGzQuEtv process qf@I>©-o¦Á Quqf?LoLptoLpHlh@Il7@Iqh@Iw¦!{Sp|JL±Y hoLUBp|J_p|J_JLptGIQBEH>h®^oLUu> @nBG!KY>©?^lfSoAUB>:?Alnlfo{S>/-p|T>dpHJQuqhJAJL>/{ oLlFoLUB>d±h>©?A@B>/E7qhJq ¦!{B?LpHh>/?§pHJ#owvnQBp|T©qhEtEHvT©lhGIQBpHEt>9{ Quqh?AqhGz>©oL>/?/ hqh@u{oLUB>w Linux system More complex architecture configurations pH@7oAlzoLUB>¥±7>©?A@B>©EÂC advances ¨ÂjBie¨ :c ¢¡#" $%¥'&( ¥ ptN7B?A> ÁS®#ªyUB> KMlnlhodQB?AlST>/JAJdpHJ:qhT©pt@BN@B>©~ TVUMqfEHEt>/@BNh>9J ?AlhG oAUB?L>/>&{SpH?L>9T¦oLpHlh@MJ©C ªyUBpH@BN7JIN7>orGIlh?A>3T©lhGIQBEHpHT/qsoA>/{p¬PoLUB>)±7>©?A@B>©EyUuq7J@ul {S?Apt7>©?yl7?oLUB>{S>©np|T>hCmªyUBp|JpHJ7up¬oA>!Tl7GzGIl7@l7?oLUu> =§UBpHEt>¯oLUB>/?L>)p|JrEHp¬oLoLEH>¨TVUBlhp|T> KBBo£oLloA>/qhTVUoLUu>¯KMlnlho ) N7>©@B>/?Lp|T+*±h>©?A@B>/EHJ£oLUuqfo qh?L>[uJ>9{§~UB>/@ÄpH@uJwoVqfEHEtpH@BNq EHl7qh{B>©?VJoAl){S>/qhE§~p¬oAU¨oAUB>©pH?¥ptGIGI>/{BpHqfoL>I©u?AG!~yqf?A>qh@u{ @B>/~pH@nS[JLvSJwoA>©G KM>9T©qhuJ>rq±h>/?L@B>/E#~p¬oAUqhEtE§qÀsqfpHEt} Uuqh?A{S~yqf?A> >©@nnpt?Alh@BGI>/@7o9 nEtl-qh{SpH@BNzoLUB>¥±7>©?A@B>©E<?AlhG°{Sp¬ } qfKuEt>!{B?LpHh>/?AJ~mlhuEH{ JLptGIQBEHv KM>¥qh?FoAl-l1KBptNM Yqh@u{)JLlhGI> ©MT©BE¬o!oLl¨q7T©T>9JLJ&Gz>9{Sp|q¯T©qh@KY>£N7?L>9qsoLEHv[JLpHGzQuEtpt©u>/{Knv {S?Apt7>©?VJGrqÀv qhEHJLlFBQMJ>©o^lfoAUB>©?^Uuqf?V{S~yqf?A>§~UB>©@!QB?Ll7KBpH@BN EH>/qÀnpt@uN!GIl7JomlhoLUu>P~mlh?A±zoLlIqpt@nS£±7>©?A@B>©EÂC#S>/T¦oAptl7@ lh?yoAUB>©pH?{S>/npHT©>/J/C >©E|qfKYlh?VqsoA>/JdB?LoLUB>/?Flh@oLUBp|JyoAlhQBp|TfC 9 ¡¹m¹_·£¢w¹¥¤§º§¦¸©¨ qh{u{Sp¬oAptl7@uqfE{BqfoAqBCªyUBp|J£?A>©>9J£oAUB>©G ?AlhG UuqÀnpH@BNoAl ±n@Bls~ oLUB>!JoL?AuToLB?A>&lf#oAUB>&B@u{B>©?AEtvnpH@BNI©uEH>!JvSJoL>/G°l7? qf@nv[QB?Ll7QM>/?oApt>9J¥lfyoAUB>q7T¦oLMqfE:JoLl7?L>£{S>/npHT©>/J/C)P@B>1lf D³KYl-lhoFEtl-qh{S>/?yQM>/?l7?LGrJmoLUu>lhEHEtls~pH@BNoAqhJL±SJ©® oLUu>©pH?I{BpHJAqh{Ssqh@7oVqfN7>/J&p|JoLUuqfooAUB>©vUMqÀh>roAl¨oVqf±h>3JQY>} Tp|qfEmQB?A>/T/qfSoAptl7@uJ!~Uu>©@EHl7q7{SpH@BN¯oAUB>±7>©?A@B>©E §pH@lh?V{S>/? oLlI±7>©>©Q1oLUB>UBl-Jwol7QM>/?AqfoLpH@BNzJLvSJwoA>©G l7QM>/?AqfoLpHlh@uqhEYu@7oAptE {S>9Tp|{S>m~UuqsooLl Etl-qh{ s>7C NMC^KnvQB?AlhGIQSoApt@BNPoLUu>mMJ>/? oLUu>©vqf?A>£?A>/qh{Bv¨oAl¨?AB@oLUu>3pt@nS±h>/?L@u>©E >7C NMC¯oAUB>©v G!MJwoz@Blfozlsh>©?A~?Ap¬oA>rGz>/GIlh?Av[EHlST©qsoAptl7@uJ&lST/TBQBpH>/{Knv EHl7q7{oAUB>¨±7>©?A@B>©EPqf@u{QYl7JAJpHKBEHvq7{B{SptoLpHlh@uqhEP{BqfoAqu oLUu>UBl-Jwo:l7QM>/?AqfoLpH@BN&JLvnJoL>/G CD@BlfoAUB>©?y{Sp|JLq7{Ssqf@-oAqhNh>ypHJ JLuTVU qhJqf@ pH@BptoL?V{1l7?Quqf?VqfGI>oA>©?VJdlh?yoLUu>¥±h>©?A@B>/E oLUMqsooLUu>&>©@-oLpH?A> KYlnlfoQu?LlST>9JLJmoVqf±7>/JyEHlh@BN7>©?moLUuqh@)~p¬oAU