VFS

포스트: 10|아이템:VFS(10)
Tags

Posts

10 posts

[리눅스커널][가상파일시스템] 슈퍼블록 객체란 무엇인가 - (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

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

Guillermo Austin Kim|2019년 4월 2일

파일 객체: close() 함수 연산 세부 동작 분석 다음 파일을 닫을 때 호출하는 sys_close() 함수 코드를 볼 차례입니다.1 SYSCALL_DEFINE1(close, unsigned int, fd)2 {3 int retval = __close_fd(current->files, fd);45 /* can't restart close syscall because file table entry was cleared */6 if (unlikely(retval == -ERESTARTSYS ||7 retval == -ERESTARTNOINTR ||8 retval == -ERESTARTNOHAND ||9 retval == -ERESTART_RESTARTBLOCK))10

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

Guillermo Austin Kim|2019년 3월 28일

파일 객체: fsync() 함수 연산 세부 동작 분석 유저 공간에서 쓰기 버퍼에 저장된 데이터를 디스크에 저장하고 싶을 때가 있습니다.이 때 fsync() 혹은 fdatasync() 함수를 호출합니다. fsync 명령어를 입력해서 리눅스 메뉴얼을 확인합시다.FSYNC(2) Linux Programmer's Manual NAME fsync, fdatasync - synchronize a file's in-core state with storage device SYNOPSIS #include int fsync(int fd); int fdatasync(int fd); 내용을 보면 파일의 내용을 스토리지 디바이스에 동기화하는 동작입