>> Edit article
이름
제목
패스워드
에거거 늦었습니다. 기다리셨죠.. 요건.. 계속 이어지는 겁니다. 열심히 재미나게 보시고. 많은 질책 부탁합니다. 글을 못쓰는 관계로 많이 진부하시리라 생각됩니다. 그래도 꼬 옥 봐주세요.. 중요한 거니깐요. 암튼.. 지켜봐 주시고.. 잠깐 말나온김에 광고나 할까요.. <a href="http://kyoji.wo.ro"> KyoJi의 리눅스 이야기 </a> 많이 놀러와주세요.. 그럼 시작합니다. -------------------------------------------------------- 작성자 : kyoji (beenason@chollian.net, ukyoji@daum.net) 홈페이지 : http://kyoji.wo.ro/ 본 문서는 자유롭게 찢거나 버리거나 할수 있습니다. 맞춤법이 틀려도 너그럽게 봐주시길 국어를 싫어하기때문. 글쓴날 : 2001-8-1 최종 수정일 : 2001-8-1 -------------------------------------------------------- ## KyoJi's 리눅스 깔고 뭐하남 ?? 제 1 편 3. 본론 3) 압축된 커널이 뭘~ 어쨌다구 난리냐? vmlinuz 는 리눅스 커널의 압축 이미지라고 말씀을 드렸습니다. 커널이란 놈은 쉽게 말해서.. 조직 이름이라 할수 있습니다. 조직? 전 잘모르는데.. 조직들은 불광동 3거리파 하면.. 그조직이 뭐하는 놈이고. 돈은 어떻게 벌고 무슨 무기를 쓰고 하는지 금방 알잖아요.. 맞아요.. 커널이란 놈이 암축을 해제하면서 무슨무슨 하드왜어를 쓰는지 검사를 하고 그 하드웨어마다 드라이버를 설정하고 리눅스가 설치된 디스크 드라이브도 검사도 합니다. 그리고 슈퍼데몬 xinit를 부르는거죠. 그러면 커널이 하는 일은 끝이랍니다. ( 슈퍼데몬 xinit는 밑에서 알아보죠 중요합니다.) 제가 커널은 조직이름이라고 했잖아요.. 커널은 우리가 필요한 실질적인 일은 안합니다. - 커널이 압축을 해제 하면서 하는일 -----> 장착된 Hardware 검사 -----> 장치 드라이버 설정 -----> Kernel 이 '/(root 파일시스템)'를 read-only로 mount -----> FileSystem 검사 -----> '/(root 파일시스템)'를 read/write로 다시 mount -----> /sbin/init' 실행 (kernel이 최초로 실행하는 Program으로, PID가 '1') 커널이란 놈이 하는 가장 중요한 일은 장치 드라이버 설정입니다 모듈이라고 들어 보셨나요.. 랜카드나 사운드카드를 잡을 때 모듈에 올리라고.. 하죠..?? 거기서 말하는 겁니다 lsmod하면 이미 올라가 있는 모듈을 보실수 있고요. insmod하면 올릴수 있고 rmmod하면 모듈을 지우는 거죠.. 모듈은 커널에서 가장 중요한 놈이고.. 너무 방대하니깐.. 여기까지만 알고 넘어가죠.. 모듈을 더 하다보면 커널 컴파일 까니 넘어가니깐.,. 모듈에 관련된 자료 많이 있으니깐 다른 그래픽컬한 자료를 읽어보시고. 제가 또 쓰길 바라신다면.. 연락주세요. 4) 커널이라는 조직에 짱인 init ??? 커널이란 놈이 마지막으로 몰하죠?? 바로 init를 부르죠 커널 2.4.x 버젼부터 init 에서 xinit로 바뀌었답니다. 그리 중요한건 아니에요.. 보스가 위압감을 주기 위해 이름을 바꾸었다고 생각하세요.. init 요건 가장 먼져 실행 됩니다. 확인하고 싶으세요.. ps -aux 해보세요. 그러면 제일 위에 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 1368 544 ? S Aug01 0:04 init [5] 라고 나옵니다. PID가 1이죠.. 가장 먼져 실행되었습니다. PID는 프로세스 아이디 라고 하는 것인데.. PID가 0 번인 놈이 있을까요 ?? 내~ 있습니다. 하지만 안보이죠.. swapper 라고도 불리우는 놈인데. 이 프로세스는 운영체제 그 자체라고할 수 있는 프로세스로써, 메모리 관리, 디스크 관리, 프로세스 관리 등을 수행합니다. 이 프로세스는 프로세스 id 1 인 init 라는 프로세스를 실행시키고는 본연의 기능인 swapper 로써의 기능을 수행하기 시작합니다. 뭐야.. 커널이 하는 일이잖아. 내 맞습니다. 요넘은 커널의 시다발이 에요.. swapper는 커널의 시다발이~~~~~ 후후 - 프로세스 프로세스 도대체 뭐야?? 여기서 swapper 가 무슨 일을 하는지 간단하게 떠들어 보죠 유닉스 시스템에서 실행되는 모든 프로세스들은 "인생" 이랍니다. 한 평생을 호위호식하며 살다가 죽는 거죠.. 즉,, 프로세스 생성에서부트 종료시까지... 그동안 cpu 를 점유하면서 실행되는 시간도 있을 것이고, 할 일 없이 사용자로부터의 입력을 기다린다든지의 이유로 "잠들어" 있는 시간도 있습니다. 이 이야기를 하는 이유는 swapper가 하는 일이 바로, "잠들어" 있는 프로세스를 메모리에서 내려서 디스크 공간에 잠시 "스왑"시켰다가, 그 프로세스가 깨어나야만 할 시기가 오면, 디스크의 프로세스를 다시 메모리로 적재해 주는 등의 일을 하기 때문입니다. swapper가 하는 일을 점더 설명하게 되면 fork()합수와 exec라는 함수 까지 이야기 해야 하므로 이쯤에서 멈추죠. 나중에 부록으로 넣겠습니다. 다시 돌아와서 init는 보스이고 여러 부하놈들을 관리합니다. init는 슈퍼데몬이고 부하놈은 데몬이죠.. init 가 처음 시작해서 수행해야 할 작업들을 /etc/inittab 요기에 다 설정이 되어 있습니다. 여러분들 직접 열어 보시고 계속 이야기 하겠습니다. 거기에는 런레벨 설정 이 있습니다. 직접 보시면 # Default runlevel. The runlevels used by RHS are: # 0 - halt (Do NOT set initdefault to this) # 1 - Single user mode # 2 - Multiuser, without NFS # 3 - Full multiuser mode # 4 - unused # 5 - X11 # 6 - reboot (Do NOT set initdefault to this) # id:5:initdefault: 이거 입니다. 대부분 보시면 아실수 있으실 겁니다. 대부분 3이나 5를 초기값으로 갔죠.. 특히 5를 더 많이 init 0하면 끄는 거고 init 6하면 리부팅이 되는 거죠 해보세요.. 당연히 주의를 하셔야 겠죠.. init 0으로 디폴트를 했다면 부팅되다가 꺼지죠.. 쩝 # System initialization. si::sysinit:/etc/rc.d/rc.sysinit l0:0:wait:/etc/rc.d/rc 0 l1:1:wait:/etc/rc.d/rc 1 l2:2:wait:/etc/rc.d/rc 2 l3:3:wait:/etc/rc.d/rc 3 l4:4:wait:/etc/rc.d/rc 4 l5:5:wait:/etc/rc.d/rc 5 l6:6:wait:/etc/rc.d/rc 6 다음은 시스템 초기화 입니다. 다 실행이 되는게 아니라. 5면 rc5로 가는 식입니다. 런레벨 5에 관계된 시스템을 초기화 합니다. X11이니깐 X에관계된 설정이 들어가 있겠죠. # Things to run in every runlevel. ud::once:/sbin/update 각각 런레벨에 한번씩 실행된다는 것이고 # Trap CTRL-ALT-DELETE ca::ctrlaltdel:/sbin/shutdown -t3 -r now # When our UPS tells us power has failed, assume we have a few minutes # of power left. Schedule a shutdown for 2 minutes from now. # This does, of course, assume you have powerd installed and your # UPS connected and working correctly. pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down" # If power was restored before the shutdown kicked in, cancel it. pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled" 그 다음에 셧다운에 관계된 설정은 그냥보시고 파워에 관계된 설정입니다. UPS가 있을경우에 파워를 체킹해서 충분하면 부팅하는거고 부족하면 꺼지게 되는 거랍니다. 한번 보시고 아~ 이런것도 있구먼 하시고 넘어가세요. # Run gettys in standard runlevels 1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 3:2345:respawn:/sbin/mingetty tty3 4:2345:respawn:/sbin/mingetty tty4 5:2345:respawn:/sbin/mingetty tty5 6:2345:respawn:/sbin/mingetty tty6 요건 콘솔을 열고 응답을 기다린다는 내용이구 # Run xdm in runlevel 5 # xdm is now a separate service x:5:respawn:/etc/X11/prefdm -nodaemon 요건 시작시에 X가 실행되는 사람덜은 이게 들어가 있겠죠.. 계속 진부한 이야기 분이라 참.. 쓰는 저도 재미가 없군요.. 쉬었다가 마저 쓰죠.. <a href="http://kyoji.wo.ro"> KyoJi의 리눅스 이야기 </a> 많이 놀러와주세요.. -------------------------------------------------------- 아이고 인제 거진 다 왔습니다.. 조금만더함면.. 요건 끝입니다. 하지만 참고로 알아둘것이 있습니다. 뭐냐면.. 제가 지금까지 설명한 것들은 순서대로지만 정확히 말하면 한꺼번에 뭉쳐서 실행되는 거이기 때문에 뭘먼져 설명하느냐 따라서 틀려지게 될것입니다. 어떤 문서를 보면 다르게 설명되 있을 것 입니다. 사실 설명이 차이지. 순서는 그리 중요한게 아닐듯 싶군요 서로 얽혀져 있기 때문에... 암튼 공부 열심히 하시구요.. 조금 쉬었다가 계속 하렵니다. 그럼 즐거운 리눅싱 되세요..
Copyleft
1999-2026 by
JSBoard Open Project
Theme Designed by
IDOO
All right reserved