리눅스 커널의 시스템 정보 유지
글쓴이: koain / 작성시간: 목, 2016/02/04 - 1:33오후
유저 레벨에서는 파일 입출력을 통해 정보를 저장하고 유지하지 않습니까?
커널에서는 원하는 정보를 유지하고 싶을 때 어떤 방식을 사용하는지요?
검색을 해보니 커널에서의 파일 입출력은 추천하지 않고 있더군요.
생각해보았을 때 IPC나 copy to user, copy from user 함수를 통해
유저쪽 프로세스와 통신하여 유저쪽에서 저장하는 방법을생각해보았습니다.
하지만 위 방법들은 오버헤드가 심할거 같은데요
리눅스 커널에서 독자적으로 가능한 방법은 없는건가요?
리눅스 커널에서 유지해야할 시스템 정보들은 어떻게 유지되는건가요?
Forums:
확인해봐야 알거 같습니다.
- 책 보기
- 강의 듣기
- 공개된 소스를 참고
- 커널 모듈을 컴파일
리눅스 커널의 시스템 정보 유지
OLC Center
http://olc.kr/main/index.jsp
리눅스 커널
http://book.naver.com/search/search.nhn?sm=sta_hty.book&sug=&where=nexearch&query=%EB%A6%AC%EB%88%85%EC%8A%A4+%EC%BB%A4%EB%84%90
Proc filesystem - 시스템 정보 수집
http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/system_programing/proc/GetSMSInfo
리눅스 커널 os버전 cpu 메모리 등 시스템 정보보기 리눅스
http://blog.naver.com/ttochy486/220562351000
[6기 강북 전영진] 리눅스 커널 심층 분석 #3
http://blog.secmem.org/569
[오픈소스] 평범한 개발자가 리눅스 커널에 참여하게된 이야기 - 행사 후기 및 의견 ├ 오픈소스 OpenSource
http://seoz.egloos.com/4084364
임베디드 자바 및 리눅스 커널 솔루션은 FALINUX 에서
http://www.kuccblog.net/1407
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
제 짧은 머리끈을 통해 답변을 드리자면... 커널도
제 짧은 지식을 통해 답변을 드리자면...
커널도 스택에 저장을 합니다, 필요한 프로세스 정보와 컨텍스트 스위칭이 일어날 때등과 같이 프로세스 정보는 스택에 저장을 해요.
그리고 자주 사용되지 않는 정보는 스왑 영역으로 내보내고 다시 필요하면 메모리로 로드합니다.
사용자 쪽이건 시스템 쪽이건 임시로 저장할 데이터는 모두 메모리에 적재시킵니다.
임시 저장할 데이터가 아닌 영구 저장할 데이터가 궁금합니다.
제 말은 컴퓨터가 꺼지고 다시 켜지더라도 유지되어야할 정보들이 있을텐데
그러한 정보들이 어떻게 유지 되는지가 궁금한 것 입니다.
꺼지고 켜지면 당연히 보조 기억장치에 저장을
꺼지고 켜지면 당연히 보조 기억장치에 저장을 해야겠죠..
유저가 응용 프로그램에서 데이터 저장을 하듯이, 커널도 프로세스 단위니까 영구적으로 저장해야할 정보들은 파일로 저장을 하죠.
네 답변감사드립니다.
제가 궁금한것은 그 파일로 저장하는 방법에 관한 것입니다.
저는 지금 블록 계층에서의 정보들을 유지하고 싶은데요
유저레벨의 파일입출력은 시스템 콜을 통해 이루어질텐데
VFS밑, Native FS(ext2, ext3 ...) 아래의 블록 계층에서 다시 위 쪽 계층의 함수인
시스템 콜을 이용하여 파일 입출력을 하는 것이 자연스러워 보이지 않아서요
검색을 해보니 커널에서의 파일 입출력을 권장하지 않더라구요
커널은 해당 장치를 사용할 수 있는 "드라이버"만
커널은 해당 장치를 사용할 수 있는 "드라이버"만 제공하고
이전상태 저장은 커널의 해당 기능과 연계된 유틸리티 프로그램에서 제공합니다.
ex) 종료 직전의 사운드 사용셋팅과 볼륨정보 저장 -> 종료시 alsa-util에서 저장, 부팅시 alsa-util이 자동실행되면서 저장된 이전설정을 커널에 다시 입력.
이때문에 배포판별로 리부팅할 때 이전상태가 저장되기도 하고 안되기도 하는 경우가 꽤 많습니다.
재부팅 안하고 커널이 쭈욱 작동중에는 커널도 메모리에 저장합니다. 유저 프로그램에게 안보이는 커널만의 스택과 힙이 따로 있습니다.
Written By the Black Knight of Destruction
답변 감사드립니다.
커널이 유저 레벨의 프로세스와 통신을 통해 정보를 저장하고 읽어 온다는 말씀이신가요?
저도 그 방법을 이용해보려고 커널과 유저 프로세스간 IPC, 소켓 통신, ioctl 등의
방법을 생각해보았는데요 일반적으로 어떤 방식을 이용하나요?
댓글 달기