Skip to content

yoo-jimin127/2021_OS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

2021_OS

'2021-2 semester <Operating System> assignment + project' purpose repository

project 1

  1. 리눅스 커널 설치
  wget https:// www.kernel.org/pub/linux/kernel/v5.x/linux 5.13.12.tar.xz
  1. root 권한에서 커널 컴파일을 위한 라이브러리 설치
  apt get install vim make gcc kernel package libncurses5 dev bison flex libssl dev
  1. 새로 설치할 커널의 설정 파일 변경을 위해 menuconfig 생성
  make menuconfig
  1. 커널 컴파일을 진행해 이미지 파일 생성
  make kpkg initrd revision=1.0 kernel_image
  1. 생성된 deb 파일을 커널 이미지로 부팅하는 작업 진행
  dpkg I linux image 5.13.12_1.0_amd64.deb

project 2

  • 리눅스 명령어 ps, top, lscpu와 같은 역할을 수행하는 명령어 myps, mytop, mylscpu 구현

project 3

  • 시스템 콜 함수 추가 구현
  1. /usr/src/linux/linux-5.11.22/arch/x86/entry/syscalls 디렉토리로 이동 후 syscall_xx.tbl 파일 편집
  2. 시스템 콜 테이블 등록
  3. /usr/src/linux/linux-5.11.22/include/linux 디렉토리로 이동 후 syscalls.h을 vi 편집기로 열기
  4. asmlinkage를 앞에 붙여 어셈블리 코드에서도 C 함수 호출이 가능하도록 시스템콜 헤더 파일에 등록
  5. /usr/src/linux/linux-5.11.22/kernel 디렉토리로 이동 후 추가할 시스템 콜의 구현 파일 편집
  6. Makefile 편집
  7. 커널 소스 디렉토리로 이동해 새로 컴파일 후 재부팅, revision 사이 충돌 발생을 막기 위해 다른 값 입력해 컴파일 실시
  8. dmesg 명령어 통해 커널 로그 출력해 추가된 시스템콜 함수 정상 실행 확인

project 4


project 5


project 6

About

'2021-2 semester <Operating System> assignment + project' purpose repository

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published