티스토리 뷰
xv6에서 시스템 콜을 추가하는 방법은 생각보다 간단합니다.
밑의 파일들을 보고 추가하려는 system call을 유사하게 설정하면 되기 때문입니다.
일단 봐야 할 부분은
sysproc.c
syscall.c
syscall.h
usys.S
user.h
입니다.
1. sysproc.c
system call 함수들이 구현되어 있는 파일로 추가하려는 함수를 해당 형식에 맞게 구현하면 됩니다.
형식은 밑의 코드와 같습니다.
int
sys_OOO(void){
//동작하고 싶은 코드
}
2. syscall.c
추가하려는 system call을 기존의 system call함수 밑에 똑같은 형식으로 작성해줍니다.
3. syscall.h
syscall.h에서는 system call을 번호와 매핑해주는 공간입니다. 추가하려는 system call을 넣고 번호를 뒤이어서 설정합니다.
4.usys.S
system call 리스트입니다. 비슷한 형식으로 추가하면 됩니다.
5. user.h
system call함수들이 선언되어 있는 파일로 추가할 system call을 선언하면 됩니다.
+) proc.c
사실 proc.c는 수정을 하지 않아도 되는 부분이지만 proc.c에는 여러 함수 뿐만 아니라 프로세스에 대한 구조체도 정의되어 있기에 살펴보는 것을 추천합니다.
'CS > OS' 카테고리의 다른 글
[OS] Operating System이란? 下 (0) | 2022.10.11 |
---|---|
[OS] Operating System이란? 上 (0) | 2022.10.10 |
[OS] process란? (1) | 2022.09.23 |
[OS] OS structure 운영체제 구조 (0) | 2022.09.13 |
[Ubuntu] virtual box에서 ubuntu 설치 시 주의사항 (0) | 2022.09.07 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- ubuntu
- 영어끝말잇기
- 이진변환반복하기
- 시스템콜
- 프로그래머스
- qemu
- PasswordEncoder
- Android
- PostgreSQL
- 머신러닝
- dp
- xv6
- 뉴스클러스터링
- springboot
- 우분투설치
- Auditing
- OS
- 프리티어
- 실패율
- 다음큰숫자
- RDS
- 백준
- 최고의집합
- 운영체제
- interrupt
- 응답코드
- 최솟값구하기
- 괄호회전하기
- 정수삼각형
- AWS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함