> 시스템 튜토리얼 > 리눅스 > Linux 시스템 호출에 대한 심층 분석: 숫자를 세제곱하여 인쇄하는 새로운 시스템 호출

Linux 시스템 호출에 대한 심층 분석: 숫자를 세제곱하여 인쇄하는 새로운 시스템 호출

WBOY
풀어 주다: 2024-07-28 04:29:15
원래의
604명이 탐색했습니다.

深入探究 Linux 系统调用:新增计算数字三次方并打印的系统调用

목차

1. 디자인 목적 및 요구사항

2. 디자인 콘텐츠

3. 장비 및 환경

4. 디자인적 사고

5. 주요 데이터 구조 및 프로세스

6. 실험 테스트 결과 및 결과 분석

7. 코스 디자인 요약

별첨 1 코스 설계 방어 기록

첨부2 소스 프로그램 목록

1. 디자인 목적 및 요구사항

본 강좌는 중학생들이 리눅스 시스템 콜의 구현 원리를 이해하고, 리눅스 커널 소스 코드를 변경하는 방법과 새로운 시스템 콜을 호출하기 위한 호출 프로그램을 컴파일하는 방법을 마스터할 수 있도록 고안되었습니다. 중학생은 본 과목을 독립적으로 이수하고 시스템 호출의 개념과 구현을 이해해야 합니다.

2. 디자인 콘텐츠

컴파일된 커널 방식을 사용하여운영체제 원리 및 Linux 시스템 실험을 통해 Linux 커널을 다시 컴파일하고 Linux에서 시스템 호출을 줄입니다.

操作系统原理与linux系统实验_linux操作系统原理与应用_操作系统原理linux篇

요구 사항: (1) 시스템 호출로 구현되는 기능: 숫자의 세제곱을 추정하고 복사합니다. (2) 호출할 다른 프로그램을 작성합니다.

3. 장비 및 환경

장치: VMware Workstation Pro

환경: Ubantu15.0.2

이미지: ubuntu-16.04-desktop-amd64.iso

4. 디자인 사고 4.1 디자인 아이디어

Linux 커널을 변경하고 새로운 시스템 호출을 낮추어 Linux 커널 소스 코드 다운로드, 변경, 변경된 Linux 커널 컴파일 및 시스템에 설치를 포함하여 숫자의 세제곱을 추정하고 복사하는 기능을 구현합니다. 이 새로운 시스템 호출을 호출하는 프로그램을 작성하세요.

在这里插入图片描述

4.2 주요 단계

(1) 원본 커널 보기:

(2)새 커널 다운로드:

操作系统原理linux篇_操作系统原理与linux系统实验_linux操作系统原理与应用

wget운영체제 원리 및 Linux 시스템 실험Linux 이식 후 Enter를 누릅니다. 결과는 보시는 바와 같습니다

(3) 다운로드한 설치 패키지를 /usr/src 디렉터리에 연결한 후, 터미널에 다음 명령어를 입력하면 결과가 나옵니다

mvlinux-5.6.15.tar.gz/usr/src

cd/usr/src

tar-xvflinux-5.6.15.tar.gz

(4) 슈퍼 편집기 vim을 다운로드합니다(이전에 이미 다운로드했습니다). 다운로드되지 않은 경우 sudoapt-get-yinstallvim을 사용하여 다운로드할 수 있습니다.

在这里插入图片描述

(5) 새로운 시스템 호출:

호출 함수 선언 추가: viminclude/linux/syscalls.h

#ifndef 앞에 asmlinkagelongsys_cube(intnum);

를 추가하세요.

linux操作系统原理与应用_操作系统原理linux篇_操作系统原理与linux系统实验

참고: 편집 모드로 들어가고 추가 후 Esc를 누르면 Linux 이식으로 돌아가고 마지막으로 Shift+: wq를 눌러 저장하고 종료합니다.

(6) 호출 함수 정의를 추가하고 vimkernel/sys.c를 입력한 후 기사 끝에 함수를 추가하세요

SYSCALL_DEFINE1(큐브,정수,숫자){

intresult=numnumnum;

printk(“Theresultis%d.n”,result);

반품결과;

(7)시스템 호출 번호 추가

vimarch/x86/entry/syscalls/syscall_64.tbl을 입력하고 syscall_64.tbl 파일에 439개 항목을 추가하세요

(8) 커널을 컴파일하는 데 필요한 종속성 패키지를 설치합니다.

操作系统原理与linux系统实验_linux操作系统原理与应用_操作系统原理linux篇

으아아아

(9) 커널 구성

makemenuconfig를 입력하고 팝업 인터페이스에서 [저장]->[확인]->[종료]->[종료]를 실행하세요

(10)컴파일

操作系统原理linux篇_linux操作系统原理与应用_操作系统原理与linux系统实验

[터미널]에 make-j8을 입력하면(8개의 스레드가 컴파일 시작) 약 1시간 정도 걸리며, 그림과 같이 컴파일이 완료됩니다

makemodules 및 makemodules_install 명령을 입력하여 각각 모듈 컴파일 및 설치를 완료합니다.

(11)커널 설치

【터미널】makeinstall 입력

(12)시스템을 다시 시작하세요

[터미널] uname-r을 입력하여 커널 버전을 확인하세요. 그림과 같이 커널이 재컴파일되었습니다

在这里插入图片描述

컴파일 호출 프로그램:

저장 후 종료하고 [터미널]에서 gcctest.c-otest.out 및 ./test.out을 실행하여 테스트 결과를 가져옵니다

5. 주요 데이터 구조 및 프로세스

위 내용은 Linux 시스템 호출에 대한 심층 분석: 숫자를 세제곱하여 인쇄하는 새로운 시스템 호출의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:itcool.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿