System Programming Overview

김관주·2023년 9월 5일
0

시스템 프로그래밍

목록 보기
1/12

What is a computer?

위키피디아에 따르면 컴퓨터란 컴퓨터 프로그래밍을 통해 산술 또는 논리 연산의 순서를 자동으로 수행하도록 지시받을 수 있는 기계라고 한다.

a programmable machine that receives input, stores and manipulates data or information, and provides output in a useful format.

What is computer science?

Computer Science는 계산 이론, 알고리즘, 계산 문제 그리고 컴퓨터 시스템의 설계를 다룹니다.

핵심은 각 작업의 논리 및 규칙을 이해하는 것이다.

우리는 PC를 학습하는 것이 아니라 PC 뒤에 숨겨진 logic을 보게 될 것이다.

What is computer engineering?

컴퓨터 하드웨어와 소프트웨어를 개발하는 데 필요한 Computer Science와 전자 공학의 여러 분야를 통합하는 공학의 한 분야이다.

핵심은 하드웨어의 설계 방법과 소프트웨어가 하드웨어를 제어하는 방법을 이해하는 것이다.

컴퓨터 엔지니어로써 할 수 있는 일은 임베디드 마이크로컨트롤러용 소프트웨어 및 펌웨어 작성, 운영체제 설계가 있다.

컴퓨터 사이언스와 엔지니어링의 차이를 알아야 한다.

What is computer Software?

인코딩된 정보 또는 컴퓨터 instruction으로 구성된 컴퓨터 시스템의 일부이다.

  • Software가 high-level programming language로 작성되는 경우,
    high-level programming language는 compilerinterpreter를 사용하여 기계어로 번역된다.

  • Software가 low-level programming language로 작성되는 경우,
    assembler를 사용해 기계어로 번역된다.

  • 가장 낮은 레벨에서 실행 코드는 기계어의 instruction으로 구성된다.

    • 이 instruction은 CPU에 최적화 되어 있음

SOFTWARESystem SoftwareApplication Software로 나뉘어져 있다.
지금 학습하고 있는 내용은 System Software이다.
System Software에는 Operating System, Utility Program, Language Translator가 있다.

MCU

Microcontroller unit의 줄임말로써, CPU, 메모리, I/O 인터페이스를 통합하는 단일 VLSI 칩의 소형 컴퓨터이다.

  • 마이크로 프로세서, 메모리, 프로그램이 가능한 입출력 모듈을 하나의 칩으로 만든 것이다.
  • 프로그래밍을 통해 제어나 연산 작업이 가능하다.
  • 회로, LED, 모터를 제어할 수 있다.

Programming on MCU

  • MCU는 일반 컴퓨터에 비해 리소스가 제한되어 있다.

  • 이러한 리소스를 효율적으로 활용하기 위해 코드 최적화가 필요하다

  • high-level language는 하드웨어 세부사항보다는 high-level abstraction을 제공한다. 따라서 하드웨어를 세밀하게 control 하기 어렵다!

  • 어셈블리어는 기계어와 매우 밀접하므로 코드 최적화 하기 아주 쉽다.

  • 따라서 어셈블리어로 MCU를 control 하기 쉽다.

MCU는 어떤 언어부터 이해할 수 있을까?

이 그림을 기준으로 어셈블리어부터 기계어, 하드웨어까지 총 3개이다.

Why Assembly language?

  • Code optimization

  • Testing & Debugging

    • We can see how devices operate actually.
  • Reverse engineering

    • We can analyze programs without their source code

    왜 어셈블리어를 배워야 하는가? 장점..

0개의 댓글