티끌모아 태산

소개 본문

CS 지식/시스템프로그래밍

소개

goldpig 2023. 12. 21. 12:16
728x90

  앞으로 시스템 프로그래밍 과목에서 배운 내용을 정리해 보도록하겠습니다. 이번 장에서는 시스템 프로그래밍에 대해 간략하게 소개하는 시간을 갖도록 하겠습니다. System programming을 통해 리눅스 커널에 포커스를 맞춰, 커널에 있는 중요한 자료 구조, 알고리즘 그리고 프로그래밍 기술에 대해서 배워보겠습니다. 

System Programming

시스템 프로그래밍은 결국 리눅스의 커널을 이해하는 것입니다. (Understanding the Linux Kernel). 우리가 일반적으로 알고있는 리눅스는 Servers, Destop, Mobile, Embeded Sytem 등 많은 부분에 존재합니다. Linux is everywhere!

위 사진에서 확인할 수 있듯이, 리눅스는 모든 곳에서 사용되고 있습니다. 그럼 왜 리눅스를 사용할까요?

Why Linux?

  1. Free and Open: Sorce code under the 'GNU Public License' 이기 때문에 모든 사람들이 무료로 자유롭게 사용하고 수정 및 복사가 가능합니다. (Everyone has the right to use, copy and modify the programs of free of charge.)
  2. Portable from mainframe handhelds: 저가의 하드웨어 플랫폼에서도 동작합니다. (Runs on cheap hardware platforms.)
  3. Compatibility and Efficiency: 1. 많은 일반적인 OS와 높은 호환성을 갖고있습니다. 2. 강력함: 리눅스의 주된 목표는 효율성입니다. 3. 작고 컴팩트한 커널을 갖고 있습니다. 
  4. Maturity: 1. 약 30년 된 UNIX 타입의 OS입니다. 2. 소스 코드 품질에 대한 높은 기준을 가지고 있습니다.
  5. Well supported: 새로운 하드웨어에 대한 장치 드라이버가 빠르게 제공됩니다.

What to learn?

System programming을 통해 리눅스 커널이 어떻게 동작하는지 확인하면서 커널에 대해 좀 깊게 이해해보겠습니다. 

Coverage

Linux Usage Share

https://en.wikipedia.org/wiki/Usage_share_of_operating_systems

 

728x90

'CS 지식 > 시스템프로그래밍' 카테고리의 다른 글

Chapter 4 : Timing Measurements  (0) 2023.12.25
Chapter 3: Interrupt and Exception  (0) 2023.12.23
Chapter 1: Linux Processes  (0) 2023.12.22