컴퓨터 프로그램 보호론/컴퓨터 및 컴퓨터프로그램의 기초

컴퓨터의 구조

+/-

컴퓨터는 수많은 하드웨어부품들과 소프트웨어들로 구성되어 있다. 하드웨어를 구성하는 부품에는 컴퓨터의 두뇌라고 할 수 있는 중앙처리장치(central processing unit)와 주기억장치, 보조기억장치(하드디스크, CD롬 등), 입출력장치(모니터, 키보드 등) 등 주변기기들이 포함된다. 소프트웨어는 컴퓨터의 용도에 따라 다양하게 존재하는데, 이들은 운영체계 소프트웨어, 시스템 소프트웨어, 응용소프트웨어 등으로 분류할 수 있다. 컴퓨터는 이와 같이 다양한 하드웨어 및 소프트웨어의 복잡한 상호작용을 통하여 주어진 작업을 처리하고 있다. 하지만 컴퓨터가 처음부터 이렇게 복잡한 시스템들로 구성된 것은 아니었다. 특히 소프트웨어의 경우, 처음에는 주어진 하드웨어에서만 작동하도록 설계된 하나의 단일프로그램으로부터 출발하였다. 이후 각각의 프로그램에서 공통적으로 요구되는 기능(예컨대 프로세서 관리, 메모리 관리, 입출력 관리 등)들을 추출하여 운영체계라는 공통의 플랫폼을 만들고, 각 프로그램들은 운영체계에 각자에게 필요한 서비스를 요청하는 형태로 발전하게 된다.

컴퓨터프로그램의 기술적 이해

+/-
  • 소스코드(source code) v. 오브젝트코드(object code)
  • 기계어, 어셈블리어, 저급언어, 고급언어
  • 컴파일러, 어셈블러, 인터프리터
  • 링커, 로더
  • 운영체계, 미들웨어, 응용프로그램
  • Client/Server
  • 리눅스 소스코드의 예