01. 리눅스 시스템 프로그래밍이란?

2023. 1. 16. 11:57리눅스 시스템 프로그래밍 Linux System Programming

01. What is "Linux System Programming"?


시스템 프로그램이란?

-windows, unix와 같은 운영체제들

-하드웨어를 사용할 수 있도록 도와주는 프로그램이다

-또한, 어셈블리어나 C언어를 이용해 하드웨어를 직접 컨트롤 할 수도 있다

 

응용 소프트웨어 프로그램이란?

-시스템 프로그래밍은 모든 응용 프로그램에 포함됨.

 

시스템 프로그래밍이란?

-운영체제와 같은 커널 및 핵심 라이브러리를 직접 사용해 하위 레벨에서 동작하는 시스템 소프트웨어를 프로그래밍하는 기술.

-컴퓨터 시스템을 활용하는 소프트웨어 개발

-특정 운영체제 기반의 컴퓨터에게 일을 시키기 위한 프로그램을 구현하는 것

==> 시스템 프로그래밍을 제대로 공부하기 위해서는 운영체제와 컴퓨터 구조를 알아야 한다!

 

운영체제란?

-컴퓨터 시스템을 동작시키는 프로그램

-하드웨어를 모르는 사람들이 컴퓨터를 쉽게 사용할 수 있도록 도와주는 소프트웨어

 

컴퓨터 시스템의 주요 구성요소는?

컴퓨터 시스템의 주요 구성요소

 


리눅스란?

유닉스 운영체제를 연구하기 위한 목적으로 만들어짐.

유닉스의 복사본이라고도 불리지만, 유닉스가 아니라는 이름인 리눅스이다!

 

리눅스 운영체제

-명령행 인터페이스(Command Line Interface): 유닉스와 매우 흡사.

-그래픽 사용자 인터페이스(Grahpic User Interface): 데스크톱 환경에서 동작.


GCC 컴파일러

-작성한 코드를 gcc 컴파일러를 통해 컴파일하고 테스트해볼겨

 

$ man gcc

옵션을 사용하지 않고 gcc 명령 -> 컴파일 후 링킹을 통해 a.out 결과물이 생성

$ gcc example.c

원하는 출력 결과로 만들기 위해서는 아래 코드

$ gcc -o example example.c
$ ./example

위 코드를 입력하면, 해당 파일의 내용이 출력된다.

 

 

 

$ gcc -c example2.c
$ ls

-c 옵션을 사용하면 오브젝 파일이 생성된다.

 


참조:

https://wisetrue.tistory.com/179 시스템 프로그래밍이란? - 2023.01.16

https://dlgnlfus.tistory.com/166 시스템 프로그래밍이란? - 2023.01.16

https://velog.io/@sjm1013ok/CS-STUDY-1 1. 컴퓨터 구조에 대한 첫 번째 이야기 - 2023.01.16

https://ehpub.co.kr/%eb%a6%ac%eb%88%85%ec%8a%a4-%ec%8b%9c%ec%8a%a4%ed%85%9c-%ed%94%84%eb%a1%9c%ea%b7%b8%eb%9e%98%eb%b0%8d-1-2-gcc-%ec%bb%b4%ed%8c%8c%ec%9d%bc%eb%9f%ac-%ec%82%ac%ec%9a%a9%eb%b2%95/ 1.2 GCC 컴파일러 사용법 - 2023.01.16