color=#ffffff>자료출처 : 김동수님의 C 강의
제3강
====================================================================
WINDOWS(DOS) 가 작동되기까지
====================================================================
컴퓨터를 켠다
1. cpu 에 전기가 들어간다.
2.clock 을 발생시키는 칩이 cpu 에게 심장박동을
시켜준다.
3. cpu 는 ROM BIOS 가 있는 ROM 부분 (주소는
0xffff0 번지)에 있는
style="TEXT-INDENT: 10pt; mso-char-indent-count: 1.0; mso-char-indent-size: 10.0pt">데이터를
읽어오기 시작한다.
[ROM은 전기가 나가도 데이터를 기억하는 특성{ 쓰기 방지된 카세트 테잎처럼}이
있기 때문에 CPU 가 막 시작할때에도 읽어올 수 있는것입니다.
4.ROM
의 역할
ROM 은 용량이 작은 메모리이라서 많은 프로그램을 저장할 수 없다.
그래서 이것은 컴퓨터의 시스템을 점검하고나서 운영체제를 메모리상으로 올리는
역할을 합니다. 이 운영체제는 다른 많은 프로그램을 메모리상으로 올리는
능력을 가지고
있다,
메모리상으로 프로그램을 올린다는 이야기는 요리를
준비한다는것인데 즉 도마위에
요리책 과 재료를 올려놓았다는것으로 프로그램을 실행한다는것이다,
DOS.
프로그램이 하드 디스크에 있는 많은 프로그램을 자유롭게 불러 올 수 있다.
DOS는 (Disk
Operating System)의 준말이다. 즉 "디스크
작동 시스템"
이라는 뜻이다.
System 이란 컴퓨터 전체를 말하는 유기적인 장치들의 set 를 말한다.
Dos 는 이러한 유기적인 장치{ 램 ,cpu,그래픽 카드 등등}들을
작동시킨다.
디스크란 컴퓨터의 소프트 웨어를 저장하는 장치이다.
그래서 이장치를 작동 시킨다는 것은 곤 컴퓨터를 작동 시킨다는 된다.
DOS 까지만 정상적으로
메모리(RAM)에 올라오면 그다음 부터는 하드디스크의
프로그램 파일을 메모리상으로 불러 오는것은 DOS 가 할 줄아는 쉬운 일이다.
컴퓨터를 키고 나서 DOS가 메모리에 올라오기 까지의 일련의 과정을 우리는
부트
프로세싱(Boot processing)이라고 한다.
===================================================================
시스템 프로그래머와 응용 프로그래머
====================================================================
DOS
,Windows 등은 운영체제이며 이 프로그램을 시스템 프로그램이라하며, 컴퓨터라는
시스템을구성하는
각 장치를 작동 시키는 프로그램이다. 워드 나 한글 같은
것은
이
운영체제를 기반으로 하는 윈도우 응용 프로그램이라고 한다.
프로그램을 시스템 프로그래밍 ( low level) 과 응용 프로그래밍(high level )로 나누어
부른다
ROM_BIOS (부팅)
style="FONT-FAMILY: Wingdings; mso-hansi-font-family: 'Courier New'; mso-ascii-font-family: 바탕; mso-char-type: symbol; mso-symbol-font-family: Wingdings">
style="mso-char-type: symbol; mso-symbol-font-family: Wingdings">è 운영체제(win,DOS 같은것)
style="FONT-FAMILY: Wingdings; mso-hansi-font-family: 'Courier New'; mso-ascii-font-family: 바탕; mso-char-type: symbol; mso-symbol-font-family: Wingdings">
style="mso-char-type: symbol; mso-symbol-font-family: Wingdings">è 응용 프로그램(한글 같은 것)
====================================================================
CPU 는 1바이트단위로
16(2)진수로 된 숫자[기계어]를 읽는다
style="mso-spacerun: yes"> 그래서 컴퓨터는 문자단위(문자: 1바이트) 로 읽는다라고도 한다
===================================================================
기계어: 컴퓨터가 알아듣고 수행할 수 있도록 0과 1의 이진법 숫자로 만든
기초적인
언어
Cpu가 알아 듣는 말은 기계어 뿐이다
이 기계어(machine language)는 0 부터 255 까지
256가지의 숫자들인데 이는
한 바이트가 256까지 나타내기 때문이다. 이숫자들은 2진수와 16진수로 표현된다.
인간이 6각형의 주사위 놀이{1~6}를 한다면 컴퓨터는 256 각형의
주사위(0~255) 놀이를
한다고 볼 수 있다
인간이 1에서 10까지의 숫자를 센다면 컴퓨터는 0 과 1까지의
수(2진수) 혹은 0 부터 15
까지의 수를 센다(16진수) . 그래서 0 부터 255 까지를 컴퓨터는
0x00 ~0xff [16진수]로
센다.
cpu 는 각 기계어[0 부터 255까지] 에 명령어를 의미하기도 하고
숫자를 의미하기도 한다.
77 이
style="FONT-FAMILY: 'Courier New'; mso-ascii-font-family: 바탕">“+
style="FONT-FAMILY: 'Courier New'; mso-ascii-font-family: 바탕">”를 의미한다면
style="FONT-FAMILY: 'Courier New'; mso-ascii-font-family: 바탕">“77 33 22
style="FONT-FAMILY: 'Courier New'; mso-ascii-font-family: 바탕">” 는
style="FONT-FAMILY: 'Courier New'; mso-ascii-font-family: 바탕">“33 과 22 를 더하라
style="FONT-FAMILY: 'Courier New'; mso-ascii-font-family: 바탕">” 라는 식으로
첫번째 숫자는 명령어를 의미한다 style="FONT-FAMILY: 'Courier New'; mso-ascii-font-family: 바탕">“plus 33 and 22 . style="FONT-FAMILY: 'Courier New'; mso-ascii-font-family: 바탕">“ 이것은 intel 의
cpu 칩 설계자들의 아이디어 이다
기계어는 숫자의 나열인데 이것으로 프로그래밍한다면 암기를 잘해야할것이다
굳이 C 언어로 위의 77 33 22 를 표현한다면 33+22; 가
될것이다.
좀더 인간에게 직관적으로 느껴지는 쉬운 편이 아닌가?
인간이 사용하기 편한 언어로 프로그램을 짠뒤 다시 기계어로 변환시켜줘야 하는데
이런한 행위를 하는 것이 컴파일러이다.
우리가 finkl.cpp 라는 소스 코드를 작성햤을 때 컴파일러는 finkl.obj 로 변환시키고
다시금 linker 가 finkl.exe 로 만들어 준다. Finkle.exe 는 기계어로 번역된
실행화일이
된다.

Comments List
嫄몄
移