github.com bitbucket.org
triv lanoitidda llatsni nac uoy ,ffuts rehto llatsni dna utnubU htiw yalp ot tnaw uoy fI .ni otni deen t’nod emngissalenrekruogniodrofylnoenihcamlautrivani40.61utnubUaesuottsebs’ti,oslA.smetsys lenrekruoyedargtonlliweW.5.2UMEQhtiw40.61utnubUnostnemngissalenrekruoyedargYLNO enategotuoyplehtonlliweW.40.61utnubUnahtrewengnihtynanoemitruoyetsawtonodesaelP
!elbissopsanoossarotcurtsniehttcatnocdluohsuoydnaylreporp5.2 ondiduoy,ylekiltsom,thgirgnikrowtonsiesehtfoynafI.40.61utnubUrednutnemngissaehtgubed ocnacuoytahterusekamdluohsuoy,uoyotelbaliavaedamsi1tnemngissAlenreKehtsanoossA
.esu afretni resu lacihparg on ,.e.i( ecafretni enildnammoc a teg ylno uoy ,tluafed yb ,taht si putes siht htiw nepO na snur taht ot ssecca evah ew revres a no uoy rof tnuocca a etaerc ot su rof si tfel noitpo ylno gtonnacuoyfI.stnemngissalenrekehtgniodroferawtfosderiuqerehtlladellatsnievahuoytahterus aMaroswodniWano40.61utnubUllatsniotwohnosnoitcurtsniehteesesaelp,metsysahcusevah bUfonoisrevbusyna(5.2UMEQgninnur40.61utnubUrednukrowotedocruoytegderiuqererauoY
.etorwehs/ehedocfoenilyrevenialpxenacenoyreve aet ruoy htiw netfo teeM !gnitaehc ton era setammaet ruoy taht erus ekam esaelp ,eroferehT .detaehc ,detaehc rebmem maet eno ylno fi neve ,maet a morf noissimbus eno ylno si ereht ecniS .ssalc eht ni natsehT.noitagitsevnignitaehcrofsriaffAlaiciduJtnedutSCSUotesacruoydrawroflliwI,retsemes us a dessecca evah uoy taht noissimbus ruoy morf tnedive s’ti fI .gnitaehc deredisnoc si )skrow edoc tsemes suoiverp a morf noissimbus a nur uoy ,.g.e( retsemes suoiverp a morf noissimbus a gnisseccA
.2 tnemngissa etelpmoc ot tlucffiid ti dnfi yam uoy ,)elpmaxe rof( 1 tnemngissa h t’nod uoy fi ,”evitalumuc” era stnemngissa eht ecnis :ylrae stnemngissa eht no gnikrow nigeb esaelP
ylno snoissimbus cinortcelE .1202/3/21 ,MP54:11 eud ,)MV – yromem lautriv( 3 tnemngissA lenreK .ylno snoissimbus cinortcelE .1202/21/11 ,MP54:11 eud ,)SFV – reyal SFV( 2 tnemngissA lenreK snoissimbus cinortcelE .1202/22/01 ,MP54:11 eud ,)SCORP – sdaerht lenrek( 1 tnemngissA lenreK
p eht rof edoc eht nopu sdneped tnemngissa hcae esuaceb ,woleb detsil redro eht ni stnemngissa eht doc ruoy dda ro yfidom ot erehw rof snoitcurtsni deliated nevig era uoY .seceip gnissim era ereht tub tsoM .xineew dellac metsys gnitarepo lateleks a fo esaeler yranib dna ecruos a htiw dedivorp era uoY
ro,srecudorpesruoceht,sATehtotsnoitseuqruoygnidneserofebQAFlenrekehttuokcehcesaelP( weivrevO
).ypoc etavirp a meht dnes nac uoy tonoduoytahtmehtlletesaelp,edocruoytsopotuoysksareyolpmeevitcepsorpafI(.scepsetavirp ruoy ecnis ecalp cilbup a ta sceps eseht noitatnemelpmi ot etirw uoy edoc eht yalpsid ot snoissimrep )yrotisoper cilbuparo noerehwynasahcus(ecalpcilbupatascepseseht tonoduoY.)CSUta204ICSCgnikaterarokootohwstnedutsrofylno,.e.i(etavirperascepsesehT
stnemngissA gnimmargorP lenreK
204ICSC1202llaF
] muroF | stcejorP | snoissucsiD | soediV | serutceL | noitpircseD | emoH [
puteS dna daolnwoD
setisiuqererP metsyS
gnitaehC
ecneicS retupmoC fo tnemtrapeD
assignment-3.8.0.tar.gz
tar xvzf weenix-assignment-3.8.0.tar.gz
cd weenix-assignment-3.8.0/weenix
make clean
make
make grub-mkrescue sudo apt-get install -y xorriso
weenix
./weenix -n
Not yet implemented: PROCS: bootstrap, file main/kmain.c, line 184
panic in main/kmain.c:186 bootstrap(): weenix returned to bootstrap()!!! BAD!!!
Kernel Halting.
kernel/main/kmain.c
NOT_YET_IMPLEMENTED(“PROCS: bootstrap”);
NOT_YET_IMPLEMENTED()
doc/latex/documentation.pd
f
.senilediug gnidarg eht fo noitces “stniop sulp” eht ni esle gnihtyrevE – stset DENNAC-ERP .3 .senilediug gnidarg eht fo noitces “stniop sulp” eht fo noitces tsal eht si sihT – skcehc-FLES .2 .senilediuggnidargehtfo)A(noitcessisihT-sTRESSAK.1
:stset fo seirogetac 3 era ereht ,senilediug gnidarg eht fo noitces “stniop sulp” eht nI
.stnemngissa eht fo hcae rof senilediug gnidarg cfiiceps daer esaelP .enihcam ruoy no stnemngissa on era eW .enihcam s’rotcurtsni eht ro enihcam s’redarg eht rehtie no demrofrep eb ylno nac gnidarG g ew nehw senilediug gnidarg evitcepser eht wollof lliw ew ,stnemngissa pumraw rof gnidarg ekil tsuJ
.61 utnubU no krow sgniht ekam ot defiidom neeb evah ecruos lenrek enitsirp eht ,oslA .ti ni sgub dna U nworB morf emac noitatnemucod xineew eht taht dnatsrednu esaelP .)5.2.2 noitces ,.g.e( elbacilppa es yna piks esaelP .ecneinevnoc ruoy rof ereh dedivorp si )FDP ni( noitatnemucod xineew eht fo ypoc “saelbaliavasi)FDPni(noitatnemucodxineewetelpmocehtfoypocA
.lenrek eht ot selfi emasehtnimehttuptub(snoitcnuflanoitiddaddadnapuedocruoytilpsottnawyamuoy,snoitcnuf nemecalper eht od ot elba eb dluohs uoy ,snoitcnuf eseht fo tsom roF .od ot deen uoy tahw gnidrager
eht ekil kool taht senil dnuora stnemmoc dna edoc eht ta kool uoy fI ).noitcnuf rocehttuotnemmocroevomertondnanoitcnufralucitraparofedocetirwtonodesaelP(.snoitcnuf tatnemelpmi ruoy htiw edoc hcus lla ecalper ot si boj ruoY .evoba tuotnirp eht rof elbisnopser s’ti dna
.xineew ni desu elfiekaM eht kaerb nac uoy ro )stekcarb dna sisehtnerap sa atnoctonseodhtiwtratsuoyyrotceridehtfohtapllufehttahterusekamesaelp,oslA).tuobaluferac eromdnaodnacuoytahwtuobametiQAFlenreksihteesesaelp,yawtahttiodotevahuoyfI.redlof ssa lenrek eht no krow ot referp ylurt stneduts emoS( .lenrek ruoy elipmoc ot elba eb ton lliw uoy dna cilobmysemos,redlofderahsaedisnisdnammocevobaehtnuruoyfI.redlofderahsanisdnammoc odniWnoenihcamlautrivaedisnigninnursi40.61utnubUruoyfitahttnatropmiyrevsiti,yawehtyB
nur esaelp ,” ” tuoba gnihtemos gniyas egassem rorre na ees uoy fi ,evoba ” ” gniruD
:enihcam40.61utnubUruoynoedocecruoslenrekehtelipmoc nimret a ni gniwollof eht od esaelP .)eman elfi tluafed eht eb dluohs hcihw( ”
c lenrek enitsirp eht sa ot derrefer eb dluow siht( llabrat edoc ecruos lenrek eht daolnwod ot ti ni knil oslenrekdezilanosrepruoydaolnwodotknilagniniatnocliam-enadeviecerevahdluohsuoy,wonyB
.sliated erom ni meht ta kool s’teL
snoitaredisnoC gnidarG lareneG
:ekilskool” “fo481eniL
:wodniw lanimret eht fo mottob eht ta gniwollof eht ees dluohs uoy ,llew seog lla fI
:od tsuJ .emit tsrfi eht rof trats ot ydaer era uoy woN
sTRESSAK
KASSERT()
dbg() dbg()
kmutex_unlock()
KASSERT()
kmutex_unlock()
NOT_YET_IMPLEMENTED(“PROCS: …”) NOT_YET_IMPLEMENTED(“VFS: …”)
NOT_YET_IMPLEMENTED(“S5FS: …”) NOT_YET_IMPLEMENTED(“VM: …”)
initproc_run()
dbg()
i
n
moc level-llehs a eb dluow siht ,yllacipyT .detucexe teg ot ecneuqes edoc taht esuac ot mrofrep ohcihwredargehtlletotdeenuoy,ecneuqesedochcaeroF.ecneuqesedochcaehcaerotwoh enehT,”sllac gnimrofnoc”ekamtsumuoyerehwdootsrednudnadaerevahuoytahtneviG
.skcehc-FLESfoelurehtottcejbusTONsiedocrehtoyna morf elbahcaer ylno s’taht etorw uoy edoc eht taht si enil mottob ehT .lenrek ruoy tset ot ereht cllehskruoyrofetorwuoyedocehtdna nietorwuoyedocehtotylppatonseod ES eht ,eroferehT .)melborp noisrucer etinfini na htiw pu dne dluow ew ro( elur siht morf dedulcxe eht fo noitatnemelpmi ruoy gnitset fo esoprup eht rof snoitcnuf deriuqer eht fo edistuo etorw uoy sselesutonsimehtniedocfoenilyrevetahtredargehtotetartsnomedotevahuoyedocehtera
uoy edoc deredisnoc era ro
uoyedocynadna,2lenrekrofetorwuoyedocderedisnocera
edoc yna ,1 lenrek rof etorw uoy edoc deredisnoc era ecalper na ,esicerp eb oT .tnemeriuqer skcehc-FLES eht yfsitas ot sdeen etirw uoy edoc fo enil yreve toN
.skcehc-FLES nimer dna niaga hpargarap siht daer dna kcab emoc esaelp ,tnemeriuqer skcehc-FLES eht tuoba ehw ,oslA .deecorp uoy erofeb ylluferac ti daer esaelp ,oS .enod eb ot sdeen siht woh dnatsrednu aeganam erom siht ekam oT .krow fo tol a ekil sdnuos sihT .)lenrek eht gninnur nehw edoc fo enil reht,.e.i(“elbasrevart”ebtsumnoitcnufderiuqerarofnettirwevahuoytahtedocfoenilyreve snomedoT.)lenrekruoynihsartynaevaeltonoduoy,.e.i(lufesusietorwuoyedocfoenilyreve en uoy taht si ereh tnemeriuqer eht ,eroferehT .etirw ew edoc fo enil yreve tset ew taht tnatropmi SOehtnisnurtahtedocrof,ylraelC!etirwewedocehtfoenilyrevetsetew,ecneicSretupmoC upmoC a si si sihT .liated retaerg ni ereh denialpxe s’ti ,os ,noisufnoc fo ecruos a si skcehc-FLES
skcehc-FLES lliwredargehtwoheesotsenilediuggnidargevitcepserehteesesaelp,stsetDENNAC-ERProF
.llac )(TRESSAK a hcus hcae hcaer dluow tset tahw redarg eht llet ot “llac gnimrofnoc” cerroc eht esu tsum uoy ,eroferehT .)elosnoc eht no detnirp ,.e.i( noitca ni “llac gnimrofnoc” dna lenrek ruoy nur tsum redarg eht ,sllac )(TRESSAK eseht rof tiderc teg ot uoy rof redro ni taht lanimret eht ni ti ees nac redarg eht taht os llac )(TRESSAK gnidnopserroc eht retfa yletaidemmi ekam tsum uoy ,sllac )(TRESSAK eseht detucexe yllufsseccus sah edoc ruoy taht etartsnomed oT
).yltcerroc erdluoweroferehtdnaxetumkesuSF5SdnaSREVIRDniseitilanoitcnufemos,lenrekevitpmeerp a taht eton esaelP( . kcehc .g.e ,dohtem eht rof stnemmoc eht ni esu ot tnaw uoy fi uoy yllausU .eromyna redloh xetum eht TON si daerht tnerruc eht ,daerht wen a pu gnikaw retfa t si daerht tnerruc eht taht tressa ot esnes sekam ti noitcnuf eht ni ,elpmaxe roF
.)tnemugra gnirts tcerroc eht htiw tnemetats etaidemmi ,woleb denoitnem “llac )(gbd gnimrofnoc” deriuqer a sulp( noitcnuf taht morf gninruter llac )(TRESSAK deriuqer eht dda ot deen tsuj uoy ,tnemeriuqer eht yfsitas oT .noitcnuf taht morf pyreverofnoitidnoc-tsopas’titahtnaemylirasecent’nseodevobadenoitnemnoitidnoc-tsopa ot dnopserroc yam snruter emoS .gninruter fo syaw lareves evah yam noitcnuf a taht eton esaelP
im eht ni erehwemos snaem “elddim” dna dne eht raen snaem “noitidnoctsop” ,ylralimiS .noitcnuf ot sdeen ti taht snaem tsuj tI .noitcnuf a edisni tnemetats tsrfi eht eb tsum ti taht naem ton seod i “noitidnocerp” a sa defiiceps si a fi ,”stnih” era yeht ecniS( !roivaheb tcerroc eht htiw oy ot stnih era sTRESSAK eseht ,yaw a nI .era snoitidnoc-tsop dna snoitidnoc-erp tnatropmi eht cnuf a tahw dnatsrednu uoy taht etartsnomed ot secalp etairporppa ta stnemetats dda uf eht erofeb thgir yfsitas tsum ti snoitidnoc-tsop tahw dna ,emussa tsum ti snoitidnoc-erp tahw f tahw tuoba kniht ot deen uoy ,tnemelpmi ot esoppus era uoy noitcnuf hcae rof ,lareneg nI .edoc sumuoyerehweesotsenilediuggnidargevitcepserehtfo)A(noitceseesesaelp,sTRESSAKroF
stset DENNAC-ERP
dbg()
/* sequence1 */
if (cond1) {
/* sequence2 */
} else {
/* sequence3 */
}
/* sequence4 */
sequence1
/* sequence1 */
if (cond1) {
/* sequence2 */
dbg()
sequence2
dbg()
sequence2
dbg(DBG_PRINT, “(GRADING1A)\n”);
} else {
/* sequence3 */
dbg(DBG_PRINT, “(GRADING1C 3)\n”);
}
/* sequence4 */
dbg(DBG_PRINT, “(GRADING1A)\n”);
/* sequence1 */
if (cond1) {
/* sequence2 */
sequence3
dbg(DBG_PRINT, “(GRADING1A)\n”);
} else {
/* sequence3 */
dbg(DBG_PRINT, “(GRADING1E 2)\n”);
}
/* sequence4 */
dbg(DBG_PRINT, “(GRADING1A)\n”);
sequence3
cond1
(GRADING1C)\n
dbg()
se
sequence4
sequence3
sequence2 sequence3
(GRADING1C 3)\n
dbg()
sequence4
s
q
:otedocevobaehtegnahcotdeendluowuoyneht,)elfiEMDAERruoy “skcehc-FLES”ehtnisihttnemucodotdeenuoy,niaga(2#tsetbussi etucexeoteno esoprupehtrofnurnacuoysdnammoclevel-llehselpitlumevahuoyfI.skcehc-FLESfoesoprup ahttsetlanoitiddahcusekovniotwohtnemucodtsumuoy,noissimbusruoyfoelfiEMDAEReht nidarg eht fo )E( noitces ,.e.i( yrogetac skcehc-FLES eht ni edoc tset a deredisnoc eb dluow sihT ot si yaw tsrfi ehT .seciohc owt evah uoy neht ,)eurt syawla si ,.e.i( stset DENNAC-ERP eht gnitixe dna gnitrats rehtie yb desicrexe eb tonnac eht taht esoppus ,dnah rehto eht nO
.” ” ton dna ” ” esu dluohs uoy neht ,senilediug gnidarg rehtegot stsetbus eht lla nur ot dnammoc level-llehs eno ylno si ereht dna senilediug gnidarg eht NNAC-ERP a si hcihw( 3 tsetbus nur ot dnammoc level-llehs etarapes a esu ot yaw on si ereht fI
oehtypocotesoohcylirartibraew,elpmaxeevobaehtnI. retfatitupdna ro aht “llac gnimrofnoc” eht fo eno rehtie ypoc nac uoy ,eroferehT .detucexe eb lliw
uoy ,detucexe si ro rehtie fi ,elpmaxe siht nI .)edoc fo enil eno ylno sniatnoc retfa “llac gnimrofnoc” a dda tsum uoy ,stnemeriuqer eht ot gnidrocca ,taht eton esaelP
:gniwollof eht od dluohs uoy nehT .nur nac redarg eht dnammoc level-llehs etarapes nidarg eht fo )C( noitces ni )tset DENNAC-ERP a si hcihw( 3 tsetbus nur uoy nehw ylno detucexe k eht trats ylpmis uoy nehw detucexe si taht yas s’teL ).stnemeriuqer ruo lla wollof uoy
er ruoy si tI !erus ton era uoy fi rotcurtsni eht ksa dna ylluferac yrev stnemeriuqer eht daer esaelP aht tespu tog dna secalp gnorw eht ta “sllac gnimrofnoc” kcehc-FLES eseht tup sretsemes drow taht fo ecnatropmi eht sserts ot der ni “DNE” drow eht gnithgilhgih m’I( .) ton tub( , foDNEehtta”sllac gnimrofnoc”ddatsumuoy,stnemeriuqerehtotgnidroccA
:1 puserauoys’tahtnoitcnufanigniwollofehtekilskooltahtedocnettrwevahuoyfi,elpmaxeroF
arg eb tsum noissimbus yreve dna ycilop gnidarg eno ylno evah ew taht rebmemer esaelp ,niagA( ne yam uoy ,thgir ti od t’nod uoy fI .tnatropmi yrev si “sllac gnimrofnoc” fo gnilebal tcerroC
).ecneuqesedocahcaeroteraerehtyawtnereffidynamwohwonkotdeentonseodoslaredarg taesicrexefosyawelbissopehtllatondnatonrodesicrexeebnacecneuqesedoctahtrehtehw rg eht ecnis tnadnuder eb dluow ecneuqes nevig a etucexe nac noitca eno naht erom taht redarg enrek rof llehs ecaps-resu eht ro 2 dna 1 stnemngissa lenrek rof llehs lenrek eht rehtie otni epyt
/* sequence1 */
if (cond1) {
/* sequence2 */
dbg(DBG_PRINT, “(GRADING1A)\n”);
/* } else {
/* sequence3 */
*/
}
/* sequence4 */
dbg(DBG_PRINT, “(GRADING1A)\n”);
cond1
/* sequence1 */
KASSERT(cond1);
/* sequence2 */
/* sequence4 */
dbg(DBG_PRINT, “(GRADING1A)\n”);
else
cond1
else
weenix
Config.mk .c
(Comments?)
n2 ehT .)esle gnihtemos nwod tup ot uoy tcurtsni yllaicfiiceps txet eht sselnu( meti gnidnopserroc tuoyerocsehtsihcihweulavlaciremunahtiwkramnoitseuqhcaeecalpertsumuoY.senilediug op sulP” eht ot sdnopserroc trap tsrfi ehT .strap owt era ereht ,noitces “GNIDARG-FLES” eht roF
.noitcurtsni ruoy wollof ot dettimrep ton si redarg eht ,)elfi a gnignahc sa hcus( hs/eh taht gnihtemos egnahc ot redarg eht ksa uoy fi taht dnatsrednu esaelP .deussi si dnammoc dni esaelp ,senilediug gnidarg eht morf tnereffid gnihtemos eb ot ” ” yfidom ot redarg ot t desu eb ot sdnammoc eht htiw ” ” ecalper tsum uoy ,noitces “NUR & DLIUB” eht roF
noitcesderiuqerehtfohcaerofsliatederomemoseraereH.tniop5.0tsaeltaesoldluowuoy,woleb emos htiw decalper ton si taht kram noitseuq a hcae roF .elfi EMDAER etelpmocni na rof stniop 01 ot nrekhcaeroF.etairporppagnihtemoshtiwmehtecalperdnaetalpmetEMDAERehtniskramnoitseuq i aedi cisab eht ,elfi EMDAER eht etelpmoc oT .ceps eht ni etlapmet EMDAER gnidnopserroc eht htiw lper dna elfi EMDAER dedivorp eht ni noitcurtsni eht wollof tsum uoy ,stnemngissa lenrek eht fo hcae htrofstnemeriuqerEMDAERehtotralimiserastnemngissalenrekehtrofstnemeriuqerEMDAERehT
.senilediug ewsiht,.e.i(snoitacfiicepstnemngissalenrekehterastnemeriuqerruO.denrecnocsignidargsaraf ehtylirassecentoneranoitatnemucodehtdnaskcolbtnemmocedocecruosehtnidenoitnems’tahw orB morf emac )FDP ni( fo noitatnemucod dna edoc lenrek enitsirp eht taht eton esaelp ,yllaniF
.noitamrofni octidnaedocdettimbusehthtiwtnetsisnocsititahterusekamotelfiEMDAERdettimbusehtkcehc firev ot puorg ruoy fo rebmem eno etangised ot aedi doog a osla s’tI .noisufnoc diova ot snoissimbus o ylno etangised uoy fi tseb eb dluow tI .noissimbus a ekam ot sdeen puorg ruoy fo rebmem eno ylnO
.nrael ot lliks tnatropmi na s’tI .edoc-oduesp ro edoc ekil kool taht gnihtyna gnisu ucsid level-hgih a evah ot woh nrael ot deen uoY .dekover eb lliw puorG elgooG ssalc eht ot egelivirp emngissaruoyfo%05esollliwuoy,)lanoitnetninuebyamtub(gnitaehcderedisnocsisihtecnis,emit oy fI .)edoc fo senil 3 naht erom tol a detsop uoy sselnu( gninraw a teg lliw uoy ,tnedicca yb emit tsrfi ,tnemngissa ralucitrap a roF .puorG elgooG ssalc eht ot tsop a ekam uoy nehw seman noitcnuf erom pro(edocfosenileromro3tsoptontsumuoytahtenoyrevednimerottnawI]1202/72/9dexfi:CB[
.tnemeriuqer skcehc-FLES eht gniyfsitas fo yaw derreferp eht si siht set lanoitidda gnitirw tuohtiw noitces “skcehc-FLES” eht rof tiderc lluf teg lliw uoy ,eurt s’ti fI .ton sfikcehclliwredargehT”.desicrexeerashtapedoclla,senilediuggnidargehtfosnoitcesevoba nur yB” :etirw ylpmis nac uoy ,elpmaxe roF .elfi EMDAER ruoy fo noitces “skcehc-FLES” eht ni os cruoylladesicrexeevahuoy,senilediuggnidargehtfosnoitcesrehtonistsetehtllagninnurybfI
stnemngissAlenreKrofstnemeriuqeREMDAER
.eurtsyawlasi fidohtemderreferpehtsievobaehT
renaelc dna( tnelaviuqe eb dluow edoc wollof eht neht ,eurt syawla si ecnis ,elpmaxe siht nI
:htap edoc ” ” eht tuo tnemmoc ot si yaw tsrfi ehT !siht od ot syaw noitiddaetirwotevaht’nowuoy,yawsihT!htapedoc” “ehtevomerylpmisotsiyawdn2ehT
(Comments?)
yes no
no
dbg()
dbg()
(GRADING#S X.Y)\n
dbg()
dbg_print()
DBG_PRINT
S X.Y
1.a a 1
X.Y
(GRADING#S X)\n
(GRADING#S)\n
(GRADING#A)\n
X.Y
dbg()
X
dbg()
dbg()
S
dbg( d
#
b
noc”anehwtahtdnatsrednuesaelP.”llac gnimrofnoc”gnidnopserrocehtroftiderceviecer erehtnahtnoitamrofnieromsniatnoctnemugradnocesehtfirostnemugralanoitiddaevahuoyfI.3
.)evoba htedulcnitsumuoy,enildnammocllehsaninuryltnednepedniebnactahttsetbusaevahuoyfI
.)ereh ytiugibma on si ereht os h enilediug gnidarg a fo )A( noitces ni TRESSAK yreve ecnis( ” ” ti lebal tsuj nac uoy ‘nod uoy ,.e.i( “llac gnimrofnoc” ralucitrap a hcaer ot lenrek eht pots dna trats ylpmis uoy fI
.” ” esu dna )yletarapes noitcesnistsetbusehtnurotyawonsierehtro(rebmuntsetbusaevaht’noduoyfI
.” acuoy,)yletarapes tsetbusnismetinurotyawonsierehtro(rebmunmetinaevaht’noduoyfI
.)noitatnemucod ruoy dna( gniod era uoy tahw sehctam taht gnihtemos ot ” ” egnahc dluohs itcesrehtoroF.noitatonehtfotrap” “edulcnitsumuoy,enilediuggnidargani)A(noitcesroF
.stniopfotolaesollliwuoyroerehdetcidnisayltcaxeenodebtsum noitisop eht ,”GNIDARG” fo gnilleps eht ,sesehtnerap ehT .)” ” tsetbus fo ” ” meti rof ” ” ,.g.e( rehtnirebmunmetidnatsetbuscfiicepsaotsdnopserroc” “dna,)…,C,B,A,.g.e(senilediug irebmunnoitcesaotsdnopserrocdnaderiuqersyawlasi””,)3ro,2,1,.e.i(rebmuntnemngissa
yawla si ” ” erehw ,” ” ,mrof eht ni laretil gnirts a eb tsum tnemugra dnoces ehT .2
).tiderc yna eviecer ot tnaw uoy fi gnillacottnelaviuqetonsisihttahtdnatsrednuesaelP(. ebtsumtnemugratsrfiehT.1
gnimrofnoc” a rof tnemeriuqer eht si woleB .stnemugra fo rebmun elbairav ekat nac llac A
qer owt eseht dnatsrednu uoy erus ekam esaelP .senilediug gnidarg eht ni tnemeriuqer “kcehc-FLES” oemosevasnacuoynehweesotwolebselpmaxeeesesaelp(“llac gnimrofnoc”gnidnopserroc tsumllac)(TRESSAKderiuqerhcae,esacsihtnI.senilediuggnidargehtfo)A(noitcesnitnemeriuqer ( .edoc ruoy ni “llac gnimrofnoc” a ekam )tsum dna( dluow uoy yhw snosaer owt ylno era erehT
.noitpircsed hcus piks ylisae nac redarg eht os ylraelc ti kram esaelp vahuoytahtos(ottnawuoyfituB.elfiEMDAERruoynicepsehtmorfgnihtynaedulcnitonodesaelP
.ylgnidrocca noitamrofni dedeen edivorp dna ylluferac meht darg eht ni meht ees uoy fI .senilediug gnidarg eht fo hcae ni “)deriuqeR(” txet eht htiw delebal ylraelc ot deriuqer era uoy hcihw rof snoitces cfiiceps-tnemngissa lanoitidda eb yam ereht taht eton esaelP
.”enon” drow eht htiw kram noitseuq ot gnihton s’ereht fI .eruliaf fo epyt ralucitrap a retnuocne ton lliw redarg eht fi senilediug gnidarg iM”ehtninoitcudedategtonyamuoytub,metitahtroforezateglliwuoy,tipiksotredargeht edarg eht fI .)senilediug gnidarg eht fo noitces “stniop suniM” eht ni stniop lanoitidda esol ot uoy m dna( krow t’now yeht taht wonk uoy esuaceb deppiks eb dluohs taht noitces “stniop sulP” eht ni snoitcurtsni htiw kram noitseuq eht ecalper tsum uoy ,noitces “PIKS OT STSET / SGUB” eht roF
.)maet a sa llew krow ton od uoy fi stniop esol dluow rebmem maet enoyreve ,.e.i( htmialcuoyfierocselbissoptsehgihehttegdluowmaetruoynienoyrevetahtrebmemeresaelP atnecrep eht tsil esaelp ,” ” derewsna uoy fi dna ,” ” ro ” ” rehtie htiw ” ” ecalper
)sesserddaliamgesut’nodesaelp(srebmemmaetfosesserddaliam-eCSUdnasemangnitsilyb muoy,traptsrfiehtroF.strapowteraereht,noitces”SREBMEMMORFNOITUBIRTNOC”ehtroF
.noitamrofni etairporppa lp ,noitidda nI .meti gnidnopserroc eht rof teg lliw uoy kniht uoy noitcuded eht si hcihw 0 ot lauqe un a htiw kram noitseuq hcae ecalper tsum uoY .senilediug gnidarg eht fo noitces “stniop suniM”
sllaC gnimrofnoC
#
(GRADING3
dbg(DBG_TEMP, “…\n”, …)
DBG_PRINT
dbg()
DBG=error,test Co
(GRADING1 (GRADING
dbg_print()
dbg()
dbg()
dbg(DBG_PRINT, …) dbg_print() dbg_print()
dbg(DBG_PRINT, “(GRADING1A)\n”);
dbg(DBG_PRINT, “(GRADING1B)\n”);
dbg(DBG_PRINT, “(GRADING1C)\n”);
dbg(DBG_PRINT, “(GRADING1D 1)\n”);
dbg(DBG_PRINT, “(GRADING1D 2)\n”);
dbg(DBG_PRINT, “(GRADING1E)\n”);
dbg(DBG_PRINT, “(GRADING1E 2)\n”);
faber_thread_test()
sunghan_test()
sunghan_deadlock_test()
dbg()
DBG=error,print,test Config.mk dbg()
KASSERT(…);
dbg(DBG_PRINT, “(GRADING1A x.y)\n”); /* nothing between this line and the above KASSE
) \n
/* “…” means whatever that’s required, accordi
itas ot gniwollof eht esu ,
:tnemeriuqer gnillac yb detucexe ylno si ecneuqes edoc a fi
ES eht yfsitas ot gniwollof eht esu ,
gnillac yb detucexe ylno si ecneuqes edoc a fi
t yfsitas ot gniwollof eht esu ,
gnillac yb detucexe ylno si ecneuqes edoc a fi
:od nac uoy ,)y.x.A( meti ni seirtne evitucesnoc dna elpitlum rof tiderc teg ot
:od,2#tsetnworuoygninnurybdetucexeebylnonacecneuqesedocafi
od ,tset eno evah ylno uoy dna tset nwo ruoy gninnur yb detucexe eb ylno nac ecneuqes edoc a fi
cehc-FLES eht yfsitas ot gniwollof eht esu ,llehsk gninnur yb detucexe ylno si ecneuqes edoc a fi
S eht yfsitas ot gniwollof eht esu ,xineew gnippots/gnitrats tsuj yb detucexe si ecneuqes edoc a fi
.senilediug gnidarg evitcepser eht ni srettel noitces tcerroc eht esu dna rebmun tnemngissa eht si ” ” egnahc esaelp ,stnemngissa lenrek rehto roF .ylno 1 tnemngissA lenreK rof nevig era woleb selpmaxE
.stniopfotolaesollliwuoy,taht P .”llac gnimrofnoc” a ni ” ” dna ” ” neewteb txet gniyfitnedi dda ot ekil stneduts emos ,yllaniF
gnisolpudnelliwuoyrodetalergnidarggnihtynarof esutontsumuoY.srebmunenildna seod esuacebtnelaviuqetonera dna tahtetonesaelP
il etarapes a no tuotnirp ecudorp tsum llac hcus yreve taht eton esaelP . ,.e.i(otnoitnettayapotredargehttnawt’noduoytahtflesruoyrofstnemetatsgniggubedevahuoyfI
“ro” “sniatnoctahttuotnirpynatakooltonlliwredargeht,3lenrekgnidargnehW irpynatakooltonlliwredargeht,2lenrekgnidargnehW.stniopfotolagnisolpudneyamuoy,ereh sut’noduoyfi,eroferehT.ylevitcepser,3lenrekdna,2lenrek,1lenrekgnidargnehw” “dna bus eht niatnoc taht senil rof kool lliw redarg eht ,yllacfiicepS ).stset DENNAC-ERP eht sedarg redarg ” ni ” ” taht eton eselP( .lanimret eht ni tuotnirp ” gnimrofnoc” rof kool ylno lliw uggnidargehtfo)A(noitcesgnidargnehw” “ni” “teslliwredargehT
.meti QAF lenrek siht ni denoitnem nosaer eht isihttahtdnatsrednuesaelP.)stniopfotolaesollliwuoy,esoprupsihtrof esuuoyfi( eht htiw llac tnereffid a esu tsum uoy ,evitpircsed gnihtemos dda ot tnaw yllaer yllaer uoy fI
!detucexe si “llac gnimrofnoc” hcihw gnillet ni ytiugibma on si ereht tegot srebmun enil dna eman eludom rieht esauceb rehtona morf “llac gnimrofnoc” eno llet eht ta gnikool yB .tnemugra dn2 eht htiw rehtegot detnirp steg rebmun enil dna eman eludom eht
:od ,)y.x.A( meti rof tiderc teg ot
selpmaxE
.ffo
KASSERT(…);
KASSERT(…);
KASSERT(…);
dbg(DBG_PRINT, “(GRADING1A x.y)\n”); /* nothing between this line and the above KASSE
/* for example, for x.y */
/* also for x.y; nothing between this line and t
/* also for x.y; nothing between this line and t
KASSERT(…); /* for example, for 3.b */
dbg(DBG_PRINT, “(GRADING1A 3.b)\n”) /* nothing between this line and the above KASSE
dbg(DBG_PRINT, “(GRADING1?)\n”); /* specify the correct test for “?”;
nothing between this line and the above confo
KASSERT(…); /* for example, for 6.b */
dbg(DBG_PRINT, “(GRADING1A 6.b)\n”) /* nothing between this line and the above KASSE
dbg(DBG_PRINT, “(GRADING1?)\n”); /* specify the correct test for “?”;
nothing between this line and the above confo
gdb
make clean; make
gdb weenix
gdb
./weenix -n -d gdb -w 10
/usr/bin/qemu-system-i386
GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.5) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type “show copying”
and “show warranty” for details.
This GDB was configured as “i686-linux-gnu”.
Type “show configuration” for configuration details.
For bug reporting instructions, please see:
Find the GDB manual and other documentation resources online at:
For help, type “help”.
Type “apropos word” to search for commands related to “word”…
Reading symbols from kernel/weenix.dbg…done.
0xc0006bf9 in kmain () at main/kmain.c:143
143 while (gdb_wait) ;
Breakpoint 1 at 0xc000944e: file util/debug.c, line 190.
Breakpoint 2 at 0xc0006c77: file main/kmain.c, line 160.
Breakpoint 3 at 0xc0006c84: file main/kmain.c, line 180.
Breakpoint 3, bootstrap (arg1=0, arg2=0x0) at main/kmain.c:180
180 dbgq(DBG_TEST, “SIGNATURE: …\n”);
(gdb)
gdb
.hctam dluohs srebmun enil eht tuB .sesserdda tnereffid gnitteg era uoy fi enfi yltcefrep s’tI
:)tnedneped noitarugfinoc dna eton esaelp( wodniw lanimret eht fo mottob eht ta gniwollof eht ees dluohs uoy ,llew seog lla fI .lenrek ovnidnammocevobaehT).1foeulavaesunacuoy,enihcamtsafrepusaevahuoyfI.01nahtrellams y,enihcamtsafaevahuoyfI.01nahtregraleulavaesuotevahyamuoy,enihcamwolsaevahuoyfI(
ammoc gniwollof eht gninnur yb trats dna ,)” ” gniod yb( lenrek eht elipmocer sotdeenuoy, htiwlenrekehtgubedoT!noitartsurffotolauoymorfevasnacsihT.sedilsnoitces
edils ees esaelp ,sdnammoc
cisab emos roF !yawa thgir ) ( reggubed eht gnisu trats dluohs uoY
.gnidarg puorg dna noitamrof puorg gnidrager noitamrofni ees esaelP gnidarGdnapuorG
.rotcurtsni eht ksa esaelp ,erus ton era uoy fi sacroF.)sesacelbissopllarevoct’nodyeht,.e.i(selpmaxeemostsujeraevobaehT.ecneuqesedoca edarg eht llet ot deen uoy taht tnemeriuqer on si erehT .)yaw hcihw esoohc ot teg uoy dna( ecneuqes aw eno redarg eht llet ot deen ylno uoy ,ecneuqes edoc a etucexe ot syaw elpitlum era ereht fi ,niagA
htiw gniggubeD
.ycilop etal eht ees esaelP yciloPnoissimbuSetaL
:od ,)b.6.A( rof tiderc teg ot
:od ,)b.3.A( rof tiderc teg ot
gdb
(gdb)
c/cont
190 (gdb)
(gdb) quit
weenix
__asm__ volatile(“cli; hlt”);
weenix
weenix weenix gdb
./weenix -n -d gdb -w 10
gdb
gdb
(gdb) c
Continuing.
Breakpoint 1, dbg_panic_halt () at util/debug.c:190
gdb
weenix
QEMU
gdb
0xc0006bf9 in kmain () at main/kmain.c:143
Config.mk
NOT_YET_IMPLEMENTED(“PROCS: …”);
grep PROCS: kernel/*/*.c
grep PROCS: kernel/*/*/*.c
grep
procs-README.txt
./weenix -n -d gdb -w 10 gdb
Reading symbols from kernel/weenix.dbg
kshell
kernel/main/kmain.c
DRIVERS=
NOT_YE
T
.EMDAERnostnemeriuqerehteesesaelp,sliatederomroF.elfiEMDAERsihtmorf uoY .)noissimbus ruoy rof etairporppa noitamrofni htiw “?” enoladnats lla ecalper dna noitulave ruoy er ,.e.i( noitamrofni noitatnemucod ruoy htiw tuo ti llfi dna )”txt.EMDAER-1k”( etalpmet siht fo tnetnoc uoY .edoc ecruos xineew enitsirp eht htiw gnola elfi ytpme na htiw dedivorp era uoY
.” ” ni edoc esoht tup tsum uoy ,lenrek ruoy esicrexe/tset ot edoc fI .noissimbus dradnats eht fo trap s’taht elfi a otni og tsum dda uoy noitcnuf repleh ynA .)ti rof edoc gnidnopserroc eht tuo tnemmoc ro eteled tsum uoy dna( ecalp-ni segnahc edoc ekam esaelP
.selfi fo hcraes ot esu nac uoy dnammoc eht s’taht esuaceb dnammoc eht htiw railimaf teg ot deen uoY
:dnammoc gniwollof eht retne esaelp ,lebal sa hcus evah taht edoc eht lla dnfi oT
:sa delebal era tnemngissa siht rof tnemelpmi ot deen uoy edoc ehT
tes osla ot deen uoy , gnisu trats uoy nehW .tnemngissa siht od ot redro ni ed:CB[).noitatnemucodemasehtfo,”srevirD”,4retpahCeesoslaesaelp,tnemngissasihtetelpmoc ucod xineew eht fo ,”sdaerhT dna sessecorP” ,3 retpahC ees esaelp ,noitpircsed tnemngissa eht roF
s morf gnihtyreve llatsnier dluohs uoy ,stnemngissa lenrek ruoy od tonnac uoy pu dedne dna “sgnittes domdiduoyfi;xoBlautriVruoyputesuoynehwsgnittes”krowten”nignihtynadefiidomevaht’ndluohs ittes gnidrawroF TAN eht ,tluafed yb( gnidrawroF TAN rof sgnittes xoBlautriV reporpmi ot eud eb yam taht ees t’nod uoy fI .)tcaxe eb ton yam srebmun eht( ” ”
” woleb thgir enil eht ta kool a ekat esaelp ,evoba detartsulli btondluow ,” “nuruoynehwtubyltcerrocgnihtyreveputesevahuoyfI
.sedils noitces dils dna km.gfinoC ni stnemmoc ees esaelP .” ” gninnur yb trats dna nac uoy ro , tuohtiw nur ot evah uoy rehtie ,segassem gniggubed lenrek eht lla ees ot tnaw abeltitehtni”UMEQ”htiwwodniwehteesylnodnawodniwsihteest’noduoyfI.rabeltitehtni”683i a ot og lliw segassem gniggubed lenrek eht lla , htiw gninnur era uoy nehw taht eton esaelP
. tiuq ot ydaer era uoy fi >C+lrtnC< sserp ylno ,oS ereht dna( llik dluow uoy ,>C+lrtnC< sserp uoy dna gniggubed era uoy nehw ,stnemngissa orpresuagniggubedekilnU. fonoitnettaehttegot>C+lrtnC