????4 ??(heap)
???????????????????????????????Σ?????????????????????????????????????????????????????????????????????????malloc(C)/new(C++)????????????????·??????涯?????????(????)????????free(C)/delete(C++)??????????????????????????????(????) ??
???????????????????????????????????????????????????????????????????棬???????????????????????????????????????????????ó??????????????????????????á????????????????????????????????????????
????????????break????????????????????????????????????????brk()??sbrk()?????break????????????????????????á?
?????????????????????????1) ?????д???????????(“??????”)??2)δ?????????????(“???й?”)????????????????????????????????????й???й????????????????????????????????????????????????????????????????????2?????(??????212B????????256B)??
???????????????????е?”??”????????????????
???????????????????????
????????????????????????????????????????????÷?????????????й???
???????????????????????(??”????????”)???????????????????????????(??”????????”)?????????????????????????????????????洢???????????????????????????????????????????
?????????С?????????????????????????漲(??????2M??10M)??????С??????????????????Ч????????棬32λLinux???ж??????2.9G???
??????洢??????????????????????????????????????????(????????????????????????)????????????????Σ??????????????????????????ε??y????????????????????????????????????????????????????????????????????????????????????????????????????С????????洢??????????????????????????????????????????
???????????????????????????????????????????????????????????????????alloca??????????????????????????????????????????????????
?????????Ч????????????????????????????????????????????????????????У????Ч??????????????????????????Ч????????Windows????VirtualAlloc????????????????з????????棬????????
?????????????????????????????????????????????????棬?????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????y?????н??????????????????y????????????????????С????(?????????????????)???п????????????????????????ε??????????л?????????С????棬?????з???????????????????????????????????η????????С????????????????(??free/delete)????????????
?????????????????????С??????????????????С??????????????????????·???????????С?
????????????????????????????????????????????У????鵯?????????????????????????????????????????????????????????????????????????????????????Ч??????
???????????????????????????????????????????Ч???????????????????????????л??????????????????????????????????ù??????????????????????????ù????е???????????????????????????????????????????????????龡?????????????????????????????????
???????????????????緢?????????????????????????????????????????????????
????5 BSS??
????BSS(Block Started by Symbol)??????????????????·????
????δ????????????????????????
?????????0???????????????????(??????????????)
????δ???????????0?????(?ó????common block???С)
????C?????У?δ???????????????????????????0(????????)??????(???????)???????????????BSS????????????????δ??????????0????????????BSS?С?BSS?ν??δ???????????????????λ????????????в?????????????????????????????????????????????????????????????????????????δ??????????????????С???(???start_bss??end_bss???д?????????)??????????(loader)?????????????BSS?η????????????0????????????У?????main()??????BSS?α?C???????????????????????(Ч????)??
??????????????????BSS?Σ???????0??????????????????δ??????????????????????????????????????????????(????????0)?????????????????????????????????????????????????????????(??????????)???????????????????????б???????????????static????????Σ??????????????????帳???(????0?)??????????????????????????????????????????????δ???????
?????Щ????????δ???????????????????common?Σ??????????????BSS?Ρ???????ο????-fno-common??????????δ?????????????????common?Ρ?
??????????????????????BSS?Σ??????????洢??(Flash)??BSS?ε?????????δ???U-Boot????????У???U-Boot??Stage2????(???λ??lib_xxxx/board.c???)???(????)??SDRAM?????????????????BSS?ε????????????????Stage2?????б??????????0???
??????????????BSS???
????BSS(Block Started by Symbol????????????)??????UA-SAP?????(United Aircraft Symbolic Assembly Program)?е?α??????????????????????????????????????????????20????50????????IBM 704?????????????
??????????????????????????IBM 709??7090/94??????????????FAP(Fortran Assembly Program)?????????????????÷???????????????δ????????顣
??????????????????????(??Intel 80x86??)??BSS??????????????????δ?????????????????????????α????????????С??????????????????????????
????BSS?β???????????????????????????????????????????????Ч??????BSS????????????????????????????BSS???????????????????????BSS?????ó????????????????в????????
????6 ?????(Data)
????????????????????????????????????0??????????????????????????????????????(????洢??)???????д??
????????α?????????????(?????????????????????????)??????????????????????磬??????????int gVar = 10????????????????????б???10????????????????????????????????檔
???????????BSS?ε????????£?
????1) BSS?β?????????????磬????????????????????????????????????
?????????????????int ar0[10000] = {1?? 2?? 3?? ...}??int ar1[10000]??ar1????BSS?Σ?????????10000*4??????????????0??????????ar0??????????????1??2??3...?????BSS?????????????????????????
????2) ????????????ε????????????????????????????????????????棻????????BSS?ε?????????????????????????棬???????????????????????????????????檔
?????????????κ?BSS?ε????????????????????????Щ??????“?????”???????? + BSS?? + ???