이거 궁금했던 친구들 많을텐데
너희 stdin 같은거 죄다 파일인거 알지?
그거 실제로
proc 인가 들어가서 찾아가봐
프로세스들 stdin같은거 다 fd 0 1 2로 나와있어.
fork가 파일을 공유하는것까지 알지?
난 첨에 그걸 sudo vim으로 열어봤었다.
내가 키보드누르면 여기에 아주빠르게 글자가담겼다가
즉시 프로세스가 깨어나서 글자를 다시 가져가는걸까?
"왜 비어있는거지?"
그리고,
이생각을 했었다.
a가 fork해서 b를 만들어.
a는 stdin으로부터 입력을 대기중
즉 키보드입력대기일텐데
b가 sleep(1) 을 섞어가면서
주기적으로 stdin에다가 write를 하면
그러면 a는 키보드입력을받았다고 착각할까?
이 생각을 했었다고.
이거 궁금한새끼 없냐?
이걸 설명하려면
inode가 무엇인지, 그리고 char inode는 안의 데이터구조가 어떠하며,
그녀석들의 read는 tty (혹은 pts)라는 커널자료구조와 대응되고
키보드인터럽트 및 시리얼포트는 해당 자료구조를 통해 관리되고
그 자료구조안에 세가지의 queue가 있으며
다시 그 큐에따라 프로세스 대기가 세션, pgrp과 시그널에 의해 관리되고,
여기까지 이해하고난다음엔
드디어 대답으로
queue가 세개인데
우리는 문자디바이스의 write_q에 글씨를 새길 수 있지만 read_q와 secondary 에는 데이터를 못집어넣는다는점,
그리고 stdin out err 모두 동일한 문자디바이스기에
0에쓰나 1에쓰나 2에쓰나 차이가없어보였다는점.
으로 정리가 가능함.
내가 작년에 이거가지고 엄청 질문해댔던거 기억하는사람들은 있을련지 모르겠음.
stdin 과 pgrp은 운영체제를 입문하기에 좋은 호기심의 출발점인듯.
그 다음에는 파일이 어떻게 메모리매핑되는가
파일시스템.
운영체제 왜 배워야하냐? 고 물으면
일단 단편적으로는 그 두개를 꼽을듯
근데 시그널같은 시스템프로그래밍까지 넘어가도 이게 또 필수임.
시그널은 보니까 운영체제 깊게 안뜯어보면 써먹기 곤란할거다
너희 stdin 같은거 죄다 파일인거 알지?
그거 실제로
proc 인가 들어가서 찾아가봐
프로세스들 stdin같은거 다 fd 0 1 2로 나와있어.
fork가 파일을 공유하는것까지 알지?
난 첨에 그걸 sudo vim으로 열어봤었다.
내가 키보드누르면 여기에 아주빠르게 글자가담겼다가
즉시 프로세스가 깨어나서 글자를 다시 가져가는걸까?
"왜 비어있는거지?"
그리고,
이생각을 했었다.
a가 fork해서 b를 만들어.
a는 stdin으로부터 입력을 대기중
즉 키보드입력대기일텐데
b가 sleep(1) 을 섞어가면서
주기적으로 stdin에다가 write를 하면
그러면 a는 키보드입력을받았다고 착각할까?
이 생각을 했었다고.
이거 궁금한새끼 없냐?
이걸 설명하려면
inode가 무엇인지, 그리고 char inode는 안의 데이터구조가 어떠하며,
그녀석들의 read는 tty (혹은 pts)라는 커널자료구조와 대응되고
키보드인터럽트 및 시리얼포트는 해당 자료구조를 통해 관리되고
그 자료구조안에 세가지의 queue가 있으며
다시 그 큐에따라 프로세스 대기가 세션, pgrp과 시그널에 의해 관리되고,
여기까지 이해하고난다음엔
드디어 대답으로
queue가 세개인데
우리는 문자디바이스의 write_q에 글씨를 새길 수 있지만 read_q와 secondary 에는 데이터를 못집어넣는다는점,
그리고 stdin out err 모두 동일한 문자디바이스기에
0에쓰나 1에쓰나 2에쓰나 차이가없어보였다는점.
으로 정리가 가능함.
내가 작년에 이거가지고 엄청 질문해댔던거 기억하는사람들은 있을련지 모르겠음.
stdin 과 pgrp은 운영체제를 입문하기에 좋은 호기심의 출발점인듯.
그 다음에는 파일이 어떻게 메모리매핑되는가
파일시스템.
운영체제 왜 배워야하냐? 고 물으면
일단 단편적으로는 그 두개를 꼽을듯
근데 시그널같은 시스템프로그래밍까지 넘어가도 이게 또 필수임.
시그널은 보니까 운영체제 깊게 안뜯어보면 써먹기 곤란할거다
딱
존나 말로 설명해줄수가 없다. 흠... 문자디바이스만 보면 해결된다라고 얘기해주기엔, 시그널이나 프로세스그룹이랑까지 확장되는 개념이라... 글고 그래서 이 질문이 운영체제 입문하기 좋은 개념
파일시스템이랑도 연결되네, 문자디바이스 inode는 또 뭐하는새낀지, 이새끼를 open한다는게 무슨의미인지도 알아야함.
근데 난 지금, 아마 네트워크가 문자디바이스일텐데, 여기서 tcp를 만드는과정은 또 험난할것으로 보임. 시발이야 그냥... 일단 스킵한다 네트워크는
딱