Linux Kernel(4.19) Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

0112
737
82110


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

1 2

[리눅스커널][가상파일시스템] 슈퍼블록 객체란 무엇인가 - (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() 함수를 호출하면 시스템 콜을 발생시켜 실행 흐름이 커널 공간으로 바뀝니다. 이후 ...

[리눅스커널][가상파일시스템] 파일 객체란

파일 객체대부분 유저는 파일을 생성하고 읽고 쓰기 위한 용도로 씁니다. 이 때 파일 동작에 대한 상세 규칙과 속성은 파일 객체에서 확인할 수 있습니다.만약 라즈베리파이에서 2개 Geany프로그램에서 1개 파일을 열 수 있습니다. 이 때 몇 개 파일 객체가 생성될까요? 2개 파일 객체는 각각 프로세스 별로 생성합니다. 파일 객체는 이렇게 파일을 오픈하고 ...

[라즈베리파이] 가상 파일시스템 동작 분석(유저 프로세스 입장)

이번에 유저 어플리케이션 입장에서 가상 파일시스템 동작을 살펴보겠습니다.먼저 유저 공간에서 실행하는 다음 코드를 같이 작성해 봅시다.1 #include <stdio.h>2 #include <stdlib.h>3 #include <unistd.h>4 #include <sys/types.h>5 #include <...
1 2