From 2087a76adec7a11c1f7332e019690b6f8539e084 Mon Sep 17 00:00:00 2001 From: Jonathan Turner Date: Fri, 15 Sep 2023 11:44:21 -0400 Subject: [PATCH] Completed Part2: 08_shell. --- Part2/A4/08_shell/boot/bootsect.bin | Bin 0 -> 512 bytes Part2/A4/08_shell/boot/kernel_entry.o | Bin 0 -> 480 bytes Part2/A4/08_shell/cpu/idt.o | Bin 0 -> 2980 bytes Part2/A4/08_shell/cpu/interrupt.o | Bin 0 -> 2128 bytes Part2/A4/08_shell/cpu/isr.o | Bin 0 -> 8532 bytes Part2/A4/08_shell/cpu/ports.o | Bin 0 -> 2808 bytes Part2/A4/08_shell/cpu/timer.o | Bin 0 -> 3080 bytes Part2/A4/08_shell/drivers/keyboard.o | Bin 0 -> 4768 bytes Part2/A4/08_shell/drivers/screen.o | Bin 0 -> 5616 bytes Part2/A4/08_shell/kernel.bin | Bin 0 -> 8576 bytes Part2/A4/08_shell/kernel/kernel.o | Bin 0 -> 2736 bytes Part2/A4/08_shell/libc/mem.o | Bin 0 -> 2544 bytes Part2/A4/08_shell/libc/string.o | Bin 0 -> 3480 bytes Part2/A4/08_shell/os-image.bin | Bin 0 -> 9088 bytes 14 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 Part2/A4/08_shell/boot/bootsect.bin create mode 100644 Part2/A4/08_shell/boot/kernel_entry.o create mode 100644 Part2/A4/08_shell/cpu/idt.o create mode 100644 Part2/A4/08_shell/cpu/interrupt.o create mode 100644 Part2/A4/08_shell/cpu/isr.o create mode 100644 Part2/A4/08_shell/cpu/ports.o create mode 100644 Part2/A4/08_shell/cpu/timer.o create mode 100644 Part2/A4/08_shell/drivers/keyboard.o create mode 100644 Part2/A4/08_shell/drivers/screen.o create mode 100755 Part2/A4/08_shell/kernel.bin create mode 100644 Part2/A4/08_shell/kernel/kernel.o create mode 100644 Part2/A4/08_shell/libc/mem.o create mode 100644 Part2/A4/08_shell/libc/string.o create mode 100644 Part2/A4/08_shell/os-image.bin diff --git a/Part2/A4/08_shell/boot/bootsect.bin b/Part2/A4/08_shell/boot/bootsect.bin new file mode 100644 index 0000000000000000000000000000000000000000..3bdf9705f16ca3ab1fdbe4c50f0ae547aec63d0a GIT binary patch literal 512 zcmb_YK}#D!6n?t~(=_NV6(ZOk20isqhzg?Mu@^x>EMBCAjP7g+F*`6>L1DKDdr5Lw zBnLqeyeSk93TbG&2(f#SmPL=f>7`|GRrIKbj6=kK;CFfNd*9>ZeXpGP=pMpa z@-*;1;7H-u5VvyG5jVZW)IdgodqJ3jVB zO(cVY^Y%|UdGtHs9VziyU^=`ZaF|`rNhK@ z{Zqf`pZoj}AO)36o{`qUhRe@d{JIr@-q5S^g?vDS!HNsO*M$&#rzYh6@WIB+CI-q| zXmI4+eBMSg1TUf~Y7m&jmhmVJ54ELfMr|2J&K`A&jlA_46$rD)qO`CnDv}~)D^Dq( Iq0WAN0E(5l$N&HU literal 0 HcmV?d00001 diff --git a/Part2/A4/08_shell/boot/kernel_entry.o b/Part2/A4/08_shell/boot/kernel_entry.o new file mode 100644 index 0000000000000000000000000000000000000000..05e8c663aa6a71866904f2cb5630a33c7faeb2c3 GIT binary patch literal 480 zcmb7BI|{-;5S=w4YNwUh2zG)HEj&OPt-M1>U_me+*`2~vUdf|)48h7?TxXJ9TuTR* zH}B1xw_$VH?sq~6a3vssF9S&IVAJ9PBIr5mU&xt!BD=LF()SWZwr4Hy^n`p%k8=js zn2!G?CmJNAg>-nIku#^36SQ?D-^>w0mp7+==;=2a42W|UdpM8z{bh`Kys5JlqdX(T z`k+x^mQ&Z19a^qr(Rtj)54!tV4B=_~A^(YqC$w*r*EOz=QdP1@WreDVGhITeF;hrh J&g*#(_yO96C-ndT literal 0 HcmV?d00001 diff --git a/Part2/A4/08_shell/cpu/idt.o b/Part2/A4/08_shell/cpu/idt.o new file mode 100644 index 0000000000000000000000000000000000000000..ae230c1e21820b1aeea493ccd9172ec069fb067e GIT binary patch literal 2980 zcma)8OKenC82<0QGt;5d>4O$+DG5^pg3->S)Uj3y1+377Km#xt8UHkU>LcDx!WQ`uudyzF0G*0FF z$XZ0%L8G7_BITRk2fJA@*lwKr4z=zw@HSJ+_ZTS~J%MS!7)3x4qX|k$#CRLdzB6bB z)e!3phnVesQ)0%lpjM=(4-kn&-G&cGE-z+$kq)!x&j6yc$Tr(EV)oiJ7;zH@%ZR-W zEgH9azXZls=}H_xD?KfzCRQK08QV#F@>R5v*ckaRd6d%;YlJZ|iSMDZt%)`ov&PnG zoTX`dP%n0pe0(=rQ{wYfc6^O?O9_o(p^@Wcx5hE9-UduBKs9elVv1%fNW2-5zT@y4 z3C2zY@kx$+KaBlsHnfklI=(y7K#O?ffV zv~h5(qwX1FfAgcC93Eql-e@<=92H4GRasQ~(xUUaSt3cpSR7_@|AZ_KXVBTebhpaE zF(wYepz3rCvIBGHk<*8ZOrIw5)A&r`sW*&&`jcpbOM-PXN~>)VENQyLo8n(ubz12v zDQyA4$^^AX=KlKO&YgJXz}#may=UTL8CADZEi}vJmg7si(Q+#dXC=jhTCUlZme{om z_N7*ql?oNxcM85#?Z!&Y@ucR~T|aPmPQ`8cjt6JaZaISSWIDqsRc%jDx}fu=*1Vv* zJ9=U{btIQdJ)fRVXH!$zTt1u6zL=V<@0&v7w;Rq}#c4R6TY_qPrRtoUpUI~tE2+tH zqdB?iIv{1waaulxNS0*b5Y zi|vNr?#y#C-ww3gJGp#1JDtu=J@eQCV24NWQH;x{#JCbS#`_|X53rv+Bm5}5WOArK ze$_mjjGD*R5EA(IE8j%ee=cy-vPn>~D-n6H(N#b;zq-_eo7xSr)FY@3mIP0wRuSFP z&^aap4QFX=;rKeZO(CCd z1DAAyi23YOc8-_vy#K@%h36GsRCq(-Ernkw{7T_{g+D9&RpB2B9}>}j63fDVb|`#` z2>U^$FA=dG%SyM2dVV+pgR0IUg(;wk{CS0vZe6PTb`j`%9jt2RIkmL!T=XTqV*9qF zi>;QVXvab=Hr>F3kj4Wv z89Wf3GETKn_Ut;Y?f(`2^kVwK-ZF=;bNJ1sk1~!AOB$>J^&2<`$ADY$F@|RrTQ0km zu5a4s(8HqZJqsh_|0^!|wFnhpy|OL>u4xuLJicErzIE6*K5S`seDmNs2UL2nuMbF+ zXx}O5n$z_+;!-3^wC@D;aKCqPfq8z|FXyM%gLl;0JFI_^gl$it>Z$6bXXlrAP0EhO6aDQx6ejzA)adrffy z$4B`XUw9rrh1P}dk)8+N5Pb$fWgT(1NtEb*!+p|q7X9)cEB>P3746jHy0g!4y&BHJ KF4(l_djA69A!7Cb literal 0 HcmV?d00001 diff --git a/Part2/A4/08_shell/cpu/interrupt.o b/Part2/A4/08_shell/cpu/interrupt.o new file mode 100644 index 0000000000000000000000000000000000000000..9569f5690c192c81c1a2ca527f651f58d5decc3e GIT binary patch literal 2128 zcmb7_PiRzE6o>C5nMq>Qj9S~qT2mYU+l+ZHYN}l{LM^nGViwZ0UBrndIG0S!yKf?j zNDCrG(J4hmsGwva6-o)Tl-896+l3U7;zB_L#f2W;qGaL5l*ZpVb6-7*n?AVreBXWd zciv-iC-cSDkKWH@GA6w;rrta?V|x9K^-@=voT*E<{;$eCdE|Vm3(~Aw<^6giYQ1MJ zy^yua(|4PPH5E5w*vF#*>sbu0+_Mcs_q&T1_#|zDdnqmjH)Et%Z&NMLS>D6_uw-@) zAHTJI_}9Ft-m3mqy<2_w@SmBPnf}y@hktLHzW(A(pI2{JuT<|>liH@o)>xBFa>*nY zxzr^STNuDiP|I5!e_GOy#^a?%j^eWx))J8WvEuyQQ zUZcyN7Sqq3UZ?LpEujfd?R3V|8}y@4#xA9cLUr~{Iww?bJLr^9gIz|)gtB%yeJPZ) zD`=lkqg_cOLQQrR4GJ~e)zmLE%dVl1g<9-ddQWJ!eTy~=&9R--B{bI-XoXO#T}O*S zI16$WDnt7#rV#ImE3Q%;1RW^Xs&_XuQrnXzo~h~i2M~0enaKPv8g2FM+3&bMI;8 ze}J?8kI0|zpYT@Yf5F?7--LH4=Vx~+zYp(GPVg^5E3(A*)CzY=TUs7HGUs2u-zNUN=_@?rA!S|GJ1t-e+ zvv{Pu4?LsX>>3+iR~oGhIX6C5DHP+fDaCGJPjPhj$dEH77d>UH@7h}~?;Rb8E8~N5 z?-`F>7l#9$LY}<F=u4o;LE-!_(V5ZQ?1YMI;kQD3DYju|RTx1OrJ15)C99N;a%L zPqLw8L&=7c4J8{&Hk52A*>1^pBkLldi-gd`Md;xov~UqRxCjkgguIIocM;OqT#HDC a-x@2D;VK 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 a2<0FIdKD=j)t%N1<~xW!I0Ky|neT5x{d+wC literal 0 HcmV?d00001 diff --git a/Part2/A4/08_shell/cpu/timer.o b/Part2/A4/08_shell/cpu/timer.o new file mode 100644 index 0000000000000000000000000000000000000000..d2087ddf6acb54e01e645025836a50bd99ce3153 GIT binary patch literal 3080 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 Tcx2Yu81Ds4!Z(m+#Kij_tWtrL literal 0 HcmV?d00001 diff --git a/Part2/A4/08_shell/drivers/screen.o b/Part2/A4/08_shell/drivers/screen.o new file mode 100644 index 0000000000000000000000000000000000000000..671fd18045def70dd188057f89f80f55e431e3de GIT binary patch literal 5616 zcma)Adu&tJ89(>haW3THK!AopizA=~M(l*887+bGaw!{+h%DPcAjfg8A0f8WYu^AZ zp&<7W%WX#rbgN1MX^($8G)-e@tEMUe3T>rnnMBn;+D+L6QbsZoNnC?C|2u zKn***ATy~I%$kB(Iex!TC}ghHWc^bUt2h9cnXD|BQ$?#s;m;c$=Jir!X?@fCvRI`T5c%fseRPkwTh4_wPkI(rH|g@UQca8gxg z3C7i|KhMXQmlkpsC4xyB)l|Wp?3od#Ju|s1*P-S7^9DO^4f@A!_$S%%3U+*8jG4~s z{xLTyxBDd*Dpz-Gb=7bJZF)7Mm_)5jzxJ$#q$%^Krr~@1Gi?It7cB2 zCg-oo3@ZrU*29W3%TH{By=Fef3pS~YUS}R_9WWy0iuDT1LzKjODSM!nCdKF2(iOi7E7d=s+P}%fvT3h z2I4f=GIjR1p;i^`NlskvfRt@Pr_4vkeoNfhU!ivqROS<_4zco3vKMGIN6vC1dB{eZ zHb|C_Si0z}7*pykzL(8*?t!lCC>gAx*o%le`zQ2P{8b`8tI$Z}y@~!gZu2MxY(@5o zXtQ|MMwy3?sL4Xzta1qU$`*o)!CfMB_9FW75X3YJb!fje3vQ$iiCGAwxiXYiSbkso zE(O?10o0*xYaF}8II14ULeNR3sdkFtXg?tLh&7!~hM8}Ipn5BXd7f-W;RHEG^#x>B z#6uz?E89t$fkqsvIJYUl#>MM8VA(KMv6^DN`W|e;+-5x@YJJ4MCI&$R8Wb_L^^p^Bo(lTGkzSPqqK z0;eedsjfoLpD46Q-A1fmH&RScpV#XP^_h&NLWZsXTCKLg^r@@nX|?z7Y=~&}8zL7WtJUfqHLaS@6s9|+%f*Y@ev3!1hF#j; zmm{#wz^n0dt#;R^5If$YPCG%px^fPP;`)}WSBsFqb&~Kc*IS1^U%&65RD#tX$U8h4Sg{kOc;xqN(U3&v4oI!nX%qU)nSsp15E3V7Y$?8^E&F zfH{VrTzk@=luA(2)1yu{!tdiJ_X61$?{aa&;hHL*s|Ot2qLLrF5=b{+$?3G>$=k1Z zapK@7jU%`x`;I)|LhQrk66iXT)&ofshuuc8#PsWh&V`EQT1gbk^i86eAU*WdIgGtX z6n{^@F68eC`KLsy82f@K{3eC|ze3NSw(#pkX(;}ig1$=>_P-#CJlBQ16<<8EYZtVK zD4x9;fk%igVC*kM@jAIn6iyhYIUg69rjtlytpjn|mCoq3>!|y{O|GkiZDd=B?{I02^fSwVj$rFt2fIMihDD>2GxT0>T0fj--tJ&J$h=*t6!Vg>TkkR> zfmkA(go^XQt}a9GFVzN(U?QSVbKvg@;eZ^>8%oCGI=;2u1U~v+JTe;iBftuyM+0Fa z7}qhzuh{5L#I&qG&p?~;D}8~Ijv9SKv2?tKgm>V)X;9)ga(^c%-RR2&#!=wy6e&uY zjQ4fO$o^q=G#=?gVJO}(t$}D#*9crXzVBcY^ojA&mq?CpBY5cpmbK%vw6sJZ**!Dt z`Y~7!Ify3hXpfcVy@o?h`;Y2E^OJdLNu&>0_BNDs?qri}5Q5TpHxZBGP(1oV%6QL% zCm)(OwM%e%Uj_jtmVWexDYXk!Fh=)_Y|`!(2#A;M4D3pq)bTq83b_P7g57?pgq+4l z?F@dU^Y{|;XoHOAfvscD17dp*fMu&;@MB^`lc9;qoTSR*QoR5n{-nc~--<_dr<`(6 Qfn}$0FaL%Z(PX^;0Snxqy8r+H literal 0 HcmV?d00001 diff --git a/Part2/A4/08_shell/kernel.bin b/Part2/A4/08_shell/kernel.bin new file mode 100755 index 0000000000000000000000000000000000000000..c7a7acdf4dee2da7f64f58d75cf0990674928d24 GIT binary patch literal 8576 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 Mcp7K}-uwahFGrh;y8r+H literal 0 HcmV?d00001 diff --git a/Part2/A4/08_shell/kernel/kernel.o b/Part2/A4/08_shell/kernel/kernel.o new file mode 100644 index 0000000000000000000000000000000000000000..c9972bf24b9839423db2dbda205416af111328e0 GIT binary patch literal 2736 zcma)8&2Jl35T9M!iOGkXk5+9|KDIz1g?eqLsZ~-^(xhJrC`6PXS`OCQdGRi>cisIc z4MKqWAwUR;N)=q-fCMLcMm->bL^*IkaN{pP;?N69F9@XYo89-El`k;SzM0?5yqWhg z^PG21zi>v=G*YBdhISB<-Je*dV>U^9XpB}r`2E_w{2%{pZ*RxLwR=N0n-g$%dEJtfv&fsVQu|l(Hf`(aW11VFX@Vgtp^04;xNs zyy3K3M$y(zEfAWwJTP4N2Ggzk)&6bAK_@ z@(;(X?=V>Q4hF3c13kvlXSrc!1qQWPaUEmdzF5hkev_y_dkzw5quRm3_+X~6zc8we z^^NR>^>G>;JOLF^Mv8ePG3mL9Okrm5_#ivZ?fYbYf+%NdO8ewQSFepDU5*m(#c>^( z`*$JeBJ}hiFMw0aBVbAGndLM1bb11#ru|(Q#u%3sib+dufhgf-BdM@l9Bps&!o~Y1 zn)&9|qg%gi>8L&}as#L7iZz1|FbafUbKFi8QZja}4cqc59?mYW8Vi+*anzhP%f?i> zQY}}@<t_ktqye^K6#x-Uc!TJ9RxL9DMw zPAhcW1i;kTD0X}=6phgHDX=|1G`fr7rPko%hjN#t?q*9i%CrQK*y`4)Eb z0Mg!kiL|%!+Ww(z_I=y|-yVNVTwipukiVhN59ew>!XvRgD{WkRUAz8T;=sBTrQe7w z{kfeo^}HacM*O8Ild2%rXDF981IInl)ny2EoT3apkU~6vum^J=?NEkx?Epv_8tK6W z8ju=3n=#bqXv%}VAL_w}dT<$7^)1go-ecdXeOV<=z-5h!!M!{FrLMfu@q5ZX2>nL8 zgLwR|=-A2-b1aJQTEo$ypGn7pixMAYjFvqm@uIY^N_^6ZNQxQ(yPs63bS-?u*Ot z>RK(|a+`uDc2zCM6>0)VWT)UuyP2OUGSvP-4}A-vFmc#d{h`?y~>#E5nE9;2L7$ zpRh>E%s4L-za=U*<08O^EJ#weW5DTs?8e65g^u^ZXQ1|R4zij9k?sKaEJ#u|u5Bf= z=_xGKU_p|yaSf*P-jemkd0DUWwjrxI5NQeVmROLaYz}Zb-j|5S=gIN-byD#*A@dwQ zN2Xhdmr+50S>*4!2rMP zecVo+3-_bi2fqpFRNunyYv>fIyv$WjwoM|y9F+Wa;UASa9>?XJ>3BBkc^*1ND&D_( CjC`p8 literal 0 HcmV?d00001 diff --git a/Part2/A4/08_shell/libc/mem.o b/Part2/A4/08_shell/libc/mem.o new file mode 100644 index 0000000000000000000000000000000000000000..85c4b86a51203f487bb45e75a9886bdba0f69ea7 GIT binary patch literal 2544 zcma)7%WoS+82@J1b{sno=TT@Bgp5SgAmO$1z=W2Rq{VGhl@fu1$^nJ7GqFwWwYA=@ znyS1MRZ0{gH3uk%O7It;o(dA;0zwpV=fH&%;?PJuPDlj7@7tYmwh*eZ z%)VW^a7GA0ngp42AQAnM2raV#OwtHtXl47S&ArSwrG3`jAKO{k-zoKpFLz!5CdIwM zyR>C&miEO?Y5znibN$Dg-+mQ@jKXcJvf!I@w(%YY4m)?N+Zr|G5k3) zQm?Q=B*y|s%mLz0ViG1Mnqltt9n6V&W=&>|T}q5bq*$;O!hAZgC41^5Vj=HQGIjyl z-tX8w#o73y#O*LXrLv{2*bSK3)7V{0HKYS+B9M~lV;qnUJw32PVq#z}1W6_FDVo8>GZp<8Dr(lKK$TdB?0i*vayE<19ACf+x4dNi?jK{+-j#L8x56*R~_tbxT|#b^y%Z-$(6G2cz(F7T+t7t zskf$zR$t^J=7)BH0P6hkIYiC(?ceLRmr;B?EKY^)_5uY=p@Q6ZwzXX>3 z7$a^x*I~a!h36E$s_=D%QsHGr#9veLmckDdeyZ>bM)=)R^6v_R?~4=u0-?R6Fbg!` zzo3w;&PLO-%RtW!v8FjsUiHXYvpt)va;HOl?MkDqxQ+kg6Tzvvjw!ucY<>8_3cVcfL~7)&>DHXj4IZ}9FK)xe731nt@Tve$3e!;;Mq0^-O-i3mBO%q%wLfZB| zbj+h%K$Gyhq<97$whKPGj&qTH;nza1gV&{d1uR{H-$%?S(siRX+4K$){0bb#;Ma)r T@xF7-XudZ3;8Ex_>3shHk1;&v literal 0 HcmV?d00001 diff --git a/Part2/A4/08_shell/libc/string.o b/Part2/A4/08_shell/libc/string.o new file mode 100644 index 0000000000000000000000000000000000000000..946055339e04ed693a4284ff51d706a1fc44daaf GIT binary patch literal 3480 zcma)8U2GIp6ux(6x*cd~3kBsbVKo#XxZ7>5r9dd~^}ly4|g_vjhl# zaUphHNF+v#2~iU3gNZTf12Gs$TR^~=*au=?eDFaMqcy2X6O1;g-??+|c8Vc-HgnJU z&fh)ve@|M^J;ga^ia68REMn~NeBaV0*jl!jEo9xLy9bIBi_4Z-vL=hiC)pAG-a+%G zHAOyUYwFxSUh1AIjh3z2b1Sv-9`j1FudlCk>)x*;e`%##BY&=1H(DAS`AOqre0beR z>D$s+aX2=pKghFWnZ@HKJ2@o!YMk2xANz(y%H31wj6_zPsGTX){xUr?GgG|Y@K*WY z^zCaXxHz#?7APD{EV-UY>78y)FR)3k*UmY%46H+l+-ZP1T@>?(rYUOSL#>(9j zgAGM%iWmDQIqKPLO&3HF;y0scP4ja1G{sZm)5C?|%a*DK^H)1)P0SQj zEk?L=(FO0kepmCkys+BgQa$wPN3;sUuWq0DKLF5X6~=b`fRF(bkF zLw>$q$}Q!L@k&Kbv3cK9>?(3wjxjwZGW{(xtx}l~9riPMOnaYvnzq4vqwwAUiTZ7l z-Za7{DpWh)Yh)atHI>*OC}RClL^O%mq>Np!dJ_JREC2Z`$g7p$2k>-6jGk|SPIZ=V ztpG8DPpDYN7xJdM#u~kDMcqQaDAe#UDvI*0%k;WUHJfW5TSm&Rr5Cm@ zcaFca04rOGmYv+IM6QPqG0otiE1@mK z1<*D(no~mC7c!ea9Z#nKbn`3GHj4IHYHy(7q1QuiY)uv*YN048o(bLE68ma=e7rL` zKHil&FPwfB_Pmgv37K!3cQp<5QCZEEs<4B5yj+i+Po&dSYodRE?b_QN-qF$$elpq? zjfGodE$y-P*v4?A|A|&KULosjNjh1_O(y_tH<8+sZtrLhN0Q-4Up5yRNIMYvT*t|K zcD5Iz_x15YI^(6YK7c9lYGlC8c}~L1xy*GAId0xz_P~IX?PblWT))%o6u`|9F2;uj=c-nL4ovnnMDuCwa)mh~6qbkKvz;&zDHP zj5schM~GwksDAQ$Tdoj)Qxy&r?crolMko4tp%xYkM|}#`Ad=C1tM@ zFC=@?*}fc1Lbl^^OnuO5yLL9|%n8V(vyKWtA1s>4_4hk?s-sz4H&I+~5pn(aX`EC~ zpKJHiGxk4;_7tXv(cBQx|4{Y!f-u>L=$*vWvMzi?-(mg2;EV8)kAaU)M3cnobai0< zf~4}Thm!pN%a7_&F_ee$4FwcRjKLPHZvx3LK}Ypr$t(4BK~^yk*^emTGZG{z+kRjr zlj$r57$!lIvh4*9_Inn9_80X_<5TlOOQK>RvQJ?6f&@v*W&;QFT?C*!l#gy0mG3pk z6hq@CdI^L4)fYueHu~sqQqb>dEOfi@@EhfKM*1n!3AG`lg8Ycy!$-1O)>H8NkqnZk zKB9N<1;;T2K(*31=;l-7pgThC0f_7l{5~W>lIl0uCz)QvbsU2de~fT*`uS+ysn1}( NvzWY2=oG1Z{{YY)P=f#f literal 0 HcmV?d00001 diff --git a/Part2/A4/08_shell/os-image.bin b/Part2/A4/08_shell/os-image.bin new file mode 100644 index 0000000000000000000000000000000000000000..c7b202be92f6a294adc6cdff8ef39efe199ba32a GIT binary patch literal 9088 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 literal 0 HcmV?d00001