인터페이스로 File을 사용한다는 것
안녕하세요 강의 잘 듣고 있습니다. 감사합니다.
강의에서 Hello World가 화면에 출력하는 예시를 들어 설명하신 부분에서 Device file 이라는 인터페이스를 통해서 User Process와 Kernal이 상호작용한다고 하셨습니다.
이때, Device File에 무엇을 읽고 쓴다는 것은 Memory 나 Disk에 적재하는 과정이 될 거 같다는 생각이 듭니다. 맞을까요?
아래는 영상에서 설명한 예시에서 제가 생각한 과정입니다.
Device File 에 "Hello world" 출력하라는 명령을 쓰기 위해 User -> Kernal -> H/W(Memory or Disk)
"Hello World" 출력하기 위해서 Kernal -> H/W (영상에서 설명하신 부분)
총 두 번 일어나는 것이 맞는건가요?
뭔가 현대에는 최적화가 잘 되어서 1번으로 끝낼 수 있게 구성이 되어 있을 거라고 생각이 들긴 합니다.
*구글링으로 찾아본 내용
리눅스 파일의 종류엔 3가지가 존재
일반 파일: 데이터를 담을 수 있음
디렉토리 파일: 일반 파일을 담을 수 있음
특수 파일 (Socket, Device File, Named Pipe)
영상에서 언급해주신 Device File 은 특수파일에 해당
Device File은 특수파일의 하위 집합으로 character device file, block device file 두가지 타입이 있음.
특수 파일은 일반 파일과 달리 단순 운영체제와의 인터페이스로 데이터를 저장하는 행위는 하지 않음.
그럼 왜 파일이라고 하는건가? 일단, 리눅스는 "모든게 파일이다." 라는 철학을 갖고 있음. 그렇다면 왜 모든 걸 파일로 정의했는가?
=> 다양한 자원을 하나의 일관된 인터페이스로 추상화하여, 파일을 읽고 쓰는 방식으로 모든 자원(디스크, 장치, 네트워크 등)을 다룰 수 있도록 하기 위함
질문을 드렸지만, 궁금해서 구글링을 해서 찾아 아래 부분에 찾은 내용을 정리했습니다.
제가 찾은 내용이 좀 틀렸다면 정정해주시면 감사하겠습니다!
Answer 1
0
우선 질문한 내용은 일부 수정이 필요하겠습니다.
Device File에 "Hello world" 출력
이 부분은 Device file에 "Hello world"라는 bit stream을 write하는 것 입니다.이는 장치마다 다를 수 있습니다.
사용자 모드 응용 프로그램이 특정 장치로 정보를 전달하는 과정은 장치 파일에 대한 쓰기로 가능합니다. 이 과정에서 Buffered I/O가 이루어진다면 메모리가 필요합니다. 그리고 다시 커널 드라이버에서 실제 하드웨어로 정보가 전달되도록 하기 위해 또 다른 메모리가 필요하다면 같은 내용을 한 번 더 복사하게 될 수 있습니다.
검색엔진에서 찾아본 내용과 더불어 함께 생각해보시기 바랍니다. 참고로 '모든 것이 파일' 이라는 개념은 윈도우라 해서 크게 다르지 않습니다. 참고하시기 바랍니다. 😄
선생님 질문이있습니다.
0
69
2
"한글 한 글자를 저장하는 데 2바이트가 필요하다" 에서 궁금한 점이 있습니다
0
162
2
원자성과 동기화에 대한 사소한? 질문 있습니다.
0
64
1
전가산기에 대한 질문이 있습니다!
0
92
2
format 시 0-0트랙 섹터에 관해
0
89
2
앞으로의 공부 질문
0
113
1
정규표현식 학습에 대한 조언 부탁드립니다.
0
200
2
메모리 용량에 관하여
0
139
1
파일 시스템 관련 질문입니다.
0
156
2
자료 구조
0
258
2
강의의 대한 추가질문
0
213
2
컴퓨터가 글자를 다루는 방법 -> 코드체계 질문
0
206
2
진법변환 개념정리
0
593
2
컴퓨터가 사진을 다루는 법에 대해 질문입니다.
1
200
2
컴퓨터가 곱셈 하는 방법
0
337
2
1비트 1바이트 1킬로바이트
0
403
1
캐시 메모리
0
201
1
[외워야 할 단위 체계와 숫자] 비트 체계와 용량 관련 질문 있습니다.
0
415
2
[컴퓨터가 글자를 다루는 방법] 숫자와 캐릭터 바이너리가 같다면...
0
374
2
CPU 연산체계에 대해서 궁금한 점이 있습니다.
0
319
2
shell에 관련하여 질문드립니다.
0
281
2
가상메모리 관련 질문있습니다.
0
306
2
선생님 안녕하세요
0
318
1
수업방식
0
364
1

