본문 바로가기

728x90
반응형

Operating System

(4)
[Operating System] xv6 시스템 콜 시스템 콜 == 시스템 호출 // 제가 글을 쓰다보니까 섞어서 썼더라고요.. 시스템 콜을 추가하는 방법은 크게 두가지 방법이 있습니다. 한가지는 새로운 파일을 만들어서 시스템 콜 내용을 구현하여 추가하는 방법. 다른 한가지는 기존 파일에 시스템 콜 내용을 구현하여 추가하는 방법. 기본적으로 알아두면 좋을 것들을 정리해봤습니다. user.h : xv6의 시스템 콜 정의 usys.S : xv6의 시스템 콜 리스트 syscall.h : 시스템 콜 번호 매핑 syscall.c : 시스템 호출 인수를 구문 분석하는 함수 및 실제 시스템 호출 구현에 대한 포인터 my_syscall 시스템 콜을 추가한다고 가정하겠습니다. ※ 주의할점은 기존에 존재하는 코드를 싹 지우는게 아니라 추가만 해주시면 됩니다. 1. 새로운 ..
[Operating System] xv6 파일 추가 terminal에서 vi list.txt 명령어를 실행한 뒤 내용을 채워넣었다고 가정합니다. list.txt 파일을 xv6에 추가해보겠습니다. [Makefile 수정] fs.img: mkfs README list.txt $(UPROGS) ./mkfs fs.img README list.txt $(UPROGS) PRINT = runoff.list runoff.spec README list.txt toc.hdr toc.ftr $(FILES) EXTRA=\ mkfs.c ulib.c user.h cat.c echo.c forktest.c grep.c kill.c\ ln.c ls.c mkdir.c rm.c stressfs.c usertests.c wc.c zombie.c\ printf.c umalloc.c hell..
[Operating System] xv6 쉘 명령어 추가 helloworld라는 쉘 명령어를 추가한다고 하겠습니다. [helloworld.c] #include "types.h" #include "stat.h" #include "user.h" int main(int argc, char **argv){ printf(1,"Hello World XV6\n"); exit(); } helloworld 명령어의 내용 추가 [Makefile 수정] UPROGS=\ _cat\ _echo\ _forktest\ _grep\ _init\ _kill\ _ln\ _ls\ _mkdir\ _rm\ _sh\ _stressfs\ _usertests\ _wc\ _zombie\ _helloworld\ EXTRA=\ mkfs.c ulib.c user.h cat.c echo.c forktest.c ..
[Operating System] xv6 설치 xv6는 미국 MIT에서 멀티프로세서 x86 및 RISC-V 시스템을 위해 개발한 교육용 운영체제로 UNIX V6를 ANSI C 기반으로 구현되었습니다. [xv6 설치] 저는 Ubuntu 18.04 배포판 환경에서 실행했습니다. https://github.com/mit-pdos/xv6-public GitHub - mit-pdos/xv6-public: xv6 OS xv6 OS. Contribute to mit-pdos/xv6-public development by creating an account on GitHub. github.com github의 code를 클론하고, make 명령을 실행합니다. 그러고 나서 make qemu 혹은 make qemu-nox를 하면 끝입니다. [결과 화면]

728x90
반응형