운영체제(os) Geek os project1
*세*
다운로드
장바구니
소개글
1. 목표ELF 포맷의 실행 파일을 해석하고 이에 대한 파싱 기능(Parse_ELF_Executable())을 구현한다.
2. 구현 내용
Parse_ELF_Executable() 함수 구현
(과제1) 위의 "elf.c" 소스 코드는 Parse_ELF_Excutable();함수를 간략하게 구현한 것으로 이를 참고하여 "src/user/a.c"코드가 정상적으로 수행되도록 elf.c의 Parse_ELF_Excutable()함수 수정
(과제2) “a.c"와 유사한 응용 프로그램을 작성하고, objdump를 수행하여 덤프된 메모리 내용을 캡쳐하고 메모리 맵을 도시화한후 설명(elf 분석)
목차
- 문 제- 소스코드
- 스크린샷
본문내용
. "src/geekos/elf.c" 소스 코드 일부int Parse_ELF_Executable(char *exeFileData, ulong_t exeFileLength,
struct Exe_Format *exeFormat)
{
elfHeader *EH;
EH = (elfHeader *)exeFileData;
if(EH->version != 1)
{
return -1;
}
programHeader* PH;
PH = (programHeader *)(exeFileData + EH->phoff);
programHeader* PH2;
PH2 = (programHeader *)(exeFileData + EH->phoff + EH->phentsize);
exeFormat->numSegments = EXE_MAX_SEGMENTS;
exeFormat->entryAddr = EH->entry;
exeFormat->segmentList[0].offsetInFile = PH->offset;
exeFormat->segmentList[0].lengthInFile = PH->fileSize;
exeFormat->segmentList[0].startAddress = PH->vaddr;
exeFormat->segmentList[0].sizeInMemory = PH->memSize;
exeFormat->segmentList[0].protFlags = PH->flags;
참고 자료
없음압축파일 내 파일목록
Project1.hwp
project1/build/.bochsrc
project1/build/.bochsrc~
project1/build/bochs.out
project1/build/common/.ignore
project1/build/common/fmtout.o
project1/build/common/memmove.o
project1/build/common/string.o
project1/build/depend.mak
project1/build/diskc.img
project1/build/fd.img
project1/build/geekos/.ignore
project1/build/geekos/bget.o
project1/build/geekos/bitset.o
project1/build/geekos/blockdev.o
project1/build/geekos/crc32.o
project1/build/geekos/dma.o
project1/build/geekos/elf.o
project1/build/geekos/fd_boot.bin
project1/build/geekos/floppy.o
project1/build/geekos/gdt.o
project1/build/geekos/ide.o
project1/build/geekos/idt.o
project1/build/geekos/int.o
project1/build/geekos/io.o
project1/build/geekos/irq.o
project1/build/geekos/kernel.bin
project1/build/geekos/kernel.exe
project1/build/geekos/kernel.syms
project1/build/geekos/keyboard.o
project1/build/geekos/kthread.o
project1/build/geekos/lowlevel.o
project1/build/geekos/lprog.o
project1/build/geekos/lspawn.o
project1/build/geekos/main.o
project1/build/geekos/malloc.o
project1/build/geekos/mem.o
project1/build/geekos/pfat.o
project1/build/geekos/screen.o
project1/build/geekos/segment.o
project1/build/geekos/setup.bin
project1/build/geekos/synch.o
project1/build/geekos/timer.o
project1/build/geekos/trap.o
project1/build/geekos/tss.o
project1/build/geekos/vfs.o
project1/build/libc/.ignore
project1/build/libc/conio.o
project1/build/libc/errno.c
project1/build/libc/errno.o
project1/build/libc/libc.a
project1/build/Makefile
project1/build/Makefile~
project1/build/tools/.ignore
project1/build/tools/builtFat.exe
project1/build/user/.ignore
project1/build/user/a.exe
project1/build/user/a.o
project1/COPYING
project1/include/geekos/argblock.h
project1/include/geekos/bget.h
project1/include/geekos/bitset.h
project1/include/geekos/blockdev.h
project1/include/geekos/bootinfo.h
project1/include/geekos/crc32.h
project1/include/geekos/defs.h
project1/include/geekos/dma.h
project1/include/geekos/elf.h
project1/include/geekos/errno.h
project1/include/geekos/fileio.h
project1/include/geekos/floppy.h
project1/include/geekos/fmtout.h
project1/include/geekos/gdt.h
project1/include/geekos/ide.h
project1/include/geekos/idt.h
project1/include/geekos/int.h
project1/include/geekos/io.h
project1/include/geekos/irq.h
project1/include/geekos/kassert.h
project1/include/geekos/keyboard.h
project1/include/geekos/kthread.h
project1/include/geekos/ktypes.h
project1/include/geekos/list.h
project1/include/geekos/malloc.h
project1/include/geekos/mem.h
project1/include/geekos/pfat.h
project1/include/geekos/range.h
project1/include/geekos/screen.h
project1/include/geekos/segment.h
project1/include/geekos/string.h
project1/include/geekos/symbol.h
project1/include/geekos/synch.h
project1/include/geekos/timer.h
project1/include/geekos/trap.h
project1/include/geekos/tss.h
project1/include/geekos/vfs.h
project1/include/libc/fmtout.h
project1/include/libc/string.h
project1/LICENSE-klibc
project1/scripts/eipToFunction
project1/scripts/findaddr
project1/scripts/generrs
project1/scripts/kerninfo
project1/scripts/mkcdisk
project1/scripts/mkuprog
project1/scripts/numsecs
project1/scripts/pad
project1/scripts/pcat
project1/scripts/pw
project1/scripts/scan
project1/scripts/zerofile
project1/src/common/fmtout.c
project1/src/common/memmove.c
project1/src/common/string.c
project1/src/geekos/bget.c
project1/src/geekos/bitset.c
project1/src/geekos/blockdev.c
project1/src/geekos/bootsect.asm
project1/src/geekos/crc32.c
project1/src/geekos/defs.asm
project1/src/geekos/depend.mak
project1/src/geekos/destroyThread
project1/src/geekos/dma.c
project1/src/geekos/elf.c
project1/src/geekos/elf.c~
project1/src/geekos/fd_boot.asm
project1/src/geekos/floppy.c
project1/src/geekos/gdt.c
project1/src/geekos/ide.c
project1/src/geekos/idt.c
project1/src/geekos/int.c
project1/src/geekos/io.c
project1/src/geekos/irq.c
project1/src/geekos/keyboard.c
project1/src/geekos/kthread.c
project1/src/geekos/lowlevel.asm
project1/src/geekos/lprog.c
project1/src/geekos/lprog.c~
project1/src/geekos/lspawn.asm
project1/src/geekos/main.c
project1/src/geekos/malloc.c
project1/src/geekos/mem.c
project1/src/geekos/pfat.c
project1/src/geekos/README.txt
project1/src/geekos/screen.c
project1/src/geekos/segment.c
project1/src/geekos/setup.asm
project1/src/geekos/symbol.asm
project1/src/geekos/synch.c
project1/src/geekos/timer.c
project1/src/geekos/trap.c
project1/src/geekos/tss.c
project1/src/geekos/user.c
project1/src/geekos/user.c~
project1/src/geekos/util.asm
project1/src/geekos/vfs.c
project1/src/libc/compat.c
project1/src/libc/conio.c
project1/src/libc/conio.c~
project1/src/libc/entry.c
project1/src/tools/buildFat.c
project1/src/tools/Makefile
project1/src/user/a.c
project1/src/user/a.c~
project1/src/user/test.c
project1/build/.bochsrc
project1/build/.bochsrc~
project1/build/bochs.out
project1/build/common/.ignore
project1/build/common/fmtout.o
project1/build/common/memmove.o
project1/build/common/string.o
project1/build/depend.mak
project1/build/diskc.img
project1/build/fd.img
project1/build/geekos/.ignore
project1/build/geekos/bget.o
project1/build/geekos/bitset.o
project1/build/geekos/blockdev.o
project1/build/geekos/crc32.o
project1/build/geekos/dma.o
project1/build/geekos/elf.o
project1/build/geekos/fd_boot.bin
project1/build/geekos/floppy.o
project1/build/geekos/gdt.o
project1/build/geekos/ide.o
project1/build/geekos/idt.o
project1/build/geekos/int.o
project1/build/geekos/io.o
project1/build/geekos/irq.o
project1/build/geekos/kernel.bin
project1/build/geekos/kernel.exe
project1/build/geekos/kernel.syms
project1/build/geekos/keyboard.o
project1/build/geekos/kthread.o
project1/build/geekos/lowlevel.o
project1/build/geekos/lprog.o
project1/build/geekos/lspawn.o
project1/build/geekos/main.o
project1/build/geekos/malloc.o
project1/build/geekos/mem.o
project1/build/geekos/pfat.o
project1/build/geekos/screen.o
project1/build/geekos/segment.o
project1/build/geekos/setup.bin
project1/build/geekos/synch.o
project1/build/geekos/timer.o
project1/build/geekos/trap.o
project1/build/geekos/tss.o
project1/build/geekos/vfs.o
project1/build/libc/.ignore
project1/build/libc/conio.o
project1/build/libc/errno.c
project1/build/libc/errno.o
project1/build/libc/libc.a
project1/build/Makefile
project1/build/Makefile~
project1/build/tools/.ignore
project1/build/tools/builtFat.exe
project1/build/user/.ignore
project1/build/user/a.exe
project1/build/user/a.o
project1/COPYING
project1/include/geekos/argblock.h
project1/include/geekos/bget.h
project1/include/geekos/bitset.h
project1/include/geekos/blockdev.h
project1/include/geekos/bootinfo.h
project1/include/geekos/crc32.h
project1/include/geekos/defs.h
project1/include/geekos/dma.h
project1/include/geekos/elf.h
project1/include/geekos/errno.h
project1/include/geekos/fileio.h
project1/include/geekos/floppy.h
project1/include/geekos/fmtout.h
project1/include/geekos/gdt.h
project1/include/geekos/ide.h
project1/include/geekos/idt.h
project1/include/geekos/int.h
project1/include/geekos/io.h
project1/include/geekos/irq.h
project1/include/geekos/kassert.h
project1/include/geekos/keyboard.h
project1/include/geekos/kthread.h
project1/include/geekos/ktypes.h
project1/include/geekos/list.h
project1/include/geekos/malloc.h
project1/include/geekos/mem.h
project1/include/geekos/pfat.h
project1/include/geekos/range.h
project1/include/geekos/screen.h
project1/include/geekos/segment.h
project1/include/geekos/string.h
project1/include/geekos/symbol.h
project1/include/geekos/synch.h
project1/include/geekos/timer.h
project1/include/geekos/trap.h
project1/include/geekos/tss.h
project1/include/geekos/vfs.h
project1/include/libc/fmtout.h
project1/include/libc/string.h
project1/LICENSE-klibc
project1/scripts/eipToFunction
project1/scripts/findaddr
project1/scripts/generrs
project1/scripts/kerninfo
project1/scripts/mkcdisk
project1/scripts/mkuprog
project1/scripts/numsecs
project1/scripts/pad
project1/scripts/pcat
project1/scripts/pw
project1/scripts/scan
project1/scripts/zerofile
project1/src/common/fmtout.c
project1/src/common/memmove.c
project1/src/common/string.c
project1/src/geekos/bget.c
project1/src/geekos/bitset.c
project1/src/geekos/blockdev.c
project1/src/geekos/bootsect.asm
project1/src/geekos/crc32.c
project1/src/geekos/defs.asm
project1/src/geekos/depend.mak
project1/src/geekos/destroyThread
project1/src/geekos/dma.c
project1/src/geekos/elf.c
project1/src/geekos/elf.c~
project1/src/geekos/fd_boot.asm
project1/src/geekos/floppy.c
project1/src/geekos/gdt.c
project1/src/geekos/ide.c
project1/src/geekos/idt.c
project1/src/geekos/int.c
project1/src/geekos/io.c
project1/src/geekos/irq.c
project1/src/geekos/keyboard.c
project1/src/geekos/kthread.c
project1/src/geekos/lowlevel.asm
project1/src/geekos/lprog.c
project1/src/geekos/lprog.c~
project1/src/geekos/lspawn.asm
project1/src/geekos/main.c
project1/src/geekos/malloc.c
project1/src/geekos/mem.c
project1/src/geekos/pfat.c
project1/src/geekos/README.txt
project1/src/geekos/screen.c
project1/src/geekos/segment.c
project1/src/geekos/setup.asm
project1/src/geekos/symbol.asm
project1/src/geekos/synch.c
project1/src/geekos/timer.c
project1/src/geekos/trap.c
project1/src/geekos/tss.c
project1/src/geekos/user.c
project1/src/geekos/user.c~
project1/src/geekos/util.asm
project1/src/geekos/vfs.c
project1/src/libc/compat.c
project1/src/libc/conio.c
project1/src/libc/conio.c~
project1/src/libc/entry.c
project1/src/tools/buildFat.c
project1/src/tools/Makefile
project1/src/user/a.c
project1/src/user/a.c~
project1/src/user/test.c