Linux Kernel(4.19) Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

125199
1107
135853


태그 : 가상파일시스템 요약보기전체보기목록닫기

1 2

[리눅스커널] 가상파일시스템/파일객체: 파일 객체 함수 오퍼레이션

가상 파일시스템에서 파일 시스템 별로 파일을 열고 쓰고 읽는 함수 포인터 테이블을 지원합니다. 이 정보를 파일 함수 오퍼레이션이라고 하며 다음 해더 파일에 정의돼 있습니다.[https://github.com/raspberrypi/linux/blob/rpi-4.19.y/include/linux/fs.h]struct file_operations { stru...

[리눅스커널] 가상파일시스템/소개: 함수 오퍼레이션이란 무엇인가

이번 절에서 소개했듯이, 각각 파일 시스템에 액세스를 하기 위해서 먼저 가상 파일시스템에 접근합니다. 이 때 가상 파일 시스템에서 지원하는 4가지 객체에서 지정한 함수 포인터를 통해 파일 시스템 세부 함수에 접근합니다.      4개 객체별로 지정한 함수 포인터 연산을 함수 오퍼레이션이라고 말합니다.  &n...

[리눅스커널][가상파일시스템] 슈퍼블록 객체란 무엇인가 - (struct super_block, struct super_operations)

슈퍼블락 객체란 무엇인가?슈퍼블록 객체는 파일시스템에 대한 메타 정보와 각 파일시스템 별 슈퍼블락 함수 오퍼레이션으로 구성돼 있습니다. 구체적으로 슈퍼블록 객체는 파일시스템 마운트 정보와 실행 플래그를 저장합니다.예를 들면 디스크 저장 기반 ext4 파일시스템과 시스템 정보를 램에서 출력하는 proc 파일시스템은 서로 다른 슈퍼블록 마운트와 실행 플래그...

[리눅스커널][가상파일시스템] 프로세스는 파일객체 자료구조를 어떻게 관리할까?

프로세스는 파일객체 자료구조를 어떻게 관리할까?이전 절에서 파일을 오픈하면 프로세스가 파일 디스크립터와 파일 객체를 관리한다고 언급했습니다. 이번 소절에서는 프로세스 입장에서 파일 디스크립터와 파일 객체를 어떻게 관리하는지 살펴보겠습니다패치 코드 소개이해를 돕기 위해 다음 어플리케이션 코드를 소개합니다.1 #include <stdio.h>2 ...

[리눅스커널][가상파일시스템] 파일 객체: close() 함수 연산 세부 동작 분석

파일 객체: close() 함수 연산 세부 동작 분석다음 파일을 닫을 때 호출하는 sys_close() 함수 코드를 볼 차례입니다.1 SYSCALL_DEFINE1(close, unsigned int, fd)2 {3 int retval = __close_fd(current->files, fd);45 /* can't restart close sysca...

[리눅스커널][가상파일시스템] 파일 객체: fsync() 함수 연산 세부 동작 분석

파일 객체: fsync() 함수 연산 세부 동작 분석 유저 공간에서 쓰기 버퍼에 저장된 데이터를 디스크에 저장하고 싶을 때가 있습니다.이 때 fsync() 혹은 fdatasync() 함수를 호출합니다.fsync 명령어를 입력해서 리눅스 메뉴얼을 확인합시다.FSYNC(2) Linux Programmer's ManualNAME   ...

[리눅스커널][가상파일시스템] 파일 객체: lseek() 함수 연산 세부 동작 분석

파일 객체: lseek() 함수 연산 세부 동작 분석유저 공간에서 lseek() 함수를 호출하면 파일 쓰기 포인터 위치를 조절할 수 있습니다. 다음 예제 코드를 보면서 lseek() 함수 동작에 대해 살펴보겠습니다. 1 #include <unistd.h>2 #include <sys/types.h>3 #include...

[리눅스커널][가상파일시스템] 파일 객체: read() 함수 연산 세부 동작 분석

파일 객체: read() 함수 연산 세부 동작 분석유저 공간에서 read() 함수를 호출할 때 커널에서는 가상 파일시스템 관련 코드가 실행하는지 알아봅시다.다음 그림과 같이 유저 공간에서 read() 함수를 호출하면 파일시스템별로 관리하는 파일객체에서 파일 오퍼레이션을 수행하는 방식입니다. 위 그림을 보면 유저 공간에서 read() 함수를 호출...

[리눅스커널][가상파일시스템] 파일 객체: write 연산 세부 동작 분석

파일 객체: write 연산 세부 동작 분석유저 공간에서 write() 함수를 호출할 때 가상 파일시스템에서 어떤 흐름으로 파일 별 write 오퍼레이션을 수행하는지 살펴보겠습니다.유저 공간에서 리눅스 저수준 함수로 write() 함수를 호출하면 시스템 콜을 발생시켜 커널 공간으로 실행 흐름을 스위칭합니다. 이 후 write()에 해당하는 시스템 콜 핸...

[리눅스커널][가상파일시스템] open(): 파일 객체를 오픈할 때 세부 동작

open(): 파일 객체를 오픈할 때 세부 동작유저 공간에서 open() 함수를 실행하면 커널 공간에서 다음 그림과 같은 함수 흐름을 확인할 수 있습니다. 위 그림은 유저 공간에서 함수 오픈 오퍼레이션을 실행할 때 함수 실행 흐름입니다. 유저 공간에서 open() 함수를 호출하면 시스템 콜을 발생시켜 실행 흐름이 커널 공간으로 바뀝니다. 이후 ...
1 2