Friday, April 30, 2010

컴퓨터, 이렇게 부팅된다

컴퓨터, 이렇게 부팅된다

[동아닷컴]



마이크로소프트의 새로운 운영체계인 윈도우7이 나온 지 수개월이 흘렀다. 정식 출시 전부터 가벼운 몸놀림과 산뜻한 인터페이스로 많은 관심을 받더니, 현재까지 순조로운 판매고를 올리고 있다는 소식이 들린다. 이 윈도우7은 이전 버전보다 다양한 기능과 특징, 사용 편의를 제공한다. 하지만 무엇보다도 사용자들의 많은 지지를 받았던 부분은 역시 '부팅 속도'다.

이전 윈도우(특히 윈도우 비스타)에서 지적되었던 불필요한 서비스나 시각 효과 등을 과감히 제거하여 보다 튼튼하고 가뿐한 운영체계로 다시 태어난 것이다.



하지만 제아무리 윈도우7이라 해도 어차피 몇 개월 사용하다 보면, 그리고 세심하게 관리하지 않으면 이내 ‘느림보 버벅 컴퓨터’로 전락하고 만다. 컴퓨터를 새로 산 지 얼마 되지도 않았는데, 왜 이놈의 컴퓨터는 늘 거북이걸음으로 부팅되는 걸까? 도대체 뭐가 문제일까? CPU? 메모리? 그래픽카드? 하드? 아니면 바이러스에 걸렸나?



아마도 지금부터 이야기하는 컴퓨터의 부팅 단계에 대해 이해한다면, 죄 없는 컴퓨터가 아닌 사용자 자신을 책망하게 될 것이다. 설명에 들어가기에 앞서 두 가지만 일러둔다.



먼저, 컴퓨터는 TV가 아니라는 것.

컴퓨터는 켜면 화면이 들어오고 끄면 화면이 꺼지는 TV처럼 그저 단순히 전기신호가 깜빡거리는 수준의 시스템이 아니라는 의미다. 전원을 넣으면 시스템 전체에 각각의 특수 명령이 전달되고, 최종적으로 윈도우 바탕화면이 나타날 때까지 모든 단계가 순차적으로 처리된다. 그러기 때문에 컴퓨터 부팅을 단순한 원리로 바라본다는 건 첨단 컴퓨팅 기술에 대한 도의가 아니다.



그리고 부팅 속도가 컴퓨터 전체 성능을 좌우하지는 않는다는 것.

개중에는 그 부팅되는 몇 초가 아쉬워 부팅 속도 개선에 목매는 이가 적지 않다. 25초 걸리나 30초 걸리나 어차피 오십보백보다. 5초 빨리 부팅시켜 고작 '야동'이나 보느라 늦게 자지 말고, 5분 먼저 끄고 다음날 일찍 일어나는 것이 건강에도 좋다.



자, 컴퓨터 앞에 앉아 전원 버튼을 누르기 직전이다. 실제로 전원 코드를 콘센트에서 빼지 않는 한 전원을 껐다 해도 본체에는 미세하게 전원이 흐른다. 단지 전원공급기(또는 파워서플라이)가 컴퓨터 작동에 필요한 전원을 메인보드에 흘려주지 않고 있을 뿐. 그러니 전기 절약 차원에서도 컴퓨터 사용이 끝나면 코드를 빼거나 멀티탭의 전원을 꺼두는 것이 바람직하다.



어쨌든 컴퓨터 전원 버튼을 누르면, 전원공급기나 CPU, 그래픽카드 등에 달린 냉각팬이 돌면서 컴퓨터는 부팅 순서를 하나씩 밟게 된다.



가장 먼저 220V 전원을 받은 전원공급기는 컴퓨터, 특히 메인보드에 그에 맞는 12V의 전기를 흘려보낸다. 컴퓨터 전원공급기는 메인보드에만 메인 전력을 인가하고, 메인보드에 장착되는 CPU나 메모리, 그래픽카드 등은 모두 이를 통해 전원을 공급받는다. 그래서 실질적으로 컴퓨터 부품에서 전원공급기가 가장 중요하다고 할 수 있다. 당연히 전원을 안정적으로 공급해야 하기 때문이다. 그래서 컴퓨터 부품 중 가장(까지는 아니더라도 제법) 투자를 많이 해야 하는 부분도 바로 이 전원공급기다. 제아무리 비싸고 좋은 부품을 갖다 놔도 안정적인, 그리고 충분한 전원이 공급되지 않으면 말짱 ‘도루묵’이다.

전원공급기에서 전원을 인가받은 메인보드는 CPU를 동작시키고, 이내 메인보드의 롬바이오스(ROM BIOS, 흔히 CMOS라고도 함)라는 기본 설정 정보를 읽어들인다. 이후 롬바이오스는 CPU와 메모리, 그래픽카드 등 시스템 전반적인 하드웨어의 기본 상태를 점검한다. 이를 컴퓨터 용어로 POST, 즉 Power On Self Test라 한다. '전원을 넣은' 후 '자체 테스트'를 수행한다는 의미다.

이 POST 단계에서 각 주요 하드웨어에 이상이 없으면 짤막한 비프음 '삑~' 하는 단음과 함께 다음 부팅 단계로 넘어가지만(이 비프음은 컴퓨터에 따라 나는 경우도 있고, 안 나는 경우도 있다), 만약 문제가 있다면 부팅은 더 이상 진행되지 않으며, 관련 에러 비프음을 연속으로 내보낸다.

에러 비프음 패턴에 따라 에러 원인을 유추할 수 있으며, 메모리와 그래픽카드 관련 에러가 대부분이다. CPU나 메인보드 문제라면 비프음 자체가 없다. 예를 들어, '삐비비삑' 또는 '삐~삐~삐~삐'와 같은 패턴의 비프음이라면, 전자는 그래픽카드, 후자는 메모리의 연결 상태 등을 점검해야 한다(단 이 비프음 패턴 역시 메인보드에 따라 약간씩 다르다).



이때 모니터 화면에는 일반적으로 CPU 정보, 메모리 설치량, 그래픽카드 정보 등이 표시된다. 브랜드 컴퓨터의 경우 이 POST 화면 대신에 자사 로고 등을 출력되기도 한다. 제조사 로고 출력 여부는 CMOS 설정에서 변경할 수 있다.



또한 이 POST 단계에서, 단순한 윈도우 재부팅(웜-warm 부팅)인지, 아니면 새로 켜는 부팅(콜드-cold 부팅)인지를 롬바이오스가 사전에 파악하여, 웜 부팅의 경우는 POST 단계를 건너뛰기도 한다. 아울러 메인보드의 롬바이오스는 100원짜리 만한 수은 건전지로 기본 설정 정보를 저장하고 있는데, 이 건전지가 다 닳았을 경우에도 경고 메시지를 출력한다. 물론 다 닳았다 해도 컴퓨터를 사용하지 못하는 건 아니다. 다만 CMOS 설정 정보를 저장하지 못하는 것일 뿐이니 건전지만 교체하면 그만이다.

POST 단계가 무사히 완료됐다면 이제 하드디스크와 ODD, 각종 외장 카드(요즘에는 카드 장착하는 일이 별로 없지만)의 상태를 파악한다. 이를테면, 키보드나 마우스의 연결 상태(PS/2의 경우), 요즘은 거의 사용하지 않는 FDD의 작동 상태 등을 점검하는 단계가 이에 해당된다.

<참고> 키보드, 마우스의 연결 포트 - PS/2, USB

키보드와 마우스를 본체에 연결하는 방식에는 PS/2와 USB, 두 가지가 있으며, 생김새가 확연히 달라 육안으로 쉽게 구분된다. 일반적으로 USB가 PS/2 방식보다 데이터 전송률이 우수하기 때문에 최근에는 USB 키보드, 마우스가 주류를 이루고 있다. 또한 USB는 PS/2보다 연결/해제가 유연해 컴퓨터 사용 중에도 자유롭게 끼우고 뺄 수 있다. 참고로 두 포트의 혼용도 가능하다. 예를 들어 키보드는 PS/2, 마우스는 USB로 사용해도 무관하며, 키보드 또는 마우스 두 개를 PS/2, USB로 연결해도 각각 사용 가능하다.

지금까지의 부팅 단계는 모두 CPU가 제어한다. 다시 말해, CPU는 전원이 들어온 순간부터 메인보드와 통신하며 각 부품의 이상 여부를 파악한 후, 모두 정상이라면 이제 부팅 제어권을 운영체계(일반적으로 윈도우)로 넘기게 된다. 참고로 이때 롬바이오스(CMOS)에 사전 설정된 부팅 장치 순서에 따라 하드디스크 또는 ODD에서 부팅을 시도하게 된다.

당연히 ODD가 부팅 1순위로 설정된 상태에서 ODD에 음악CD 같은 부팅불가 CD가 들어 있으면, '운영체계를 찾을 수 없다'는 메시지를 출력하며 시스템이 멈춘다(FDD 사용 시절에 흔히 생기던 에러였다).

이제 부팅 제어권을 건네 받은 운영체계는 하드디스크 안에 있는 부팅 영역(MBR-Master Boot Record)을 체크하여 '부트 로더(Boot Loader)'를 찾는다. 이 부트 로더는 흔히 여러 운영체계를 한 PC에 사용할 때(멀티 부팅) 원하는 운영체계를 선택, 로딩하는 역할을 한다. 이에 따라 윈도우도, 리눅스도 모두 각각의 부트 로더가 있다. 윈도우용 부트 로더가 한번쯤은 봤을 법한 'NTLDR', 즉 NT Loader다.

MBR에 부트 로더가 존재함을 확인하면, 이제 윈도우 부팅을 진행할 부팅 파티션을 찾는다. 이게 우리가 흔히 말하는 C:(드라이브)이다. 일반적으로는 C:에 윈도우를 설치하기 때문이다. 그래서 이 C 드라이브를 윈도우에서 보면 '시스템 파티션'이라 표기하고 있다.

물론 윈도우 설치 단계에서 D 드라이브 깔면 D 드라이브가 시스템 파티션이 된다. 하지만 이런 경우를 엄밀히 말하면, C 드라이브는 '부팅/부트 파티션'이 되고, D 드라이브는 '시스템 파티션'이 되는 것이다. 윈도우를 반드시 C 드라이브에 깔아야 하는 건 아니지만, 부팅에 필요한 부트 파일(한 서너 개쯤 된다)은 모두 C 드라이브에 있어야 한다.

이렇게 시스템 파티션과 부트 파티션까지 체크한 시스템은 이제 본격적인 운영체계, 윈도우 구동 단계로 돌입한다. 이때부터 늘 보는 윈도우 부팅 화면, 그 지렁이 흘러가는 모습을 물끄러미 지켜봐야 한다. 사실상 컴퓨터의 부팅 시간을 측정하는 시간은 이때부터다. 이전 단계에서는 컴퓨터에 장착된 부품에 따라 체크하는 단계가 다르므로 이 단계까지 부팅 시간에 포함하는 건 무리가 있다.



윈도우 상태에 따라 바탕화면이 뜨기까지 걸리는 시간 차이가 크다. 새로 포맷한 컴퓨터라면 그나마 금방 넘어가지만, 사용한 지 한 달 만 넘어가면 영락없이 느림보 윈도우가 되곤 한다. 도대체 왜 그럴까?



윈도우 부팅 화면, 즉 지렁이 화면 안쪽에서는 무수히 많은 프로그램과 서비스 등이 앞다투어 실행된다. 가장 먼저 컴퓨터 운영에 필요한 각종 장치 드라이버 파일이 하드디스크에서 메모리에 로드된다. 컴퓨터 용어로 '상주 된다’고 한다. 이를테면, 그래픽 성능을 위한 그래픽카드 드라이버, 소리를 내기 위한 사운드 드라이버, 인터넷에 접속하기 위한 네트워크 카드 드라이버, 마우스/키보드 사용하기 위한 USB 드라이버 등 수 많은 장치 드라이버가 하나씩 하나씩 메모리에 상주 되는 것이다.

장치 드라이버 파일 로딩이 끝나면 이제 윈도우용 각종 서비스가 실행되며 이 역시 메모리상에 올라간다. 윈도우의 서비스 관리자에서 확인해 보면, 윈도우 하나에 기본적으로 대략 40~50여 개의 서비스가 실행되는 것을 알 수 있다. 물론 이 중에는 반드시 필요한 서비스도 있고, 있으나 마나 한, 그러니까 없어도 될 서비스도 있다. 이와 같은 불필요한 서비스는 모두 메모리에 상주되어 시스템 자원을 잠식하는 주범이 된다. 특히 윈도우 비스타 시절 이로 인한 자원 낭비가 극에 달했다(그래서 사용자들은 비스타를 멀리하기 시작했다).

참고로 윈도우XP가 시작될 때 기본적으로 점유되는 메모리 양이 약 300MB 정도라 한다. 물론 비스타는 훨씬 많다. 그러니 512MB 메모리가 장착된 컴퓨터는 나머지 200MB 정도로 윈도우를 운영해야 하니 부팅도 느리고 프로그램 실행도 버벅거릴 수밖에 없는 것이다.

특히 아무 작업도 안 하고 있는데 계속 하드디스크가 미친 듯이 돌아가니 컴퓨터 사용 자체가 짜증 날 정도다. 이게 다 메모리 부족으로 인한 '페이징 파일' 과다 사용 때문이다(윈도우에서는 '가상 메모리'라 칭하고 있다).

기본 메모리가 부족하면 컴퓨터는 하드디스크의 일부 공간을 마치 메모리로 인식하게 하여 사용하는데, 메모리에 비해 한참 느린 하드디스크로 메모리 흉내를 내려 하니 하드가 그렇게 터질 듯이 돌아갈 수밖에 없는 것이다(이를 컴퓨터 용어로 스와핑-swapping 이라 한다). 결국 이때는 메모리를 늘리는 수밖에 달리 뾰족한 방법이 없다.

하여튼 이렇게 장치 드라이버, 각종 서비스 등이 어느 정도 로드되면 그제야 윈도우 로그인 화면, 바탕화면이 차례로 나타난다. 하지만 여기서 끝나는 게 아니다. 윈도우 '시작 프로그램'이라는 게 아직 남아 있다.



윈도우 바탕화면이 뜨면 그때부터 시작 프로그램으로 등록된 프로그램들이 또 차례로 실행된다. 이건 사용자에 따라 몇 개에서 수십 개까지 등록되기도 하는데, 그동안 컴퓨터를 사용하면서 알게 모르게 시작 프로그램으로 설치, 등록된 프로그램들이다. 예를 들어, 메신저 프로그램, MP3 음악 프로그램, 백신 프로그램, 게임 런처, 정체불명의 안티 스파이웨어 프로그램 등이다. 당연히 이들 역시 실행된 후 메모리에 상주되어 시스템 자원을 야금야금 잠식한다.

특히 요즘 인터넷을 사용하면서 의도하지 않은 이상한 백신 프로그램 등이 설치되어 컴퓨터가 느려지는 경우가 잦다. 이들 프로그램은 시작되면서 자동으로 하드디스크를 스캔하고, 바이러스 발견됐으니 치료하려면 요금을 결제하라는 창을 띄우곤 한다.

컴퓨터 산지 얼마 안 됐는데 컴퓨터가 전반적으로 느리다는 사용자의 바탕화면을 보면, 십중팔구 이러한 유해 프로그램에 완전히 포위당한 상태가 대부분이다. 또한 윈도우 작업표시줄 오른쪽 끝(시간 표시줄)에서 출발한 시작 프로그램 아이콘이 표시줄의 절반을 차지할 정도로 뒤죽박죽이기도 하다.

그러니 당연히 느릴 수밖에. 제아무리 고성능 CPU를 달아도 이러한 프로그램이 무수히 설치된 상황에서는 속수무책이다. 실례로, 알약이나 네이버 PC그린, 안철수 V3라이트 등의 공신력 있는 백신 프로그램을 제외하고, 듣도 보도 못한 백신/안티 스파이웨어 프로그램은 무시하는 것이 좋다. 사실 이러한 유해 프로그램은 사용자 자신도 모르게 깔리는 경우가 대부분인데, 무턱대고 설치 확인 버튼을 누를 게 아니라 한 번씩은 무슨 확인 버튼인지 확인하기를 적극적으로 권장한다. 그러면 무분별하게 깔리는 악성 프로그램의 90%는 충분히 사전에 차단할 수 있다.

이들 유해 프로그램에서 벗어나는 방법은 당연히 '삭제' 밖에 없다. 불필요한 건 과감히 삭제해야 한다. 필요한지 불필요한지 모른다면 그걸 알아야 한다. 그 정도는 공부해야 한다. 지금 실행되고 있는 프로그램이 뭔지, 그게 나한테 꼭 필요한 건지 아니면 필요할 때 그때그때 실행하면 되는 건지 정도는 구분할 수 있어야 한다.



프로그램 삭제는 제어판의 '프로그램 추가/삭제(윈도우XP)' 또는 ‘프로그램 및 기능(윈도우 비스타/7)’ 항목을 통해 정식으로 진행해야 하며, 그 목록에 해당 프로그램이 없다고 해서 대뜸 그 폴더를 통째로 지워버리는 과감한 행동은 자제하기 바란다. 일단 설치된 프로그램이라면 어딘가 분명히 삭제하는 방법도 있을 것이니 그걸 찾아야 한다.

그리고 윈도우의 시작 프로그램을 등록, 해제하는 'msconfig' 명령에도 익숙해지는 것이 좋다. 이 명령을 '시작' - '실행'을 통해 실행하면, [시스템 구성 유틸리티]라는 창이 뜬다. 그 창의 [시작프로그램] 탭을 보면 현재 자신의 윈도우가 시작될 때 덩달아 실행되는 프로그램 목록이 보인다. 한눈에 보기에도 많을 것이다. 그렇다. 이렇게 많은 프로그램이 바탕화면 뜨기가 무섭게 앞다투어 실행되느라 그동안 그렇게 부팅이 느렸던 것이다.

이 탭의 '시작 항목'과 '명령' 항목을 보면 대충 어떤 프로그램인지 감은 잡히리라 예상한다. 예를 들어, 아래아한글 업데이트 프로그램이나 어도비 리더 업데이트 프로그램 등은 컴퓨터 운영에 아무런 영향을 주지 않는 프로그램이다. 이뿐만이 아니다. 앞서 언급한 정체불명의 백신/스파이웨어 프로그램들이 모두 이곳에 등록돼 있다. 이것들을 해제해야 하는 것이다.

간단하게 체크만 지워주면 다음 부팅 때부터 해당 프로그램은 실행되지 않는다. 그러면 당연히 메모리도 점유하지 않을 것이고. 이런 방식이다. 어렵지 않다. 작은 관심만 있으면 된다.



이렇게 바탕화면이 뜬 후 시작 프로그램에 등록된 프로그램까지 모두 실행된 후에야 컴퓨터를 사용할 수 있는 최종 준비가 완료된다. 이러한 복잡한 단계를 거쳐 부팅되는 컴퓨터에서 5분이 걸리던 부팅 시간을 1~2분으로 단축시킬 수 있는 건 오로지 '사용자의 관심'뿐이다. 물론 사양 좋은, 성능 높은 하드웨어를 사용하는 것도 한 방법이지만 이 역시 한계는 있다. 그 한계를 넘어선 부팅 시간 단축은 다분히 사용자의 몫이다.



서두에 언급했듯이, 부팅 속도가 ‘컴퓨터 성능’을 대변하지는 않는다는 것을 다시 한번 강조한다. 부팅 속도가 빠르다는 건 그만큼 사용자가 관심을 두고 튜닝을 해줬다는 뜻이다. 내 컴퓨터는 왜 저 사람 컴퓨터처럼 부팅이 빠르지 않을까 막연하게 부러워하지만 말고, 어떻게 하면 좀 더 쾌적한 상태를 유지할 수 있을지 조금이라도 관심을 갖도록 노력하자. 좋은 컴퓨터를 선별해 구입하는 현명한 구매법도 중요하지만, 그런 좋은 컴퓨터를 제대로 활용하는 방법도 또한 중요하기 때문이다.

글 / IT동아 이문규 (munch@gamedonga.co.kr)

No comments: