검색어 입력폼
평가점수C

[운영체제] Linux System Call 추가

등록일 2004.05.14 한글파일한글 (hwp) | 20페이지 | 가격 1,000원

목차

<문제의 이해>
1.문제
2.주요 개념 이해
1) Linux 커널 구조
2) 시스템 호출
3) 시스템 초기화 과정

<문제 해결 방법>
1. Linux 설치
1) VMware Workstation 설치
2) 와우 Linux 7.3 설치
2. 시스템 호출의 구현
1) 커널 수정 방법
2) 사용자 수준 응용 작성 방법

<문제 해결>
1. 커널 수정
1) 시스템 호출 번호 할당
2) 시스템 호출 테이블 등록
3) 시스템 호출 처리 함수 구현
2. 커널 컴파일 및 리부팅
1) 커널 구성
2) 커널 컴파일
3) 커널 인스톨
3. 시스템 호출을 사용하는 프로그램 작성
4. 사용자 수준 프로그램 실행
5. 참고 및 인용된 서적

본문내용

시스템 호출 처리 함수 구현
usr/src/linux-2.4.18-4/kernel/test_syscall.c 라는 이름의 파일로 구현한다.
sys_teatsyscall() 시스템 호출은 2개의 입력 인자를 곱하고 그 결과를 세 번째 인자로 돌려준다.
곱셈한 결과를 사용자 수준 공간에 전달하기 위해 Linux가 제공하는 put_user()라는 매크로를 사용하였 다. 이 매크로는 usr/src/linux-2.4.18-4/include/asm-i386/uaccess.h에 정의되어 있다.
put_user()를 사용하기 전에 res라는 사용자 공간에 쓰기가 가능한지 확인하기 위해 verify_area()라는 커널 내부 함수를 사용하였다.
"asmlinkage" 라는 키워드는 C로 구현된 함수가 어셈블리 언어로 구현된 함수에서 호출될 때 사용하는 키워드이다. 커널 수준에서는 사용자 수준에서 수행되는 표준 라이브러리를 사용할 수 없으므로, 따라 서, printf()와 비슷한 일을 수행하는 printk()라는 커널 라이브러리를 사용하였다.

참고 자료

1) 리눅스 매니아를 위한 커널 프로그래밍 ........... 조유근, 최종무, 홍지만
2) 레드햇 리눅스 9 고수 따라하기 ...................... 채현석
3) 리눅스 커널의 이해 ....................................... 다니엘 보베이, 마르코 체사티
다운로드 맨위로