锘??xml version="1.0" encoding="utf-8" standalone="yes"?>狠狠入ady亚洲精品,亚洲激情六月丁香,欧美日韩国产影片http://www.shnenglu.com/jinglexy/鍐犵洊婊′含鍗庯紝鏂漢鐙啍鎮達綖zh-cnWed, 26 Nov 2025 13:46:18 GMTWed, 26 Nov 2025 13:46:18 GMT60鍙戝竷綺劇畝鐗坈ygwin-2009.isohttp://www.shnenglu.com/jinglexy/archive/2009/01/06/71371.html澶╄。鏈夌紳澶╄。鏈夌紳Tue, 06 Jan 2009 11:46:00 GMThttp://www.shnenglu.com/jinglexy/archive/2009/01/06/71371.htmlhttp://www.shnenglu.com/jinglexy/comments/71371.htmlhttp://www.shnenglu.com/jinglexy/archive/2009/01/06/71371.html#Feedback7http://www.shnenglu.com/jinglexy/comments/commentRss/71371.htmlhttp://www.shnenglu.com/jinglexy/services/trackbacks/71371.html
(1)cygwin 2009錛氶泦鎴恎cc-4.3.2錛宺xvt錛岄潪甯擱傚悎涓鑸殑緙栫▼寮鍙戯紝闆嗘垚iso浠?8M
(2)i686-elf鐨刢ygwin toolchain錛屽伐鍏烽摼鐗堟湰錛歡cc-4.3.2, binutils-2.19, glibc-2.7錛屾祴璇曟甯稿伐浣?br>浠ユ宸ュ叿閾劇紪璇戞渶鏂扮殑linux鍐呮牳2.6.28宸ヤ綔姝e父錛宬ernel鎵撲竴浜涜ˉ涓侊細
    cd linux-2.6.28
    sed -i 's/R_386_32/1/' ./scripts/mod/modpost.c
    sed -i 's/R_386_PC32/2/' ./scripts/mod/modpost.c
    sed -i 's/R_ARM_ABS32/2/' ./scripts/mod/modpost.c
    sed -i 's/R_ARM_PC24/1/' ./scripts/mod/modpost.c
    sed -i 's/R_MIPS_HI16/5/' ./scripts/mod/modpost.c
    sed -i 's/R_MIPS_LO16/6/' ./scripts/mod/modpost.c
    sed -i 's/R_MIPS_26/4/' ./scripts/mod/modpost.c
    sed -i 's/R_MIPS_32/2/' ./scripts/mod/modpost.c

    sed -i 's/STT_COMMON/5/g' ./arch/x86/boot/compressed/relocs.c

    sed -i 's/STV_DEFAULT/0/g' ./arch/x86/boot/compressed/relocs.c
    sed -i 's/STV_INTERNAL/1/g' ./arch/x86/boot/compressed/relocs.c
    sed -i 's/STV_HIDDEN/2/g' ./arch/x86/boot/compressed/relocs.c
    sed -i 's/STV_PROTECTED/3/g' ./arch/x86/boot/compressed/relocs.c

    sed -i 's/R_386_NONE/0/g' ./arch/x86/boot/compressed/relocs.c
    sed -i 's/R_386_32/1/g' ./arch/x86/boot/compressed/relocs.c
    sed -i 's/R_386_PC32/2/g' ./arch/x86/boot/compressed/relocs.c
    sed -i 's/R_386_GOT32/3/g' ./arch/x86/boot/compressed/relocs.c
    sed -i 's/R_386_PLT32/4/g' ./arch/x86/boot/compressed/relocs.c
    sed -i 's/R_386_COPY/5/g' ./arch/x86/boot/compressed/relocs.c
    sed -i 's/R_386_GLOB_DAT/6/g' ./arch/x86/boot/compressed/relocs.c
    sed -i 's/R_386_JMP_SLOT/7/g' ./arch/x86/boot/compressed/relocs.c
    sed -i 's/R_386_RELATIVE/8/g' ./arch/x86/boot/compressed/relocs.c
    sed -i 's/R_386_GOTOFF/9/g' ./arch/x86/boot/compressed/relocs.c
    sed -i 's/R_386_GOTPC/10/g' ./arch/x86/boot/compressed/relocs.c
    sed -i 's/R_386_NUM/11/g' ./arch/x86/boot/compressed/relocs.c

    sed -i 's/ELF32_ST_VISIBILITY(sym->st_other)/sym->st_other \& 0x03/g' ./arch/x86/boot/compressed/relocs.c
    sed -i 's/else rm -f $(@D)\/.tmp_$(@F); exit 1;/else mv -f $(@D)\/.tmp_$(@F) $@;/' ./arch/x86/vdso/Makefile

menuconfig涓妸netfilter鍘繪帀錛岄噷闈㈡湁涓浜涙枃浠跺悕涓鏍鳳紙澶у皬鍐欎笉涓鏍鳳級錛宨pv6涔熷幓鎺夛紝緙栬瘧鐨別lf鏂囦歡姝e父銆?br>
涓婃搗婕曟渤娉?br>2009.01.06




澶╄。鏈夌紳 2009-01-06 19:46 鍙戣〃璇勮
]]>
鍗氬榪佺Щ錛歨ttp://jinglexy.cublog.cnhttp://www.shnenglu.com/jinglexy/archive/2008/05/25/51024.html澶╄。鏈夌紳澶╄。鏈夌紳Sun, 25 May 2008 04:48:00 GMThttp://www.shnenglu.com/jinglexy/archive/2008/05/25/51024.htmlhttp://www.shnenglu.com/jinglexy/comments/51024.htmlhttp://www.shnenglu.com/jinglexy/archive/2008/05/25/51024.html#Feedback0http://www.shnenglu.com/jinglexy/comments/commentRss/51024.htmlhttp://www.shnenglu.com/jinglexy/services/trackbacks/51024.htmlcu鑱屼笟紼嬪簭鍛樿緝澶氾紝榪欓噷澶у鏄鐢燂紝涔熸病鏈塴inux&寮婧愭皵姘涖?br>鎰熻阿cppblog



澶╄。鏈夌紳 2008-05-25 12:48 鍙戣〃璇勮
]]>
c++鏅氭垚鍛樺嚱鏁拌漿鎹㈡垚c鍑芥暟鎸囬拡鐨勬墽琛岋紙鍘熷垱錛?/title><link>http://www.shnenglu.com/jinglexy/archive/2008/05/16/50087.html</link><dc:creator>澶╄。鏈夌紳</dc:creator><author>澶╄。鏈夌紳</author><pubDate>Fri, 16 May 2008 12:37:00 GMT</pubDate><guid>http://www.shnenglu.com/jinglexy/archive/2008/05/16/50087.html</guid><wfw:comment>http://www.shnenglu.com/jinglexy/comments/50087.html</wfw:comment><comments>http://www.shnenglu.com/jinglexy/archive/2008/05/16/50087.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/jinglexy/comments/commentRss/50087.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jinglexy/services/trackbacks/50087.html</trackback:ping><description><![CDATA[<br>  1 #include <unistd.h><br>  2 #include <stdlib.h><br>  3 #include <stdio.h><br>  4 #include <string.h><br>  5 <br>  6 typedef void (*func_type)(void * obj, int num);<br>  7 class test_t<br>  8 {<br>  9 public:<br> 10         void test_func(int num)<br> 11         {<br> 12                 printf("num is %d\n", num);<br> 13         }<br> 14 <br> 15         int a;<br> 16         int b;<br> 17 <br> 18 };<br> 19 <br> 20 <br> 21 int main(int argc, char* argv[])<br> 22 {<br> 23         test_t obj;<br> 24         func_type p = &test_t::test_func;<br> 25         for(int i = 100; i < 104; i++)<br> 26                 p(&obj, i);<br> 27 <br> 28         return 0;<br> 29 }<br> 30 <br><br>紼嬪簭姣旇緝綆鍗曪紝娉ㄦ剰瀹冪殑緙栬瘧鍙傛暟錛?br>g++  -Wno-pmf-conversions   -O hello.cpp && ./a.out<br>鍚﹀垯緙栬瘧涓嶈兘閫氳繃銆?br><br><br><img src ="http://www.shnenglu.com/jinglexy/aggbug/50087.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jinglexy/" target="_blank">澶╄。鏈夌紳</a> 2008-05-16 20:37 <a href="http://www.shnenglu.com/jinglexy/archive/2008/05/16/50087.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鎵цc++鏋勯犲嚱鏁幫紙鍘熷垱錛?/title><link>http://www.shnenglu.com/jinglexy/archive/2008/05/14/49845.html</link><dc:creator>澶╄。鏈夌紳</dc:creator><author>澶╄。鏈夌紳</author><pubDate>Wed, 14 May 2008 10:00:00 GMT</pubDate><guid>http://www.shnenglu.com/jinglexy/archive/2008/05/14/49845.html</guid><wfw:comment>http://www.shnenglu.com/jinglexy/comments/49845.html</wfw:comment><comments>http://www.shnenglu.com/jinglexy/archive/2008/05/14/49845.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/jinglexy/comments/commentRss/49845.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jinglexy/services/trackbacks/49845.html</trackback:ping><description><![CDATA[瀵逛簬鍏ㄥ眬瀵硅薄錛岀壒孌婃儏鍐典笅鏋勯犲嚱鏁頒笉浼氭墽琛屻傚c++鍐欑殑os銆?br><br>閾炬帴鍣ㄦ妸鏋勯犲嚱鏁版斁鍦╯tart_ctors鍜宔nd_ctors涔嬮棿錛屾墍浠ユ垜浠彲浠ヨ繖鏍峰仛錛?br>    for (i = &start_ctors; i < &end_ctors; i++) {<br>        foo = (CONSTRUCTOR_FUNC)*i;<br>        foo();        /* 鏋勯犲嚱鏁頒笉鑳界敤 cout瀵硅薄錛岃繖涓椂鍊欐帶鍒跺彴榪樻病鏈夊垵濮嬪寲 */<br>    }<br><br>寮曞嚭涓涓壒孌婇渶姹傦紝鍏ㄥ眬瀵硅薄鎸夐『搴忔瀯閫狅紝鎴戜滑鏄劇劧鏃犳硶棰勭煡start_ctors琛ㄩ『搴忋?br>涓涓彲琛岀殑鏂規硶浣跨敤閲嶈澆new錛屽茍鐢ㄦā鏉垮嚱鏁板皝瑁呭叾鎵ц錛?br><br>#include <unistd.h><br>#include <stdlib.h><br>#include <stdio.h><br>#include <string.h><br><br>struct test_t<br>{<br>public:<br>    test_t()<br>    {<br>        printf("construct of test_t()\n");<br>    }<br><br>    int a;<br>    int b;<br><br>};<br><br><br>void * operator new (size_t size, void * place)<br>{<br>    return place;<br>}<br><br>/* call the default constructor */<br>template <class object_t> void construct(object_t * ptr)<br>{<br>    new (ptr) object_t();<br>}<br><br><br>test_t t;<br>int main(int argc, char* argv[])<br>{<br>    construct(&t);<br><br>    return 0;<br>}<br><br><br><br><br><img src ="http://www.shnenglu.com/jinglexy/aggbug/49845.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jinglexy/" target="_blank">澶╄。鏈夌紳</a> 2008-05-14 18:00 <a href="http://www.shnenglu.com/jinglexy/archive/2008/05/14/49845.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>涓嬈懼ソ鐢ㄧ殑pim宸ュ叿錛歟ssentialpim錛堝師鍒涳級http://www.shnenglu.com/jinglexy/archive/2008/05/07/49132.html澶╄。鏈夌紳澶╄。鏈夌紳Wed, 07 May 2008 07:50:00 GMThttp://www.shnenglu.com/jinglexy/archive/2008/05/07/49132.htmlhttp://www.shnenglu.com/jinglexy/comments/49132.htmlhttp://www.shnenglu.com/jinglexy/archive/2008/05/07/49132.html#Feedback3http://www.shnenglu.com/jinglexy/comments/commentRss/49132.htmlhttp://www.shnenglu.com/jinglexy/services/trackbacks/49132.html涓鐩撮兘鍦ㄦ壘涓嬈懼ソ鐢ㄧ殑pim(personal info manager)/gtd(get things done)宸ュ叿錛?br>嫻嬭瘯浜?0鍑犱釜涔嬪悗錛岄攣瀹氬埌essentialpim-2.50浜嗐?br>錛堜釜浜轟換鍔℃渶濂界敤鏈寮哄ぇ鐨勬槸am-notebook浜嗭紝緗戜笂鏈変漢鍙風О鑷繁pj浜嗭紝
涓嬭澆涓嬫潵涓鐪嬶紝鍙槸浠巔ro鐗堝垏鎹㈠埌lite鐗堬紝鍙嶆鎴戞槸娌★級
鍙戜釜鍥劇湅鐪嬪惂錛屽懙鍛碉細
瑕佹槸鏈夋洿濂界敤鐨刾im/gtd杞歡錛屾榪庡ぇ瀹舵彁鍑?br>



澶╄。鏈夌紳 2008-05-07 15:50 鍙戣〃璇勮
]]>
how to read file in kernel(鍘熷垱)http://www.shnenglu.com/jinglexy/archive/2008/05/04/48822.html澶╄。鏈夌紳澶╄。鏈夌紳Sun, 04 May 2008 13:21:00 GMThttp://www.shnenglu.com/jinglexy/archive/2008/05/04/48822.htmlhttp://www.shnenglu.com/jinglexy/comments/48822.htmlhttp://www.shnenglu.com/jinglexy/archive/2008/05/04/48822.html#Feedback0http://www.shnenglu.com/jinglexy/comments/commentRss/48822.htmlhttp://www.shnenglu.com/jinglexy/services/trackbacks/48822.html闃呰鍏ㄦ枃

澶╄。鏈夌紳 2008-05-04 21:21 鍙戣〃璇勮
]]>
mm(use slab arithmetic) for jinix-1.2.1錛堝師鍒涳級http://www.shnenglu.com/jinglexy/archive/2007/11/21/37103.html澶╄。鏈夌紳澶╄。鏈夌紳Wed, 21 Nov 2007 12:23:00 GMThttp://www.shnenglu.com/jinglexy/archive/2007/11/21/37103.htmlhttp://www.shnenglu.com/jinglexy/comments/37103.htmlhttp://www.shnenglu.com/jinglexy/archive/2007/11/21/37103.html#Feedback0http://www.shnenglu.com/jinglexy/comments/commentRss/37103.htmlhttp://www.shnenglu.com/jinglexy/services/trackbacks/37103.html闃呰鍏ㄦ枃

澶╄。鏈夌紳 2007-11-21 20:23 鍙戣〃璇勮
]]>
jinix鍐呮牳欏圭洰錛歨ttp://jinix.sourceforge.net錛堝師鍒涳級http://www.shnenglu.com/jinglexy/archive/2007/07/24/28723.html澶╄。鏈夌紳澶╄。鏈夌紳Tue, 24 Jul 2007 12:52:00 GMThttp://www.shnenglu.com/jinglexy/archive/2007/07/24/28723.htmlhttp://www.shnenglu.com/jinglexy/comments/28723.htmlhttp://www.shnenglu.com/jinglexy/archive/2007/07/24/28723.html#Feedback17http://www.shnenglu.com/jinglexy/comments/commentRss/28723.htmlhttp://www.shnenglu.com/jinglexy/services/trackbacks/28723.html
澶ц嚧浠嬬粛涓涓嬶細linux鐜錛実cc緙栬瘧鍣紝c++璇█錛屾販鍚堝紡鍐呮牳錛堢幇鍦ㄨ繕鍙槸鍗曞唴鏍革級錛岀洰鍓嶇洰鏍囧鉤鍙癷386/arm銆傚垰鍒氬畬鎴愪簡MM閮ㄥ垎錛岄兘鏄Щ鐨刲inux綆楁硶錛坆uddy錛宻lab絳夛級錛屾暣涓狹M灝變竴涓被錛屽交搴曡崵鑿滐紝鍛靛懙銆傚鏋滄壘浜涗漢璁ㄨ璁ㄨc++鍊掓槸濂戒簨錛堝綋鐒朵笉鏄偅縐嶆棤閲屽ご鐨勶紝寰楀厛鐪嬩功錛夛紝浣嗘槸鎴慶++瓚呰彍楦燂紝鍙堜笉鍠勭粍緇囷紝甯屾湜鍐ュ啣涓緱閬囧ぇ鑰佹寚鐐逛竴浜屻?br>
涓嶇煡閬搒f澶у璁塊棶鏈夋病鏈夐棶棰橈紝璐翠竴浜涗富瑕佸唴瀹癸細
鐗堟湰鍘嗗彶錛?br> 3.1.1鐗堬細浠e彿錛?/font>
鎬諱綋鐩爣/鍔熻兘錛歺x

3.0.0鐗堬細浠e彿錛?/font>
鎬諱綋鐩爣/鍔熻兘錛氾紙鍙戝竷紼沖畾緋葷粺錛?/font>

2.1.1鐗堬細浠e彿錛?/font>
鎬諱綋鐩爣/鍔熻兘錛氬崟鍏冩祴璇曪紝bug淇

2.0.0鐗堬細浠e彿錛?/font>
鎬諱綋鐩爣/鍔熻兘錛氾紙瀹屾垚緋葷粺鏍稿績錛屽皝閿佺増鏈級

1.7.1鐗堬細浠e彿錛?/font>
鎬諱綋鐩爣/鍔熻兘錛氬畬鎴愯鍒掔殑絎?绔犺妭

1.6.1鐗堬細浠e彿錛歺x錛?/font>2008-02-05 ~ 2008-05-05錛?/font>
鎬諱綋鐩爣/鍔熻兘錛氬畬鎴愯鍒掔殑絎?绔犺妭錛坱cp/ip錛?/font>

1.5.1鐗堬細浠e彿錛歺x錛?/font>2008-01-01 ~ 2008-02-04錛?/font>
鎬諱綋鐩爣/鍔熻兘錛氬畬鎴愯鍒掔殑絎?绔犺妭錛堟枃浠剁郴緇燂級

1.4.1鐗堬細浠e彿錛歺x錛?/font>2007-10-25 ~ 2007-12-24錛?/font>
鎬諱綋鐩爣/鍔熻兘錛氬畬鎴愯鍒掔殑絎?绔犺妭錛堣澶囬┍鍔級

1.3.1鐗堬細浠e彿錛歺x錛?/font>2007-10-10 ~ 2007-10-24錛?/font>
鎬諱綋鐩爣/鍔熻兘錛氬崟鍏冩祴璇曪紝bug淇

1.2.1鐗堬細浠e彿錛氫竴甯樺咖姊︼紙2007-07-01 ~ 2007-09-24姝e湪榪涜涓級
鎬諱綋鐩爣/鍔熻兘錛氬畬鎴愯鍒掔殑絎?錛?錛?錛?绔犺妭
(4).jinix-1.2.1.2007-07-19_09.18.22.tar.bz2
    瀹屾垚slab綆楁硶璋冪爺鍙婄紪鍐?br>     鍐呮牳鍒濆鍖栨祦紼嬪畬鍠勶紝鍙婄浉鍏抽儴鍒嗘帴鍙?妗嗘灦

(3).jinix-1.2.1.2007-07-15_16.36.41.tar
    textio綾婚噸杞?lt;<榪愮畻絎︿互鏀寔cout << __func__;
    鍐呭瓨綆$悊鍒濆鍖栧強buddy綆楁硶瀹屾垚, 鍐呮牳瀵硅薄瀹屽杽錛堝惎鍔ㄦ祦紼嬶級

(2).jinix-1.2.1.2007-07-12_18.49.44.tar.bz2
    鍐呮牳瀵硅薄緙栧啓錛宐oot.S->head.S錛屽垵濮嬪寲姹囩紪鏂囦歡涓叏灞鍙橀噺縐誨叆bootdata.cpp涓?br>     鍐呭瓨綆$悊綾繪帴鍙g紪鍐欙紝浠ュ強浣跨敤鍒扮殑鐩稿叧鏁版嵁緇撴瀯浠巐inux涓Щ妞?br>
(1).jinix-1.2.1.2007-07-03_21.07.57.tar.bz2
    鏌愪簺鍒濆鍖栬繃鐨勫叏灞鍙橀噺琚紪璇戝埌bss鑺傚幓浜嗭紝琚玝oot.S鏂囦歡娓呯┖錛?br>     璋冩暣鍒版柊Makefile, 鍜寀nixlite鐩鎬技
    浣跨敤__attribute__((section(...寮哄埗閾炬帴鍒?data

(0).jinix-1.2.1.2007-06-30_17.50.21.tar.bz2
    鎺у埗鍙版樉紺洪儴鍒嗚皟璇曞畬鎴? textio鍜宱stream璋冭瘯瀹屾垚


1.緋葷粺鍒濆鍖?/td>
  鍐呮牳鍚姩 瀹屾垚
  i86紜歡鍒濆鍖栵紙鍒嗛〉錛?/td> 瀹屾垚
  鏃墮挓鍒濆鍖?/td> 瀹屾垚
  涓柇鍙婂紓甯稿垵濮嬪寲 瀹屾垚
  reboot/halt/poweroff 瀹屾垚
  acpi/apm 鏈畬鎴?/em>
  fpu/mmx/sse/sse2 鏈畬鎴?/em>

2.鏀拺鍨嬫暟鎹粨鏋勫拰綆楁硶
  hash 瀹屾垚
  闃熷垪 瀹屾垚
  閾捐〃 瀹屾垚
  fifo/lifo 瀹屾垚

3.鍐呭瓨綆$悊瀛愮郴緇?/td>
  buddy綆楁硶 瀹屾垚
  slab鍒嗛厤鍣?/td> 瀹屾垚
  欏靛紓甯稿鐞?/td> 瀹屾垚
  cow錛坈opy on write錛?/td> 鏈畬鎴?/em>
  demand paging 鏈畬鎴?/em>
  瀹堟姢綰跨▼錛坰wap錛岄〉闈㈠啿媧楋級 鏈畬鎴?/em>

4.榪涚▼鍙婁換鍔¤皟搴?/td>
  浠誨姟鍒囨崲 鏈畬鎴?/em>
  fork() 鏈畬鎴?/em>
  璋冨害綆楁硶 鏈畬鎴?/em>
  鍐呮牳綰跨▼ 鏈畬鎴?/em>
  idle綰跨▼ 鏈畬鎴?/em>
  鐢ㄦ埛綰跨▼ 鏈畬鎴?/em>
  鍚屾鏈哄埗錛氬唴鏍擱攣鍜屽師瀛愭搷浣?/td> 鏈畬鎴?/em>

5.璁懼椹卞姩
  涓柇鏈哄埗 鏈畬鎴?/em>
  椹卞姩妗嗘灦鍙婂澶栨帴鍙h冭檻 鏈畬鎴?/em>
  瀛楃璁懼椹卞姩妗嗘灦 鏈畬鎴?/em>
  鍧楄澶囬┍鍔ㄦ鏋?/td> 鏈畬鎴?/em>
  緗戠粶璁懼椹卞姩妗嗘灦 鏈畬鎴?/em>
  鎺у埗鍙伴┍鍔紙鏄懼崱錛岄敭鐩橈紝榧犳爣錛?/td> 鏈畬鎴?/em>
  dma椹卞姩 鏈畬鎴?/em>
  pci椹卞姩 鏈畬鎴?/em>
  8029/8139, ne2000緗戝崱椹卞姩 鏈畬鎴?/em>
  usb椹卞姩 鏈畬鎴?/em>

6.鏂囦歡緋葷粺
  proc 鏈畬鎴?/em>
  ramdisk 鏈畬鎴?/em>
  ext2 鏈畬鎴?/em>
  ext3 鏈畬鎴?/em>
  vfat 鏈畬鎴?/em>
  鍙墽琛屾枃浠秂lf鍔犺澆 鏈畬鎴?/em>
  鍔ㄦ侀摼鎺ュ簱鍜屽唴鏍告ā鍧?/td> 鏈畬鎴?/em>

7.TCP/IP緗戠粶妯″潡
  鏁版嵁閾捐礬灞傦紙Layer 2錛?/td> 鏈畬鎴?/em>
  IP灞傦紙Layer 3錛?/td> 鏈畬鎴?/em>
  icmp, arp, ip, 璺敱鍗忚 鏈畬鎴?/em>
  tcp, udp 鏈畬鎴?/em>
  socket鎺ュ彛 鏈畬鎴?/em>

8.榪涚▼闂撮氫俊IPC
  鍏變韓鍐呭瓨 鏈畬鎴?/em>
  淇″彿閲?/td> 鏈畬鎴?/em>
  娑堟伅闃熷垪 鏈畬鎴?/em>

9.posix鏀寔鍙婂叾浠?/td>
  susv3璋冪爺 鏈畬鎴?/em>
  lsb璋冪爺 鏈畬鎴?/em>
  posix鍏煎鍙婃祴璇?/td> 鏈畬鎴?/em>
  linux-abi鍏煎 鏈畬鎴?/em>
  shell鍙婂父鐢╝pplication 鏈畬鎴?/em>
  arm浣撶郴鏋舵瀯璋冪爺 鏈畬鎴?/em>

10.淇濈暀
     



]]>
嫻佺▼鍥劇粯鍒惰蔣浠禿ia浠嬬粛錛堝師鍒涳級http://www.shnenglu.com/jinglexy/archive/2007/07/17/28186.html澶╄。鏈夌紳澶╄。鏈夌紳Tue, 17 Jul 2007 05:03:00 GMThttp://www.shnenglu.com/jinglexy/archive/2007/07/17/28186.htmlhttp://www.shnenglu.com/jinglexy/comments/28186.htmlhttp://www.shnenglu.com/jinglexy/archive/2007/07/17/28186.html#Feedback6http://www.shnenglu.com/jinglexy/comments/commentRss/28186.htmlhttp://www.shnenglu.com/jinglexy/services/trackbacks/28186.htmlDia鏄竴涓敤浜庣粯鍒跺悇綾誨浘琛ㄧ殑宸ュ叿杞歡錛屽畠浠?/span>Windows Visio涓熼壌浜嗕笉灝戠壒鎬с傚浜庡悇綾繪祦紼嬪浘錛岀綉緇滃竷灞錛?/span>UML鍥劇瓑錛岃〃鐜伴潪甯歌壇濂姐備互鍓嶄嬌鐢ㄧ殑濡?/span>Ration Rose錛?/span>Windows Visio錛?/span>SmartDraw錛?/span>DD絳夛紝涓鐩撮兘涓嶉『鎵嬶紝鐢ㄤ簡涓孌墊椂闂?/span>dia鍚庤寰楀緢涓嶉敊銆傝繖鏄釜璺ㄥ鉤鍙板紑婧愮殑杞歡錛屽湪Win/Linux涓婇兘鍙互浣跨敤銆傛渶鏂扮殑鐗堟湰鏄?/span>0.96.1銆?/span>

鍙互鍦?/span>http://www.gnome.org/projects/dia涓婃壘鍒板畠鐨勪笅杞藉拰screenshot銆?span lang="EN-US">

榪欎釜杞歡鍩烘湰涓婁笉闇瑕佸涔狅紝浣跨敤鐣岄潰闈炲父綆鍗曘?span lang="EN-US">

 

涓嬮潰鏄ず渚嬪浘錛?/span>


Dia瀵瑰悇綾誨浘褰㈢殑鏀寔鏄彃浠跺艦寮忔彁渚涳紝寰堝鏄撴墿灞曘傚鏋滄敮鎸佸浘褰㈤棿瓚呯駭閾炬帴灝辨洿濂戒簡銆備笉榪囩▼搴忓彂鐢熷紓甯哥殑鎯呭喌杈冨錛屾渶涓ラ噸鐨勬槸鏈夋椂鍊欏紓甯鎬簡鍘熸潵鐨勫浘褰㈡枃浠舵墦涓嶅紑銆傜瓑鍒?/span>1.x鐗堟湰鍑烘潵鐨勬椂鍊欏彲鑳戒細濂戒簺鍚с?/span>




]]>
jinix鍐呮牳铏氭嫙鎺у埗鍙板疄鐜幫紙鍘熷垱錛?/title><link>http://www.shnenglu.com/jinglexy/archive/2007/07/10/27828.html</link><dc:creator>澶╄。鏈夌紳</dc:creator><author>澶╄。鏈夌紳</author><pubDate>Tue, 10 Jul 2007 12:15:00 GMT</pubDate><guid>http://www.shnenglu.com/jinglexy/archive/2007/07/10/27828.html</guid><wfw:comment>http://www.shnenglu.com/jinglexy/comments/27828.html</wfw:comment><comments>http://www.shnenglu.com/jinglexy/archive/2007/07/10/27828.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.shnenglu.com/jinglexy/comments/commentRss/27828.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jinglexy/services/trackbacks/27828.html</trackback:ping><description><![CDATA[     鎽樿: jinix鏄皬寮熸鍦ㄥ疄鐜扮殑涓涓猚++ kernel錛屽洜涓鴻皟璇曠紭鏁咃紝鎵浠ユ棭鏃╃殑鎶婃帶鍒跺彴閮ㄥ垎璋冨嚭鏉ヤ簡錛屼互渚夸簬鍚庢潵鐨勮皟璇曘備唬鐮佷嬌鐢╟++鍐欑殑錛屽鏋滀嬌鐢╟鍐欏唴鏍鎬篃寰堝鏄撶Щ妞嶈繃鍘匯傝漿杞借淇濈暀鍘?鍒涳細http://www.shnenglu.com/jinglexy錛宮ail & msn: jinglexy at yahoo dot com dot cn銆傝繖閮ㄥ垎浠g爜鏄湪鍐呭瓨綆$悊涔嬪墠瀹炵幇鐨勶紝鎵浠ユ病鏈夊仛鍒頒換...  <a href='http://www.shnenglu.com/jinglexy/archive/2007/07/10/27828.html'>闃呰鍏ㄦ枃</a><img src ="http://www.shnenglu.com/jinglexy/aggbug/27828.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jinglexy/" target="_blank">澶╄。鏈夌紳</a> 2007-07-10 20:15 <a href="http://www.shnenglu.com/jinglexy/archive/2007/07/10/27828.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>OS璋冭瘯鐩稿叧鐨勫伐鍏鳳紙闄勫浘錛屽師鍒涳級http://www.shnenglu.com/jinglexy/archive/2007/06/28/27133.html澶╄。鏈夌紳澶╄。鏈夌紳Thu, 28 Jun 2007 03:02:00 GMThttp://www.shnenglu.com/jinglexy/archive/2007/06/28/27133.htmlhttp://www.shnenglu.com/jinglexy/comments/27133.htmlhttp://www.shnenglu.com/jinglexy/archive/2007/06/28/27133.html#Feedback6http://www.shnenglu.com/jinglexy/comments/commentRss/27133.htmlhttp://www.shnenglu.com/jinglexy/services/trackbacks/27133.html
濡傛灉緋葷粺澶勪簬浠跨湡鐨勫垵鏈熻妭鐐癸紝渚嬪鎿嶄綔緋葷粺鐨勫垵濮嬪寲錛岃皟璇曡繕鏄緢鏈夊繀瑕佺殑銆傝繖閲屾槸鎴戝湪linux鐜璋冭瘯鎿嶄綔緋葷粺鐨勭浉鍏沖伐鍏鳳紝os寮鍙戣呭彲鍙傝冿紝嬈㈣繋鎸囨錛氾級
錛?錛夊伐鍏峰畨瑁咃細
linux瀹夎錛歜ochs-2.3錛宨nsight-6.6錛実cc-3.4錛堜嬌鐢╣++鍜宎s錛坆inutils鍖呬腑錛夛級
windows瀹夎錛歑manager Enterprise2.1
鍥犱負緗戠娌℃湁lotus鍜宑learcase鍦╨inux緋葷粺涓嬬殑鏀寔錛屾墍浠ュ彧濂界敤涓や釜鎿嶄綔緋葷粺浜嗐傝繖鏍蜂篃姣旇緝濂斤紝涓涓敤浜巔rogram錛屼竴涓敤浜庤皟璇曪紝姣曠珶bochs鎸鴻梒pu鐨勶紝灝辮濂瑰共媧誨ソ浜嗐?br>bochs瀹夎錛?/configure --with-all-libs --enable-vbe --enable-gdb-stub && make && make install
insight-6.6瀹夎錛氬寘鍚簡tck/tk錛実db-6.6錛宐fd絳夊伐鍏鳳紝浣跨敤insight鏃舵渶濂借繖鏍瘋緗幆澧冨彉閲忥細
export LC_ALL=en_US
鍚﹀垯榪愯鏃跺彲鑳戒細鎶ラ敊錛?br>Tcl_Init failed: can't read "env(TCL_LIBRARY)": no such variable
閰嶇疆xserver鐢ㄤ簬榪滅▼璁塊棶Linux鍥懼艦鐣岄潰錛岃繖鏍峰彲浠ュ湪windows涓婇氳繃ssh鎵цlinux鐨勫浘褰㈢晫闈㈢▼搴忋?br>

錛?錛夌浉鍏蟲枃浠訛細
bochs閰嶇疆鏂囦歡娣誨姞濡備笅鑺傦細
gdbstub: enabled=1, port=1234, text_base=0, data_base=0, bss_base=0

gdb璋冭瘯鑴氭湰錛?br>gdb鐨勫懡浠ら泦鍙互鍐欏叆鍒頒竴涓枃浠朵腑鍘伙紝榪欐牱閬垮厤浜嗗湪鍚姩鏃惰緭鍏ヤ竴澶у爢鍛戒護錛?00%榧犳爣鎿嶄綔錛焒aint
淇濆瓨鎵鏈夊懡浠ゅ埌涓涓枃浠訛紝姣忚涓涓懡浠わ紝濡備笅錛?br>file ./vmjinix
target remote 127.0.0.1:1234
dir  ./arch/i386
dir  ./init
dir  ./kernel
dir  ./drivers
dir  ./drivers/video
dir  ./drivers/video/console
show dir
break start_kernel
continue
list 0
gdb鍜実db鍓嶇鎵ц濡備笅錛?br>gdb -q -x gdb.command
insight -q -x gdb.command

鍏朵粬鑴氭湰錛堢鐩樿嚜鍔ㄥ垱寤哄垎鍖猴紝鑷姩瀹夎grub錛屾嫹璐濆唴鏍革紝鍙奙akefile鑴氭湰錛夛紝榪欎簺璐村嚭鏉ュお闀匡紝鑺變簡濂藉嚑涓皬鏃跺啓濂界殑錛岄渶瑕佸彲浠ュ拰鎴戣仈緋伙紙MSN & Email錛歫inglexy at yahoo dot com dot cn錛?br>
錛?錛夎皟璇曟柟娉?br>灝嗗唴鏍革紙jinix-1.2.1鏄垜姝e湪緙栧啓鐨勪竴涓狢++ 寮婧怬S錛屾榪庡弬涓庯級鎷瘋礉鍒發inux涓繪満錛岄厤緗畇amba鍏變韓錛岃繖鏍峰彲浠ュ湪windows涓婂紑鍙戯紙鎺ㄨ崘浣跨敤slickedit 2007錛屽摢浣嶆湁linux涓婄殑2007鐗堟湰鍙惁鍙戜竴涓粰鎴戯級銆?br>浣跨敤xshell錛坰sh鏂瑰紡錛夌櫥褰曞埌linux涓繪満涓婏紝緙栬瘧鍜岃皟璇曢兘鍦ㄨ繖閲屼簡銆?br>鍦╯sh涓婃墽琛宐ochs -f bochsrc.txt.linux錛?br>鍦╯sh涓婃墽琛宨nsight -q -x gdb.command
鎴浘濡備笅錛?br>


姹囩紪璇█鑺傜偣涔熷彲鐢ㄤ嬌鐢╞ochs錛媑db璋冭瘯錛屽湪gdb鏂偣鏃跺欐墽琛岋細
disassemble $pc $pc+100錛堜粠褰撳墠鏂偣澶勫弽姹囩紪100瀛楄妭錛?br>闇瑕佹敞鎰忕殑鏄紝鍦╫s鐨勬眹緙栧垵濮嬪寲鐨勫墠鏈熼樁孌碉紝鍒嗛〉鏈哄埗寰寰鏈紑鍚紝絎﹀彿鍜屽湴鍧涓嶈兘涓涓瀵瑰簲錛?br>榪欎釜鏃跺欎笉鑳借繘琛屾簮鐮佺駭姹囩紪璋冭瘯錛屽彧鑳界敤鏈鍗充究鐨勫弽姹囩紪璋冭瘯浜嗐?br>bochs-2.3涓ソ鍍忔湁涓猙ug娌℃湁瑙e喅錛宯exti鎵ц鍜宻tepi鍦╟all鐨勬椂鍊欏眳鐒朵竴鏍鳳紝濡傛灉瑕佹柇鐐瑰埌鎸囧畾琛岋紝鍙互浣跨敤鐗╃悊鍦板潃鏂偣銆?br>
錛?錛夋枃绔犱細涓嶆柇鏇存柊錛屽鏈変粈涔堝ソ鐨勬兂娉曞彲浠ュ湪鍘熷崥瀹㈣璁猴細
http://www.shnenglu.com/jinglexy

錛?錛夋暣鐞嗙殑涓浠藉父鐢╣db鎸囦護
x  /4wx ds:0x1234            x鏄嚎鎬у湴鍧絀洪棿
xp /4wx 0x1234                xp鏄墿鐞嗗湴鍧絀洪棿
backtrace
print  variable                鎵撳嵃鍙橀噺鍊?br>print  variable@10            鎵撳嵃鍙橀噺鍚庨潰鐨?0涓暣鏁板?br>set    variable=2            璧嬪?br>whatis variable                鏄劇ず鍙橀噺綾誨瀷
ptype  variable                鏄劇ず鏁版嵁緇撴瀯錛堝彉閲忕被鍨嬪姞寮虹増錛?br>
鏂偣綾誨瀷錛?br>break init_kernel.cpp:start_kernel    鏂偣鍦ㄦ枃浠剁殑鍑芥暟
break init_kernel.cpp:101        鏂偣鍦ㄦ枃浠剁殑101琛?br>break init_kernel.cpp:101 if var==100    鏉′歡鏂偣
break *0xc0102030
info break                鏌ョ湅鎵鏈夋柇鐐?br>delete breakpoint 3
delete breakpoint            鍒犻櫎鎵鏈夋柇鐐?br>isable breakpoint 2
enable breakpoint 2


search string1                鎼滅儲瀛楃涓詫紝浠巐ist緇撴潫琛屽紑濮?br>reverse-search string1            鏂瑰悜鎼滅儲
set history expansion on        浣跨敤鍘嗗彶鍛戒護
clear                    鍒犻櫎鍒氭墠鍋滄澶勭殑鏂偣
continue                浠庢柇鐐瑰紑濮嬬戶緇墽琛?br>info break                鏄劇ず褰撳墠鏂偣娓呭崟錛屽寘鎷埌杈炬柇鐐瑰鐨勬鏁扮瓑
info files                鏄劇ず琚皟璇曟枃浠剁殑璇︾粏淇℃伅
info func                鏄劇ず鎵鏈夌殑鍑芥暟鍚嶇О
info local                鏄劇ず褰撳嚱鏁頒腑鐨勫眬閮ㄥ彉閲忎俊鎭?br>info prog                鏄劇ず琚皟璇曠▼搴忕殑鎵ц鐘舵?br>info var                鏄劇ず鎵鏈夌殑鍏ㄥ眬鍜岄潤鎬佸彉閲忓悕縐?br>info all
run
continue
step, next, stepi, nexti        i鍚庣紑琛ㄧず鎵ц涓鏉℃眹緙栨寚浠?br>
/*********************************************************************************
                                      鏍煎紡璇存槑                                   /
/*********************************************************************************
x  /nuf addr媯鏌ヤ綅浜庣嚎鎬у湴鍧addr澶勭殑鍐呭瓨鍐呭錛岃嫢addr涓嶆寚瀹氾紝鍒欓粯璁や負涓嬩竴涓崟鍏冨湴鍧銆?br>xp /nuf addr媯鏌ヤ綅浜庣墿鐞嗗湴鍧addr澶勭殑鍐呭瓨鍐呭銆?br>鍏朵腑鐨勫彲閫夊弬鏁皀銆乽鍜宖鐨勫垎鍒彲涓猴細
n嬈叉樉紺哄唴瀛樺崟鍏冪殑璁℃暟鍊鹼紝榛樿鍊間負1銆?br>u琛ㄧず鍗曞厓澶у皬錛岄粯璁ら夋嫨涓?w'錛?br>b 錛圔ytes錛?瀛楄妭錛?br>h 錛圚alfwords錛?瀛楄妭錛?br>w 錛圵ords錛?瀛楄妭錛?br>g 錛圙iantwords錛?瀛楄妭銆?br>娉ㄦ剰錛氳繖浜涚緝鐣ョ涓嶪ntel鐨勪笉鍚岋紝涓昏鏄負浜嗕笌GDB璋冭瘯鍣ㄧ殑琛ㄧず娉曚竴鑷淬?br>f鏄劇ず鏍煎紡錛岄粯璁ら夋嫨涓?x'錛?br>x 錛坔ex錛夋樉紺轟負鍗佸叚榪涘埗鏁幫紙榛樿閫夋嫨錛夛紱
d 錛坉ecimal錛夋樉紺轟負鍗佽繘鍒舵暟錛?br>u 錛坲nsigned錛夋樉紺烘垚鏃犵鍙峰崄榪涘埗鏁幫紱
o 錛坥ctal錛夋樉紺烘垚鍏繘鍒舵暟錛?br>t 錛坆inary錛夋樉紺烘垚浜岃繘鍒舵暟銆?br>c 錛坈har錛夋樉紺哄瓧鑺備唬鐮佸搴旂殑瀛楃銆傝嫢涓嶆槸鍙樉紺哄瓧絎︿唬鐮侊紝灝辯洿鎺ユ樉紺轟唬鐮併?br>*********************************************************************************/

璇存槑涓涓嬶細bochs 鍜?insight鏈韓鍗曚釜鎵ц灝遍潪甯告參錛岃屼笖insight鏄氳繃ssh鏂瑰紡閾炬帴榪滅▼xserver鎵ц錛屾墍浠ラ熷害宸ㄦ參錛屾湰鏂囨墍榪板畬鍏ㄥ彲浠ュ叏閮ㄥ湪linux涓婃搷浣滐紝涓嶉檺浜庡鉤鍙般?br>



]]>
C++鍐欏唴鏍擱渶瑕佹敞鎰忕殑涓浜涗簨鎯咃紙鍘熷垱錛?/title><link>http://www.shnenglu.com/jinglexy/archive/2007/06/25/26940.html</link><dc:creator>澶╄。鏈夌紳</dc:creator><author>澶╄。鏈夌紳</author><pubDate>Mon, 25 Jun 2007 13:19:00 GMT</pubDate><guid>http://www.shnenglu.com/jinglexy/archive/2007/06/25/26940.html</guid><wfw:comment>http://www.shnenglu.com/jinglexy/comments/26940.html</wfw:comment><comments>http://www.shnenglu.com/jinglexy/archive/2007/06/25/26940.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.shnenglu.com/jinglexy/comments/commentRss/26940.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jinglexy/services/trackbacks/26940.html</trackback:ping><description><![CDATA[鍐呮牳褰撶劧鍙敤鐢╟++鏉ヤ簺錛屼絾鏄浉瀵筩鏉ヨ鏈夎澶氳娉ㄦ剰鐨勫湴鏂癸紝鎴戜滑涓嶅緱涓嶅叧鎺変竴浜涚壒鎬с傝繖閲屽彧鎻愪竴浜沢cc鐩稿叧鐨勫唴瀹癸紝Microsoft VC鎴戞病鏈夊皾璇曘傝漿杞借娉ㄦ槑鍘熷垱錛氬ぉ琛f湁緙濓紙http://www.shnenglu.com/jinglexy錛夛紝MSN: jinglexy at yahoo dot com dot cn<br><br>1)g++閫夐」-nostartfiles錛氱敤鎴風幆澧冪殑鍦╩ain涔嬪墠璋冪敤鐨勪唬鐮侊紝褰撶劧涓嶈兘浣跨敤浜?br>2)鍏ㄥ眬瀵硅薄錛氭瘡縐嶇被鍨嬮兘鏈夎嚜宸辯殑鏋勯犲嚱鏁幫紝濡傛灉涓嶈嚜宸辯紪鍐欎唬鐮佽皟鐢紝瀹冧滑涓嶄細鎵ц銆?br>榪欏寘鎷墍鏈夊叏灞瀵硅薄鍜屽眬閮╯tatic瀵硅薄錛屽緩璁殑鍋氭硶鏄湪鍐呮牳鏍堝緩绔嬪悗錛宑++榪愯浠g爜鎵ц涔嬪墠<br>璋冪敤鏋勯犲嚱鏁幫紝濡傛灉鏋勯犲嚱鏁版病鏈夎繍琛岋紙鍋囪閲岄潰鏈夊垎閰嶅唴瀛樹箣綾葷殑鎿嶄綔錛夛紝鍚庢灉寰堜弗閲嶏細錛?br>鎴戜滑鍙互榪欐牱鍋氾細<br>鍏堜慨鏀筭nu-ld閾炬帴鑴氭湰<br>.data : { <br>    start_ctors = .;<br>    *(.ctor*)<br>    end_ctors = .;<br>    start_dtors = .;<br>    *(.dtor*)<br>    end_dtors = .;<br><br>    *(.data)<br>}<br>榪欐牱鏋勯犲嚱鏁扮殑鎸囬拡灝遍兘淇濆瓨鍦╯tart_ctors 鍜宔nd_ctors涔嬮棿鐨勫唴瀛樹腑浜嗭紝鏋勯犲嚱鏁板叾瀹炲氨鏄痸oid foo(void);褰㈠紡鐨勫嚱鏁幫紝緙栧啓涓涓猣or寰幆<br><br>璋冪敤瀹冨嵆鍙紱鏋愭瀯鍑芥暟涔熸槸涓鏍風殑銆傚綋姣忎釜鏋勯犲嚱鏁拌皟鐢ㄥ畬鍚庯紝gcc浼氳嚜鍔ㄨ皟鐢ㄤ竴涓嚱鏁幫細<br>int __cxa_atexit(void (* f)(void *), void *p, void *d);<br>褰撳唴鏍擱鍑烘椂錛屼細鎵ц涓涓嚱鏁幫細<br>void __cxa_finalize(void *d);<br>榪欎袱涓嚱鏁板繀欏繪寜涓婇潰鏍煎紡瀹氫箟錛実++鏄繖鏍瘋瀹氱殑銆傜湅鐪嬩笅闈㈢殑浠g爜灝辨槑鐧戒簡錛?br>extern "C"<br>        {<br>        int __cxa_atexit(void (*f)(void *), void *p, void *d);<br>        void __cxa_finalize(void *d);<br>        };<br><br>void *__dso_handle; /*only the address of this symbol is taken by gcc*/<br><br>struct object<br>{<br>        void (*f)(void*);<br>        void *p;<br>        void *d;<br>} object[32] = {0};<br>unsigned int iObject = 0;<br><br>int __cxa_atexit(void (*f)(void *), void *p, void *d)<br>{<br>        if (iObject >= 32) return -1;<br>        object[iObject].f = f;<br>        object[iObject].p = p;<br>        object[iObject].d = d;<br>        ++iObject;<br>        return 0;<br>}<br><br>/* This currently destroys all objects */<br>void __cxa_finalize(void *d)<br>{<br>        unsigned int i = iObject;<br>        for (; i > 0; --i)<br>        {<br>                --iObject;<br>                object[iObject].f(object[iObject].p);<br>        }<br>}<br><br>3)new鍜宒elete錛氬湪瀹屾垚鍐呭瓨綆$悊鍚庯紝閲嶈澆綾葷殑new鍜宒elete鍑芥暟<br>4)-nostdlib錛氭妸鏍囧噯搴撶鐢ㄦ帀錛屾渶榪戞湁浜嗙Щ妞峴tl鍒板唴鏍哥殑鎯蟲硶<br>5)RTTI錛氭渶濂芥槸紱佹瀹冿紝榪欐牱涓嶈兘鐢╰ypeid 鍜?dynamic_cast浜?br>6)紱佺敤寮傚父錛?fno-exceptions錛岃繖涓拰鎿嶄綔緋葷粺澶揣瀵嗕簡<br>7)綰櫄鍑芥暟錛屽鏋滃瓙綾繪病鏈夊疄鐜扮埗綾諱腑鐨勭函铏氬嚱鏁幫紝閾炬帴鍒頒笅闈㈤粯璁や緥紼嬶細<br>extern "C" void __cxa_pure_virtual()<br>{<br>    // print error message<br>}<br>铏界劧涓嶆槸涓轟簡瀹氫箟綰櫄綾葷殑瀵硅薄錛屼絾鏄摼鎺ユ椂緙栬瘧鍣ㄤ細鎶辨紝鎵浠ュ畾涔変笂闈㈠嚱鏁頒嬌緙栬瘧閫氳繃銆?br>8)濡傛灉涓瀹氳浣跨敤寮傚父錛宺tti錛宯ew/delete錛実cc涓彁渚涗簡闈欐佸簱錛歭ibgcc/libsupc++錛?br>榪樺緱鍐欒繖涓簱鐨勪竴浜涘熀紜鍑芥暟錛岃寰楀畠搴旇鏄湪涓婂眰鎶借薄鍑烘帴鍙o紝灝嗗簳灞傚疄鐜扮┖鍑烘潵緇欑敤鎴峰疄鐜般?br>鑰屼笖浠g爜鏈韓闈炲父澶嶆潅錛岀綉緇滀笂涔熸病鏈変換浣曚腑鏂囪祫鏂欍?br>鎸囦護錛?br>readelf -a `gcc -print-libgcc-file-name`<br>閲岄潰瀹氫箟浜嗗緢澶氱殑鍑芥暟銆?br><br> <img src ="http://www.shnenglu.com/jinglexy/aggbug/26940.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jinglexy/" target="_blank">澶╄。鏈夌紳</a> 2007-06-25 21:19 <a href="http://www.shnenglu.com/jinglexy/archive/2007/06/25/26940.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鑷繁鍔ㄦ墜鍐欏唴鏍革紙pdf錛宑hm錛宻ource涓嬭澆錛夛紙20070711淇鐗堬紝鍘熷垱錛?/title><link>http://www.shnenglu.com/jinglexy/archive/2007/06/11/26021.html</link><dc:creator>澶╄。鏈夌紳</dc:creator><author>澶╄。鏈夌紳</author><pubDate>Mon, 11 Jun 2007 02:00:00 GMT</pubDate><guid>http://www.shnenglu.com/jinglexy/archive/2007/06/11/26021.html</guid><wfw:comment>http://www.shnenglu.com/jinglexy/comments/26021.html</wfw:comment><comments>http://www.shnenglu.com/jinglexy/archive/2007/06/11/26021.html#Feedback</comments><slash:comments>25</slash:comments><wfw:commentRss>http://www.shnenglu.com/jinglexy/comments/commentRss/26021.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jinglexy/services/trackbacks/26021.html</trackback:ping><description><![CDATA[浠ュ墠涓緋誨垪鐨勬枃绔犳暣鐞嗗湪涓嬮潰鍖呬腑錛宑hm鏍煎紡鍜宲df鏍煎紡錛屽強鎵鏈夋簮紼嬪簭錛?br>http://blogimg.chinaunix.net/blog/upfile2/080524213721.rar<br><br> 鐩綍錛?br> 鑷繁鍔ㄦ墜鍐欏唴鏍革紙搴忥級......................... 3<br> 絎? 璇撅細鐜闇姹?............................ 4<br> 絎? 璇撅細寮曞紼嬪簭............................. 5<br> 絎? 璇撅細淇濇姢妯″紡............................. 8<br> 絎? 璇撅細杈呭姪鍑芥暟............................. 17<br> 絎? 璇撅細涓柇鍜屽紓甯?.......................... 25<br> 絎? 璇撅細涓柇鍜屽紓甯?.......................... 39<br> 絎? 璇撅細澶氫換鍔?.............................. 45<br> 絎? 璇撅細鏂囦歡緋葷粺............................. 56<br> 絎? 璇撅細鍐呭瓨綆$悊............................. 70<br> 絎? 璇撅細緋葷粺璋冪敤鍜屽彲鎵ц紼嬪簭................. 76<br> 涓浠藉厤璐e0鏄?................................ 81<br><br><br> <img src ="http://www.shnenglu.com/jinglexy/aggbug/26021.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jinglexy/" target="_blank">澶╄。鏈夌紳</a> 2007-06-11 10:00 <a href="http://www.shnenglu.com/jinglexy/archive/2007/06/11/26021.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鑷繁鍔ㄦ墜鍐欏唴鏍革紙絎?璇撅細緋葷粺璋冪敤鍜屽彲鎵ц紼嬪簭錛夛紙鍘熷垱錛?/title><link>http://www.shnenglu.com/jinglexy/archive/2007/06/08/25854.html</link><dc:creator>澶╄。鏈夌紳</dc:creator><author>澶╄。鏈夌紳</author><pubDate>Fri, 08 Jun 2007 15:21:00 GMT</pubDate><guid>http://www.shnenglu.com/jinglexy/archive/2007/06/08/25854.html</guid><wfw:comment>http://www.shnenglu.com/jinglexy/comments/25854.html</wfw:comment><comments>http://www.shnenglu.com/jinglexy/archive/2007/06/08/25854.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.shnenglu.com/jinglexy/comments/commentRss/25854.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jinglexy/services/trackbacks/25854.html</trackback:ping><description><![CDATA[<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">  <o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">絎?span lang=EN-US>9</span>璇撅細緋葷粺璋冪敤鍜屽彲鎵ц紼嬪簭<span lang=EN-US>    <a target=_blank><span lang=EN-US><span lang=EN-US><u><font color=#0000ff>涓嬭澆婧愪唬鐮?/font></u></span></span></a><o:p></o:p></span></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋"><o:p> </o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align=left><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">澹版槑錛氳漿杞借淇濈暀錛?span lang=EN-US><o:p></o:p></span></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align=left><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">璇戣咃細<span lang=EN-US>http://www.shnenglu.com/jinglexy<o:p></o:p></span></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align=left><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">鍘熶綔鑰咃細<span lang=EN-US>xiaoming.mo at skelix dot org<o:p></o:p></span></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align=left><span lang=EN-US style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">MSN & Email: jinglexy at yahoo dot com dot cn<o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋"><o:p> </o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span style="FONT-SIZE: 12pt; COLOR: blue; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">鐩爣</span><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋"> <o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">榪欎竴鑺備腑錛屾垜浠潵瀹炵幇浠庣鐩樺姞杞藉簲鐢ㄧ▼搴忓茍鎵ц瀹冿紝浠ュ強緇欒繖涓簲鐢ㄧ▼搴忕郴緇熻皟鐢ㄧ殑鑳藉姏銆?span lang=EN-US><o:p></o:p></span></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋"><br></span><span style="FONT-SIZE: 12pt; COLOR: blue; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">緋葷粺璋冪敤</span><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋"><br></span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">緇忚繃鍓嶉潰涓緋誨垪鐨勮紼嬶紝鎴戜滑鍩烘湰涓婂緩绔嬩簡涓涓?span lang=EN-US>OS</span>鐨勫悇涓畝鍗曠粍浠訛紝紜疄闈炲父綆鍗曪紝娌℃湁浠涔堝鏉傜殑綆楁硶鍜屾灦鏋勩傜幇鍦ㄥ啀鏉ュ疄鐜頒竴涓畝鍗曠殑<span lang=EN-US>shell</span>鎺у埗錛屼竴鑸殑<span lang=EN-US>shell</span>澶勭悊嫻佺▼鏄細<span lang=EN-US>getty()</span>鎵撳嵃鐧誨綍鎻愮ず絎︼紝絳夊緟鐢ㄦ埛<span lang=EN-US>login</span>錛岀劧鍚庢墽琛?span lang=EN-US>bash</span>銆傝繖閲岋紝鎴戝綋鐒朵笉鎯沖疄鐜頒竴涓?span lang=EN-US>shell</span>錛屼篃涓嶆兂鍐欎粈涔?span lang=EN-US>getty</span>銆傝繖涓鑺備腑錛?span lang=EN-US>skelix</span>灝嗕粠紓佺洏鍔犺澆涓涓彲鎵ц紼嬪簭騫舵墽琛屽畠錛屽氨鍍忓父鐢ㄧ殑<span lang=EN-US>*nix OS</span>涓鏍楓?span lang=EN-US><o:p></o:p></span></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">鐢變簬<span lang=EN-US>slelix</span>鐨勮櫄鎷熷唴瀛樼鐞嗛儴鍒嗚繕娌℃湁鍋氬ソ錛屾墍鏈夌殑浠誨姟鍏變韓鍚屼竴涓湴鍧絀洪棿銆傛垜浠噰鍙栦竴涓畝鍗曠殑鏂規硶錛岀▼搴忎粠紓佺洏涓姞杞藉埌鍦板潃<span lang=EN-US>0x100000</span>錛屾斁鍒?span lang=EN-US>"/"</span>鏍圭洰褰曚笅闈€?span lang=EN-US><o:p></o:p></span></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">瑕佹敞鎰忕殑鏄紝鐢ㄦ埛浠誨姟涓嶈兘璁塊棶鍐呮牳鍦板潃絀洪棿錛屾墍浠ヤ竴浜涘嚱鏁板<span lang=EN-US>kprintf, print_c</span>絳変篃涓嶈兘鍐嶄嬌鐢ㄤ簡錛堝疄闄呬笂鏄彲浠ョ殑錛屽洜涓烘垜浠病鏈夊疄鐜拌櫄鎷熷唴瀛樼鐞嗭紝榪欓噷鍏堝亣瀹氫笉鑳戒嬌鐢ㄥ畠浠級銆傚ぇ澶氭暟鐨勬搷浣滅郴緇熼兘鎻愪緵浜嗕竴浜?span lang=EN-US>API</span>鎴栫郴緇熻皟鐢ㄦ潵鎵ц榪欎簺鍑芥暟銆傜幇鍦ㄥ厛娣誨姞涓涓郴緇熻皟鐢細<span lang=EN-US><br><br><span style="COLOR: red">09/isr.s</span><o:p></o:p></span></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">sys_print:<br>        pushl    %esi            # </span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">鑳屾櫙棰滆壊<span lang=EN-US><br>        pushl    %edi            # </span>鍓嶆櫙棰滆壊<span lang=EN-US><br>        pushl    %ebx            # </span>瑕佹墦鍗扮殑瀛楃<span lang=EN-US><br>        cli                      # </span>涓柇闂ㄤ細瀛楄妭鍏蟲帀<span lang=EN-US>EFLAGS </span>鐨?span lang=EN-US>IF</span>浣嶏紝緋葷粺璋冪敤鍗翠笉琛?span lang=EN-US><o:p></o:p></span></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">        call    <span style="COLOR: blue">print_c</span><br>        sti<br>        addl    $12,    %esp<br>        ret<o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋"> <o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">鎭ㄧ畝鍗曪紝涓嶆槸鍚楋紵涓婇潰緋葷粺璋冪敤鏈変笁涓弬鏁幫紝<span lang=EN-US>esi</span>鏄儗鏅鑹詫紝<span lang=EN-US>edi</span>鏄墠鏅鑹詫紝<span lang=EN-US>ebx</span>鏄鎵撳嵃鐨勫瓧絎︺傝繖涓郴緇熻皟鐢ㄥ彧鎵撳嵃涓涓瓧絎︼紝璧峰灝辨槸鐢ㄦ埛紼嬪簭瀵瑰唴鏍?span lang=EN-US>print_c</span>鍑芥暟鐨勪竴涓?span lang=EN-US>wrapper</span>銆?span lang=EN-US><o:p></o:p></span></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">鐞嗚涓婅錛岀敤鎴蜂換鍔′笉鑳界洿鎺ヤ嬌鐢?span lang=EN-US>print_c</span>鍑芥暟錛屼篃涓嶅簲褰撶煡閬撴湁榪欎釜鍑芥暟瀛樺湪銆傚敮涓鐨勬柟娉曞氨鏄嬌鐢ㄧ郴緇熻皟鐢紝浠ユ鎻愪緵緇欑敤鎴蜂竴涓彲鐢ㄧ殑鎺ュ彛銆?span lang=EN-US>DOS </span>鎿嶄綔緋葷粺鎻愪緵浜?span lang=EN-US>int 0x21</span>浣滀負緋葷粺鏈嶅姟錛?span lang=EN-US>linux </span>鎻愪緵<span lang=EN-US>int 0x80</span>緋葷粺璋冪敤錛屾湰鑺備腑妯′豢<span lang=EN-US>linux</span>鍦?span lang=EN-US>IDT </span>涓坊鍔犱竴涓彿鐮?span lang=EN-US>0x80 </span>鐨勭郴緇熻皟鐢ㄣ?span lang=EN-US><br></span>鐜板湪鎴戜滑鍙敤鍒頒簡<span lang=EN-US>IDT </span>涓柇鐨?span lang=EN-US>34</span>欏癸紝鎵浠ュ叾浣欑殑欏歸兘鍙互鎷挎潵浣跨敤錛屼絾鏄垜浠彧闇瑕?span lang=EN-US>0x80</span>宸茶凍澶熴傚湪<span lang=EN-US>IDT</span>涓緩绔嬩竴涓?span lang=EN-US>386 </span>鐨勯櫡闃遍棬灝辮浜嗭紝闄烽槺闂ㄥ拰涓柇闂ㄩ潪甯哥被浼鹼紝鍙槸<span lang=EN-US>E </span>浣嶇殑綾誨瀷鐢?span lang=EN-US>8</span>鏇夸唬錛屽茍涓?span lang=EN-US>DPL </span>鐗規潈綰ц緗負<span lang=EN-US>3</span>銆?span lang=EN-US><br><br><span style="COLOR: red">09/init.c</span><o:p></o:p></span></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">static void<br>sys_call_install(void) {<br>    unsigned long long sys_call_entry = 0x0000ef0000080000ULL<o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">                             | ((unsigned long long)CODE_SEL<<16);<br>    sys_call_entry |= ((unsigned long long)<span style="COLOR: blue">sys_call</span><<32)<o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">                             & 0xffff000000000000ULL;<br>    sys_call_entry |= ((unsigned long long)<span style="COLOR: blue">sys_call</span>) & 0xffff;<br>    idt[<span style="COLOR: blue">SYS_CALL</span>] = sys_call_entry;<br>}<o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">瀹?span lang=EN-US>SYS_CALL </span>鍊間負<span lang=EN-US>0x80</span>銆?span lang=EN-US><o:p></o:p></span></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋"> <o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">鐜板湪鎴戜滑鏉ョ湅涓?span lang=EN-US>0x80</span>鐨勯櫡闃遍棬澶勭悊渚嬬▼錛?span lang=EN-US><br><span style="COLOR: red">09/isr.s</span><o:p></o:p></span></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">sys_call:<br>        cmpl    $1,        %eax<br>        jb        <st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="1" UnitName="F">1f</st1:chmetcnv><br>        iret<br>1:<br>        pushal<br>        call    *<span style="COLOR: blue">sys_call_table</span>(, %eax, 4)<br>        popal<br>        iret<o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">鎴戝敖閲忓仛鍒扮畝鍗曪紝铏界劧寰堝涓滆タ娌℃湁鑰冭檻鍛ㄥ叏錛岃繖鏍峰仛鍙互闄嶄綆瀛︿範鎴愭湰銆傝渚嬬▼鍒ゆ柇緋葷粺璋冪敤鍙鳳紝鍗沖瓨鍌ㄥ湪<span lang=EN-US>eax</span>涓殑鍊鹼紝鐒跺悗鏌ユ壘鍑芥暟琛細<span lang=EN-US>sys_call_table</span>銆?span lang=EN-US><o:p></o:p></span></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋"> <o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">鍑芥暟琛ㄥ畾涔夊涓嬶細<span lang=EN-US><br><span style="COLOR: red">09/syscall.c</span><o:p></o:p></span></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">void (*sys_call_table[VALID_SYSCALL])(void) = {sys_print};<o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; COLOR: blue; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">VALID_SYSCALL</span><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋"> </span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">瀹忓畾涔変負<span lang=EN-US>1, of course<br><br></span><span style="COLOR: blue">緋葷粺璋冪敤嫻嬭瘯鍑芥暟</span><span lang=EN-US><br></span>鐜板湪鎴戜滑鏉ュ仛涓涓敤鎴蜂換鍔$殑緋葷粺璋冪敤嫻嬭瘯鍑芥暟錛?span lang=EN-US><br><span style="COLOR: red">09/color.c</span><o:p></o:p></span></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">void<br>color(void) {<br>    int i, j;<br>    for (i=0; i<16; ++i)<br>        for (j=0; j<16; ++j)<br>            __asm__ ("int    $0x80"::"S"(i),"D"(j),"b"('X'),"a"(0));<br>    for (;;)<br>        ;<br>}<o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">鎸変緥錛屾渶綆鍗曞疄鐜般傝繖涓嚱鏁版墦鍗頒竴浜?span lang=EN-US>“X”</span>瀛楃錛屼互涓嶅悓鐨勫墠鏅拰鑳屾櫙棰滆壊銆傝繕鏈変竴涓棶棰橈紝鎬庢牱鎶婂畠瀛樺偍鍦ㄧ鐩樹笂鍛紝鍦ㄦ病鏈?span lang=EN-US>shell</span>鐨勬儏鍐典笅錛堝惁鍒欏彲浠ョ敤<span lang=EN-US>cp</span>鏉ユ嫹璐濅簡錛夈傝В鍐崇殑鏂規硶鏄彟澶栧啓涓涓▼搴忔妸紼嬪簭鐩存帴鍐欏埌紓佺洏涓婏細瀹炵幇涓涓?span lang=EN-US>ghex.c</span>紼嬪簭鏉ユ妸<span lang=EN-US>color</span>鍙墽琛岀▼搴忕殑鍐呭鎵撳嵃鍑烘潵錛屽湪鍐呮牳閲岄潰鍐嶆妸鍙墽琛屾枃浠跺啓鍒扮鐩樹笂銆?span lang=EN-US><o:p></o:p></span></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">Makefile</span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">涔熷緱淇敼涓涓嬶細<span lang=EN-US><br><span style="COLOR: red">09/Makefile</span><o:p></o:p></span></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">all: final.img color<br><br>color: color.o<br>    ${LD} --oformat binary -N -e color -Ttext 0x100000 -o color $<<o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">涓婇潰鐨勫懡浠ゆ妸<span lang=EN-US>color.o</span>鏂囦歡鐢熸垚涓涓簩榪涘埗鍙墽琛屾枃浠訛紝鍏ュ彛鐐瑰湪<span lang=EN-US>color</span>鍑芥暟錛屼唬鐮佹閫昏緫鍦板潃浠?span lang=EN-US>0x100000</span>寮濮嬨?span lang=EN-US><o:p></o:p></span></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">錛?span lang=EN-US>color.c</span>鐢變富鏈轟笂鐨?span lang=EN-US>gcc</span>緙栬瘧鍣ㄧ紪璇戯紝<span lang=EN-US>ld</span>閾炬帴錛?span lang=EN-US><o:p></o:p></span></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋"> <o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">鐜板湪鎶婅繖浜涗簩榪涘埗鏁版嵁錛堟樉紺哄懡浠ゆ槸錛?span lang=EN-US>./ghex ../color</span>錛夊啓鍒扮鐩樹笂錛?span lang=EN-US><br><span style="COLOR: red">09/fs.c</span><o:p></o:p></span></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">void<br>install_color(void) {<br>    struct SUPER_BLOCK sb;<br>    char sect[512] = {0};<br>    struct DIR_ENTRY *de = NULL;<br>    int inode = -1;<br>    struct INODE clnode;<br>    unsigned int blk = 0;<br>    unsigned char color[] = <br>{0x57,0x56,0x53,0x83,0xec,0x08,0xc7,0x44,0x24,0x04,0x00,0x00,<br> 0x00,0x00,0x83,0x<st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="7" UnitName="C">7c</st1:chmetcnv>,0x24,0x04,0x<st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="0" UnitName="F">0f</st1:chmetcnv>,0x<st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="7" UnitName="F">7f</st1:chmetcnv>,0x2e,0xc7,0x04,0x24,<br> 0x00,0x00,0x00,0x00,0x83,0x<st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="3" UnitName="C">3c</st1:chmetcnv>,0x24,0x<st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="0" UnitName="F">0f</st1:chmetcnv>,0x<st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="7" UnitName="F">7f</st1:chmetcnv>,0x19,0x8b,0x74,<br> 0x24,0x04,0x8b,0x<st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="3" UnitName="C">3c</st1:chmetcnv>,0x24,0xbb,0x58,0x00,0x00,0x00,0xb8,0x00,<br> 0x00,0x00,0x00,0xcd,0x80,0x89,0xe0,0xff,0x00,0xeb,0xe1,0x8d,<br> 0x44,0x24,0x04,0xff,0x00,0xeb,0xcb,0xeb,0xfe};<br><br>    sb.sb_start = *(unsigned int *)(HD0_ADDR);<br>    hd_rw(ABS_SUPER_BLK(sb), HD_READ, 1, sect);<br>    memcpy(&sb, sect, sizeof(struct SUPER_BLOCK));<br><br>    inode = alloc_inode(&sb);<br>    assert(inode > 0);<br>    blk = alloc_blk(&sb);<br>    assert(blk != 0);<br>    clnode.i_block[0] = blk;<br>    hd_rw(blk, HD_WRITE, 1, color);<br>    clnode.i_mode = FT_NML;<br>    clnode.i_size = sizeof color;<br>    iput(&sb, &clnode, inode);<o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">    // </span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">涓?span lang=EN-US>color</span>紼嬪簭鍒嗛厤鏂扮殑<span lang=EN-US>inode</span>鑺傜偣鍜屽潡<span lang=EN-US><br><br>    hd_rw(iroot.i_block[0], HD_READ, 1, sect);<br>    de = &((struct DIR_ENTRY *)sect)[2];<br>    strcpy(de->de_name, "color");<br>    de->de_inode = inode;<br>    hd_rw(iroot.i_block[0], HD_WRITE, 1, sect);<o:p></o:p></span></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">    // </span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">鎶?span lang=EN-US>color</span>紼嬪簭鏀懼埌鏍圭洰褰?span lang=EN-US>"/"</span>涓嬮潰<span lang=EN-US><o:p></o:p></span></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋"><br><br>    iget(&sb, &iroot, 0);<br>    iroot.i_size = 3*sizeof(struct DIR_ENTRY);<br>    iput(&sb, &iroot, 0);<br>    // </span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">鎼炲畾<span lang=EN-US><br>}<o:p></o:p></span></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋"> <o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">// color</span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">紼嬪簭宸茬粡鍐欏埌紓佺洏涓婁簡錛屽啀鎶婂畠鍔犺澆鍒板唴瀛樺湴鍧<span lang=EN-US>0x100000<br><span style="COLOR: red">09/fs.c</span><o:p></o:p></span></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">void<br>load_color(void) {<br>    struct INODE inode;<br>    struct SUPER_BLOCK sb;<br>    char sect[512] = {0};<br><br>    sb.sb_start = *(unsigned int *)(HD0_ADDR);<br>    hd_rw(ABS_SUPER_BLK(sb), HD_READ, 1, sect);<br>    memcpy(&sb, sect, sizeof(struct SUPER_BLOCK));<br>    iget(&sb, &inode, 1);<br><br>    /* </span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">鍙槸綆鍗曠殑鎶?span lang=EN-US>color</span>鍔犺澆鍒拌櫄鎷熷湴鍧<span lang=EN-US>0x100000</span>錛堜篃鏄墿鐞嗗湴鍧<span lang=EN-US>0x100000</span>錛?span lang=EN-US> */<br>    hd_rw(inode.i_block[0], HD_READ, 1, (void *)0x100000);<br>}<o:p></o:p></span></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">榪樿寰椾互鍓嶈繍琛岀殑<span lang=EN-US>task1_run </span>鍜?span lang=EN-US>task2_run</span>榪欎袱涓換鍔″悧錛屽畠浠彧鏄仛涓浜涜疆嫻佸湪灞忓箷涓婃墦鍗板瓧絎︾殑鏃犺亰宸ヤ綔銆傛垜浠妸<span lang=EN-US>task1</span>鎹㈡垚鎵ц紓佺洏涓殑<span lang=EN-US>color</span>紼嬪簭錛?span lang=EN-US><br><span style="COLOR: red">09/init.c</span><o:p></o:p></span></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">void<br>do_task1(void) {<br>    __asm__ ("incb 0xb8000+160*24+2");<br>    load_color();<br>    __asm__ ("jmp 0x100000");<br>}<o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋"><br></span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">鏈鍚庡湪<span lang=EN-US>check_root()</span>鍑芥暟涓坊鍔犱竴浜涘畨瑁呭嚱鏁幫細<span lang=EN-US><br>09/fs.c<o:p></o:p></span></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">    if (! testb(sect, 0)) {<br>        kprintf(KPL_DUMP, "/ has not been created, creating....\t\t\t\t\t  ");<br>        if (alloc_inode(&sb) != 0) {<br>            kprintf(KPL_PANIC, "\n/ must be inode 0!!!\n");<br>            halt();<br>        }<br>        iroot.i_block[0] = alloc_blk(&sb);<br>        iput(&sb, &iroot, 0);<br>        <br>        hd_rw(iroot.i_block[0], HD_READ, 1, sect);<br>        de = (struct DIR_ENTRY *)sect;<br>        strcpy(de->de_name, ".");<br>        de->de_inode = 0;<br>        ++de;<br>        strcpy(de->de_name, "..");<br>        de->de_inode = -1;<br>        hd_rw(iroot.i_block[0], HD_WRITE, 1, sect);<br>        kprintf(KPL_DUMP, "[DONE]");<br>        if (iroot.i_size == 2*sizeof(struct DIR_ENTRY))<br>            <span style="COLOR: red">install_color</span>();<br>    }<o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋"> <o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">緙栬瘧錛岃繍琛屼竴涓嬨傚鏋滀竴璧鋒甯哥殑璇濓紝搴旇鏄?span lang=EN-US>color</span>浠誨姟鎵撳嵃涓緋誨垪鐨勫僵鑹插瓧絎︺傚緢鏈夋垚灝辨劅鍚э細錛?span lang=EN-US><o:p></o:p></span></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">鍒版涓烘錛岃繖涓緋誨垪鐨勮紼嬪氨緇撴潫浜嗭紝澶у鍙互緇х畫娣卞叆涓嬪幓錛?span lang=EN-US>linux</span>鍐呮牳鏄竴涓煎緱瀛︿範鐨勫ソ<span lang=EN-US>kernel</span>錛?span lang=EN-US><o:p></o:p></span></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">鑰屼笖涔熸湁涓浜涜緝濂界殑涔︾睄錛屽鎯呮櫙鍒嗘瀽錛?span lang=EN-US>ULK2</span>錛?span lang=EN-US>In A Nut Shell</span>絳夈?span lang=EN-US><o:p></o:p></span></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">瀛︿範鏄竴浠舵剦蹇殑浜嬫儏錛屽綋鐒朵篃灝戜笉浜嗘尗鎶樺拰鐓庣啲銆傛佸害鎵嶆槸絎竴浣嶏紝紲濆ぇ瀹惰繘姝ワ細錛?span lang=EN-US><o:p></o:p></span></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">                                    </span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">涓佷亥騫村洓鏈堝豢鍥?span lang=EN-US>       </span>浜庝笂嫻蜂綋鑲查<span lang=EN-US><o:p></o:p></span></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">                                    http://www.shnenglu.com/jinglexy<o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">                                    </span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋">澶╄。鏈夌紳<span lang=EN-US><o:p></o:p></span></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 瀹嬩綋; mso-font-kerning: 0pt; mso-bidi-font-family: 瀹嬩綋"> <o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><span lang=EN-US><o:p> </o:p></span></p> <p> </p> <img src ="http://www.shnenglu.com/jinglexy/aggbug/25854.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jinglexy/" target="_blank">澶╄。鏈夌紳</a> 2007-06-08 23:21 <a href="http://www.shnenglu.com/jinglexy/archive/2007/06/08/25854.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鑷繁鍔ㄦ墜鍐欏唴鏍革紙絎?璇撅細鍐呭瓨綆$悊錛夛紙鍘熷垱錛?/title><link>http://www.shnenglu.com/jinglexy/archive/2007/06/08/25801.html</link><dc:creator>澶╄。鏈夌紳</dc:creator><author>澶╄。鏈夌紳</author><pubDate>Fri, 08 Jun 2007 00:44:00 GMT</pubDate><guid>http://www.shnenglu.com/jinglexy/archive/2007/06/08/25801.html</guid><wfw:comment>http://www.shnenglu.com/jinglexy/comments/25801.html</wfw:comment><comments>http://www.shnenglu.com/jinglexy/archive/2007/06/08/25801.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/jinglexy/comments/commentRss/25801.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jinglexy/services/trackbacks/25801.html</trackback:ping><description><![CDATA[<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">  <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">絎?span lang="EN-US">8</span>璇撅細鍐呭瓨綆$悊<span lang="EN-US">    <a target="_blank"><span lang="EN-US"><span lang="EN-US">涓嬭澆婧愪唬鐮?/span></span></a><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">澹版槑錛氳漿杞借淇濈暀錛?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">璇戣咃細<span lang="EN-US">http://www.shnenglu.com/jinglexy<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍘熶綔鑰咃細<span lang="EN-US">xiaoming.mo at skelix dot org<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">MSN & Email: jinglexy at yahoo dot com dot cn<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋; color: blue;">鐩爣</span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鎶辨瓑錛屽叾瀹炶繕娌℃湁瀹炵幇銆傚湪浠誨姟鍒嗛厤鐙珛鐨?span lang="EN-US">4G</span>鍦板潃絀洪棿涓婅皟璇曞け璐ヤ簡錛岀幇鍦ㄥ彧浣胯兘浜嗗垎欏墊満鍒訛紝欏靛紓甯搞傚ぇ閲忕殑宸ヤ綔鏈疄鐜幫紝鏈夊叴瓚g殑鍚屽鍙互鎼滅儲<span lang="EN-US">buddy</span>鍜?span lang="EN-US">slab</span>鐨勭浉鍏寵祫鏂欙紝緇忓吀鐨勫唴瀛樼鐞嗙畻娉曘?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><br> </span><span style="font-size: 12pt; font-family: 瀹嬩綋; color: blue;">鍒嗛〉</span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">386</span><span style="font-size: 12pt; font-family: 瀹嬩綋;">澶勭悊鍣ㄧ殑鍐呭瓨綆$悊鍗曞厓鍙互瀹炵幇浠誨姟鐙珛鍦板潃絀洪棿錛屼換鍔¢棿鍐呭瓨淇濇姢銆傛瘡涓換鍔″彲浠ユ嫢鏈夌嫭绔嬬殑<span lang="EN-US">4G</span>铏氭嫙鍦板潃絀洪棿銆傚唴瀛樻槧灝勬槸鍐呭瓨綆$悊寰堥噸瑕佺殑涓姝ワ紝鍙互鍒嗕負涓ら儴鍒嗭細鍒嗘鍜屽垎欏點傚墠闈㈢殑璇劇▼涓凡緇忚璁鴻繃鍒嗘鏈哄埗浜嗭紝閫氳繃鍒嗘鍙互闅斿紑涓嶅悓鐨勪唬鐮侊紝鏁版嵁錛屽爢鏍堢瓑錛涘垎欏靛崟鍏冩妸铏氭嫙鍦板潃鏄犲皠鎴愮墿鐞嗗湴鍧錛岃繕鍙互鐢ㄦ潵瀹炵幇铏氭嫙鍐呭瓨錛堝拰紜洏鍒嗗尯榪涜浜ゆ崲錛夛紝鐜板湪鎴戜滑鏉ヤ簡瑙d竴涓嬪畠銆?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">瀵逛簬姣忎釜浠誨姟錛屾垜浠棤娉曞垎閰?span lang="EN-US">4G</span>鐨勭墿鐞嗗唴瀛橈紝鎵浠ヤ嬌鐢ㄤ簡涓浜涙満鍒舵潵綆$悊鍐呭瓨錛氬強铏氭嫙鍐呭瓨鏈哄埗銆傝鏈哄埗鏈夊鐞嗗櫒鐨勫垎欏甸儴鍒嗘潵瀹炵幇錛岄鍏堟垜浠皢鍐呭瓨鍒嗘垚涓浜涘潡錛屾瘡涓潡澶у皬涓?span lang="EN-US">4k</span>錛岄氬父鎴戜滑縐頒箣涓轟竴涓〉甯с傛搷浣滅郴緇熼氳繃欏電洰褰曞拰欏佃〃鏉ョ鐞嗚繖浜涢〉甯с傞〉鐩綍鏄浉褰撲簬絎竴綰ч〉琛紝鍏朵腑鐨勬瘡涓欏瑰啀綆$悊涓涓笅綰ч〉琛ㄣ傦紙鏇磋緇嗚繃紼嬭鍙傝?span lang="EN-US">intel</span>鐨?span lang="EN-US">IA 32/64</span>鎵嬪唽錛?span lang="EN-US"><br> <br> </span>褰撳垎欏墊満鍒跺紑鍚椂錛屽鐞嗗櫒鎶婁換鍔′腑鐨勮櫄鎷熷湴鍧杞崲鎴愮墿鐞嗗湴鍧錛屾楠ゅ涓嬶細<span lang="EN-US"><br> 1.</span>鏌ユ壘孌甸夋嫨瀛愬湪<span lang="EN-US">GDT </span>鎴?span lang="EN-US"> LDT </span>涓殑鎻忚堪絎︼紝鍋氫竴浜涙潈闄愭鏌ワ紝鐪嬬湅鑳藉惁璁塊棶<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">2.</span><span style="font-size: 12pt; font-family: 瀹嬩綋;">浠ユ弿榪扮涓殑鍩哄潃鐩稿姞欏電洰褰曞熀鍧寰楀埌涓涓嚎鎬у湴鍧<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">3.</span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍦ㄩ〉琛ㄤ腑绱㈠紩铏氭嫙鍦板潃鎵瀵瑰簲鐨勯〉琛ㄩ」錛屽緱鍒伴〉鍦板潃<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">4.</span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鏌ユ壘鍋忕Щ寰楀埌瀹為檯鐗╃悊鍦板潃銆?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">濡傛灉瀹為檯鐗╃悊欏典笉瀛樺湪錛堝彲鑳戒氦鎹㈠埌紜洏涓幓浜嗭級錛屽垯寮曞彂寮傚父錛屽彲浠ュ湪榪欎釜寮傚父閲岄潰鍋氭兂瑕佸仛鐨勪簨鎯咃紙鍔犺澆紜洏涓殑浜ゆ崲欏碉紝鎴栬?span lang="EN-US">kill</span>榪欎釜紼嬪簭錛?span lang="EN-US">Segment Fault</span>錛岀瓑絳夛級<span lang="EN-US"><br> <br> </span>澶勭悊鍣ㄤ嬌鐢ㄧ殑欏電洰褰曟垨鑰呴〉琛紝閮芥槸鐢?span lang="EN-US">32 </span>浣嶇殑欏圭粍鎴愶細<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋; color: blue;">欏電洰褰曢」錛?/span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> 31                    12    11    9    876   5   43    2     1     0<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">鈹忊攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲敁<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">鈹?nbsp;  </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鎸囧悜欏佃〃鐨勭墿鐞嗗湴鍧<span lang="EN-US">  鈹?</span>鐢ㄦ埛瀹氫箟<span lang="EN-US"> 鈹?nbsp; X  鈹?nbsp;A鈹? X 鈹?U/S鈹?R/W鈹?P 鈹?o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">鈹椻攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲敍<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋; color: blue;">欏佃〃欏癸細</span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> 31                    12    11    9   87  6  5   43    2     1     0<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">鈹忊攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲敁<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">鈹?nbsp;  </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鎸囧悜欏靛撫鐨勭墿鐞嗗湴鍧<span lang="EN-US">  鈹?</span>鐢ㄦ埛瀹氫箟<span lang="EN-US"> 鈹?nbsp;X鈹僁鈹?nbsp;A鈹?X 鈹? U/S鈹?R/W鈹?P 鈹?o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">鈹椻攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲敍<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">浠庝笂闈㈠彲浠ョ煡閬擄紝欏電洰褰曢」鍜岄〉琛ㄩ」鐨勭粨鏋勫緢綾諱技錛屼笅闈㈤愪釜璇存槑涓涓嬪叾涓殑鍩燂細<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p> </o:p></span></p> <table class="MsoNormalTable" style="width: 79.58%;" border="1" cellpadding="0" width="79%"> <tbody> <tr> <td style="padding: 1.5pt; width: 84.75pt;" valign="top" width="113"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">Bit  0<o:p></o:p></span></p> </td> <td style="padding: 1.5pt; width: 63pt;" valign="top" width="84"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">P<o:p></o:p></span></p> </td> <td style="padding: 1.5pt; width: 393.75pt;" valign="top" width="525"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">瀛樺湪浣嶏紙<span lang="EN-US">present</span>錛夛紝涓?span lang="EN-US">0 </span>琛ㄧず璇ラ〉甯ф垨欏佃〃涓嶅湪鍐呭瓨涓傚鏋滆闂欏瑰皢鍙戠敓寮傚父銆?span lang="EN-US"><o:p></o:p></span></span></p> </td> </tr> <tr> <td style="padding: 1.5pt; width: 84.75pt;" valign="top" width="113"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">Bit  1<o:p></o:p></span></p> </td> <td style="padding: 1.5pt; width: 63pt;" valign="top" width="84"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">R/W<o:p></o:p></span></p> </td> <td style="padding: 1.5pt; width: 393.75pt;" valign="top" width="525"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">琛ㄧず欏佃〃鎴栭〉甯ф寚鍚戠殑鍐呭瓨鍙錛堬紳<span lang="EN-US">0</span>錛夛紝鎴栧彲鍐欙紙錛?span lang="EN-US">1</span>錛?span lang="EN-US"><o:p></o:p></span></span></p> </td> </tr> <tr> <td style="padding: 1.5pt; width: 84.75pt;" valign="top" width="113"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">Bit  2<o:p></o:p></span></p> </td> <td style="padding: 1.5pt; width: 63pt;" valign="top" width="84"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">U/S<o:p></o:p></span></p> </td> <td style="padding: 1.5pt; width: 393.75pt;" valign="top" width="525"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">琛ㄧず欏佃〃鎴栭〉甯х殑鏉冮檺錛屽綋鐗規潈綰т負<span lang="EN-US">0</span>鏃訛紝鍙湁<span lang="EN-US">ring0</span>鍒?span lang="EN-US">2</span>鐨勭壒鏉冪駭鍙互璁塊棶瀹冿紝鍚﹀垯鎵鏈夌殑<span lang="EN-US">ring3</span>浠誨姟閮藉彲浠ヨ闂傝繖涓煙闈炲父閲嶈銆?span lang="EN-US"><o:p></o:p></span></span></p> </td> </tr> <tr> <td style="padding: 1.5pt; width: 84.75pt;" valign="top" width="113"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">Bits 3, 4, (6), 7, 8<o:p></o:p></span></p> </td> <td style="padding: 1.5pt; width: 63pt;" valign="top" width="84"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">X<o:p></o:p></span></p> </td> <td style="padding: 1.5pt; width: 393.75pt;" valign="top" width="525"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">Intel </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">淇濈暀浣嶏紝璁劇疆涓?span lang="EN-US">0</span>灝辮浜?span lang="EN-US"><o:p></o:p></span></span></p> </td> </tr> <tr> <td style="padding: 1.5pt; width: 84.75pt;" valign="top" width="113"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">Bit  5<o:p></o:p></span></p> </td> <td style="padding: 1.5pt; width: 63pt;" valign="top" width="84"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">A<o:p></o:p></span></p> </td> <td style="padding: 1.5pt; width: 393.75pt;" valign="top" width="525"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">璇ラ〉鏄惁宸茶闂?span lang="EN-US"><o:p></o:p></span></span></p> </td> </tr> <tr> <td style="padding: 1.5pt; width: 84.75pt;" valign="top" width="113"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">Bits 9-11<o:p></o:p></span></p> </td> <td style="padding: 1.5pt; width: 63pt;" valign="top" width="84"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鐢ㄦ埛瀹氫箟<span lang="EN-US"><o:p></o:p></span></span></p> </td> <td style="padding: 1.5pt; width: 393.75pt;" valign="top" width="525"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鎴戜滑浣跨敤絎?span lang="EN-US">11</span>浣嶏紝琛ㄧず璇ラ〉甯ф槸鍚﹁浜や簰鍒扮‖鐩樹笂浜?span lang="EN-US"><o:p></o:p></span></span></p> </td> </tr> </tbody> </table> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">欏電洰褰曠殑姣忎竴欏癸細鍗抽〉琛ㄧ殑鐗╃悊鍦板潃錛屽畠鐨勯珮<span lang="EN-US">20 </span>浣嶅湴鍧琛ㄧず鏈変釜欏靛撫鐨勮搗濮嬪湴鍧錛屾濂藉拰<span lang="EN-US">4k</span>瀵歸綈銆?span lang="EN-US">2^20</span>鍙互琛ㄧず<span lang="EN-US">1M</span>鑼冨洿錛屾瘡涓〉甯уぇ灝忔槸<span lang="EN-US">4k</span>錛屾墍浠ュ彲浠ョ儲寮?span lang="EN-US">1M * 4K</span>鍦板潃絀洪棿銆傞〉鐩綍欏逛腑榪樻湁涓涓?span lang="EN-US">D </span>浣嶏紝瀹冪敤鏉ヨ〃紺轟竴涓〉甯ф槸鍚﹀凡淇敼錛?span lang="EN-US">linux</span>鐢ㄥ畠鏉ヨ〃紺轟竴涓〉闈㈤噴鏀炬槸鑴忛〉闈紝榪欎釜浣嶉潪甯告湁鐢紝褰撲竴涓〉甯т氦鎹㈠埌紜洏涓婂悗錛屽鏋滆欏靛撫榪樻病鏈夎淇敼錛岃屼笖鏄凡緇忎粠紜洏浜ゆ崲鍑烘潵鐨勶紝鍒欑畝鍗曞彇娑堜互鍚庣殑浜ゆ崲銆?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">涓轟簡灝嗛昏緫鍦板潃杞崲鎴愮墿鐞嗗湴鍧錛岄昏緫鍦板潃琚垎鎴?span lang="EN-US">3 </span>閮ㄥ垎錛?span lang="EN-US"><o:p></o:p></span></span></p> <table class="MsoNormalTable" style="width: 79.58%;" border="1" cellpadding="0" width="79%"> <tbody> <tr> <td style="padding: 1.5pt; width: 101.25pt;" valign="top" width="135"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">Bits 31-22<o:p></o:p></span></p> </td> <td style="padding: 1.5pt; width: 437.25pt;" valign="top" width="583"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">欏電洰褰曢」鐨勭儲寮曚笅鏍囷紝鐢卞畠鍙互寰楀埌欏佃〃鐨勭墿鐞嗗湴鍧<span lang="EN-US"><o:p></o:p></span></span></p> </td> </tr> <tr> <td style="padding: 1.5pt; width: 101.25pt;" valign="top" width="135"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">Bits 21-12<o:p></o:p></span></p> </td> <td style="padding: 1.5pt; width: 437.25pt;" valign="top" width="583"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">欏佃〃欏圭殑绱㈠紩涓嬫爣錛岀敱瀹冨彲浠ュ緱鍒伴〉甯х殑鐗╃悊鍦板潃<span lang="EN-US"><o:p></o:p></span></span></p> </td> </tr> <tr> <td style="padding: 1.5pt; width: 101.25pt;" valign="top" width="135"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">Bits 11-0<o:p></o:p></span></p> </td> <td style="padding: 1.5pt; width: 437.25pt;" valign="top" width="583"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鐩稿欏靛撫璧峰鍦板潃鐨勫亸縐?span lang="EN-US"><o:p></o:p></span></span></p> </td> </tr> </tbody> </table> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">涓句緥鏉ヨ錛屾垜浠湁涓涓昏緫鍦板潃錛?span lang="EN-US">0x3E837B0A</span>銆傚墠鎻愭潯浠訛細<span lang="EN-US">CR3</span>瀵勫瓨鍣ㄦ寚鍚戠殑欏電洰褰曞湴鍧鏄?span lang="EN-US"> 0x0005C000</span>錛岃繖涓瘎瀛樺櫒瀛樺偍浜嗗綋鍓嶉〉鐩綍鎵浣跨敤鐨勯〉甯х殑鐗╃悊鍦板潃錛岄氬父涔熷彨鍋?span lang="EN-US"> PDBR</span>銆?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍏堝彇瀹冪殑楂?span lang="EN-US">10</span>浣嶏紝 灝辨槸<span lang="EN-US">0x0FA</span>錛岀敱瀹冨彲浠ョ儲寮曞埌欏電洰褰曠殑絎?span lang="EN-US">0x0FA</span>欏癸紝鎴戜滑鍙栧緱榪欎竴欏圭殑鍊鹼紝鍋囪寰楀埌鐨勫湴鍧鍊兼槸<span lang="EN-US">0x0003F000</span>銆傜劧鍚庢垜浠彇铏氭嫙鍦板潃鐨勪腑闂?span lang="EN-US">10</span>浣嶏紝灝辨槸<span lang="EN-US">0x037</span>錛屽啀鍙栧嚭<span lang="EN-US">0x0003F000</span>鎸囧悜欏靛撫鐨勭<span lang="EN-US">0x037</span>欏圭殑鍊鹼紝鍋囪鏄?span lang="EN-US">0x0001B000</span>銆傝繖涓湴鍧灝辨槸鎴戜滑瑕佹壘鐨勮櫄鎷熷湴鍧瀵瑰簲鐨勭墿鐞嗗湴鍧鐨勯〉甯х殑璧峰鍦板潃錛屾渶鍚庡姞涓婂亸縐誨鹼紙浣?span lang="EN-US">12</span>浣嶏級錛屽嵆<span lang="EN-US">0xB0A</span>錛屽緱鍒板疄闄呯殑鐗╃悊鍦板潃鏄細<span lang="EN-US">0x0001BB0A</span>銆?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鐩稿叧鐨勭煡璇嗗彲浠ュ弬鑰?span lang="EN-US"> Intel </span>鐨?span lang="EN-US">IA 32/64</span>鎵嬪唽銆?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">CR3</span><span style="font-size: 12pt; font-family: 瀹嬩綋;">瀵勫瓨鍣ㄥ繀欏誨湪鍒嗛〉鏈哄埗寮鍚墠灝辮杞藉ソ錛屽彲浠ヤ嬌鐢?span lang="EN-US">MOV </span>鎸囦護鎴栬呭湪浠誨姟鍒囨崲鏃朵嬌鐢?span lang="EN-US">TSS</span>涓殑<span lang="EN-US">CR3</span>鍩熺殑鍊箋傚綋澶勭悊鍣ㄨ闂笉瀛樺湪鐨勯〉甯ф椂錛屽彂鐢熶竴涓紓甯革紝<span lang="EN-US">CR2 </span>瀵勫瓨鍣ㄥ瓨寮曞彂寮傚父鐨勯昏緫鍦板潃錛屽悓鏃墮敊璇爜涔熶細鍘嬪叆鍒板爢鏍堜腑錛岄敊璇爜鏍煎紡濡備笅錛?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> 31                                                 3   2     1     0<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">鈹忊攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲敁<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">鈹?nbsp;                   </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鏈嬌鐢?span lang="EN-US">                         鈹?U/S鈹?R/W鈹?P 鈹?o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">鈹椻攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲敍<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">寮傚父澶勭悊渚嬬▼閫氬父閲囧彇濡備笅鐨勬楠わ細<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鏌ユ壘涓涓┖闂茬殑欏靛撫鎴栦粠紜洏涓皢欏靛撫浜ゆ崲鍑烘潵錛岄噸鏂拌緗紜殑欏電洰褰曢」鎴栭〉琛ㄩ」鐨勫鹼紝鍒鋒柊<span lang="EN-US">TLB</span>銆傚鐞嗗櫒閫氬父淇濆瓨鏈榪戞渶澶氳闂殑欏電洰褰曟垨欏佃〃欏瑰埌涓涓?span lang="EN-US">cache</span>涓紝浠ラ伩鍏嶆瘡嬈¢兘榪涜铏氭嫙鍦板潃鍒扮墿鐞嗗湴鍧鐨勮漿鎹紝榪欎釜<span lang="EN-US">cache</span>灝卞彨鍋?span lang="EN-US">TLB</span>銆傚彧鏈夋垜浠敼鍔ㄤ簡欏電洰褰曟垨欏佃〃欏癸紝灝卞簲褰撳埛鏂?span lang="EN-US">TLB</span>銆傛柟娉曞緢綆鍗曪紝灝辨槸閲嶆柊鍔犺澆<span lang="EN-US">CR3 </span>瀵勫瓨鍣ㄣ?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><br> </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鐜板湪鎴戜滑鏉ョ湅鐪嬩唬鐮佹錛屽唴瀛樼鐞嗛氬父灝戜笉浜嗗ぇ閲忕殑瀹忓畾涔夛細<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋; color: red;" lang="EN-US">08/include/kernel.h</span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">#define PAGE_DIR    ((HD0_ADDR+HD0_SIZE+(4*1024)-1) & 0xfffff000)<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鐗╃悊鍐呭瓨瀹夋帓錛?span lang="EN-US">IDT</span>錛堝湪<span lang="EN-US">0x40000</span>錛夛紝鎺ヤ笅鏉ユ槸<span lang="EN-US">GDT</span>錛屾帴涓嬫潵鏄?span lang="EN-US">HD0</span>浣跨敤錛岀劧鍚庢墠鏄〉鐩綍錛?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鎵浠ヨ繖涓畯鐪嬭搗鏉ユ湁鐐歸暱銆?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><br> <span style="color: red;">08/include/mm.h</span><br> #define PAGE_SIZE    (4*1024)                    /* </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">欏靛撫綺掑害<span lang="EN-US"> */<br> #define PAGE_TABLE    (PAGE_DIR+PAGE_SIZE)       /* </span>欏佃〃鐗╃悊鍦板潃<span lang="EN-US"> */<br> #define MEMORY_RANGE (4*1024)                    /* skelix</span>鍙鐞?span lang="EN-US">4M </span>鍐呭瓨鏆傛椂<span lang="EN-US"> */<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><br> <span style="color: red;">08/mm.c</span><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">/* </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鐗╃悊鍐呭瓨浣跨敤鎯呭喌鐨勪綅鍥捐〃<span lang="EN-US"> */<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">static char mmap[MEMORY_RANGE/PAGE_SIZE] = {PG_REVERSED, };<br> <br> void<br> mm_install(void) {<br>     unsigned int *page_dir = ((unsigned int *)PAGE_DIR);<br>     unsigned int *page_table = ((unsigned int *)PAGE_TABLE);<br>     unsigned int address = 0;<br>     int i;<br>     for(i=0; i<MEMORY_RANGE/PAGE_SIZE; ++i) {<br>         /* </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">欏佃〃欏瑰睘鎬ц緗負<span lang="EN-US">: kernel, r/w, present */<br>         page_table[i] = address|7;<br>         address += PAGE_SIZE;<br>     };<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">    // </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">涓婇潰寰幆鍒濆鍖栦簡<span lang="EN-US">0~4M</span>瀵瑰簲鐨勬墍鏈夐〉琛ㄩ」<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><br>     page_dir[0] = (PAGE_TABLE|7);<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">    // </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">欏電洰褰曢」鍙渶瑕佺涓涓氨鍙互浜嗭紝鍥犱負鍙湁<span lang="EN-US">4M</span>鍐呭瓨<span lang="EN-US"><br> <br>     for (i=1; i<1024; ++i)<br>         page_dir[i] = 6;<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">    // </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍏朵粬鐨?span lang="EN-US">1023</span>涓〉鐩綍欏硅緗負絀猴紝濡傛灉榪?span lang="EN-US">1024</span>欏歸兘璁劇疆錛屽彲璁塊棶<span lang="EN-US">4G</span>鍐呭瓨絀洪棿<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">    // </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">璁劇疆<span lang="EN-US">0</span>锝?span lang="EN-US">1M</span>鍐呭瓨涓哄凡浣跨敤銆?span lang="EN-US"><br>     for (i=(1*1024*1024)/PAGE_SIZE-1; i>=0; --i)<br>         mmap[i] = PG_REVERSED;<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">    // </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍥犱負鍐呮牳鍙敤鍒頒簡浣庝簬<span lang="EN-US">1M</span>鐨勫唴瀛橈紝鎵浠ヤ繚鐣欏畠浠紝榪欐牱灝變笉浼氳浜ゆ崲鍑哄幓浜?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><br> <br>     __asm__ (<br>         "movl    %%eax,    %%cr3\n\t"        // </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍔犺澆欏電洰褰曞熀鍧鍒板瘎瀛樺櫒<span lang="EN-US"><br>         "movl    %%cr0,    %%eax\n\t"<br>         "orl    $0x80000000,    %%eax\n\t"<br>         "movl    %%eax,    %%cr0"::"a"(PAGE_DIR));    // </span>寮鍚垎欏墊満鍒訛紝<span lang="EN-US">CR0</span>鐨勬渶楂樹綅<span lang="EN-US"><br> }<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">閫氳繃<span lang="EN-US">mmap</span>浣嶅浘錛屾垜浠彲浠ユ竻妤氱殑鐭ラ亾鍐呭瓨鐨勪嬌鐢ㄦ儏鍐碉紝榪欐牱灝卞彲浠ュ垎閰嶇┖闂查〉甯т簡錛屽涓嬶細<span lang="EN-US"><br> <span style="color: red;">08/mm.c</span><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">unsigned int<br> alloc_page(int type) {<br>     int i;<br> <br>     for (i=(sizeof mmap)-1; i>=0 && mmap[i]; --i)<br>         ;<br> <br>     if (i < 0) {<br>         kprintf(KPL_PANIC, "NO MEMORY LEFT");<br>         halt();<br>     }<br>     mmap[i] = type;<br>     return i;            // </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">榪斿洖欏靛撫鍙?span lang="EN-US"><br> }<br> <br> void *<br> page2mem(unsigned int nr) {            // </span>杞崲涓鴻櫄鎷熷湴鍧<span lang="EN-US"><br>     return (void *)(nr * PAGE_SIZE);<br> }<br> <br> void<br> do_page_fault(enum KP_LEVEL kl,<br>               unsigned int ret_ip, unsigned int ss, unsigned int gs,<br>               unsigned int fs, unsigned int es, unsigned int ds, <br>               unsigned int edi, unsigned int esi, unsigned int ebp,<br>               unsigned int esp, unsigned int ebx, unsigned int edx, <br>               unsigned int ecx, unsigned int eax, unsigned int isr_nr, <br>               unsigned int err, unsigned int eip, unsigned int cs, <br>               unsigned int eflags,unsigned int old_esp, unsigned int old_ss) {<br>     unsigned int cr2, cr3;<br>     (void)ret_ip; (void)ss; (void)gs; (void)fs; (void)es; <br>     (void)ds; (void)edi; (void)esi; (void)ebp; (void)esp; <br>     (void) ebx; (void)edx; (void)ecx; (void)eax; <br>     (void)isr_nr; (void)eip; (void)cs; (void)eflags; <br>     (void)old_esp; (void)old_ss; (void)kl;<br>     __asm__ ("movl %%cr2, %%eax":"=a"(cr2));<br>     __asm__ ("movl %%cr3, %%eax":"=a"(cr3));<br>     kprintf(KPL_PANIC, "\n  The fault at %x cr3:%x was caused by a %s. "<br>             "The accessing cause of the fault was a %s, when the "<br>             "processor was executing in %s mode, page %x is free\n", <br>             cr2, cr3,<br>             (err&0x1)?"page-level protection voilation":"not-present page", <br>             (err&0x2)?"write":"read", <br>             (err&0x4)?"user":"supervisor",<br>             <span style="color: red;">alloc_page</span>(PG_NORMAL));<br> }<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">欏靛紓甯稿嚱鏁幫紝瀹冧粈涔堜篃娌℃湁鍋氾紝鐭ヨ瘑鏄劇ず涓浜涢敊璇俊鎭?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鐜板湪鎴戜滑鏉ュ姩鎬佺殑鍒嗛厤涓浜涘唴瀛橈紝鎴戜滑淇敼涓涓嬩換鍔″嚱鏁幫細<span lang="EN-US"><br> <span style="color: red;">08/init.c</span><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">static void<br> new_task(unsigned int eip) {<br>     struct TASK_STRUCT *task = <span style="color: red;">page2mem</span>(alloc_page(PG_TASK));<br>     memcpy(&(task->tss), &(TASK0.tss), sizeof(struct TSS_STRUCT));<br> <br>     task->tss.esp0 = (unsigned int)task + PAGE_SIZE;<br>     task->tss.eip = eip;<br>     task->tss.eflags = 0x3202;<br>     task->tss.esp = (unsigned int)<span style="color: red;">page2mem</span>(alloc_page(PG_TASK))+PAGE_SIZE;<br>     task->tss.cr3 = PAGE_DIR;<br>     task->priority = INITIAL_PRIO;<br>     task->ldt[0] = DEFAULT_LDT_CODE;<br>     task->ldt[1] = DEFAULT_LDT_DATA;<br> <br>     task->next = current->next;<br>     current->next = task;<br>     task->state = TS_RUNABLE;<br> }<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鑷繁鍒嗛厤鐨勪換鍔℃暟鎹粨鏋勫拰浠誨姟鍫嗘爤錛屾槸涓嶆槸寰堟湁鎴愬氨鎰燂細錛?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鏈鍚庡湪<span lang="EN-US">init.c</span>涓坊鍔犲垵濮嬪寲浠g爜錛?span lang="EN-US"><br> <span style="color: red;">08/init.c</span><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">void <br> init(void) {<br>     char wheel[] = {'\\', '|', '/', '-'};<br>     int i = 0;<br> <br>     idt_install();<br>     pic_install();<br>     mm_install();      /* </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍒濆鍖栧嚱鏁拌皟鐢?span lang="EN-US"> */<br>     kb_install();<br>     timer_install(100);<br>     set_tss((unsigned long long)&TASK0.tss);<br>     set_ldt((unsigned long long)&TASK0.ldt);<br>     __asm__ ("ltrw    %%ax\n\t"::"a"(TSS_SEL));<br>     __asm__ ("lldt    %%ax\n\t"::"a"(LDT_SEL));<br> <br>     kprintf(KPL_DUMP, "Verifing disk partition table....\n");<br>     verify_DPT();<br>     kprintf(KPL_DUMP, "Verifing file systes....\n");<br>     verify_fs();<br>     kprintf(KPL_DUMP, "Checking / directory....\n");<br>     verify_dir();<br> <br>     sti();<br>     new_task((unsigned int)task1_run);<br>     new_task((unsigned int)task2_run);<br>     __asm__ ("movl %%esp,%%eax\n\t" \<br>              "pushl %%ecx\n\t" \<br>              "pushl %%eax\n\t" \<br>              "pushfl\n\t" \<br>              "pushl %%ebx\n\t" \<br>              "pushl $1f\n\t" \<br>              "iret\n" \<br>              "1:\tmovw %%cx,%%ds\n\t" \<br>              "movw %%cx,%%es\n\t" \<br>              "movw %%cx,%%fs\n\t" \<br>              "movw %%cx,%%gs" \<br>              ::"b"(USER_CODE_SEL),"c"(USER_DATA_SEL));<br>     __asm__ ("incb 0xeeffeeff");         /* </span><span style="color: red;">嫻嬭瘯錛?/span>瑙﹀彂涓涓紓甯?span lang="EN-US"> */<br>     for (;;) {<br>         __asm__ ("movb    %%al,    0xb8000+160*24"::"a"(wheel[i]));<br>         if (i == sizeof wheel)<br>             i = 0;<br>         else<br>             ++i;<br>     }<br> }<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">寮傚父澶勭悊渚嬬▼涓粈涔堜篃娌″仛錛岃闂唴瀛樺嚭閿欏垯姝繪満錛?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋; color: red;" lang="EN-US">08/exceptions.c</span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">void<br> page_fault(void) {<br>     __asm__ ("pushl    %%eax;call    do_page_fault"::"a"(KPL_PANIC));<br>     halt();<br> }<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鏈鍚庢妸<span lang="EN-US">mm.o </span>娣誨姞鍒?span lang="EN-US"> Makefile </span>鐨?span lang="EN-US">KERNEL_OBJS </span>涓幓錛?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋; color: red;" lang="EN-US">08/Makefile</span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">KERNEL_OBJS= load.o init.o isr.o timer.o libcc.o scr.o kb.o task.o kprintf.o hd.o exceptions.o fs.o mm.o<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p><img src ="http://www.shnenglu.com/jinglexy/aggbug/25801.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jinglexy/" target="_blank">澶╄。鏈夌紳</a> 2007-06-08 08:44 <a href="http://www.shnenglu.com/jinglexy/archive/2007/06/08/25801.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鑷繁鍔ㄦ墜鍐欏唴鏍革紙絎?璇撅細鏂囦歡緋葷粺錛夛紙鍘熷垱錛?/title><link>http://www.shnenglu.com/jinglexy/archive/2007/05/19/24377.html</link><dc:creator>澶╄。鏈夌紳</dc:creator><author>澶╄。鏈夌紳</author><pubDate>Sat, 19 May 2007 03:35:00 GMT</pubDate><guid>http://www.shnenglu.com/jinglexy/archive/2007/05/19/24377.html</guid><wfw:comment>http://www.shnenglu.com/jinglexy/comments/24377.html</wfw:comment><comments>http://www.shnenglu.com/jinglexy/archive/2007/05/19/24377.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.shnenglu.com/jinglexy/comments/commentRss/24377.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jinglexy/services/trackbacks/24377.html</trackback:ping><description><![CDATA[     鎽樿: 絎?璇撅細鏂囦歡緋葷粺    涓嬭澆婧愪唬鐮?澹版槑錛氳漿杞借淇濈暀錛?璇戣咃細http://www.shnenglu.com/jinglexy 鍘熶綔鑰咃細xiaoming.mo at skelix dot org MSN & Email: jinglexy at yahoo dot com dot cn     鐩爣   榪欎竴璇句腑錛?..  <a href='http://www.shnenglu.com/jinglexy/archive/2007/05/19/24377.html'>闃呰鍏ㄦ枃</a><img src ="http://www.shnenglu.com/jinglexy/aggbug/24377.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jinglexy/" target="_blank">澶╄。鏈夌紳</a> 2007-05-19 11:35 <a href="http://www.shnenglu.com/jinglexy/archive/2007/05/19/24377.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鑷繁鍔ㄦ墜鍐欏唴鏍革紙絎?璇撅細澶氫換鍔★級錛堝師鍒涳級http://www.shnenglu.com/jinglexy/archive/2007/05/15/24158.html澶╄。鏈夌紳澶╄。鏈夌紳Tue, 15 May 2007 08:55:00 GMThttp://www.shnenglu.com/jinglexy/archive/2007/05/15/24158.htmlhttp://www.shnenglu.com/jinglexy/comments/24158.htmlhttp://www.shnenglu.com/jinglexy/archive/2007/05/15/24158.html#Feedback3http://www.shnenglu.com/jinglexy/comments/commentRss/24158.htmlhttp://www.shnenglu.com/jinglexy/services/trackbacks/24158.html闃呰鍏ㄦ枃

]]>
涓涓皟璇曞伐鍏風紪鍐欑殑鍙戠幇錛堝師鍒涳級http://www.shnenglu.com/jinglexy/archive/2007/05/11/23909.html澶╄。鏈夌紳澶╄。鏈夌紳Fri, 11 May 2007 09:02:00 GMThttp://www.shnenglu.com/jinglexy/archive/2007/05/11/23909.htmlhttp://www.shnenglu.com/jinglexy/comments/23909.htmlhttp://www.shnenglu.com/jinglexy/archive/2007/05/11/23909.html#Feedback4http://www.shnenglu.com/jinglexy/comments/commentRss/23909.htmlhttp://www.shnenglu.com/jinglexy/services/trackbacks/23909.html闃呰鍏ㄦ枃

]]>
鑷繁鍔ㄦ墜鍐欏唴鏍革紙絎?璇撅細涓柇鍜屽紓甯?錛夛紙鍘熷垱錛?/title><link>http://www.shnenglu.com/jinglexy/archive/2007/05/11/23881.html</link><dc:creator>澶╄。鏈夌紳</dc:creator><author>澶╄。鏈夌紳</author><pubDate>Fri, 11 May 2007 02:39:00 GMT</pubDate><guid>http://www.shnenglu.com/jinglexy/archive/2007/05/11/23881.html</guid><wfw:comment>http://www.shnenglu.com/jinglexy/comments/23881.html</wfw:comment><comments>http://www.shnenglu.com/jinglexy/archive/2007/05/11/23881.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/jinglexy/comments/commentRss/23881.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jinglexy/services/trackbacks/23881.html</trackback:ping><description><![CDATA[     鎽樿: 絎?璇撅細涓柇鍜屽紓甯?      涓嬭澆婧愪唬鐮? 澹版槑錛氳漿杞借淇濈暀錛?璇戣咃細http://www.shnenglu.com/jinglexy 鍘熶綔鑰咃細xiaoming.mo at skelix dot org MSN & Email: jinglexy at yahoo dot com dot cn 鐩爣 鍦ㄤ笂涓鑺傝涓紝鎴戜滑浠?..  <a href='http://www.shnenglu.com/jinglexy/archive/2007/05/11/23881.html'>闃呰鍏ㄦ枃</a><img src ="http://www.shnenglu.com/jinglexy/aggbug/23881.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jinglexy/" target="_blank">澶╄。鏈夌紳</a> 2007-05-11 10:39 <a href="http://www.shnenglu.com/jinglexy/archive/2007/05/11/23881.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鏁寸悊涓浜涙湁鐢ㄧ殑緗戦〉錛堝師鍒涳級http://www.shnenglu.com/jinglexy/archive/2007/05/09/23727.html澶╄。鏈夌紳澶╄。鏈夌紳Wed, 09 May 2007 13:01:00 GMThttp://www.shnenglu.com/jinglexy/archive/2007/05/09/23727.htmlhttp://www.shnenglu.com/jinglexy/comments/23727.htmlhttp://www.shnenglu.com/jinglexy/archive/2007/05/09/23727.html#Feedback0http://www.shnenglu.com/jinglexy/comments/commentRss/23727.htmlhttp://www.shnenglu.com/jinglexy/services/trackbacks/23727.html 

涓銆?/span>solaris 鍐呮牳鍙婂簲鐢ㄧ▼搴忔簮紼嬪簭錛?/span>

http://src.opensolaris.org/source          涓婚〉

http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/ls/ls.c   鑼冧緥錛?/span>ls婧愮▼搴?/span>

 

浜屻佹瘮杈冨鐨?/span>gcc璧勬枡

http://gcc.cookys.org/

 

涓夈?/span>linux鍐呮牳浜ゅ弶寮曠敤錛屼粠0.1鍒?.0錛?.0錛?.2錛?.4錛?/span>2.6.20閮芥湁

http://lxr.linux.no/source/

http://www.oldlinux.org/lxr/http/source/

 

鍥涖?/span>C 璇█甯歌闂闆?/span>(涓嫳鏂?/span>)

http://c-faq-chn.sourceforge.net/

http://c-faq.com/

 

浜斻佹搷浣滅郴緇熺浉鍏崇殑涓浜涜祫鏂欙紝鍖呮嫭linux婧愮▼搴忓垎鏋?/span>

http://osdev.gro.clinux.org

 

鍏?/span>linus鑷紶

http://www.bookcool.com/online/zhuanji/happyking-gb/0/content.htm

 

涓冦佸祵鍏ュ紡鍙奜S寮鍙戣祫鏂欙紙鑻辨枃錛?/span>

http://my.execpc.com/~geezer/

 

鍏?/span>Testing and debugging KOS錛堣嫳鏂囷級

http://kos.enix.org/~d2/snapshots/kos_current/doc/testingen-html

 

涔濄?/span>the Single UNIX Specification Version 3錛堟帹鑽愶細鍙綔涓?/span>posix鐨勬浛浠e弬鑰冭祫鏂欙級

http://www.unix.org/single_unix_specification

 

鍗併?/span>OS璁捐鍙傝冿紙鑻辨枃錛?/span>

http://www.nondot.org/~sabre/os/articles

 



]]>
鑷繁鍔ㄦ墜鍐欏唴鏍革紙絎?璇撅細涓柇鍜屽紓甯?錛夛紙鍘熷垱錛?/title><link>http://www.shnenglu.com/jinglexy/archive/2007/05/08/23600.html</link><dc:creator>澶╄。鏈夌紳</dc:creator><author>澶╄。鏈夌紳</author><pubDate>Mon, 07 May 2007 23:37:00 GMT</pubDate><guid>http://www.shnenglu.com/jinglexy/archive/2007/05/08/23600.html</guid><wfw:comment>http://www.shnenglu.com/jinglexy/comments/23600.html</wfw:comment><comments>http://www.shnenglu.com/jinglexy/archive/2007/05/08/23600.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/jinglexy/comments/commentRss/23600.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jinglexy/services/trackbacks/23600.html</trackback:ping><description><![CDATA[     鎽樿: 絎?璇撅細涓柇鍜屽紓甯? 澹版槑錛氳漿杞借淇濈暀錛?璇戣咃細http://www.shnenglu.com/jinglexy 鍘熶綔鑰咃細xiaoming.mo at skelix dot org MSN & Email: jinglexy at yahoo dot com dot cn 鐩爣        &nb...  <a href='http://www.shnenglu.com/jinglexy/archive/2007/05/08/23600.html'>闃呰鍏ㄦ枃</a><img src ="http://www.shnenglu.com/jinglexy/aggbug/23600.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jinglexy/" target="_blank">澶╄。鏈夌紳</a> 2007-05-08 07:37 <a href="http://www.shnenglu.com/jinglexy/archive/2007/05/08/23600.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鑷繁鍔ㄦ墜鍐欏唴鏍革紙絎?璇撅細杈呭姪鍑芥暟錛夛紙鍘熷垱錛?/title><link>http://www.shnenglu.com/jinglexy/archive/2007/05/08/23599.html</link><dc:creator>澶╄。鏈夌紳</dc:creator><author>澶╄。鏈夌紳</author><pubDate>Mon, 07 May 2007 23:36:00 GMT</pubDate><guid>http://www.shnenglu.com/jinglexy/archive/2007/05/08/23599.html</guid><wfw:comment>http://www.shnenglu.com/jinglexy/comments/23599.html</wfw:comment><comments>http://www.shnenglu.com/jinglexy/archive/2007/05/08/23599.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/jinglexy/comments/commentRss/23599.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jinglexy/services/trackbacks/23599.html</trackback:ping><description><![CDATA[<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">絎?span lang="EN-US">3</span>璇撅細杈呭姪鍑芥暟<span lang="EN-US"><o:p></o:p></span></span></p> <br> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">澹版槑錛氳漿杞借淇濈暀</span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">錛?/span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"></span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">璇戣?/span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">錛?/span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">http://www.shnenglu.com/jinglexy</span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">鍘熶綔鑰咃細</span>xiaoming.mo at skelix dot org</p> MSN & Email: jinglexy at yahoo dot com dot cn<br><br> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鐩爣<span lang="EN-US">            <a target="_blank"><span lang="EN-US"><span lang="EN-US">涓嬭澆婧愮▼搴?/span></span></a><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">榪欒妭璇炬垜浠榪扮殑鍐呭涓庢搷浣滅郴緇熸殏鏃犲お澶у叧緋伙紝浣嗘槸榪欎簺鍩虹鍑芥暟闈炲父閲嶈錛屽茍涓斿湪鍚庨潰鐨勮紼嬩腑緇忓父鐢ㄥ埌銆傝繖灝辨槸鎴戜滑緇忓父鍚埌鐨勫唴鏍稿簱銆傚鏋滀綘瀵硅繖浜涗笉鏄緢鎰熷叴瓚o紝鐭ラ亾<span lang="EN-US">kprintf</span>璞?span lang="EN-US">c</span>璇█閲岄潰鐨?span lang="EN-US">print</span>涓鏍峰伐浣滃氨琛屼簡銆傜畝鍗曟帬榪囧嵆鍙?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><br> <a name="kprintf"></a> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">C</span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鐢ㄦ埛搴撻噷闈㈢殑<span lang="EN-US">printf</span>鍏鋒湁楂樺害鍙幾緙╂э紝涔熷緢瀹規槗鐞嗚В錛岀浉姣斾箣涓?span lang="EN-US">C</span>錛嬶紜涓殑<span lang="EN-US">IO</span>榪愮畻絎﹀氨姣旇緝闅句簡銆備負浜嗗湪灞忓箷涓婃樉紺哄瓧絎︿覆鎴栨暟鎹紝鎴戜滑鐜板湪闇瑕佸疄鐜扮被浼?span lang="EN-US">C</span>搴撲腑鐨?span lang="EN-US">printf</span>錛屾樉紺哄瓧絎﹀湪<span lang="EN-US">B8000</span>寮濮嬬殑鏄懼瓨澶勩傛垜騫朵笉鍍忓畬鍏ㄥ疄鐜?span lang="EN-US">printf</span>鐨勬墍鏈夊姛鑳斤紝鍥犱負<span lang="EN-US">skelix</span>鍐呮牳鍙渶瑕佹樉紺哄瓧絎︿覆錛屽崄榪涘埗鍜屽崄鍏繘鍒舵垨浜岃繘鍒訛紝姝f暣鏁幫紝瀛楃灝辮浜嗭紝騫朵笖闇瑕佹敮鎸佸彲鍙樺弬鏁般傚叾浠栨洿楂樼駭鐨勫姛鑳芥垜浠笉浼氱敤鍒般?span lang="EN-US"><br> <br> </span>榪欓噷鏈変竴縐嶆柟娉曟潵瀹炵幇錛屾垜浠洿鍒拌薄<span lang="EN-US">func(int arg1, int arg2, int arg3)</span>榪欐牱涓涓嚱鏁拌璋冪敤鏃訛紝瀹冩眹緙栧悗鐨勬寚浠ゅ簲璇ュ涓嬶紙鎵鏈変粠宸﹀悜鍙沖叆鏍堢殑緙栬瘧鍣ㄥ簲璇ヤ粠鍦扮悆涓婂交搴曟秷澶憋級錛?span lang="EN-US"><br> pushl   arg3<br> pushl   arg2<br> pushl   arg1<br> call    func<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鎴戜滑鐪嬪埌錛屽弬鏁頒粠鍙沖悜宸︿竴涓釜鍏ユ爤錛屽弬鏁拌秺澶氾紝鍏ユ爤瓚婃繁銆傚鏋滄槸鍙彉鍙傛暟閭f垜浠庝箞鐭ラ亾鏈夊灝戜釜鍙傛暟鍛紵絳旀鏄?span lang="EN-US">printf</span>鏍煎紡鍖栧瓧絎︿覆涓弬鏁板垽鏂細鏈夊灝戜釜<span lang="EN-US">%X</span>錛屽氨鏈夊灝戜釜鍙傛暟瑕佽В鏋愩傚湪<span lang="EN-US">32</span>浣嶆ā寮忎笅錛屾墍鏈夊皬浜?span lang="EN-US">4</span>瀛楄妭鐨勫弬鏁伴兘琚綋浣?span lang="EN-US">4</span>瀛楄妭澶勭悊銆備緥濡備竴涓?span lang="EN-US">char</span>鍨嬪弬鏁幫紝鍏ユ爤鏃跺氨鏄?span lang="EN-US">int</span>鍨嬩簡錛屾墍浠ュ湪瑙f瀽鍙傛暟鏃跺姟蹇呬繚璇佹紜?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鎴戜滑榪欐牱璁捐<span lang="EN-US">kprintf</span>鍙傛暟錛?span lang="EN-US">kprintf(color, format string, arguments...)<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">絎竴涓弬鏁板畾涔夎緭鍑虹殑鍓嶆櫙<span lang="EN-US">/</span>鑳屾櫙棰滆壊銆傛垜浠畾涔変簡寰堝瀹忔潵瑙f瀽鏍堬紝濡傛灉浣犵啛鎮?span lang="EN-US">C</span>璇█搴旇寰堝鏄撶悊瑙e畠浠?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><br> <span style="color: red;">03/kprintf.c</span><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">#define args_list char *            // </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">榪欎釜瀹忕敤渚嬭漿鎹㈡爤絀洪棿涓哄瓧絎︿覆鎸囬拡<span lang="EN-US"><br> #define _arg_stack_size(type)    (((sizeof(type)-1)/sizeof(int)+1)*sizeof(int))<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">                                    // </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">榪欎釜瀹忓洓鑸嶄簲鍏ュ弬鏁板ぇ灝忎負<span lang="EN-US">4</span>瀛楄妭鐨勫嶆暟<span lang="EN-US"><br> #define args_start(ap, fmt) do {    \<br> ap = (char *)((unsigned int)&fmt + _arg_stack_size(&fmt));   \<br> } while (0)<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">                                    // </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍙傛暟灝嗕粠鏍煎紡鍖栧瓧絎︿覆鍚庨潰寮濮嬭В鏋愶紝鍗?span lang="EN-US">fmt</span>灝辨槸鏍堥《錛屼笂闈㈣繖涓畯灝辨槸鍙栧弬鏁扮殑棣栧湴鍧<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><br> #define args_end(ap)                // </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍒扮幇鍦ㄤ負姝紝浠涔堜篃涓嶅仛<span lang="EN-US"><br> #define args_next(ap, type) (((type *)(ap+=_arg_stack_size(type)))[-1])<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">                                    // </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍙?span lang="EN-US">‘</span>褰撳墠<span lang="EN-US">’</span>鍙傛暟鍦板潃錛岀劧鍚庤緗寚閽堜負涓嬩竴涓弬鏁板湴鍧錛屾毀鏄х殑鍑芥暟鍚嶏紒<span lang="EN-US"><br> <br> <span style="color: red;">03/kprintf.c</span><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">static char buf[1024] = {-1};       // </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">娉ㄦ剰娌℃湁閿佷繚鎶わ紝寮曠敤璇ュ彉閲忕殑鍑芥暟涓嶅彲閲嶅叆錛?span lang="EN-US"><br> static int ptr = -1;<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">涓嬮潰涓や釜鍑芥暟瑙f瀽鍊間負鎸囧畾鐨勮繘鍒舵暟錛?span lang="EN-US"><br> static void<br> parse_num(unsigned int value, unsigned int base) {            // </span>鍙互鎵撳嵃灝忎簬絳変簬<span lang="EN-US">10</span>榪涘埗鐨勬暟<span lang="EN-US"><br>     unsigned int n = value / base;<br>     int r = value % base;<br>     if (r < 0) {<br>         r += base;<br>         --n;<br>     }<br>     if (value >= base)<br>         parse_num(n, base);<br>     buf[ptr++] = (r+'0');<br> }<br> <br> static void                                                   // </span>鎵撳嵃<span lang="EN-US">16</span>榪涘埗鏁?span lang="EN-US"><br> parse_hex(unsigned int value) {<br>     int i = 8;<br>     while (i-- > 0) {<br>         buf[ptr++] = "0123456789abcdef"[(value>>(i*4))&0xf];<br>     }<br> }<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鐜板湪鎴戜滑鏉ョ湅涓涓?span lang="EN-US"> kprintf</span>榪欎釜鍑芥暟錛屽畠鏀寔鐨勬牸寮忥細<span lang="EN-US">%s, %c, %x, %d, %%<br> void<br> kprintf(enum KP_LEVEL kl, const char *fmt, ...) {<br>     int i = 0;<br>     char *s;<br>     /* must be the same size as enum KP_LEVEL */<br>     struct KPC_STRUCT {<br>         COLOUR fg;<br>         COLOUR bg;<br>     } KPL[] = {<br>         {BRIGHT_WHITE, BLACK},<br>         {YELLOW, RED},<br>     };<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><br> enum KP_LEVEL {KPL_DUMP, KPL_PANIC} </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">瀹氫箟鍦?span lang="EN-US"> include/kprintf.h, </span>瀹冭〃紺轟袱縐嶈緭鍑烘柟妗?span lang="EN-US">, KPL_DUMP </span>浣跨敤榛戣壊鑳屾櫙鐧借壊鍓嶆櫙鏄劇ず瀛楃錛?span lang="EN-US">KPL_PANIC </span>浣跨敤榛勮壊鍓嶆櫙鍜岀孩鑹茶儗鏅傞鑹插父閲忓畾涔夊湪<span lang="EN-US"> include/scr.h, </span>鍚庨潰浼氫粙緇嶅埌<span lang="EN-US">.<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">    args_list args;<br>     args_start(args, fmt);<br> <br>     ptr = 0;<br> <br>     for (; fmt[i]; ++i) {<br>         if ((fmt[i]!='%') && (fmt[i]!='\\')) {<br>             buf[ptr++] = fmt[i];<br>             continue;<br>         } else if (fmt[i] == '\\') {<br>             /* \a \b \t \n \v \f \r \\ */<br>             switch (fmt[++i]) {<br>             case 'a': buf[ptr++] = '\a'; break;<br>             case 'b': buf[ptr++] = '\b'; break;<br>             case 't': buf[ptr++] = '\t'; break;<br>             case 'n': buf[ptr++] = '\n'; break;<br>             case 'r': buf[ptr++] = '\r'; break;<br>             case '\\':buf[ptr++] = '\\'; break;<br>             }<br>             continue;<br>         }<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">        /* </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">涓嬮潰鏄敮鎸佺殑鎵撳嵃鏍煎紡<span lang="EN-US"> */<br>         switch (fmt[++i]) {<br>         case 's':<br>             s = (char *)args_next(args, char *);<br>             while (*s)<br>                 buf[ptr++] = *s++;<br>             break;<br>         case 'c':<br>             buf[ptr++] = (char)args_next(args, int);<br>             break;<br>         case 'x':<br>             parse_hex((unsigned long)args_next(args, unsigned long));<br>             break;<br>         case 'd':<br>             parse_num((unsigned long)args_next(args, unsigned long), 10);<br>             break;<br>         case '%':<br>             buf[ptr++] = '%';<br>             break;<br>         default:<br>             buf[ptr++] = fmt[i];<br>             break;<br>         }<br>     }<br>     buf[ptr] = '\0';<br>     args_end(args);<br>     for (i=0; i<ptr; ++i)<br>         <span style="color: red;">print_c</span>(buf[i], KPL[kl].fg, KPL[kl].bg);            /* print_c() </span>鏄笅灞傜殑鏄劇ず鍑芥暟錛屾湰鏂囧悗闈細鏈夎瑙?span lang="EN-US"> */<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">}<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><br>  <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鐢變簬鏄唴鏍哥▼搴忥紝鎴戜滑鏃犳硶浣跨敤<span lang="EN-US">C</span>鐢ㄦ埛搴撱傛墍浠ヤ竴涓?span lang="EN-US">memcpy</span>錛?span lang="EN-US">memset</span>錛?span lang="EN-US">memcpy</span>鍑芥暟闇瑕佽嚜宸卞疄鐜幫紝浣嗘槸闇瑕佹敞鎰忕殑鏄湪<span lang="EN-US">BSD</span>緋葷粺涓紝鍗充究浣跨敤浜?span lang="EN-US">-nostdlib</span>錛岀紪璇戝櫒浠嶇劧浼氫駭鐢?span lang="EN-US">System V</span>涓浉鍏崇殑<span lang="EN-US">memcpy</span>絳変唬鐮侊紝鍏蜂綋鎯呭喌鎴戜篃涓嶆槸寰堟竻闄ゃ傝繖浜涘嚱鏁扮殑鏁堢巼褰撶劧鏃犳硶鍜?span lang="EN-US">linux</span>鍐呮牳涓殑鍐呭祵姹囩紪鐩告瘮錛佹垜浠殏鏃惰繖鏍峰疄鐜板畠浠惂銆?span lang="EN-US"><br> <span style="color: red;">03/libcc.c</span><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">/* </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">涓嬮潰鍑芥暟瀵歸噸鍙犲尯鍩熶篃榪涜浜嗗鐞?span lang="EN-US"> */<br> void <br> bcopy(const void *src, void *dest, unsigned int n) {<br>     const char *s = (const char *)src;<br>     char *d = (char *)dest;<br>     if (s <= d)<br>         for (; n>0; --n)<br>             d[n-1] = s[n-1];<br>     else<br>         for (; n>0; --n)<br>             *d++ = *s++;<br> }<br> <br> void<br> bzero(void *dest, unsigned int n) {<br>     memset(dest, 0, n);<br> }<br> <br> void *<br> memcpy(void *dest, const void *src, unsigned int n) {<br>     bcopy(src, dest, n);<br>     return dest;<br> }<br> <br> void *<br> memset(void *dest, int c, unsigned int n) {<br>     char *d = (char *)dest;<br>     for (; n>0; --n)<br>         *d++ = (char)c;<br>     return dest;<br> }<br> <br> int<br> memcmp(const void *s1, const void *s2, unsigned int n) {<br>     const char *s3 = (const char *)s1;<br>     const char *s4 = (const char *)s2;<br>     for (; n>0; --n) {<br>         if (*s3 > *s4)<br>             return 1;<br>         else if (*s3 < *s4)<br>             return -1;<br>         ++s3;<br>         ++s4;<br>     }<br>     return 0;<br> }<br> <br> int<br> strcmp(const char *s1, const char *s2) {<br>     while (*s1 && *s2) {<br>         int r = *s1++ - *s2++;<br>         if (r)<br>             return r;<br>     }<br>     if (*s1 == *s2)<br>         return 0<br>     else<br>         return (*s1)?1:-1;<br> }<br> <br> char *<br> strcpy(char *dest, const char *src) {<br>     char *p = dest;<br>     while ( (*dest++ = *src++))<br>         ;<br>     *dest = 0;<br>     return p;<br> }<br> <br> unsigned int<br> strlen(const char *s) {<br>     unsigned int n = 0;<br>     while (*s++)<br>         ++n;<br>     return n;<br> }<br> <br> <a name="print_c"></a><span style="color: red;">print_c</span></span><span style="color: red;">鍑芥暟</span><span lang="EN-US"><br> </span>鐩存帴鎿嶄綔鏄懼瓨鍖哄煙涓鐐逛篃涓嶆柟渚匡紝鎵浠ユ垜浠渶瑕佷竴涓樉紺烘ā鍧椼傝繖涓氨鏄垜浠殑<span lang="EN-US">‘</span>鏄懼崱椹卞姩<span lang="EN-US">’</span>浜嗭紝鏄笉鏄笉鏁㈢浉淇¢┍鍔ㄦ槸榪欎箞綆鍗曠殑浜嬫儏錛熸垜浠厛鏉ョ湅涓涓嬩竴浜涘父閲忓畾涔夛細<span lang="EN-US"><br> <span style="color: red;">03/include/scr.h</span><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">#define MAX_LINES    25                // bios</span><span style="font-size: 12pt; font-family: 瀹嬩綋;">榛樿璁劇疆灞忓箷涓?span lang="EN-US"> 80x25</span>澶у皬錛屽僵鑹插瓧絎︽ā寮?span lang="EN-US"><br> #define MAX_COLUMNS  80<br> #define TAB_WIDTH    8                 // </span>蹇呴』鏄細<span lang="EN-US">2^n<br> #define VIDEO_RAM    0xb8000           // </span>鏄懼瓨鍦板潃<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鎴戜滑鏇劇畝瑕佹彁鍒拌繃榪欎釜鍦板潃錛屽湪瀛楃妯″紡涓嬶紝閫傞厤鍣ㄤ嬌鐢?span lang="EN-US">0xB8000-0xBF000</span>浣滀負瑙嗛鍐呭瓨銆傞氬父鎴戜滑澶勪簬<span lang="EN-US">80x25</span>澶у皬灞忓箷錛屾湁<span lang="EN-US">16</span>縐嶉鑹層傜敱浜庝竴涓睆騫曞彧闇瑕?span lang="EN-US">80x25x2</span>涓瓧鑺傦紝鍗?span lang="EN-US">4k</span>錛屾墍浠ヨ瑙嗛鍐呭瓨鍙互鍒嗕負澶氫釜欏點傛垜浠嬌鐢ㄦ墍鏈夌殑欏碉紝浣嗘槸褰撳墠鍙兘鏈変竴涓〉闈㈠彲瑙併備負浜嗘樉紺轟竴涓瓧絎︼紝灝嗙敤鍒?span lang="EN-US">2</span>涓瓧鑺傦紝涓涓瓧鑺傛槸瀛楃鍊鹼紝鍙︿竴涓瓧鑺傛槸瀛楃灞炴э紙鍗抽鑹詫級銆傚睘鎬у瓧鑺傚畾涔夊涓嬶細<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">To display a single character, two bytes are being used which called the character byte and the attribute byte. The character byte contains the value of the character. The attribute byte is defined like this: <o:p></o:p></span></p> <table class="MsoNormalTable" style="width: 51.76%;" border="1" cellpadding="0" width="51%"> <tbody> <tr> <td style="padding: 1.5pt; width: 99pt;" width="132"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">Bit 7<o:p></o:p></span></p> </td> <td style="padding: 1.5pt; width: 600.75pt;" width="801"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">闂儊<span lang="EN-US"><o:p></o:p></span></span></p> </td> </tr> <tr> <td style="padding: 1.5pt; width: 99pt;" width="132"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">Bits 6-4<o:p></o:p></span></p> </td> <td style="padding: 1.5pt; width: 600.75pt;" width="801"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鑳屾櫙鑹?span lang="EN-US"><o:p></o:p></span></span></p> </td> </tr> <tr> <td style="padding: 1.5pt; width: 99pt;" width="132"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">Bit 3<o:p></o:p></span></p> </td> <td style="padding: 1.5pt; width: 600.75pt;" width="801"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鏄庝寒妯″紡<span lang="EN-US"><o:p></o:p></span></span></p> </td> </tr> <tr> <td style="padding: 1.5pt; width: 99pt;" width="132"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">Bit3 2-0<o:p></o:p></span></p> </td> <td style="padding: 1.5pt; width: 600.75pt;" width="801"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍓嶆櫙鑹?span lang="EN-US"><o:p></o:p></span></span></p> </td> </tr> </tbody> </table> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">#define LINE_RAM    (MAX_COLUMNS*2)<br> #define PAGE_RAM    (MAX_LINE*MAX_COLUMNS)<br> <br> #define BLANK_CHAR    (' ')<br> #define BLANK_ATTR    (0x70)        /* </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鐧借壊鍓嶆櫙錛岄粦鑹茶儗鏅?span lang="EN-US"> */<br> <br> #define CHAR_OFF(x,y)    (LINE_RAM*(y)+2*(x))        /* </span>璁$畻緇欏畾鍧愭爣<span lang="EN-US">x</span>錛?span lang="EN-US">y</span>鐨勫亸縐誨湴鍧錛堢浉瀵?span lang="EN-US">0xB8000</span>錛?span lang="EN-US"> */<br> Calculates the offset of a given ordinary x, y from 0xB8000<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">typedef enum COLOUR_TAG {                            /* </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">棰滆壊琛?span lang="EN-US"> */<br>     BLACK, BLUE, GREEN, CYAN, RED, MAGENTA, BROWN, WHITE,<br>     GRAY, LIGHT_BLUE, LIGHT_GREEN, LIGHT_CYAN, <br>     LIGHT_RED, LIGHT_MAGENTA, YELLOW, BRIGHT_WHITE<br> } COLOUR;<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍧愭爣緋誨涓嬶細<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">  ___________________\<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> | </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">錛?span lang="EN-US">0</span>錛?span lang="EN-US">0</span>錛?span lang="EN-US">          /<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> |<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">\|/<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><br> <br> <span style="color: red;">03/scr.c</span><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">static int csr_x = 0;<br> static int csr_y = 0;<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鐢變簬鎴戜滑鍙敤鍒頒簡涓涓棰戦〉錛屾墍浠ヤ笂闈袱涓彉閲忓氨鍙互瀛樺偍鍧愭爣浜嗐傚叧浜庡欏墊樉紺哄彲浠ュ湪緗戠粶涓婃煡鎵劇浉鍏寵祫鏂欍?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><br> static void <br> scroll(int lines) {        </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍚戜笂婊氬姩灞忓箷澶氬皯琛岋紝灝辨槸涓浜涘唴瀛樺鍐欍?span lang="EN-US"><br>     short *p = (short *)(VIDEO_RAM+CHAR_OFF(MAX_COLUMNS-1, MAX_LINES-1));<br>     int i = MAX_COLUMNS-1;<br>     memcpy((void *)VIDEO_RAM, (void *)(VIDEO_RAM+LINE_RAM*lines),<br>            LINE_RAM*(MAX_LINES-lines));<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><br>     for (; i>=0; --i)            // </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">璇存槑榪欎釜<span lang="EN-US">for</span>寰幆鏈夐棶棰橈紝瑙夊緱搴旇鏀規垚涓嬮潰榪欐牱錛?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">    // for (i = i * lines; i>=0; --i)<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">        *p-- = (short)((BLANK_ATTR<<4)|BLANK_CHAR);<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">}<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">涓嬮潰鍑芥暟璁劇疆鍏夋爣鍙兘浼氬紩鍙戠珵鎬佹潯浠訛紝浣嗘槸<span lang="EN-US">print_c</span>鍙噯澶囧湪鍐呮牳涓嬌鐢紝鎵浠ユ病鏈夊叧涓柇銆傚畠鍙兘浼氬紩璧蜂竴浜?span lang="EN-US">bug</span>錛屼絾鏄垜娌℃湁鎵懼埌銆傝瘧娉細鍏ㄥ眬鍙橀噺娌℃湁閿佷繚鎶ゅ湪璁捐涓婂氨鏄竴縐嶉敊璇傝繖閲岀殑浠g爜淇濇姢紜疄鏄病鏈夊仛錛佽鑰呭簲鐢ㄥ埌鑷繁鐨勫唴鏍告椂瑕佸皬蹇冧簡銆?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">void <br> set_cursor(int x, int y) {<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">    csr_x = x;<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">    csr_y = y;<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">    outb(0x0e, 0x3d4);                                   </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">璁劇疆鍏夋爣楂?span lang="EN-US">8</span>浣嶇殑鍑嗗宸ヤ綔<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">    outb(((csr_x+csr_y*MAX_COLUMNS)>>8)&0xff, 0x3d5);    </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">璁劇疆鍏夋爣楂?span lang="EN-US">8</span>浣?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">    outb(0x0f, 0x3d4);                                   </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">璁劇疆鍏夋爣浣?span lang="EN-US">8</span>浣嶇殑鍑嗗宸ヤ綔<span lang="EN-US"><br>     outb(((csr_x+csr_y*MAX_COLUMNS))&0xff, 0x3d5);       </span>璁劇疆鍏夋爣浣?span lang="EN-US">8</span>浣?span lang="EN-US">   <br> }<br> <br> void<br> get_cursor(int *x, int *y) {<br>     *x = csr_x;<br>     *y = csr_y;<br> }<br> <br> void <br> print_c(char c, COLOUR fg, COLOUR bg) {<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">// </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鐢ㄨ繖涓嚱鏁版潵鏄劇ず涓涓叿浣撶殑瀛楃鍒板睆騫曪紝鎴戜滑鍙互鎶婂畠鐪嬩綔<span lang="EN-US">‘</span>鏄懼崱椹卞姩<span lang="EN-US">’<br>     char *p; <br>     char attr;<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><br>     p = (char *)VIDEO_RAM+CHAR_OFF(csr_x, csr_y);        // </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍙栧厜鏍囦綅緗?span lang="EN-US"><br>     attr = (char)(bg<<4|fg);                             // </span>灞炴?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">    switch (c) {<br>     case '\r':<br>         csr_x = 0;<br>         break;<br>     case '\n':<br>         for (; csr_x<MAX_COLUMNS; ++csr_x) {<br>             *p++ = BLANK_CHAR;<br>             *p++ = attr;<br>         }<br>         break;<br>     case '\t':<br>         c = csr_x+TAB_WIDTH-(csr_x&(TAB_WIDTH-1));<br>         c = c<MAX_COLUMNS?c:MAX_COLUMNS;<br>         for (; csr_x<c; ++csr_x) {<br>             *p++ = BLANK_CHAR;<br>             *p++ = attr;<br>         }<br>         break;<br>     case '\b':<br>         if ((! csr_x) && (! csr_y))<br>             return;<br>         if (! csr_x) {<br>             csr_x = MAX_COLUMNS - 1;<br>             --csr_y;<br>         } else<br>             --csr_x;<br>         ((short *)p)[-1] = (short)((BLANK_ATTR<<4)|BLANK_CHAR);<br>         break;<br>     default:<br>         *p++ = c; <br>         *p++ = attr;<br>         ++csr_x;<br>         break;<br>     }<br>     if (csr_x >= MAX_COLUMNS) {<br>         csr_x = 0;<br>         if (csr_y < MAX_LINES-1)<br>             ++csr_y;<br>         else <br>             scroll(1);<br>     }<br>     set_cursor(csr_x, csr_y);        // </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">璁劇疆鍏夋爣浣嶇疆<span lang="EN-US"><br> }<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍑芥暟姣旇緝綆鍗曪紝娌℃湁鍒嗘瀽鐨勫繀瑕佷簡錛屽ぇ瀹惰嚜宸辯悽紓ㄥ惂銆?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> </span></p><img src ="http://www.shnenglu.com/jinglexy/aggbug/23599.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jinglexy/" target="_blank">澶╄。鏈夌紳</a> 2007-05-08 07:36 <a href="http://www.shnenglu.com/jinglexy/archive/2007/05/08/23599.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鑷繁鍔ㄦ墜鍐欏唴鏍革紙絎?璇撅細淇濇姢妯″紡錛夛紙鍘熷垱錛?/title><link>http://www.shnenglu.com/jinglexy/archive/2007/05/08/23598.html</link><dc:creator>澶╄。鏈夌紳</dc:creator><author>澶╄。鏈夌紳</author><pubDate>Mon, 07 May 2007 23:35:00 GMT</pubDate><guid>http://www.shnenglu.com/jinglexy/archive/2007/05/08/23598.html</guid><wfw:comment>http://www.shnenglu.com/jinglexy/comments/23598.html</wfw:comment><comments>http://www.shnenglu.com/jinglexy/archive/2007/05/08/23598.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.shnenglu.com/jinglexy/comments/commentRss/23598.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jinglexy/services/trackbacks/23598.html</trackback:ping><description><![CDATA[     鎽樿: 絎?璇撅細淇濇姢妯″紡 澹版槑錛氳漿杞借淇濈暀錛?璇戣咃細http://www.shnenglu.com/jinglexy 鍘熶綔鑰咃細xiaoming.mo at skelix dot org MSN & Email: jinglexy at yahoo dot com dot cn 鐩爣        涓嬭澆婧愮▼搴?..  <a href='http://www.shnenglu.com/jinglexy/archive/2007/05/08/23598.html'>闃呰鍏ㄦ枃</a><img src ="http://www.shnenglu.com/jinglexy/aggbug/23598.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jinglexy/" target="_blank">澶╄。鏈夌紳</a> 2007-05-08 07:35 <a href="http://www.shnenglu.com/jinglexy/archive/2007/05/08/23598.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鑷繁鍔ㄦ墜鍐欏唴鏍革紙絎?璇撅細寮曞紼嬪簭錛夛紙鍘熷垱錛?/title><link>http://www.shnenglu.com/jinglexy/archive/2007/05/08/23597.html</link><dc:creator>澶╄。鏈夌紳</dc:creator><author>澶╄。鏈夌紳</author><pubDate>Mon, 07 May 2007 23:34:00 GMT</pubDate><guid>http://www.shnenglu.com/jinglexy/archive/2007/05/08/23597.html</guid><wfw:comment>http://www.shnenglu.com/jinglexy/comments/23597.html</wfw:comment><comments>http://www.shnenglu.com/jinglexy/archive/2007/05/08/23597.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.shnenglu.com/jinglexy/comments/commentRss/23597.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jinglexy/services/trackbacks/23597.html</trackback:ping><description><![CDATA[<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">絎?span lang="EN-US">1</span>璇撅細寮曞紼嬪簭<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">澹版槑錛氳漿杞借淇濈暀</span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">錛?/span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"></span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">璇戣?/span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">錛?/span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">http://www.shnenglu.com/jinglexy</span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">鍘熶綔鑰咃細</span>xiaoming.mo at skelix dot org</p> MSN & Email: jinglexy at yahoo dot com dot cn<br><br><br> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋; color: blue;">鐩爣錛?/span><span style="font-size: 12pt; font-family: 瀹嬩綋;">浣?span lang="EN-US">"system"</span>浠庤蔣鐩樺惎鍔紝騫舵墦鍗?span lang="EN-US">"Hello World!" <a target="_blank"><span lang="EN-US"><span lang="EN-US">涓嬭澆婧愮▼搴?/span></span></a><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋; color: blue;">鍐呭瓨瀵誨潃</span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">澶勭悊鍣ㄤ互<span lang="EN-US">‘</span>瀛楄妭<span lang="EN-US">’</span>綆$悊鍜岃闂唴瀛橈紝姣忎釜瀛楄妭閮芥湁鐙珛鐨勫湴鍧錛屽嵆鐗╃悊鍦板潃銆傛湁涓ょ鍦板潃鏄犲皠鏂瑰紡錛氬垎孌靛拰鍒嗛〉錛?span lang="EN-US">skelix</span>鍐呮牳涓兘鐢ㄥ埌浜嗐?a name="Memory_Addressing"></a> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><br> </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">孌靛浜庢垜浠潵璇村啀鐔熸倝涓嶈繃浜嗭紝鍏堝洖欏句竴涓?span lang="EN-US">dos</span>鏃舵湡鐨勬鍚с傚畠鏄竴涓?span lang="EN-US">16</span>浣嶇殑瀵勫瓨鍣紝鎵浠ユ渶澶氬彲浠ョ洿鎺ヨ闂?span lang="EN-US">2^16</span>瀛楄妭鐨勫唴瀛橈紝鍗?span lang="EN-US">64K</span>銆傝繖瀵瑰簲鐢ㄧ▼搴忔潵璇村お灝戜簡錛屼簬鏄?span lang="EN-US">Intel</span>浣跨敤<span lang="EN-US">Segment:Offset</span>緇撳悎鏂瑰紡鏉ヨ〃紺轟竴涓櫄鎷熷湴鍧銆傛瀵勫瓨鍣ㄥ乏縐?span lang="EN-US">4</span>浣嶅姞涓婂亸縐誨氨寰楀埌瀹為檯鐨勭墿鐞嗗湴鍧浜嗐備緥濡傦紝<span lang="EN-US">0x<st1:chmetcnv unitname="C" sourcevalue="7" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on">7c</st1:chmetcnv>00:0x0189</span>琛ㄧず鐗╃悊鍦板潃<span lang="EN-US">0x<st1:chmetcnv unitname="C" sourcevalue="7" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on">7c</st1:chmetcnv>189</span>錛岃屼笉鏄?span lang="EN-US">0x<st1:chmetcnv unitname="C" sourcevalue="7" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on">7c</st1:chmetcnv>000189</span>銆傝綆楄繃紼嬪涓嬶細<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <st1:chmetcnv unitname="C" sourcevalue="7" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on">7C</st1:chmetcnv>000<br> + 0189<br> -------<br>  <st1:chmetcnv unitname="C" sourcevalue="7" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on">7C</st1:chmetcnv>189<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鐜板湪鎴戜滑鏉ヨ綆楁渶澶у彲浠ヨ闂殑鍦板潃錛?span lang="EN-US">FFFF:FFFF<br> <br>  FFFF0<br> + FFFF<br> -------<br> 10FFEF<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">榪欎釜鑼冨洿鏄?st1:chmetcnv unitname="m" sourcevalue="1" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on"><span lang="EN-US">1M</span></st1:chmetcnv><span lang="EN-US"> + 65519 bytes, </span>鍥犱負鍦?span lang="EN-US">80386</span>涓嬌鐢ㄤ簡<span lang="EN-US">20</span>浣嶅湴鍧綰匡紝鎵浠ュ彲浠ラ澶栧璁塊棶<span lang="EN-US">65519</span>涓瓧鑺傝櫄鎷熷湴鍧錛屼緥濡傚湴鍧<span lang="EN-US">0x100010</span>琚槧灝勫埌鍦板潃<span lang="EN-US">0x10</span>錛岃闂繖涓や釜鍦板潃鏄瓑浠風殑銆?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">琛ㄧず鍚屼竴涓墿鐞嗗湴鍧鏈夊縐嶆柟寮忥紝渚嬪<st1:chmetcnv unitname="C" sourcevalue="7" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on"><span lang="EN-US">07C</span></st1:chmetcnv><span lang="EN-US">0:0000</span>鍜?span lang="EN-US">0000:<st1:chmetcnv unitname="C" sourcevalue="7" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on">7C</st1:chmetcnv>00 </span>灝辨槸涓鏍風殑銆?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍙︿竴涓蹇墊槸綰挎у湴鍧錛岃繖涓槸<span lang="EN-US">32</span>浣嶅湴鍧錛屽彧鏈夊綋鍒嗛〉鏈哄埗寮鍚椂鎵嶆湁鏁堬紝鏂囩珷鍚庨潰浼氭彁鍒板畠銆?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋; color: blue;">寮曞榪囩▼</span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">褰撶郴緇熶笂鐢墊垨<span lang="EN-US">RESET</span>鏃訛紝澶勭悊鍣ㄥ皢鎵ц涓浜涘垪鐨勫垵濮嬪寲錛屽瘎瀛樺櫒琚緗垚闈為鐭ョ姸鎬侊紝騫朵笖<span lang="EN-US">cpu</span>澶勪簬瀹炴ā寮忋備篃璁鎬綘鎯崇煡閬?span lang="EN-US">cpu</span>鏄庢牱璁劇疆<span lang="EN-US">segment:offset</span>涓虹墿鐞嗗湴鍧<span lang="EN-US">FFFF0</span>鐨勶紙<span lang="EN-US">0xf000:0xfff0</span>灝辨槸<span lang="EN-US">bios</span>鍏ュ彛鍦板潃錛夛紝榪欐槸鍥犱負<span lang="EN-US">cs</span>瀵勫瓨鍣ㄦ湁涓涓潪鍙閮ㄥ垎錛屽畠淇濆瓨浜?span lang="EN-US">ffff:0000</span>鍦板潃錛屽茍涓?span lang="EN-US">cs</span>鍦ㄥ垵濮嬪寲鏃朵細琚鍏?span lang="EN-US">f000</span>鍊箋傛鍚庝互姝e父鏂瑰紡浣跨敤瀹冦傚綋<span lang="EN-US">bois</span>鍙栧緱鎺у埗鏉冨悗錛屾牴鎹敤鎴烽厤緗紙浠庤蔣椹憋紝紜洏錛屾垨<span lang="EN-US">cdrom</span>錛変腑璇誨彇絎竴涓?span lang="EN-US">sector</span>鍒?st1:chmetcnv unitname="C" sourcevalue="7" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on"><span lang="EN-US">00007C</span></st1:chmetcnv><span lang="EN-US">00</span>錛屽茍璺寵漿鍒拌鍦板潃鎵ц錛堝氨鏄紩瀵肩▼搴?span lang="EN-US">bootstrap</span>錛夈傚湪<span lang="EN-US">bootstrap</span>涓垜浠彲浠ヤ嬌鐢?span lang="EN-US">bios</span>涓柇錛屼絾鏄繘鍏?span lang="EN-US">kernel</span>鍚庡氨涓嶈兘鍐嶄嬌鐢ㄤ簡銆?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><br> </span><span style="font-size: 12pt; font-family: 瀹嬩綋; color: blue;">紼嬪簭涓錛氫嬌鐢?span lang="EN-US">as</span>鍜?span lang="EN-US">ld</span>鐨勮寖渚?/span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">浣犲彲浠ュ湪涓嬭澆婧愮▼搴忕殑<span style="color: red;" lang="EN-US">01/first.cry/bootsect.s</span><span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">        .text              .text</span><span style="font-size: 12pt; font-family: 瀹嬩綋;">琛ㄧず浠g爜孌?span lang="EN-US"><br>         .globl             start</span>琛ㄧず<span lang="EN-US">start</span>鍙互鐢ㄤ綔澶栭儴絎﹀彿<span lang="EN-US"><br>         .code16            GCC</span>榛樿浣跨敤<span lang="EN-US">32</span>浣嶅湴鍧鍜屾搷浣滄暟錛岃繖閲屽憡璇夊畠浣跨敤<span lang="EN-US">16</span>浣?span lang="EN-US"><br> start:<br>         jmp      start     </span>姝誨驚鐜?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">.org    0x1fe,   0x90      <span style="color: blue;">.org NEW-LC, FILL</span></span><span style="font-size: 12pt; font-family: 瀹嬩綋; color: blue;">錛?/span><span style="font-size: 12pt; font-family: 瀹嬩綋; color: black;">璇存槑錛氳繖閲屽~鍏?span lang="EN-US">0x90</span>錛屾槸<span lang="EN-US">nop</span>鎸囦護鐨勬満鍣ㄧ爜<span lang="EN-US"><br> </span></span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">.word   0xaa55<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">璁茶В錛?span lang="EN-US">.org</span>鎸囦護鎸囩ず涓嬩竴涓暟鎹湴鍧錛屼負浜嗙紪璇戣繖涓▼搴忥紝鎴戜滑鍐欎簡涓涓?span lang="EN-US">Makefile</span>錛屾諱笉鑳借佹槸鏁插懡浠ゅ惂錛屽懙鍛點?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">緗戠粶涓婂彲浠ユ壘鍒板緢澶氬啓<span lang="EN-US">Makefile</span>鐨勮祫鏂欙紝緙栬瘧閫夐」鎵嶆槸鎴戜滑鍏蟲敞鐨勭劍鐐廣?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><br> <span style="color: red;">01/first.cry/Makefile</span><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">AS=as                     gcc</span><span style="font-size: 12pt; font-family: 瀹嬩綋;">姹囩紪宸ュ叿<span lang="EN-US"><br> LD=ld                     gcc</span>榪炴帴鍣?span lang="EN-US"><br> <br> .s.o:<br>     ${AS} -a $< -o $*.o >$*.map<br> <br> all: final.img<br> <br> final.img: bootsect<br>     mv bootsect final.img<br> <br> bootsect: bootsect.o<br>     ${LD} --oformat binary -N -e start -Ttext 0x<st1:chmetcnv unitname="C" sourcevalue="7" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on">7c</st1:chmetcnv>00 -o bootsect $<<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">璁茶В錛?span lang="EN-US">ld</span>鍙互琚厤緗負鏀寔澶氫簬涓縐嶇殑鐩爣鏂囦歡<span lang="EN-US">. binary</span>琛ㄧず娌℃湁紼嬪簭澶村拰鍏朵粬淇℃伅錛屼粎浠呮槸涓浜涜8鏁版嵁銆傚鏋滄病鏈夎繖涓夐」錛屽皢琚粯璁ら摼鎺ヤ負<span lang="EN-US">elf</span>鏍煎紡銆?span lang="EN-US">-N</span>鎶?span lang="EN-US">text</span>鍜?span lang="EN-US">data</span>鑺傝緗負鍙鍐欍?span lang="EN-US">-Ttext</span>灝?span lang="EN-US">text</span>鑺傝搗濮嬪湴鍧璁劇疆涓?span lang="EN-US">0x<st1:chmetcnv unitname="C" sourcevalue="7" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on">7c</st1:chmetcnv>00</span>錛堝湪<span lang="EN-US">jmp</span>鍜屾暟鎹紩鐢ㄧ瓑閲嶅畾浣嶉摼鎺ユ椂浼氱敤鍒拌繖涓弬鑰冨鹼級錛屾墍鏈夌殑寮曠敤鍦板潃閮芥槸鍦?st1:chmetcnv unitname="C" sourcevalue="7" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on"><span lang="EN-US">7c</span></st1:chmetcnv><span lang="EN-US">00</span>榪欎釜鍦板潃涓婂姞鍑烘潵鐨勩?span lang="EN-US">-e</span>閫夐」鎸囧畾紼嬪簭鍏ュ彛鐐?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鐜板湪鎴戜滑榪愯<span lang="EN-US">make</span>鎸囦護緙栬瘧涓涓嬶細<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">[root@root~/source/os/skelix/01/first.cry]$ ls<br> <span style="color: green;">bootsect.s  COPYING  Makefile</span><br> [root@root~/source/os/skelix/01/first.cry]$ make<br> as -a bootsect.s -o bootsect.o >bootsect.map<br> ld --oformat binary -N -e start -Ttext 0x<st1:chmetcnv unitname="C" sourcevalue="7" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on">7c</st1:chmetcnv>00 -o bootsect bootsect.o<br> mv bootsect final.img<br> [root@root~/source/os/skelix/01/first.cry]$ ls<br> <span style="color: green;">bootsect.map  bootsect.o </span> bootsect.s  COPYING  <span style="color: green;">final.img</span>  Makefile<br> [root@root~/source/os/skelix/01/first.cry]$<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鐜板湪錛屾垜浠惎鍔?span lang="EN-US">vmware</span>錛岃繍琛岋紝杞藉叆杞┍鏄犺薄鏂囦歡<span lang="EN-US">"final.img"</span>錛屾垜浠緱鍒頒竴涓粦灞忥紝榪欐槸姝g‘鐨勶紝鍥犱負鎴戜滑浠涔堜篃娌℃湁鍋氥?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋; color: blue;">紼嬪簭涓錛氭樉紺?<span lang="EN-US">Hello World!</span></span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">濂戒簡錛屼笂闈㈢殑榛戝睆紼嬪簭騫朵笉鏄お濂界帺錛岀幇鍦ㄦ垜浠皾璇曞湪涓婇潰鎵撳嵃<span lang="EN-US">"Hello World!"<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋; color: red;" lang="EN-US">01/hello.world/bootsect.s</span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">        .text<br>         .globl  start<br>         .code16<br> start:<br>         jmp     code<br> msg:                                   </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">浣跨敤<span lang="EN-US">jmp</span>鎸囦護璺寵繃璇ュ彉閲忥紝榪欐槸鎴戜滑涓轟粈涔堝湪<span lang="EN-US">Makefile</span>浣跨敤<span lang="EN-US">-N</span>閾炬帴閫夐」浜?span lang="EN-US"><br>         .string "Hello World!\x0"<br> code:<br>         movw    $0xb800,%ax<br>         movw    %ax,    %es            es</span>孌佃緗垚<span lang="EN-US">B800</span>錛屽鍓嶆墍榪幫紝<span lang="EN-US">segment:offset</span>鍦板潃鏄犲皠鏂瑰紡錛屽畠鎸囧悜<span lang="EN-US">B8000</span>錛?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">                                       </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">榪欐剰鍛崇潃絎竴涓瓧鑺傚湴鍧鏄?span lang="EN-US">0</span>錛堟槧灝勫埌<span lang="EN-US">B8000</span>錛夛紝灞炴у瓧鑺傛槸<span lang="EN-US">1</span>錛堟槧灝勫埌<span lang="EN-US">B8001</span>錛?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">                                       B8001</span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍊艱緗負<span lang="EN-US">0x07</span>鍙互灝嗚繖涓?span lang="EN-US">byte</span>棰滆壊璁劇疆涓洪粦搴曠櫧瀛椼?span lang="EN-US"><br>         xorw    %ax,    %ax<br>         movw    %ax,    %ds<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">        movw    $msg,   %si            </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">涓?span lang="EN-US">movsb</span>鎸囦護璁劇疆姝g‘鐨?span lang="EN-US">si</span>鍜?span lang="EN-US">di<br>         xorw    %di,    %di<br>         cld<br>         movb    $0x07,  %al            </span>瀛楃殑棰滆壊<span lang="EN-US"><br> <br> 1:<br>         cmp     $0,    (%si)<br>         je      <st1:chmetcnv unitname="F" sourcevalue="1" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on">1f</st1:chmetcnv>    <br>         movsb<br>         stosb<br>         jmp     1b<br> 1:      jmp     1b<br> <br> .org    0x1fe,  0x90<br> .word   0xaa55<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> </span></p><img src ="http://www.shnenglu.com/jinglexy/aggbug/23597.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jinglexy/" target="_blank">澶╄。鏈夌紳</a> 2007-05-08 07:34 <a href="http://www.shnenglu.com/jinglexy/archive/2007/05/08/23597.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鑷繁鍔ㄦ墜鍐欏唴鏍革紙鐜綃囷級錛堝師鍒涳級 http://www.shnenglu.com/jinglexy/archive/2007/05/08/23596.html澶╄。鏈夌紳澶╄。鏈夌紳Mon, 07 May 2007 23:32:00 GMThttp://www.shnenglu.com/jinglexy/archive/2007/05/08/23596.htmlhttp://www.shnenglu.com/jinglexy/comments/23596.htmlhttp://www.shnenglu.com/jinglexy/archive/2007/05/08/23596.html#Feedback0http://www.shnenglu.com/jinglexy/comments/commentRss/23596.htmlhttp://www.shnenglu.com/jinglexy/services/trackbacks/23596.html絎?span lang="EN-US">0璇撅細鐜闇姹?span lang="EN-US">

澹版槑錛氳漿杞借淇濈暀錛?/span>

璇戣?/span>錛?/span>http://www.shnenglu.com/jinglexy

鍘熶綔鑰咃細xiaoming.mo at skelix dot org

MSN & Email: jinglexy at yahoo dot com dot cn

GCC
Skelix
浣跨敤c璇█緙栧啓錛屽綋鐒朵篃鐢ㄤ簡姹囩紪璇█錛?span lang="EN-US">at&t椋庢牸錛夛紝鍦?span lang="EN-US">linux涓嬩嬌鐢?span lang="EN-US">gcc緙栬瘧銆?span lang="EN-US">

[root@root ~]$ gcc -v
Reading specs from /usr/lib/gcc/i386-redhat-linux/3.4.2/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-java-awt=gtk --host=i386-redhat-linux
Thread model: posix
gcc version 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)

鍦ㄦ瘡綃囨暀紼嬩腑閮界粰鍑轟簡婧愮▼搴忓拰杞洏鏄犺薄鏂囦歡錛屼綘鍙互鐩存帴浣跨敤瀹冧滑銆傚鏋滀綘闇瑕佺紪璇戣繖浜涙簮紼嬪簭錛岀紪璇戠幆澧冨繀欏繪紜傛垜浠帹鑽愮殑鐜鏄?span lang="EN-US">linux2.6.x鍐呮牳錛?span lang="EN-US">gcc3.x緙栬瘧鍣ㄣ?span lang="EN-US">

鐢變簬鍦ㄦ簮紼嬪簭涓嬌鐢ㄤ簡__asm__, __attribute__, __extention__錛屼互鍙?span lang="EN-US">gcc鍐呭祵姹囩紪錛岃繕鏈?span lang="EN-US">unsigned long long(鐩村埌C99鎵嶅紑濮嬫敮鎸?span lang="EN-US">)錛涘鏋滀綘浣跨敤浜嗗叾浠栫紪璇戝櫒錛岄渶瑕佷慨鏀瑰搴旂殑婧愮▼搴忋備笖緙栬瘧鍣ㄥ繀欏繪槸32浣嶏紝榪欐牱鍋氱殑鐩殑鏄繚鎸佹簮紼嬪簭綆媧佹竻鏅般?span lang="EN-US">

瀵逛簬windows鐢ㄦ埛鍙互浣跨敤 cygwin錛屽畠鎻愪緵浜?span lang="EN-US">windows涓嬬殑linux鐜銆備笉榪囨垜娌℃湁灝濊瘯浣跨敤瀹冿紝鍥犱負鎴戠殑鐢佃剳涓婃病鏈夊畨瑁?span lang="EN-US">windows鎿嶄綔緋葷粺銆備篃鍙互鍦ㄤ綘鐨?span lang="EN-US">windows緋葷粺涓婂畨瑁呬竴涓櫄鎷熸満涓婄殑linux錛屽鏋滀綘鐨勭數鑴戣凍澶熷揩鐨勮瘽銆?span lang="EN-US">


VMWARE

涓轟簡榪愯鏁欑▼涓殑鑼冧緥錛屼竴涓櫄鎷熸満蹇呬笉鍙皯錛?span lang="EN-US">virtual pc2007宸茬粡鍙互鍏嶈垂浣跨敤浜嗭紝鍦?span lang="EN-US">M$鐨勫畼鏂圭綉绔欎笂鍙互鎵懼埌涓嬭澆銆傚綋鐒朵篃鍙互浣跨敤qemu鍜?span lang="EN-US">bochs涔嬬被鐨勮櫄鎷熸満銆傛帹鑽愮殑铏氭嫙鏈烘槸VMWARE銆?span lang="EN-US">

Things Are Good To Know

濡傛灉鑳界湅鎳?/span>Makefile鏈濂戒簡錛岃繖鏄?/span>*nix紼嬪簭鍛樺繀欏繪帉鎻$殑涓欏瑰熀鏈煡璇嗐傚彟澶栵紝濡傛灉浣犵啛鎮夊唴瀛樺湴鍧鏄犲皠錛屼腑鏂紝寮傚父錛?/span>GDT錛?/span>LDT錛?/span>IDT錛屽垎欏墊満鍒訛紝鑼冨洿绔彛灝辨洿濂戒簡銆傚綋鐒朵笉鎳備篃娌″叧緋伙紝Intel鐨勪笁鍗鋒墜鍐屾槸妗堝ご蹇呭錛?/span>http://www.intel.com

IA-32 Intel Architecture Software Developer's Manual Volume1: Basic Architecture
IA-32 Intel Architecture Software Developer's Manual Volume2A: Instruction Set Reference: A-M
IA-32 Intel Architecture Software Developer's Manual Volume2B: Instruction Set Reference: N-Z
IA
-32 Intel Architecture Software Developer's Manual Volume3A: System Programming Guide Part1
IA-32 Intel Architecture Software Developer's Manual Volume3B: System Programming Guide Part2

璇昏呭榪欎簺涓滆タ涓嶅繀绱у紶錛屾垜鍦ㄦ暀紼嬩腑浼氳В閲婄浉鍏崇殑鐭ヨ瘑銆?span lang="EN-US">c璇█鍜屾眹緙栨槸鏈鍩烘湰鐨勮姹傦紝鑳藉寰堟竻妤氱殑浜嗚В浠涔堟槸鍫嗗拰鏍堛傚叧浜?span lang="EN-US">c璇█鐨勬暟鎹垚鍗冧笂涓囷紝浣嗘槸淇濇姢妯″紡鏂歸潰鐨勪功綾嶆瘮鍝堥浄鎱ф槦榪樺皯錛屾嵁璇存瘡76騫村彲浠ヤ拱鍒頒竴鏈紝濡傛灉浣犺凍澶熷垢榪愮殑璇濓細錛?a name="Color_Pattern">

椋庢牸綰﹀畾

 

鍘熸枃涓殑鏍煎紡琚搮鑷幓鎺変簡錛岀炕璇戝悗鐨勯鏍煎簲璇ュ彲浠ヤ竴鐪嬪氨鎳傘?/span>

 

 



]]>
鑷繁鍔ㄦ墜鍐欏唴鏍革紙搴忥級錛堝師鍒涳級http://www.shnenglu.com/jinglexy/archive/2007/05/08/23595.html澶╄。鏈夌紳澶╄。鏈夌紳Mon, 07 May 2007 23:30:00 GMThttp://www.shnenglu.com/jinglexy/archive/2007/05/08/23595.htmlhttp://www.shnenglu.com/jinglexy/comments/23595.htmlhttp://www.shnenglu.com/jinglexy/archive/2007/05/08/23595.html#Feedback8http://www.shnenglu.com/jinglexy/comments/commentRss/23595.htmlhttp://www.shnenglu.com/jinglexy/services/trackbacks/23595.html
鍚庢潵錛屾垜鎵懼埌浜?skelix", 涓涓猳s鍐呮牳錛岃繍琛屽湪i386鏈哄櫒涓婏紝鏀寔澶氫換鍔★紝鍒嗛〉鏈哄埗錛岃櫄鎷熷唴瀛橈紝鏂囦歡緋葷粺絳夈傝繖涓猼utorial鏁欎綘鎬庢牱涓姝ヤ竴姝ュ疄鐜皊kelix錛岃櫧鐒跺畠鐪嬭搗鏉ヨ薄涓涓帺鍏楓傝繖鏍峰仛鐨勫ソ澶勬槸鐪嬭搗鏉ユ洿娓呮櫚涓浜涖傚鏋滀綘鍙戠幇bug鎴栧ソ鐨勫緩璁彲浠ュ憡璇夊師浣滆咃細xiaoming.mo at skelix dot org銆傝瘧鑰咃細jinglexy at yahoo dot com dot cn錛坋mail and msn both錛夛紝涓婃搗浣撹偛棣嗐傞璁?鏈堜喚緲昏瘧瀹屾垚錛?007騫達級錛屽洜涓鴻嚜宸辯殑浜嬫儏姣旇緝澶氾紝鍙兘鍋跺皵璇戣瘧錛岃繘搴﹀ぇ綰?鍛ㄨ瘧1璇懼惂錛屼篃鍙兘蹇簺錛屽鏋滄湁甯繖鐨勫氨鏇存榪庝簡銆傛渶緇堟暣鐞嗙殑鏂囨。浼氬仛鎴愪竴涓猚hm鎴杙df鏂囦歡鍙戝竷鍦╤ttp://www.shnenglu.com/jinglex  闃呰鍏ㄦ枃

]]>
Debian 瀹夎璁板綍錛堝師鍒涳級http://www.shnenglu.com/jinglexy/archive/2007/05/07/23557.html澶╄。鏈夌紳澶╄。鏈夌紳Mon, 07 May 2007 05:23:00 GMThttp://www.shnenglu.com/jinglexy/archive/2007/05/07/23557.htmlhttp://www.shnenglu.com/jinglexy/comments/23557.htmlhttp://www.shnenglu.com/jinglexy/archive/2007/05/07/23557.html#Feedback7http://www.shnenglu.com/jinglexy/comments/commentRss/23557.htmlhttp://www.shnenglu.com/jinglexy/services/trackbacks/23557.html闃呰鍏ㄦ枃

]]>
涓浠藉彲渚涙墦鍗扮殑debian鎸囦護闆嗭紙鍘熷垱錛?/title><link>http://www.shnenglu.com/jinglexy/archive/2007/05/03/23368.html</link><dc:creator>澶╄。鏈夌紳</dc:creator><author>澶╄。鏈夌紳</author><pubDate>Thu, 03 May 2007 04:41:00 GMT</pubDate><guid>http://www.shnenglu.com/jinglexy/archive/2007/05/03/23368.html</guid><wfw:comment>http://www.shnenglu.com/jinglexy/comments/23368.html</wfw:comment><comments>http://www.shnenglu.com/jinglexy/archive/2007/05/03/23368.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/jinglexy/comments/commentRss/23368.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jinglexy/services/trackbacks/23368.html</trackback:ping><description><![CDATA[褰掔撼鍑烘潵鐨刣ebian鎸囦護闆嗭紝鍙兘瀵規煇浜涗漢鏈夊府鍔╁惂錛屼笅杞藉湴鍧錛?br>http://www.shnenglu.com/Files/jinglexy/40_debian_cmd.rar<br><img src ="http://www.shnenglu.com/jinglexy/aggbug/23368.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jinglexy/" target="_blank">澶╄。鏈夌紳</a> 2007-05-03 12:41 <a href="http://www.shnenglu.com/jinglexy/archive/2007/05/03/23368.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍦ㄧ敤鎴風▼搴忎腑浣跨敤linux鍐呮牳list錛堝師鍒涳級http://www.shnenglu.com/jinglexy/archive/2007/04/23/22630.html澶╄。鏈夌紳澶╄。鏈夌紳Mon, 23 Apr 2007 04:14:00 GMThttp://www.shnenglu.com/jinglexy/archive/2007/04/23/22630.htmlhttp://www.shnenglu.com/jinglexy/comments/22630.htmlhttp://www.shnenglu.com/jinglexy/archive/2007/04/23/22630.html#Feedback4http://www.shnenglu.com/jinglexy/comments/commentRss/22630.htmlhttp://www.shnenglu.com/jinglexy/services/trackbacks/22630.html闃呰鍏ㄦ枃

]]>
浣跨敤grub涓殑鍐呮牳demo錛堝師鍒涳級http://www.shnenglu.com/jinglexy/archive/2007/04/20/22392.html澶╄。鏈夌紳澶╄。鏈夌紳Fri, 20 Apr 2007 09:30:00 GMThttp://www.shnenglu.com/jinglexy/archive/2007/04/20/22392.htmlhttp://www.shnenglu.com/jinglexy/comments/22392.htmlhttp://www.shnenglu.com/jinglexy/archive/2007/04/20/22392.html#Feedback0http://www.shnenglu.com/jinglexy/comments/commentRss/22392.htmlhttp://www.shnenglu.com/jinglexy/services/trackbacks/22392.html
2. 寤虹珛testos.lds閾炬帴鑴氭湰錛?
  闃呰鍏ㄦ枃

]]>
浣跨敤grub鍔犺澆鑷繁鐨刼s鍙奲ochs絳夋潅涔辯瑪璁幫紙鍘熷垱錛?/title><link>http://www.shnenglu.com/jinglexy/archive/2007/04/20/22391.html</link><dc:creator>澶╄。鏈夌紳</dc:creator><author>澶╄。鏈夌紳</author><pubDate>Fri, 20 Apr 2007 09:29:00 GMT</pubDate><guid>http://www.shnenglu.com/jinglexy/archive/2007/04/20/22391.html</guid><wfw:comment>http://www.shnenglu.com/jinglexy/comments/22391.html</wfw:comment><comments>http://www.shnenglu.com/jinglexy/archive/2007/04/20/22391.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/jinglexy/comments/commentRss/22391.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jinglexy/services/trackbacks/22391.html</trackback:ping><description><![CDATA[     鎽樿: 絎竴鑺傦細浣跨敤minix紜洏鏄犺薄 <br>bochs涓婚〉錛坔ttp://sourceforge.net/projects/bochs錛変笂鏈変釜minix2.0鏄犺薄錛?<br>緙栬瘧鍣ㄥ拰婧愪唬鐮佹槧璞℃枃浠墮兘宸茬粡鏈変簡錛屽鏋滆mount鍒頒綘鑷繁鐨勬満鍣ㄤ笂緙栬緫婧愮▼搴忥紝 <br>鍙互浣跨敤涓嬮潰鐨刲inux鎸囦護錛屼負浠涔堟槸1024鍜?669888錛屽垎鏋愪笅紜洏鍒嗗尯琛ㄥ氨鐭ラ亾浜嗐?<br>錛?024 錛?512 * 2錛?5669888 = 512 * 11074錛?1074鍗?B42錛?<br>/sbin/losetup /dev/loop6 a.img -o 1024 <br>mount -t minix -o loop /dev/loop6 mnt1 <br>ls mnt1  <a href='http://www.shnenglu.com/jinglexy/archive/2007/04/20/22391.html'>闃呰鍏ㄦ枃</a><img src ="http://www.shnenglu.com/jinglexy/aggbug/22391.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jinglexy/" target="_blank">澶╄。鏈夌紳</a> 2007-04-20 17:29 <a href="http://www.shnenglu.com/jinglexy/archive/2007/04/20/22391.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>pinfo鎸囦護錛坢an鏇夸唬杞歡錛夌畝浠嬬瓑鑻ュ共鏉備貢絎旇錛堝師鍒涳級http://www.shnenglu.com/jinglexy/archive/2007/04/19/22300.html澶╄。鏈夌紳澶╄。鏈夌紳Thu, 19 Apr 2007 06:02:00 GMThttp://www.shnenglu.com/jinglexy/archive/2007/04/19/22300.htmlhttp://www.shnenglu.com/jinglexy/comments/22300.htmlhttp://www.shnenglu.com/jinglexy/archive/2007/04/19/22300.html#Feedback0http://www.shnenglu.com/jinglexy/comments/commentRss/22300.htmlhttp://www.shnenglu.com/jinglexy/services/trackbacks/22300.html
濂藉湪鏈変釜鍙玴info鐨勮蔣浠跺寘錛屼嬌鐢╨ynx鎿嶄綔鏂瑰紡銆俻info蹇嵎閿畾涔夊湪/etc/pinforc鏂囨。涓紝濡傛灉鐪嬪埌涓嶇埥鐨勫彲浠ユ洿鏀廣傚父鐢ㄧ殑蹇嵎閿暣鐞嗗湪涓嬮潰琛ㄦ牸涓紙vi鎿嶄綔椋庢牸鐨勫懡浠ょ敤钃濊壊鏍囪瘑錛?
  闃呰鍏ㄦ枃

]]>
gcc, as, ld鐨勪竴浜涚瑪璁幫紙鍘熷垱錛?/title><link>http://www.shnenglu.com/jinglexy/archive/2007/04/19/22298.html</link><dc:creator>澶╄。鏈夌紳</dc:creator><author>澶╄。鏈夌紳</author><pubDate>Thu, 19 Apr 2007 05:34:00 GMT</pubDate><guid>http://www.shnenglu.com/jinglexy/archive/2007/04/19/22298.html</guid><wfw:comment>http://www.shnenglu.com/jinglexy/comments/22298.html</wfw:comment><comments>http://www.shnenglu.com/jinglexy/archive/2007/04/19/22298.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/jinglexy/comments/commentRss/22298.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jinglexy/services/trackbacks/22298.html</trackback:ping><description><![CDATA[     鎽樿: 1.鏈枃涓嶆槸鏁欑▼錛屽彧鏄弿榪癱璇█錛坓cc鐜錛夛紝緙栬瘧鍣紝榪炴帴鍣紝鍔犺澆鍣紝at&t姹囩紪錛宨a32涓浜涚浉鍏崇煡璇嗗拰絎旇錛屽緢澶氶渶瑕佹繁鍏ョ殑鍦版柟闇瑕佸ぇ瀹跺鎵劇浉鍏崇殑璧勬枡瀛︿範銆傚鏋滃彂鐜伴敊璇紝璇風暀璦鎴栭氱煡鎴慾inglexy at yahoo dot com dot cn錛岃繖涓槸鎴戠殑msn銆傛墦瀛椾笉鏄擄紝璇瘋漿杞芥椂淇濈暀浣滆咃細http://www.shnenglu.com/jinglexy  <a href='http://www.shnenglu.com/jinglexy/archive/2007/04/19/22298.html'>闃呰鍏ㄦ枃</a><img src ="http://www.shnenglu.com/jinglexy/aggbug/22298.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jinglexy/" target="_blank">澶╄。鏈夌紳</a> 2007-04-19 13:34 <a href="http://www.shnenglu.com/jinglexy/archive/2007/04/19/22298.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>linux瀛︿範鐨勪竴浜涜褰曪紙鍘熷垱錛?/title><link>http://www.shnenglu.com/jinglexy/archive/2007/04/18/22220.html</link><dc:creator>澶╄。鏈夌紳</dc:creator><author>澶╄。鏈夌紳</author><pubDate>Wed, 18 Apr 2007 07:58:00 GMT</pubDate><guid>http://www.shnenglu.com/jinglexy/archive/2007/04/18/22220.html</guid><wfw:comment>http://www.shnenglu.com/jinglexy/comments/22220.html</wfw:comment><comments>http://www.shnenglu.com/jinglexy/archive/2007/04/18/22220.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/jinglexy/comments/commentRss/22220.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jinglexy/services/trackbacks/22220.html</trackback:ping><description><![CDATA[<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">1.whereis </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍜?span lang="EN-US"> which </span>鐨勫尯鍒?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">  which: </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍙湪<span lang="EN-US">PATH</span>鐜鍙橀噺涓鎵炬枃浠?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">  whereis: </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍦ㄧ郴緇熷畾涔夌殑鐩綍涓鎵?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">2.</span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鏍規嵁鍏抽敭瀛楁煡鎵?span lang="EN-US">man</span>欏?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">  </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">涓句緥錛?span lang="EN-US">apropos split  </span>鎴栬?span lang="EN-US">  man -k split<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">3.sed</span><span style="font-size: 12pt; font-family: 瀹嬩綋;">紺轟緥錛?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">  sed -e s/root/toor/g /etc/passwd > ~/test.out         </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鏇挎崲<span lang="EN-US"> /etc/passwd</span>涓殑<span lang="EN-US">root</span>涓?span lang="EN-US">toor</span>杈撳嚭鍒?span lang="EN-US">~/test.out<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">  sed -e 's/root/toor/g; s/ftp/ptf/g' /etc/passwd       </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">浣跨敤<span lang="EN-US"> -e </span>鎸囧畾澶氫釜鍛戒護<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">  sed -e 's/root/toor/g' -e ' s/ftp/ptf/g' /etc/passwd  </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍚屼笂<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">  </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">浣跨敤鍛戒護鏂囦歡錛?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">  /* test.sed </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">寮濮嬶紝涓嶅寘鍚湰琛?span lang="EN-US"> */<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋; color: fuchsia;" lang="EN-US">  s/root/toor/g<br>   s/ftp/ptf/g</span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">  /* test.sed </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">緇撴潫錛屼笉鍖呭惈鏈<span lang="EN-US"> */<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">  </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鎸囦護錛?span lang="EN-US">sed -f test.sed /etc/passwd<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">4.awk</span><span style="font-size: 12pt; font-family: 瀹嬩綋;">紺轟緥錛?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">  awk '{print $0}' /etc/passwd                          $0</span><span style="font-size: 12pt; font-family: 瀹嬩綋;">琛ㄧず瀹屾暣鐨勮緭鍏ヨ褰?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">  awk -F":" '{print $1}' /etc/passwd                    </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鎵撳嵃絎竴鍒楋紝浠ワ細涓哄垎闅旂<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">  awk -F":" '{print "username: "$1 "\t\t\t user id: "$3}' /etc/passwd        </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鏍煎紡鍖栧茍鎵撳嵃<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">  </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">浣跨敤鍛戒護鏂囦歡錛?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">  /* test.awk </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">寮濮嬶紝涓嶅寘鍚湰琛?span lang="EN-US"> */<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋; color: fuchsia;" lang="EN-US">  BEGIN{<br>         FS=":"<br>   }<br>   {printf "username: "$1 "\t\t\t user id: "$3"\n"}<br>   END{<br>         printf "all done processing /etc/passwd\n"<br>   }</span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">  /* test.awk </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">緇撴潫錛屼笉鍖呭惈鏈<span lang="EN-US"> */<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">  </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鎸囦護錛?span lang="EN-US">awk -f test.awk /etc/passwd<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">5.shell</span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鑴氭湰<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">  1)</span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鐗規畩鍙橀噺錛?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">      ?</span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍓嶄竴涓懡浠よ緭鍑虹姸鎬?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">      0</span><span style="font-size: 12pt; font-family: 瀹嬩綋;">褰撳墠鑴氭湰鍚?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">      1~9</span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍙傛暟<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">  2)</span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鑼冧緥<span lang="EN-US">1</span>錛屼嬌鐢?span lang="EN-US">if</span>璇彞<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋; color: fuchsia;" lang="EN-US">    #!/bin/bash</span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋; color: fuchsia;" lang="EN-US">    echo "guest the select color"<br>     read COLOR</span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋; color: fuchsia;" lang="EN-US">    if [ $COLOR = "yellow" ] <br>     then<br>             echo "you are correct"<br>     elif [ $COLOR = "blue" ]<br>     then<br>             echo "you are correct also"<br>     fi</span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">  3)</span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鑼冧緥<span lang="EN-US">2</span>錛屼嬌鐢?span lang="EN-US">case</span>璇彞<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋; color: fuchsia;" lang="EN-US">    #!/bin/bash</span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋; color: fuchsia;" lang="EN-US">    case "$1" in<br>         start)<br>                 echo "start......"<br>                 ;;  <br>         stop)<br>                 echo "stop......"<br>                 ;;  <br>         status)<br>                 echo "status......"<br>                 ;;  <br>         *)  <br>                 echo "usage: $0 {start | stop | status}"<br>                 ;;  <br>     esac</span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">  4)</span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鑼冧緥<span lang="EN-US">3</span>錛屼嬌鐢ㄨ凱浠f祦紼?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋; color: fuchsia;" lang="EN-US">    #!/bin/bash</span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋; color: fuchsia;" lang="EN-US">    echo "guest color: red, blue or orange\n"<br>     read COLOR</span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋; color: fuchsia;" lang="EN-US">    while [ $COLOR != "orange" ]<br>     do<br>             echo "incorrect, try again"<br>             read COLOR<br>     done</span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋; color: fuchsia;" lang="EN-US">    echo "correct"</span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">  5)</span><span style="font-size: 12pt; font-family: 瀹嬩綋;">浣跨敤鍙屽紩鍙瘋繘琛屽懡浠ゆ浛鎹?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">    lines="$(wc -l 3.sh)"<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">    echo $lines<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">  6)</span><span style="font-size: 12pt; font-family: 瀹嬩綋;">嫻嬭瘯鏂囦歡<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">    -d file        </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鐩綍 <span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">    -e file        </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">瀛樺湪 <span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">    -r file        </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍙 <span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">    -w file        </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍙啓 <span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">    -x file        </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍙墽琛?<span lang="EN-US"><o:p></o:p></span></span></p><img src ="http://www.shnenglu.com/jinglexy/aggbug/22220.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jinglexy/" target="_blank">澶╄。鏈夌紳</a> 2007-04-18 15:58 <a href="http://www.shnenglu.com/jinglexy/archive/2007/04/18/22220.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>fpu, mmx鍙妔se鐨勪竴浜?浠嬬粛錛堝師鍒涳級http://www.shnenglu.com/jinglexy/archive/2007/04/18/22218.html澶╄。鏈夌紳澶╄。鏈夌紳Wed, 18 Apr 2007 07:57:00 GMThttp://www.shnenglu.com/jinglexy/archive/2007/04/18/22218.htmlhttp://www.shnenglu.com/jinglexy/comments/22218.htmlhttp://www.shnenglu.com/jinglexy/archive/2007/04/18/22218.html#Feedback2http://www.shnenglu.com/jinglexy/comments/commentRss/22218.htmlhttp://www.shnenglu.com/jinglexy/services/trackbacks/22218.html鎻愪緵浜哠IMD鐜錛坰ingle instruction multi data錛夛紝鍗沖崟鎸囦護澶氭暟鎹?br>鍐呭祵嫻偣榪愮畻鍗曞厓錛?4鍙?28浣嶅瘎瀛樺櫒絳夈傜敋鑷硈in/cos絳夋暟瀛﹀嚱鏁頒篃鍥婃嫭鍏朵腑錛?br>钁楀悕鐨剎vid欏圭洰灝辨槸浣跨敤gcc緙栬瘧鍚庝嬌鐢∕MX/SSE浼樺寲姹囩紪鐨勫吀鍨嬫渚嬨?br>
杞澆璇鋒敞鏄庡師鍒涳細http://www.shnenglu.com/jinglexy
msn and mail: jinglexy at yahoo dot com dot cn 涓婃搗浣撹偛棣?007.4.18

FPU: 8涓?0浣嶆誕鐐瑰瘎瀛樺櫒錛堟暟鎹級錛?6浣嶇姸鎬佸瘎瀛樺櫒錛?6浣嶆帶鍒跺瘎瀛樺櫒錛?6涓烘爣璇嗗瘎瀛樺櫒銆?br>     浣跨敤FPU鎸囦護瀵硅繖浜涘瘎瀛樺櫒榪涜鎿嶄綔錛岃繖浜涘瘎瀛樺櫒鏋勬垚涓涓驚鐜爤錛宻t7鏍堝簳錛宻t0鏍堥《錛?br>     褰撲竴涓艱鍘嬪叆鏃訛紝琚瓨鍏t0錛屽師鏉t0涓殑鍊艱瀛樺叆st7
MMX: 灝?涓狥PU瀵勫瓨鍣ㄩ噸鍛藉悕涓?涓?4浣峂MX瀵勫瓨鍣紝鍗砿m0鍒癿m7銆?br>     57鏉MX鎸囦護錛屽姞蹇簡鏁村艦嫻偣榪愮畻錛屼絾鏄浜庡鏉傛誕鐐硅繍綆楁棤甯姪

SSE: 8涓?28浣嶅瘎瀛樺櫒錛堜粠xmm0鍒皒mm7錛夛紝MXSCR瀵勫瓨鍣紝EFLAGS瀵勫瓨鍣紝涓撴湁鎸囦護錛堝鏉傛誕鐐硅繍綆楋級
SSE2: 瀵勫瓨鍣ㄥ拰SSE鐩稿悓錛屽鍔犱簡5縐嶆暟鎹被鍨嬶紙閮芥槸128浣嶏級錛屼笓鏈夋寚浠?br>SSE3: 浠呭鍔犱簡鍑犱釜鏂扮殑鎸囦護

鐢變簬MMX浣跨敤鐨勫瘎瀛樺櫒褰卞皠鍒癋PU瀵勫瓨鍣ㄤ笂錛屾墍浠MX鎸囦護鎵ц鍓嶏紝闇瑕佷繚瀛楩PU鍫嗘爤銆?br>
紺轟緥1錛孎PU瀵勫瓨鍣ㄥ強鎸囦護浣跨敤錛堜笅闈㈡墍鏈夌▼搴忛兘浣跨敤at&t椋庢牸姹囩紪錛夛細
data1:
        .byte 0x34, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
data2:
        .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.section .text
.globl _start
_start:
        nop
        fbld  data1     鍘嬪叆st0
        fimul data2     st0涓殑鍊煎拰data2鐩鎬箻錛屼繚瀛樺湪st0涓?br>        fbstp data1     st0寮瑰嚭鍒板唴瀛?4


紺轟緥2, SSE瀵勫瓨鍣ㄥ強鎸囦護浣跨敤
.lcomm data 16
value1:
        .float 12.34, 2345.543, -3493.2, 0.44901
value2:
        .float -54439.234, 23231.4, 1.0098, 0.000003
.section .text
.globl _start
_start:
        movups value1, %xmm0
        movups value2, %xmm1
        movups %xmm0, %xmm2
        movups %xmm0, data




]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              久久一区二区三区四区五区| 久久电影一区| 亚洲国产综合91精品麻豆| 久久精品视频在线播放| 国产一区91精品张津瑜| 久久精品一二三区| 久久裸体艺术| 亚洲日韩视频| 亚洲精品中文字幕有码专区| 欧美视频在线观看免费| 午夜精品成人在线视频| 欧美有码在线观看视频| 影音先锋亚洲电影| 久久久午夜电影| 欧美一区二区三区免费观看| 激情欧美一区二区三区在线观看| 久久久久成人精品| 欧美专区中文字幕| 狠狠噜噜久久| 欧美成ee人免费视频| 可以看av的网站久久看| 91久久在线视频| 欧美国产在线视频| 欧美高潮视频| 一本色道久久| 亚洲在线成人精品| 国产日韩一级二级三级| 久久视频在线视频| 久久嫩草精品久久久精品| 亚洲福利视频免费观看| 亚洲福利视频网站| 欧美色123| 欧美在线高清视频| 久久在线免费视频| 正在播放欧美视频| 亚洲小少妇裸体bbw| 一色屋精品视频免费看| 亚洲国产网站| 国产欧美一区二区精品忘忧草| 久久激情综合| 蜜臀av国产精品久久久久| 9l国产精品久久久久麻豆| 亚洲伊人网站| 亚洲二区免费| 在线亚洲+欧美+日本专区| 精品成人在线观看| 亚洲人成网站精品片在线观看| 国产精品青草久久| 免费亚洲电影在线| 欧美日本精品一区二区三区| 欧美一区二区三区免费视频| 久久人人97超碰国产公开结果| 一本一本a久久| 亚洲欧美日韩精品久久| 亚洲国产欧美一区二区三区久久| 亚洲色图自拍| 亚洲精品久久久久久久久久久久久 | 午夜亚洲性色视频| 亚洲国产福利在线| 中文在线资源观看网站视频免费不卡 | 亚洲三级性片| 国产伦精品一区| 亚洲第一精品影视| 国产日本欧美一区二区三区在线| 亚洲国产91色在线| 国产亚洲美州欧州综合国| 亚洲国产视频一区二区| 国产精品一区二区黑丝| 亚洲日本va午夜在线电影| 国产一区二区毛片| 亚洲性感美女99在线| 亚洲精品视频免费| 久久久久中文| 久久亚洲精品一区二区| 国产欧美精品日韩区二区麻豆天美| 亚洲第一天堂av| 一色屋精品视频免费看| 亚洲欧美精品伊人久久| 亚洲欧美春色| 欧美天堂亚洲电影院在线播放| 亚洲成色777777在线观看影院| 国产一区二区看久久| 亚洲一本大道在线| 亚洲综合精品一区二区| 欧美日韩在线观看一区二区三区 | 亚洲美女av电影| 麻豆精品在线播放| 免费精品99久久国产综合精品| 国产一区二区三区成人欧美日韩在线观看 | 在线日韩av片| 久久久777| 久久一区二区三区超碰国产精品| 国产精品v欧美精品v日韩精品| 99国产精品一区| av成人国产| 欧美日韩国产精品一区| 亚洲免费精彩视频| 99riav1国产精品视频| 麻豆成人在线播放| 欧美国产日韩一二三区| 91久久在线播放| 欧美激情第三页| 亚洲免费av观看| 一级成人国产| 免费黄网站欧美| 亚洲大片精品永久免费| 91久久久久久久久| 欧美巨乳波霸| 在线一区二区日韩| 欧美一级二级三级蜜桃| 国产午夜精品一区二区三区视频 | 久久福利毛片| 在线免费高清一区二区三区| 免费亚洲电影| 99视频在线观看一区三区| 亚洲主播在线播放| 欧美日韩亚洲系列| 亚洲在线播放| 模特精品在线| 亚洲一品av免费观看| 国产日韩亚洲欧美综合| 午夜宅男久久久| 欧美成人福利视频| 亚洲精品视频在线| 欧美三级韩国三级日本三斤| 午夜一区在线| 欧美成人午夜免费视在线看片| 亚洲丰满在线| 欧美亚州一区二区三区| 久久久久国产精品一区| 亚洲精品乱码久久久久久黑人| 亚洲午夜电影在线观看| 狠狠色狠狠色综合日日五| 欧美日韩高清区| 久久精品水蜜桃av综合天堂| 日韩视频在线一区二区| 牛牛国产精品| 欧美一区综合| 亚洲视频福利| 亚洲精品视频免费在线观看| 国产午夜精品一区二区三区欧美 | 日韩网站在线看片你懂的| 久久久精品日韩| 亚洲免费在线观看| 亚洲区免费影片| 在线播放不卡| 国产亚洲精品久久久久久| 欧美日韩视频在线第一区| 美女尤物久久精品| 欧美影院在线播放| 亚洲午夜在线视频| 日韩亚洲成人av在线| 欧美高清视频一区| 久久综合久色欧美综合狠狠| 欧美一区二区三区喷汁尤物| 在线综合欧美| 夜夜嗨av一区二区三区免费区| 亚洲第一区在线观看| 国内精品国语自产拍在线观看| 国产精品一区二区久久精品 | 亚洲裸体视频| 亚洲国产一区二区三区在线播| 男男成人高潮片免费网站| 久久国产精品99精品国产| 亚洲欧美久久| 性欧美大战久久久久久久久| 亚洲一区二区三区中文字幕在线| 一区二区三区久久| 亚洲精品资源| 夜色激情一区二区| 一本大道久久精品懂色aⅴ| 亚洲狼人综合| 一区电影在线观看| 日韩一区二区精品葵司在线| 亚洲免费观看在线观看| aa国产精品| 亚洲一区亚洲二区| 亚洲欧美激情四射在线日 | 毛片一区二区| 老司机亚洲精品| 欧美区一区二| 国产精品国产三级国产专播品爱网| 国产精品久久久久一区| 国产精品人人做人人爽人人添| 国产精品女主播| 国产日韩av一区二区| 好看的av在线不卡观看| 1024精品一区二区三区| 亚洲美女电影在线| 亚洲一区三区电影在线观看| 欧美一区二区三区免费观看视频 | 国产精品黄页免费高清在线观看| 国产欧美韩日| 在线精品亚洲一区二区| 99热在线精品观看| 午夜精品婷婷| 欧美韩日精品| 亚洲影视中文字幕| 欧美mv日韩mv国产网站| 国产精品乱人伦中文|