파일객체

포스트: 2
Tags

Posts

2 posts

[리눅스커널] 프로세스 별로 파일 디스크립터(파일 객체)는 어떻게 관리하나?

Guillermo Austin Kim|2020년 2월 18일

아래 포스팅을 읽은 방문자님께서 댓글로 남겨 주신 질문에 대답하려고 합니다. [리눅스커널][가상파일시스템] 파일 객체: write 연산 세부 동작 분석 질문 서로 다른 프로세스에서 f1파일을 열었으니 fd가 가르키는 시스템 파일 테이블의 파일이 다를텐데어떻게 내용이 삭제되거나 섞이지도 않는지 알수 있을까요? 답신 사실 이 부분은 커널을 디버깅해봐야 알 수 있는 내용입니다. 커널 디버깅 툴 중 많이 사용되는 크래시 유틸리티로 이 내용을 확인해보겠습니다. 다음은 프로세스가 저장하고 있는 파일 디스크립터 목록을 출력해주는 'files 1' 명령어를 입력한 결과입니다. crash> files 1PID: 1 TASK: cf930f40 CPU: 0 COMMAND: "systemd"ROO

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

Guillermo Austin Kim|2019년 3월 7일

파일 객체대부분 유저는 파일을 생성하고 읽고 쓰기 위한 용도로 씁니다. 이 때 파일 동작에 대한 상세 규칙과 속성은 파일 객체에서 확인할 수 있습니다. 만약 라즈베리파이에서 2개 Geany프로그램에서 1개 파일을 열 수 있습니다. 이 때 몇 개 파일 객체가 생성될까요? 2개 파일 객체는 각각 프로세스 별로 생성합니다. 파일 객체는 이렇게 파일을 오픈하고 읽고 쓰는 상황에서 프로세스가 파일을 관리하기 위해 생성합니다. 파일 객체에 대한 상세 내용은 struct file 구조체에서 확인할 수 있습니다. 다음 소절에서 struct file 구조체에 대해 알아보겠습니다. struc file 구조체 분석 파일 객체는 다음 해더 파일에 정의돼 있습니다.[https://elixir.bootlin.com/linux