diff --git a/README.md b/README.md index ace7f2d..462132c 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ Available on DockerHub: `wangrunji0408/riscv-rust` ```bash git clone https://github.com/wangrunji0408/RustOS.git -b riscv --recursive -cd RustOS +cd RustOS/kernel # Pull docker image and enter docker interactive shell make docker_riscv # Inside docker ... diff --git a/Cargo.toml b/kernel/Cargo.toml similarity index 87% rename from Cargo.toml rename to kernel/Cargo.toml index 0148c14..550d29f 100644 --- a/Cargo.toml +++ b/kernel/Cargo.toml @@ -34,8 +34,8 @@ bitflags = "1.0" bit_field = "0.9.0" volatile = "0.1.0" lazy_static = { version = "1.0.0", features = ["spin_no_std"] } -bit-allocator = { path = "crate/bit-allocator" } -ucore-memory = { path = "crate/memory" } +bit-allocator = { path = "../crate/bit-allocator" } +ucore-memory = { path = "../crate/memory" } [target.x86_64-blog_os.dependencies] @@ -48,8 +48,8 @@ simple-filesystem = { git = "https://github.com/wangrunji0408/SimpleFileSystem-R [target.riscv32-blog_os.dependencies] linked_list_allocator = "0.5" # due to rust version -riscv = { path = "crate/riscv" } -bbl = { path = "crate/bbl" } +riscv = { path = "../crate/riscv" } +bbl = { path = "../crate/bbl" } [build-dependencies] cc = "1.0" diff --git a/Makefile b/kernel/Makefile similarity index 92% rename from Makefile rename to kernel/Makefile index 083d413..b71a39d 100644 --- a/Makefile +++ b/kernel/Makefile @@ -22,9 +22,9 @@ grub_cfg := $(boot_src)/grub.cfg assembly_source_files := $(wildcard $(boot_src)/*.asm) assembly_object_files := $(patsubst $(boot_src)/%.asm, \ build/arch/$(arch)/boot/%.o, $(assembly_source_files)) -user_image_files := $(wildcard user/*.img) -user_object_files := $(patsubst user/%.img, build/user/%.o, $(user_image_files)) -SFSIMG := user/ucore32.img +user_image_files := $(wildcard ../user/*.img) +user_object_files := $(patsubst ../user/%.img, build/user/%.o, $(user_image_files)) +SFSIMG := ../user/ucore32.img qemu_opts := -cdrom $(iso) -smp 4 -serial mon:stdio -drive file=$(SFSIMG),media=disk,cache=writeback ifeq ($(arch), riscv32) qemu_opts := -machine virt -kernel $(iso) -nographic @@ -111,7 +111,7 @@ build/os-x86_64.iso: $(kernel) $(grub_cfg) @rm -r build/isofiles build/os-riscv32.iso: $(kernel) - @cd riscv-pk && \ + @cd ../riscv-pk && \ mkdir -p build && \ cd build && \ ../configure \ @@ -119,9 +119,9 @@ build/os-riscv32.iso: $(kernel) --prefix=$(RISCV) \ --disable-fp-emulation \ --host=riscv32-unknown-elf \ - --with-payload=../../build/kernel-riscv32.bin && \ + --with-payload=../../kernel/build/kernel-riscv32.bin && \ make && \ - cp bbl ../../$@ + cp bbl ../../kernel/$@ $(kernel): kernel $(assembly_object_files) $(linker_script) @$(ld) -n --gc-sections -T $(linker_script) -o $(kernel) \ @@ -140,7 +140,7 @@ build/arch/riscv32/boot/%.o: $(boot_src)/%.asm @$(as) -march=rv32i $< -o $@ # make .o from .img file -build/user/%.o: user/%.img +build/user/%.o: ../user/%.img @mkdir -p $(shell dirname $@) @$(ld) -r -b binary $< -o $@ diff --git a/Xargo.toml b/kernel/Xargo.toml similarity index 100% rename from Xargo.toml rename to kernel/Xargo.toml diff --git a/build.rs b/kernel/build.rs similarity index 100% rename from build.rs rename to kernel/build.rs diff --git a/riscv32-blog_os.json b/kernel/riscv32-blog_os.json similarity index 100% rename from riscv32-blog_os.json rename to kernel/riscv32-blog_os.json diff --git a/src/arch/riscv32/atomic.patch b/kernel/src/arch/riscv32/atomic.patch similarity index 100% rename from src/arch/riscv32/atomic.patch rename to kernel/src/arch/riscv32/atomic.patch diff --git a/src/arch/riscv32/boot/entry.asm b/kernel/src/arch/riscv32/boot/entry.asm similarity index 100% rename from src/arch/riscv32/boot/entry.asm rename to kernel/src/arch/riscv32/boot/entry.asm diff --git a/src/arch/riscv32/boot/linker.ld b/kernel/src/arch/riscv32/boot/linker.ld similarity index 100% rename from src/arch/riscv32/boot/linker.ld rename to kernel/src/arch/riscv32/boot/linker.ld diff --git a/src/arch/riscv32/boot/trap.asm b/kernel/src/arch/riscv32/boot/trap.asm similarity index 100% rename from src/arch/riscv32/boot/trap.asm rename to kernel/src/arch/riscv32/boot/trap.asm diff --git a/src/arch/riscv32/context.rs b/kernel/src/arch/riscv32/context.rs similarity index 100% rename from src/arch/riscv32/context.rs rename to kernel/src/arch/riscv32/context.rs diff --git a/src/arch/riscv32/interrupt.rs b/kernel/src/arch/riscv32/interrupt.rs similarity index 100% rename from src/arch/riscv32/interrupt.rs rename to kernel/src/arch/riscv32/interrupt.rs diff --git a/src/arch/riscv32/memory.rs b/kernel/src/arch/riscv32/memory.rs similarity index 100% rename from src/arch/riscv32/memory.rs rename to kernel/src/arch/riscv32/memory.rs diff --git a/src/arch/riscv32/mod.rs b/kernel/src/arch/riscv32/mod.rs similarity index 100% rename from src/arch/riscv32/mod.rs rename to kernel/src/arch/riscv32/mod.rs diff --git a/src/arch/riscv32/paging.rs b/kernel/src/arch/riscv32/paging.rs similarity index 100% rename from src/arch/riscv32/paging.rs rename to kernel/src/arch/riscv32/paging.rs diff --git a/src/arch/riscv32/serial.rs b/kernel/src/arch/riscv32/serial.rs similarity index 100% rename from src/arch/riscv32/serial.rs rename to kernel/src/arch/riscv32/serial.rs diff --git a/src/arch/riscv32/timer.rs b/kernel/src/arch/riscv32/timer.rs similarity index 100% rename from src/arch/riscv32/timer.rs rename to kernel/src/arch/riscv32/timer.rs diff --git a/src/arch/x86_64/boot/boot.asm b/kernel/src/arch/x86_64/boot/boot.asm similarity index 100% rename from src/arch/x86_64/boot/boot.asm rename to kernel/src/arch/x86_64/boot/boot.asm diff --git a/src/arch/x86_64/boot/entryother.asm b/kernel/src/arch/x86_64/boot/entryother.asm similarity index 100% rename from src/arch/x86_64/boot/entryother.asm rename to kernel/src/arch/x86_64/boot/entryother.asm diff --git a/src/arch/x86_64/boot/grub.cfg b/kernel/src/arch/x86_64/boot/grub.cfg similarity index 100% rename from src/arch/x86_64/boot/grub.cfg rename to kernel/src/arch/x86_64/boot/grub.cfg diff --git a/src/arch/x86_64/boot/linker.ld b/kernel/src/arch/x86_64/boot/linker.ld similarity index 100% rename from src/arch/x86_64/boot/linker.ld rename to kernel/src/arch/x86_64/boot/linker.ld diff --git a/src/arch/x86_64/boot/long_mode_init.asm b/kernel/src/arch/x86_64/boot/long_mode_init.asm similarity index 100% rename from src/arch/x86_64/boot/long_mode_init.asm rename to kernel/src/arch/x86_64/boot/long_mode_init.asm diff --git a/src/arch/x86_64/boot/multiboot_header.asm b/kernel/src/arch/x86_64/boot/multiboot_header.asm similarity index 100% rename from src/arch/x86_64/boot/multiboot_header.asm rename to kernel/src/arch/x86_64/boot/multiboot_header.asm diff --git a/src/arch/x86_64/boot/trap.asm b/kernel/src/arch/x86_64/boot/trap.asm similarity index 100% rename from src/arch/x86_64/boot/trap.asm rename to kernel/src/arch/x86_64/boot/trap.asm diff --git a/kernel/src/arch/x86_64/boot/vector.asm b/kernel/src/arch/x86_64/boot/vector.asm new file mode 100644 index 0000000..6ae8219 --- /dev/null +++ b/kernel/src/arch/x86_64/boot/vector.asm @@ -0,0 +1,1280 @@ +# generated by build.rs - do not edit +section .text +extern __alltraps +vector0: + push 0 + push 0 + jmp __alltraps +vector1: + push 0 + push 1 + jmp __alltraps +vector2: + push 0 + push 2 + jmp __alltraps +vector3: + push 0 + push 3 + jmp __alltraps +vector4: + push 0 + push 4 + jmp __alltraps +vector5: + push 0 + push 5 + jmp __alltraps +vector6: + push 0 + push 6 + jmp __alltraps +vector7: + push 0 + push 7 + jmp __alltraps +vector8: + push 8 + jmp __alltraps +vector9: + push 0 + push 9 + jmp __alltraps +vector10: + push 10 + jmp __alltraps +vector11: + push 11 + jmp __alltraps +vector12: + push 12 + jmp __alltraps +vector13: + push 13 + jmp __alltraps +vector14: + push 14 + jmp __alltraps +vector15: + push 0 + push 15 + jmp __alltraps +vector16: + push 0 + push 16 + jmp __alltraps +vector17: + push 17 + jmp __alltraps +vector18: + push 0 + push 18 + jmp __alltraps +vector19: + push 0 + push 19 + jmp __alltraps +vector20: + push 0 + push 20 + jmp __alltraps +vector21: + push 0 + push 21 + jmp __alltraps +vector22: + push 0 + push 22 + jmp __alltraps +vector23: + push 0 + push 23 + jmp __alltraps +vector24: + push 0 + push 24 + jmp __alltraps +vector25: + push 0 + push 25 + jmp __alltraps +vector26: + push 0 + push 26 + jmp __alltraps +vector27: + push 0 + push 27 + jmp __alltraps +vector28: + push 0 + push 28 + jmp __alltraps +vector29: + push 0 + push 29 + jmp __alltraps +vector30: + push 0 + push 30 + jmp __alltraps +vector31: + push 0 + push 31 + jmp __alltraps +vector32: + push 0 + push 32 + jmp __alltraps +vector33: + push 0 + push 33 + jmp __alltraps +vector34: + push 0 + push 34 + jmp __alltraps +vector35: + push 0 + push 35 + jmp __alltraps +vector36: + push 0 + push 36 + jmp __alltraps +vector37: + push 0 + push 37 + jmp __alltraps +vector38: + push 0 + push 38 + jmp __alltraps +vector39: + push 0 + push 39 + jmp __alltraps +vector40: + push 0 + push 40 + jmp __alltraps +vector41: + push 0 + push 41 + jmp __alltraps +vector42: + push 0 + push 42 + jmp __alltraps +vector43: + push 0 + push 43 + jmp __alltraps +vector44: + push 0 + push 44 + jmp __alltraps +vector45: + push 0 + push 45 + jmp __alltraps +vector46: + push 0 + push 46 + jmp __alltraps +vector47: + push 0 + push 47 + jmp __alltraps +vector48: + push 0 + push 48 + jmp __alltraps +vector49: + push 0 + push 49 + jmp __alltraps +vector50: + push 0 + push 50 + jmp __alltraps +vector51: + push 0 + push 51 + jmp __alltraps +vector52: + push 0 + push 52 + jmp __alltraps +vector53: + push 0 + push 53 + jmp __alltraps +vector54: + push 0 + push 54 + jmp __alltraps +vector55: + push 0 + push 55 + jmp __alltraps +vector56: + push 0 + push 56 + jmp __alltraps +vector57: + push 0 + push 57 + jmp __alltraps +vector58: + push 0 + push 58 + jmp __alltraps +vector59: + push 0 + push 59 + jmp __alltraps +vector60: + push 0 + push 60 + jmp __alltraps +vector61: + push 0 + push 61 + jmp __alltraps +vector62: + push 0 + push 62 + jmp __alltraps +vector63: + push 0 + push 63 + jmp __alltraps +vector64: + push 0 + push 64 + jmp __alltraps +vector65: + push 0 + push 65 + jmp __alltraps +vector66: + push 0 + push 66 + jmp __alltraps +vector67: + push 0 + push 67 + jmp __alltraps +vector68: + push 0 + push 68 + jmp __alltraps +vector69: + push 0 + push 69 + jmp __alltraps +vector70: + push 0 + push 70 + jmp __alltraps +vector71: + push 0 + push 71 + jmp __alltraps +vector72: + push 0 + push 72 + jmp __alltraps +vector73: + push 0 + push 73 + jmp __alltraps +vector74: + push 0 + push 74 + jmp __alltraps +vector75: + push 0 + push 75 + jmp __alltraps +vector76: + push 0 + push 76 + jmp __alltraps +vector77: + push 0 + push 77 + jmp __alltraps +vector78: + push 0 + push 78 + jmp __alltraps +vector79: + push 0 + push 79 + jmp __alltraps +vector80: + push 0 + push 80 + jmp __alltraps +vector81: + push 0 + push 81 + jmp __alltraps +vector82: + push 0 + push 82 + jmp __alltraps +vector83: + push 0 + push 83 + jmp __alltraps +vector84: + push 0 + push 84 + jmp __alltraps +vector85: + push 0 + push 85 + jmp __alltraps +vector86: + push 0 + push 86 + jmp __alltraps +vector87: + push 0 + push 87 + jmp __alltraps +vector88: + push 0 + push 88 + jmp __alltraps +vector89: + push 0 + push 89 + jmp __alltraps +vector90: + push 0 + push 90 + jmp __alltraps +vector91: + push 0 + push 91 + jmp __alltraps +vector92: + push 0 + push 92 + jmp __alltraps +vector93: + push 0 + push 93 + jmp __alltraps +vector94: + push 0 + push 94 + jmp __alltraps +vector95: + push 0 + push 95 + jmp __alltraps +vector96: + push 0 + push 96 + jmp __alltraps +vector97: + push 0 + push 97 + jmp __alltraps +vector98: + push 0 + push 98 + jmp __alltraps +vector99: + push 0 + push 99 + jmp __alltraps +vector100: + push 0 + push 100 + jmp __alltraps +vector101: + push 0 + push 101 + jmp __alltraps +vector102: + push 0 + push 102 + jmp __alltraps +vector103: + push 0 + push 103 + jmp __alltraps +vector104: + push 0 + push 104 + jmp __alltraps +vector105: + push 0 + push 105 + jmp __alltraps +vector106: + push 0 + push 106 + jmp __alltraps +vector107: + push 0 + push 107 + jmp __alltraps +vector108: + push 0 + push 108 + jmp __alltraps +vector109: + push 0 + push 109 + jmp __alltraps +vector110: + push 0 + push 110 + jmp __alltraps +vector111: + push 0 + push 111 + jmp __alltraps +vector112: + push 0 + push 112 + jmp __alltraps +vector113: + push 0 + push 113 + jmp __alltraps +vector114: + push 0 + push 114 + jmp __alltraps +vector115: + push 0 + push 115 + jmp __alltraps +vector116: + push 0 + push 116 + jmp __alltraps +vector117: + push 0 + push 117 + jmp __alltraps +vector118: + push 0 + push 118 + jmp __alltraps +vector119: + push 0 + push 119 + jmp __alltraps +vector120: + push 0 + push 120 + jmp __alltraps +vector121: + push 0 + push 121 + jmp __alltraps +vector122: + push 0 + push 122 + jmp __alltraps +vector123: + push 0 + push 123 + jmp __alltraps +vector124: + push 0 + push 124 + jmp __alltraps +vector125: + push 0 + push 125 + jmp __alltraps +vector126: + push 0 + push 126 + jmp __alltraps +vector127: + push 0 + push 127 + jmp __alltraps +vector128: + push 0 + push 128 + jmp __alltraps +vector129: + push 0 + push 129 + jmp __alltraps +vector130: + push 0 + push 130 + jmp __alltraps +vector131: + push 0 + push 131 + jmp __alltraps +vector132: + push 0 + push 132 + jmp __alltraps +vector133: + push 0 + push 133 + jmp __alltraps +vector134: + push 0 + push 134 + jmp __alltraps +vector135: + push 0 + push 135 + jmp __alltraps +vector136: + push 0 + push 136 + jmp __alltraps +vector137: + push 0 + push 137 + jmp __alltraps +vector138: + push 0 + push 138 + jmp __alltraps +vector139: + push 0 + push 139 + jmp __alltraps +vector140: + push 0 + push 140 + jmp __alltraps +vector141: + push 0 + push 141 + jmp __alltraps +vector142: + push 0 + push 142 + jmp __alltraps +vector143: + push 0 + push 143 + jmp __alltraps +vector144: + push 0 + push 144 + jmp __alltraps +vector145: + push 0 + push 145 + jmp __alltraps +vector146: + push 0 + push 146 + jmp __alltraps +vector147: + push 0 + push 147 + jmp __alltraps +vector148: + push 0 + push 148 + jmp __alltraps +vector149: + push 0 + push 149 + jmp __alltraps +vector150: + push 0 + push 150 + jmp __alltraps +vector151: + push 0 + push 151 + jmp __alltraps +vector152: + push 0 + push 152 + jmp __alltraps +vector153: + push 0 + push 153 + jmp __alltraps +vector154: + push 0 + push 154 + jmp __alltraps +vector155: + push 0 + push 155 + jmp __alltraps +vector156: + push 0 + push 156 + jmp __alltraps +vector157: + push 0 + push 157 + jmp __alltraps +vector158: + push 0 + push 158 + jmp __alltraps +vector159: + push 0 + push 159 + jmp __alltraps +vector160: + push 0 + push 160 + jmp __alltraps +vector161: + push 0 + push 161 + jmp __alltraps +vector162: + push 0 + push 162 + jmp __alltraps +vector163: + push 0 + push 163 + jmp __alltraps +vector164: + push 0 + push 164 + jmp __alltraps +vector165: + push 0 + push 165 + jmp __alltraps +vector166: + push 0 + push 166 + jmp __alltraps +vector167: + push 0 + push 167 + jmp __alltraps +vector168: + push 0 + push 168 + jmp __alltraps +vector169: + push 0 + push 169 + jmp __alltraps +vector170: + push 0 + push 170 + jmp __alltraps +vector171: + push 0 + push 171 + jmp __alltraps +vector172: + push 0 + push 172 + jmp __alltraps +vector173: + push 0 + push 173 + jmp __alltraps +vector174: + push 0 + push 174 + jmp __alltraps +vector175: + push 0 + push 175 + jmp __alltraps +vector176: + push 0 + push 176 + jmp __alltraps +vector177: + push 0 + push 177 + jmp __alltraps +vector178: + push 0 + push 178 + jmp __alltraps +vector179: + push 0 + push 179 + jmp __alltraps +vector180: + push 0 + push 180 + jmp __alltraps +vector181: + push 0 + push 181 + jmp __alltraps +vector182: + push 0 + push 182 + jmp __alltraps +vector183: + push 0 + push 183 + jmp __alltraps +vector184: + push 0 + push 184 + jmp __alltraps +vector185: + push 0 + push 185 + jmp __alltraps +vector186: + push 0 + push 186 + jmp __alltraps +vector187: + push 0 + push 187 + jmp __alltraps +vector188: + push 0 + push 188 + jmp __alltraps +vector189: + push 0 + push 189 + jmp __alltraps +vector190: + push 0 + push 190 + jmp __alltraps +vector191: + push 0 + push 191 + jmp __alltraps +vector192: + push 0 + push 192 + jmp __alltraps +vector193: + push 0 + push 193 + jmp __alltraps +vector194: + push 0 + push 194 + jmp __alltraps +vector195: + push 0 + push 195 + jmp __alltraps +vector196: + push 0 + push 196 + jmp __alltraps +vector197: + push 0 + push 197 + jmp __alltraps +vector198: + push 0 + push 198 + jmp __alltraps +vector199: + push 0 + push 199 + jmp __alltraps +vector200: + push 0 + push 200 + jmp __alltraps +vector201: + push 0 + push 201 + jmp __alltraps +vector202: + push 0 + push 202 + jmp __alltraps +vector203: + push 0 + push 203 + jmp __alltraps +vector204: + push 0 + push 204 + jmp __alltraps +vector205: + push 0 + push 205 + jmp __alltraps +vector206: + push 0 + push 206 + jmp __alltraps +vector207: + push 0 + push 207 + jmp __alltraps +vector208: + push 0 + push 208 + jmp __alltraps +vector209: + push 0 + push 209 + jmp __alltraps +vector210: + push 0 + push 210 + jmp __alltraps +vector211: + push 0 + push 211 + jmp __alltraps +vector212: + push 0 + push 212 + jmp __alltraps +vector213: + push 0 + push 213 + jmp __alltraps +vector214: + push 0 + push 214 + jmp __alltraps +vector215: + push 0 + push 215 + jmp __alltraps +vector216: + push 0 + push 216 + jmp __alltraps +vector217: + push 0 + push 217 + jmp __alltraps +vector218: + push 0 + push 218 + jmp __alltraps +vector219: + push 0 + push 219 + jmp __alltraps +vector220: + push 0 + push 220 + jmp __alltraps +vector221: + push 0 + push 221 + jmp __alltraps +vector222: + push 0 + push 222 + jmp __alltraps +vector223: + push 0 + push 223 + jmp __alltraps +vector224: + push 0 + push 224 + jmp __alltraps +vector225: + push 0 + push 225 + jmp __alltraps +vector226: + push 0 + push 226 + jmp __alltraps +vector227: + push 0 + push 227 + jmp __alltraps +vector228: + push 0 + push 228 + jmp __alltraps +vector229: + push 0 + push 229 + jmp __alltraps +vector230: + push 0 + push 230 + jmp __alltraps +vector231: + push 0 + push 231 + jmp __alltraps +vector232: + push 0 + push 232 + jmp __alltraps +vector233: + push 0 + push 233 + jmp __alltraps +vector234: + push 0 + push 234 + jmp __alltraps +vector235: + push 0 + push 235 + jmp __alltraps +vector236: + push 0 + push 236 + jmp __alltraps +vector237: + push 0 + push 237 + jmp __alltraps +vector238: + push 0 + push 238 + jmp __alltraps +vector239: + push 0 + push 239 + jmp __alltraps +vector240: + push 0 + push 240 + jmp __alltraps +vector241: + push 0 + push 241 + jmp __alltraps +vector242: + push 0 + push 242 + jmp __alltraps +vector243: + push 0 + push 243 + jmp __alltraps +vector244: + push 0 + push 244 + jmp __alltraps +vector245: + push 0 + push 245 + jmp __alltraps +vector246: + push 0 + push 246 + jmp __alltraps +vector247: + push 0 + push 247 + jmp __alltraps +vector248: + push 0 + push 248 + jmp __alltraps +vector249: + push 0 + push 249 + jmp __alltraps +vector250: + push 0 + push 250 + jmp __alltraps +vector251: + push 0 + push 251 + jmp __alltraps +vector252: + push 0 + push 252 + jmp __alltraps +vector253: + push 0 + push 253 + jmp __alltraps +vector254: + push 0 + push 254 + jmp __alltraps +vector255: + push 0 + push 255 + jmp __alltraps + +section .rodata +global __vectors +__vectors: + dq vector0 + dq vector1 + dq vector2 + dq vector3 + dq vector4 + dq vector5 + dq vector6 + dq vector7 + dq vector8 + dq vector9 + dq vector10 + dq vector11 + dq vector12 + dq vector13 + dq vector14 + dq vector15 + dq vector16 + dq vector17 + dq vector18 + dq vector19 + dq vector20 + dq vector21 + dq vector22 + dq vector23 + dq vector24 + dq vector25 + dq vector26 + dq vector27 + dq vector28 + dq vector29 + dq vector30 + dq vector31 + dq vector32 + dq vector33 + dq vector34 + dq vector35 + dq vector36 + dq vector37 + dq vector38 + dq vector39 + dq vector40 + dq vector41 + dq vector42 + dq vector43 + dq vector44 + dq vector45 + dq vector46 + dq vector47 + dq vector48 + dq vector49 + dq vector50 + dq vector51 + dq vector52 + dq vector53 + dq vector54 + dq vector55 + dq vector56 + dq vector57 + dq vector58 + dq vector59 + dq vector60 + dq vector61 + dq vector62 + dq vector63 + dq vector64 + dq vector65 + dq vector66 + dq vector67 + dq vector68 + dq vector69 + dq vector70 + dq vector71 + dq vector72 + dq vector73 + dq vector74 + dq vector75 + dq vector76 + dq vector77 + dq vector78 + dq vector79 + dq vector80 + dq vector81 + dq vector82 + dq vector83 + dq vector84 + dq vector85 + dq vector86 + dq vector87 + dq vector88 + dq vector89 + dq vector90 + dq vector91 + dq vector92 + dq vector93 + dq vector94 + dq vector95 + dq vector96 + dq vector97 + dq vector98 + dq vector99 + dq vector100 + dq vector101 + dq vector102 + dq vector103 + dq vector104 + dq vector105 + dq vector106 + dq vector107 + dq vector108 + dq vector109 + dq vector110 + dq vector111 + dq vector112 + dq vector113 + dq vector114 + dq vector115 + dq vector116 + dq vector117 + dq vector118 + dq vector119 + dq vector120 + dq vector121 + dq vector122 + dq vector123 + dq vector124 + dq vector125 + dq vector126 + dq vector127 + dq vector128 + dq vector129 + dq vector130 + dq vector131 + dq vector132 + dq vector133 + dq vector134 + dq vector135 + dq vector136 + dq vector137 + dq vector138 + dq vector139 + dq vector140 + dq vector141 + dq vector142 + dq vector143 + dq vector144 + dq vector145 + dq vector146 + dq vector147 + dq vector148 + dq vector149 + dq vector150 + dq vector151 + dq vector152 + dq vector153 + dq vector154 + dq vector155 + dq vector156 + dq vector157 + dq vector158 + dq vector159 + dq vector160 + dq vector161 + dq vector162 + dq vector163 + dq vector164 + dq vector165 + dq vector166 + dq vector167 + dq vector168 + dq vector169 + dq vector170 + dq vector171 + dq vector172 + dq vector173 + dq vector174 + dq vector175 + dq vector176 + dq vector177 + dq vector178 + dq vector179 + dq vector180 + dq vector181 + dq vector182 + dq vector183 + dq vector184 + dq vector185 + dq vector186 + dq vector187 + dq vector188 + dq vector189 + dq vector190 + dq vector191 + dq vector192 + dq vector193 + dq vector194 + dq vector195 + dq vector196 + dq vector197 + dq vector198 + dq vector199 + dq vector200 + dq vector201 + dq vector202 + dq vector203 + dq vector204 + dq vector205 + dq vector206 + dq vector207 + dq vector208 + dq vector209 + dq vector210 + dq vector211 + dq vector212 + dq vector213 + dq vector214 + dq vector215 + dq vector216 + dq vector217 + dq vector218 + dq vector219 + dq vector220 + dq vector221 + dq vector222 + dq vector223 + dq vector224 + dq vector225 + dq vector226 + dq vector227 + dq vector228 + dq vector229 + dq vector230 + dq vector231 + dq vector232 + dq vector233 + dq vector234 + dq vector235 + dq vector236 + dq vector237 + dq vector238 + dq vector239 + dq vector240 + dq vector241 + dq vector242 + dq vector243 + dq vector244 + dq vector245 + dq vector246 + dq vector247 + dq vector248 + dq vector249 + dq vector250 + dq vector251 + dq vector252 + dq vector253 + dq vector254 + dq vector255 diff --git a/src/arch/x86_64/cpu.rs b/kernel/src/arch/x86_64/cpu.rs similarity index 100% rename from src/arch/x86_64/cpu.rs rename to kernel/src/arch/x86_64/cpu.rs diff --git a/src/arch/x86_64/driver/acpi/mod.rs b/kernel/src/arch/x86_64/driver/acpi/mod.rs similarity index 100% rename from src/arch/x86_64/driver/acpi/mod.rs rename to kernel/src/arch/x86_64/driver/acpi/mod.rs diff --git a/src/arch/x86_64/driver/acpi/structs.rs b/kernel/src/arch/x86_64/driver/acpi/structs.rs similarity index 100% rename from src/arch/x86_64/driver/acpi/structs.rs rename to kernel/src/arch/x86_64/driver/acpi/structs.rs diff --git a/src/arch/x86_64/driver/apic/ioapic.rs b/kernel/src/arch/x86_64/driver/apic/ioapic.rs similarity index 100% rename from src/arch/x86_64/driver/apic/ioapic.rs rename to kernel/src/arch/x86_64/driver/apic/ioapic.rs diff --git a/src/arch/x86_64/driver/apic/lapic.c b/kernel/src/arch/x86_64/driver/apic/lapic.c similarity index 100% rename from src/arch/x86_64/driver/apic/lapic.c rename to kernel/src/arch/x86_64/driver/apic/lapic.c diff --git a/src/arch/x86_64/driver/apic/lapic.rs b/kernel/src/arch/x86_64/driver/apic/lapic.rs similarity index 100% rename from src/arch/x86_64/driver/apic/lapic.rs rename to kernel/src/arch/x86_64/driver/apic/lapic.rs diff --git a/src/arch/x86_64/driver/apic/local_apic.rs b/kernel/src/arch/x86_64/driver/apic/local_apic.rs similarity index 100% rename from src/arch/x86_64/driver/apic/local_apic.rs rename to kernel/src/arch/x86_64/driver/apic/local_apic.rs diff --git a/src/arch/x86_64/driver/apic/mod.rs b/kernel/src/arch/x86_64/driver/apic/mod.rs similarity index 100% rename from src/arch/x86_64/driver/apic/mod.rs rename to kernel/src/arch/x86_64/driver/apic/mod.rs diff --git a/src/arch/x86_64/driver/ide.rs b/kernel/src/arch/x86_64/driver/ide.rs similarity index 100% rename from src/arch/x86_64/driver/ide.rs rename to kernel/src/arch/x86_64/driver/ide.rs diff --git a/src/arch/x86_64/driver/keyboard/keyboard.c b/kernel/src/arch/x86_64/driver/keyboard/keyboard.c similarity index 100% rename from src/arch/x86_64/driver/keyboard/keyboard.c rename to kernel/src/arch/x86_64/driver/keyboard/keyboard.c diff --git a/src/arch/x86_64/driver/keyboard/mod.rs b/kernel/src/arch/x86_64/driver/keyboard/mod.rs similarity index 100% rename from src/arch/x86_64/driver/keyboard/mod.rs rename to kernel/src/arch/x86_64/driver/keyboard/mod.rs diff --git a/src/arch/x86_64/driver/mod.rs b/kernel/src/arch/x86_64/driver/mod.rs similarity index 100% rename from src/arch/x86_64/driver/mod.rs rename to kernel/src/arch/x86_64/driver/mod.rs diff --git a/src/arch/x86_64/driver/mp/mod.rs b/kernel/src/arch/x86_64/driver/mp/mod.rs similarity index 100% rename from src/arch/x86_64/driver/mp/mod.rs rename to kernel/src/arch/x86_64/driver/mp/mod.rs diff --git a/src/arch/x86_64/driver/mp/structs.rs b/kernel/src/arch/x86_64/driver/mp/structs.rs similarity index 100% rename from src/arch/x86_64/driver/mp/structs.rs rename to kernel/src/arch/x86_64/driver/mp/structs.rs diff --git a/src/arch/x86_64/driver/pic.rs b/kernel/src/arch/x86_64/driver/pic.rs similarity index 100% rename from src/arch/x86_64/driver/pic.rs rename to kernel/src/arch/x86_64/driver/pic.rs diff --git a/src/arch/x86_64/driver/pit.rs b/kernel/src/arch/x86_64/driver/pit.rs similarity index 100% rename from src/arch/x86_64/driver/pit.rs rename to kernel/src/arch/x86_64/driver/pit.rs diff --git a/src/arch/x86_64/driver/serial.rs b/kernel/src/arch/x86_64/driver/serial.rs similarity index 100% rename from src/arch/x86_64/driver/serial.rs rename to kernel/src/arch/x86_64/driver/serial.rs diff --git a/src/arch/x86_64/driver/vga.rs b/kernel/src/arch/x86_64/driver/vga.rs similarity index 100% rename from src/arch/x86_64/driver/vga.rs rename to kernel/src/arch/x86_64/driver/vga.rs diff --git a/src/arch/x86_64/gdt.rs b/kernel/src/arch/x86_64/gdt.rs similarity index 100% rename from src/arch/x86_64/gdt.rs rename to kernel/src/arch/x86_64/gdt.rs diff --git a/src/arch/x86_64/idt.rs b/kernel/src/arch/x86_64/idt.rs similarity index 100% rename from src/arch/x86_64/idt.rs rename to kernel/src/arch/x86_64/idt.rs diff --git a/src/arch/x86_64/interrupt/consts.rs b/kernel/src/arch/x86_64/interrupt/consts.rs similarity index 100% rename from src/arch/x86_64/interrupt/consts.rs rename to kernel/src/arch/x86_64/interrupt/consts.rs diff --git a/src/arch/x86_64/interrupt/handler.rs b/kernel/src/arch/x86_64/interrupt/handler.rs similarity index 100% rename from src/arch/x86_64/interrupt/handler.rs rename to kernel/src/arch/x86_64/interrupt/handler.rs diff --git a/src/arch/x86_64/interrupt/mod.rs b/kernel/src/arch/x86_64/interrupt/mod.rs similarity index 100% rename from src/arch/x86_64/interrupt/mod.rs rename to kernel/src/arch/x86_64/interrupt/mod.rs diff --git a/src/arch/x86_64/interrupt/trapframe.rs b/kernel/src/arch/x86_64/interrupt/trapframe.rs similarity index 100% rename from src/arch/x86_64/interrupt/trapframe.rs rename to kernel/src/arch/x86_64/interrupt/trapframe.rs diff --git a/src/arch/x86_64/memory.rs b/kernel/src/arch/x86_64/memory.rs similarity index 100% rename from src/arch/x86_64/memory.rs rename to kernel/src/arch/x86_64/memory.rs diff --git a/src/arch/x86_64/mod.rs b/kernel/src/arch/x86_64/mod.rs similarity index 100% rename from src/arch/x86_64/mod.rs rename to kernel/src/arch/x86_64/mod.rs diff --git a/src/arch/x86_64/paging.rs b/kernel/src/arch/x86_64/paging.rs similarity index 100% rename from src/arch/x86_64/paging.rs rename to kernel/src/arch/x86_64/paging.rs diff --git a/src/arch/x86_64/smp.rs b/kernel/src/arch/x86_64/smp.rs similarity index 100% rename from src/arch/x86_64/smp.rs rename to kernel/src/arch/x86_64/smp.rs diff --git a/src/consts.rs b/kernel/src/consts.rs similarity index 100% rename from src/consts.rs rename to kernel/src/consts.rs diff --git a/src/fs.rs b/kernel/src/fs.rs similarity index 100% rename from src/fs.rs rename to kernel/src/fs.rs diff --git a/src/lang.rs b/kernel/src/lang.rs similarity index 100% rename from src/lang.rs rename to kernel/src/lang.rs diff --git a/src/lib.rs b/kernel/src/lib.rs similarity index 100% rename from src/lib.rs rename to kernel/src/lib.rs diff --git a/src/logging.rs b/kernel/src/logging.rs similarity index 100% rename from src/logging.rs rename to kernel/src/logging.rs diff --git a/src/memory.rs b/kernel/src/memory.rs similarity index 100% rename from src/memory.rs rename to kernel/src/memory.rs diff --git a/src/process/mod.rs b/kernel/src/process/mod.rs similarity index 100% rename from src/process/mod.rs rename to kernel/src/process/mod.rs diff --git a/src/process/process.rs b/kernel/src/process/process.rs similarity index 100% rename from src/process/process.rs rename to kernel/src/process/process.rs diff --git a/src/process/processor.rs b/kernel/src/process/processor.rs similarity index 100% rename from src/process/processor.rs rename to kernel/src/process/processor.rs diff --git a/src/process/scheduler.rs b/kernel/src/process/scheduler.rs similarity index 100% rename from src/process/scheduler.rs rename to kernel/src/process/scheduler.rs diff --git a/src/sync/condvar.rs b/kernel/src/sync/condvar.rs similarity index 100% rename from src/sync/condvar.rs rename to kernel/src/sync/condvar.rs diff --git a/src/sync/mod.rs b/kernel/src/sync/mod.rs similarity index 100% rename from src/sync/mod.rs rename to kernel/src/sync/mod.rs diff --git a/src/sync/mpsc.rs b/kernel/src/sync/mpsc.rs similarity index 100% rename from src/sync/mpsc.rs rename to kernel/src/sync/mpsc.rs diff --git a/src/sync/mutex.rs b/kernel/src/sync/mutex.rs similarity index 100% rename from src/sync/mutex.rs rename to kernel/src/sync/mutex.rs diff --git a/src/sync/semaphore.rs b/kernel/src/sync/semaphore.rs similarity index 100% rename from src/sync/semaphore.rs rename to kernel/src/sync/semaphore.rs diff --git a/src/sync/test.rs b/kernel/src/sync/test.rs similarity index 100% rename from src/sync/test.rs rename to kernel/src/sync/test.rs diff --git a/src/syscall.rs b/kernel/src/syscall.rs similarity index 100% rename from src/syscall.rs rename to kernel/src/syscall.rs diff --git a/src/thread.rs b/kernel/src/thread.rs similarity index 100% rename from src/thread.rs rename to kernel/src/thread.rs diff --git a/src/trap.rs b/kernel/src/trap.rs similarity index 100% rename from src/trap.rs rename to kernel/src/trap.rs diff --git a/src/util.rs b/kernel/src/util.rs similarity index 100% rename from src/util.rs rename to kernel/src/util.rs diff --git a/x86_64-blog_os.json b/kernel/x86_64-blog_os.json similarity index 100% rename from x86_64-blog_os.json rename to kernel/x86_64-blog_os.json