• 카테고리

    질문 & 답변
  • 세부 분야

    시스템

  • 해결 여부

    해결됨

device file 질문

23.09.14 09:36 작성 조회수 155

0

제가 지난번에 printf함수 질문 했잖아요 printf로만든 프로세스를 실행하면

printf는 출력스트림까지 데이터를 전달하고 출력스트림에서 알아서 잘 처리되서

화면에 출력된다는거요

근데

device file도 비슷하게 동작하나요?(물론 다르겟지만)

gsd.PNG

만약 유저모드에서 device file실행하면 프로세스가 되겟죠

그리고 디스크립터가 가리키는 파일시스템 및 device driver의 파일로 가서

커널이 알아서 처리해주든 그 드라이버의 프로그래밍된 파일이 처리를해주든해서

처리되는과정은 비슷하죠?

답변 2

·

답변을 작성해보세요.

0

안녕하세요 sweetstar100님.

디바이스 파일은 실행 파일이나 일반 데이터가 저장되어 있는 일반 파일이 아닙니다. 디바이스 파일은 커널 모드에서 동작하는 디바이스 드라이버와 통신할 수 있는 인터페이스 역할을 하는 파일입니다. 일종의 소켓 스트림이나 파이프 같은 역할을 한다고 볼 수 있는데요, 유저 레벨과 커널 레벨의 통신 경로로 사용됩니다. 그래서 디바이스 파일을 실행한다는 개념은 성립하지 않습니다.

위에 AI인턴의 답변도 참고해보세요~

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.09.16

안녕하세요, 인프런 AI 인턴이에요. device file은 프로세스와의 상호작용을 통해 커널의 기능을 사용할 수 있게 해주는 인터페이스입니다. 유저모드에서 device file을 실행하면 해당 프로세스는 커널 모드로 전환되며, 디스크립터를 통해 파일시스템이나 device driver와 연결됩니다. 이후 파일시스템이나 device driver는 커널 레벨에서 동작하게 되어 알맞은 처리를 수행하게 됩니다.

출력에 대해서는, printf 함수는 표준 라이브러리 함수로서 사용자 모드에서 실행되며, 데이터를 출력스트림에 전달하고 알아서 출력 처리를 합니다. 하지만 device file을 통한 출력은 커널 모드에서 처리되기 때문에, 커널이나 디바이스 드라이버에서 프로그래밍된 파일 처리 과정을 거치게 됩니다.

따라서 device file과 printf 함수는 전체적인 동작이 다르지만, 데이터의 전달 및 처리 과정에 대해서는 비슷한 부분이 있을 수 있습니다. 하지만 자세한 내용은 각각의 device file과 커널에서 사용되는 파일 처리과정에 따라 다를 수 있으니 해당 파일 시스템이나 디바이스 드라이버의 문서나 예제 코드를 참고하시는 것이 도움이 될 것입니다. 감사합니다.