From 30e043955b33c91e686d58be3401609e4f74cf98 Mon Sep 17 00:00:00 2001 From: pjht Date: Fri, 24 May 2019 11:52:13 -0500 Subject: [PATCH] Add empty vfs program and fix tar parsing --- Makefile | 8 ++++++-- init/init | Bin 19992 -> 20112 bytes init/main.c | 9 ++++++--- initrd/init | Bin 19992 -> 20112 bytes initrd/vfs | Bin 0 -> 1428 bytes iso/boot/initrd.tar | Bin 22016 -> 24064 bytes kernel/kernel.c | 3 +++ vfs/Makefile | 14 ++++++++++++++ vfs/main.c | 3 +++ vfs/vfs | Bin 0 -> 1428 bytes 10 files changed, 32 insertions(+), 5 deletions(-) create mode 100755 initrd/vfs create mode 100644 vfs/Makefile create mode 100644 vfs/main.c create mode 100755 vfs/vfs diff --git a/Makefile b/Makefile index cd7c51b..8ab56aa 100644 --- a/Makefile +++ b/Makefile @@ -20,17 +20,21 @@ debug: os.iso kernel.elf @$(EMU) -s $(QFLAGS) & @$(GDB) -ex "target remote localhost:1234" -ex "symbol-file kernel/kernel.elf" -os.iso: kernel.elf initrd/* initrd/init +os.iso: kernel.elf initrd/* initrd/init initrd/vfs @cp kernel/kernel.elf iso/boot @cd initrd; tar -f ../iso/boot/initrd.tar -c * @grub-mkrescue -o $@ iso > /dev/null 2>/dev/null -.PHONY: kernel.elf initrd/init +.PHONY: kernel.elf initrd/init initrd/vfs initrd/init: $(MAKE) -C init cp init/init initrd/init +initrd/vfs: + $(MAKE) -C vfs + cp vfs/vfs initrd/vfs + kernel.elf: @$(MAKE) -C kernel @$(MAKE) -C libc diff --git a/init/init b/init/init index 97cce439f36c70b4d05bcb69af7f7e1349435d43..25fbcf5bef884f0107196f4fcf524aaa5f88f62f 100755 GIT binary patch delta 3329 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 delta 3268 zcmZu!4Nz3q6@K^a+vNevvJ31kDDDCaEQr>q;C~cjRwW2UDjK3RVuS|AKc;M3jZ#HgEF6*X6qq`|_rv@}PLO_KP(9vsOmNdikRaBsJw_I9_eY85ZG z-JWD=mnEs;gt=kZ`11W-iaNNA@XPk&%YpEhU4OzQpE)+2=XG)pJc^ zn_=~3xlK_+IwgZ{#DPL%uQ%u`0;0jgA>aP8Yktppan9$tHsTq$z8pS>z8pLckMEcH zK5ZCI@O#v1pJ&+b8TR!JH+x1}s6y_X&WU!O0EvCqWAq(|k~k%LMPG~OezV;9F$Bj4 zl;*z9^Vl_i6#2g2s#(xfT|pWfPWRm3a&^S>u=7+9Jlt|-*XdBmL^!6mbQ@>=0TRBT ze*L+}J9Zcwkw( zxU^*O*N^xDjX|8>#azFYY4C*8`@GhE{r_>LISJ<9=S}!ZC!8-e>K)&B90(5up{@o) znZsud<mRgs-p77^1ffsntWZI3=uFXxG5RD{E*MC`1;_BPDE8kgiXgqCuOiveiu_z+=$mW z_@_{*ZR_>62V=7^uqN6dL?YE1rwECDVoa`=_A9E-?6*p1v7S3VAPXitcPZfeJvV)F zNQCW9<4I2HDsM2)WwJc$26bB;`l=fvBW^lv$q}pQuEi-T$QtJqD<}{21u6qACokv{>HsaILvb## zgDztK9zBS2%JMB574Hy-X?na<)KNL;k7-l9OYEUNpzU-Vw1qy6cZ;nQli(8DXd-A6 zl_faE+vEj3OdX*2=n&`^bOAJ#?t-o)tJNt!pgho4Dg)h5UeJTo0s0vo0{tmnu)4$_ z=>h0X8e?;b1ey!Ff~ss2#M9JabBaxL$d)6n&=s3gRz4@$K2vO@+4j-$y{)v|?ht!v zv)w88G}4a%Hq%i%C-4{0O8VSB&ajauoJ6-$rw6JMONDS#PtscZLGUa!l5iR4U?+Q5 z#uZ>p?xC5Z-i^A4-8BQwJLhC74T|asdKiYiISOzV+aW1y zFe$mM&Kyr$oKD>SZf9X+4?^}qV*%ZCR-)KSQwqd*+MQA=OmrhQsJK-KldUH#aG0IY~;Uo2j+(C*AZ?TAGDBUNwL#yb*E8a0b1WwqnkJPf=e8CR7ey z)D^yrwc}m~M{bj1K7+Ib`)HhNUF^6Zw@#8wm3;WshGRaO=$a@R=q1-2)NGfl0#zo` zOXWk`sVsf5*g*T!J>og~XZjR*sEIN%o{^6Ns7eVkE_wwaVUH7eDQ zhQ&+mcPdJ13H4|0P2m9%%?Afm6&8o&d#!%URBgL!C{+u z2_e}c(pY$MCoNMd19NS1FJPj6&9KMBe-84LQLsBI^1KMHG5{+bj%UY4@H-Yz2UCw+_890_R zH6o%J=g~mjd$4pOD6{wXoXvA?6YfV?Sdby*A%b%4H;Fg|gibHWyJ?tp|`R z&x4h{pTt@XJYT~fVm%1FP{UWS;z1i0I96@g9#V^g*(0z`O`!+RI0A=kM$&fh8S|jp zhr9i{hDQN&m-38cc`EQq6sHB(&NvGgP1Ll&QNILgnVMQY*heulE@-#_I6RctY#A_5 zj8sj&517AF0r5#Hq}9Odkk)8TUJHB?`bipY0IqFS)D;@`3#ne3(W0n-*BI?kNN85n zHVy9u?!m1CB7h #include "vga.h" #include @@ -40,10 +40,13 @@ int main(char* initrd, uint32_t initrd_sz) { if (hdr.filename[0]=='\0') break; uint32_t size=getsize(hdr.size); pos+=512; - if (strcmp(hdr.filename,"init")==0) { - vga_write_string("Init found"); + if (strcmp(hdr.filename,"vfs")==0) { + vga_write_string("VFS found"); } pos+=size; + if (pos%512!=0) { + pos+=512-(pos%512); + } } for (;;); } diff --git a/initrd/init b/initrd/init index 97cce439f36c70b4d05bcb69af7f7e1349435d43..25fbcf5bef884f0107196f4fcf524aaa5f88f62f 100755 GIT binary patch delta 3329 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 delta 3268 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 literal 0 HcmV?d00001 diff --git a/iso/boot/initrd.tar b/iso/boot/initrd.tar index 593c02be51622064ea51cd3e664d35b2506207cf..72abf8b0d0d8d7a8366a50f9fa5b476c12a37c81 100644 GIT binary patch delta 4281 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 YLv>@2B%(ynsk(G+I+lTuR^P7v7rG_QL;wH) delta 3318 zcmZu!4Nz3q6@K^ec6q?EyZkJ$D!Z@?EDBao5dWeWyXuArNChQIBSvj-{GGCGG)|Es z$g&!QGbWv>))0&~qn%8;wW6ji60JI|)g;=+Hab{Mij~%%s-ua9erNZsv6(Kzx%WH& z_r7z^zTNb`*mOW_-)zkrmzS15uAnHtsHmW5?D(|2{DQoK0x2zzYQ@rk5XmC?R->X8 zNRl*ALJrws>q(L%{?~yenI%bJ=>_iHtEjzuX^Gq}UZgwn*tkwvlA4a2n+6RpKiICQ z1M{gcqPju8Q3KAl=A5CSp{CxAsjnXxdQ|&qqVtUtY@EwDaI3;>TUz__utK9Vo1jqW7*1oRu*tLEf^?~1_Sx}MA z<6y&y?gtyM4!Iw7oeF|S8_#S%9SWHO$MlwN?UX-4!dG-sckaoK9h!nX4#HBz?q=tH zx1pOI``za5Q+ugY-_sCw(8cz}-Ar#}ntnUyKYk1EyI4NAqI}>tkNE-(L0sI;T)%~B z@Prflyq1%?|Kmz?63oBPoA|X(IA3axw0-AEAUqU=x*7~+4xcrYLvwHaq+sybTJR@E zE7D-23#IoY>A?NS5+&nPPOu+DoNF`t=iuCr#HluELSKD?-=Ya=nW1nL?@#Jjldr3b zAp%;1oAQCnkNE70uMfWHxS=*OY?>Qu&19qEZlklzePHW_1v+3SuokQT>;_%f4xK;m z08OWRpo__pY!@F=A!s{Qg6<eup&ljyc{Vqn>@3L#w7Gkj(80r2ALB;hnn!%p@tj`v_v?xM*f-i^MG-8a7n;yOU$BJr=kfcf(cKLxX zZ5Gkcivo_ZAO)cs>flos!Gj`(uoY1nhuhfjiX@^n%nff?FNqipb4$h;;8++E3gJo@ z!J{bVD8{IW)i^woVr!UFs$bcxsLykNokq2tSq1ubdLu10dB`$MLwG1TeOi{%q^Rzohe6nzqXDO|9g?yHlaf2?%?Y$I-HzMenO+jr zgOGjDm_@hJYf)?!4v!d3I~^6mNH-l-@||Xy<;;*THq$C+5kITF&goGbS`@ULB#oe3 z&UNyqd+DVNM;v#&ss~qiBjb_bBziq#(X@V_qP`GJs2aTJD|{I%bKd|*?vP?XhqN5~ z7@TXBDL2Timn35?AAYI+sE_h9^F1Fa910;pe45I&$Ls^$nOao{d;7#SVzgDs?Zs$N4+}k#5P6M<21{07!xvo zCTJ{o%rkxn$#p)@S#~7*?bTu{+?L@N2;Z^0$d+ z#fHHCNrxjudSKbqS{Wfu7N_dz>dd$dekDO@gu)ZXCj+k)yhh-UKiqXxUNxH*&srL6 zLEIzWbrk7aSh)eim|u;!{leG>%Fn@cII)&t1(=f=w3PhedRJX6CT zVLbpmTfI8bk#sWnjCow`!3~#bco;DEDo;w5 zrvooWiN@jb8D|5dm0CQuhIvrS($tE0 zmIALrTEjK@I^c`Yw`#ZvcwM`qF4C}HNDb1YHbwo1#^{7XVymKdXm~ep4{jY00TgLJ z@L?o8R+Ik{`1B@4bz$WM4`Jo+f^Y)IflHAPw++ib0=@zJ7d3oQG)U5DFkBkr?@)+) z%HS3-x6uquejoVhgdPJcc-{~P6O?hmd9b%>`X=Be%(@90P6BSnOuwXIS0xy4d?GjS9bEAUO@BV{nfAaBO0puv_i0zDJ&HT;0e(2- z(uq>Lj{7cyu9rIX+;P206knDl_axEO1xZw1X4aj?Pm6x)Sdc)kl$qsslBumM3-1E& zmAUktxb=H6bh*r--!c_duA}H`hgd)(%UwdHx#ce1(h^B(3^Z0ZD1kStH;VrP)^B`z diff --git a/kernel/kernel.c b/kernel/kernel.c index 0fae094..8a84859 100644 --- a/kernel/kernel.c +++ b/kernel/kernel.c @@ -71,6 +71,9 @@ void kmain(struct multiboot_boot_header_tag* hdr) { break; } pos+=size; + if (pos%512!=0) { + pos+=512-(pos%512); + } } elf_header header; pos=datapos; diff --git a/vfs/Makefile b/vfs/Makefile new file mode 100644 index 0000000..e0371db --- /dev/null +++ b/vfs/Makefile @@ -0,0 +1,14 @@ +C_SOURCES = $(wildcard *.c) +OBJ = $(C_SOURCES:.c=.o ../kernel/start.o) +CFLAGS = -I../sysroot/usr/include -Wall -g -ffreestanding +CC = i386-elf-gcc + +vfs: $(OBJ) + @i386-elf-ld -o $@ $^ ../libc/libc.a + @rm -rf *.o + +%.o: %.c + @$(CC) $(CFLAGS) -c $< -o $@ + +clean: + @rm -rf *.o prog.elf diff --git a/vfs/main.c b/vfs/main.c new file mode 100644 index 0000000..6803986 --- /dev/null +++ b/vfs/main.c @@ -0,0 +1,3 @@ +int main() { + for (;;); +} diff --git a/vfs/vfs b/vfs/vfs new file mode 100755 index 0000000000000000000000000000000000000000..347790a8c9944a6bdb2cb98eff08e73886e49b73 GIT binary patch literal 1428 zcma)6O>fgc5S_K15^x&z13{|-G7^;vs7?!2>4(}v15`+;NJu?!K&g{#($K~Uwp$g1 z1Q#T@^#m7wLXTWIap6yJL_+F`GZNvA?P;TMVUqF8d-Ha^9`E|~y@&UeQY2=ONsQWW ztn3WpXEUkHkOO{#a%9K#n1zPmhXCvuCI|R(VjJ&&9Q~;s$nW6iQK!@SN^~}rsF#mP zy~?VwoMpYkjYq&=fPaH5p6^aR`_@?P=X|YLTyQ4V);F#?bM6gyDi#{?L{@y=#A4z> zF(O()Oe&V*hsjN*g>Ip-15&BXB7*ShlWAodeuToH8qW{gW_~O`sD}Cm&J!6ft&E!a z1$)t+w;v2MeS75N>L`(Ug=~A-HnW&&9&Xabc<$f%e%vAMG9FP;(`)!{1ts(>M;U`} zt1>1TmRd3lNDCXG4#GlPM>@d29Y%pyxU0kMsMRjCgVr-$iNZoFEbP@nnGJn$iqp4} z);N>RXxGV$&Mh}KgLPZWq=7q zx0z|vg)@_#ArR`m3%iA16 z{aR0bx(7=aw{_s_odUWOM6MS$sZ=V5VJXH*t4g}+MIM#3UnO$G7tP2kBSt|IwlIjWaIu#Vpf)nF;*tl2Sx@7=-VvbF8e*r)LsSf}E literal 0 HcmV?d00001