본문 바로가기

not기초/시스템프로그래밍

[시스템프로그래밍]리눅스 시스템 개요

어째서 Linux를 배우는가?

  1. 단순성(simplicity) : 자원에 대한 일관된 관점을 제공한다
  2. 이식성(portability) : C언어로 작성하여 다양한 플랫폼에 이식이 가능하다
  3. 개방성(openness) : 전체 소스 코드를 제공한다

리눅스 구조

    linux 운영체제 구조

  1. OS : 컴퓨터의 하드웨어 자원을 운영하고 프로그램을 실행할 수 있는 환경을 제공한다
  2. kernel : 운영체제의 핵심으로 하드웨어 운영하고 관리한다
  3. system call : 커널이 제공하는 서비스에 대한 프로그래밍 인터페이스 역할을 한다
  4. shell : 사용자와 운영체제 사이의 인터페이스로 사용자로부터 명령어를 입력 받아 해석하여 수행하여주는 명령어 해석기
  5. utilities : 평소에 사용하는 명령어들

커널의 역할

  1. 프로세스 관리 : 여러 프로그램이 실행될 수 있도록 프로세스들을 CPU 스케줄링하여 동시에 수행되도록 한디
  2. 파일 관리 : 디스크와 같은 저장장치 상에 파이 시스템을 구성하여 파일을 관리한다
  3. 메모리 관리 : 메인 메모리가 효과적으로 사용될 수 있도록 관리한다
  4. 통신 관리 : 네트워크를 통해 정보를 주고받을 수 있도록 관리한다
  5. 주변장치 관리 : 모니터, 키보드, 마우스와 같은 장치를 사용할 수 있도록 관리한다
출처 : 리눅스 프로그래밍, 창병모 저
참고
참고2