가상파일시

포스트: 14|조회수: 0|TERM
Items

Posts

14 posts

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

Guillermo Austin Kim|2019년 9월 3일

가상 파일시스템에서 파일 시스템 별로 파일을 열고 쓰고 읽는 함수 포인터 테이블을 지원합니다. 이 정보를 파일 함수 오퍼레이션이라고 하며 다음 해더 파일에 정의돼 있습니다.[https://github.com/raspberrypi/linux/blob/rpi-4.19.y/include/linux/fs.h]struct file_operations { struct module *owner; loff_t (*llseek) (struct file *, loff_t, int); ssize_t (*read) (struct file *, char __user *, size_t, loff_t *); ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *)

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

Guillermo Austin Kim|2019년 9월 3일

이번 절에서 소개했듯이, 각각 파일 시스템에 액세스를 하기 위해서 먼저 가상 파일시스템에 접근합니다. 이 때 가상 파일 시스템에서 지원하는 4가지 객체에서 지정한 함수 포인터를 통해 파일 시스템 세부 함수에 접근합니다.  4개 객체별로 지정한 함수 포인터 연산을 함수 오퍼레이션이라고 말합니다. 즉, 이전 소절에서 소개한 슈퍼블록, 아이노드, 파일, 덴트리 객체들은 모두 함수 오퍼레이션(연산)을 지원합니다. 슈퍼 블록 함수 오퍼레이션 코드와 동작 파악해보기 먼저 슈퍼 블록 함수 오퍼레이션 코드 분석으로 함수 오퍼레이션 동작을 소개합니다. 다음 코드를 같이 분석해봅시다.[https://github.com/raspberrypi/linux/blob/rpi-4.19.y/fs/inode.c]1

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

Guillermo Austin Kim|2019년 4월 8일

슈퍼블락 객체란 무엇인가? 슈퍼블록 객체는 파일시스템에 대한 메타 정보와 각 파일시스템 별 슈퍼블락 함수 오퍼레이션으로 구성돼 있습니다. 구체적으로 슈퍼블록 객체는 파일시스템 마운트 정보와 실행 플래그를 저장합니다. 예를 들면 디스크 저장 기반 ext4 파일시스템과 시스템 정보를 램에서 출력하는 proc 파일시스템은 서로 다른 슈퍼블록 마운트와 실행 플래그 정보를 확인할 수 있습니다. 슈퍼 블록에 대한 이해를 돕기 위해 간단한 테스트를 해보겠습니다. 다음 경로에 가서 touch 명령어로 파일을 하나 생성합시다.root@raspberrypi:/home/pi# cd /procroot@raspberrypi:/proc# touch RPi_VFS.ctouch: cannot touch 'RPi_VFS.c': No

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

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

Guillermo Austin Kim|2019년 4월 8일

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