본문 바로가기
학점은행제

[컴퓨터시스템] 학습복습 - 유닉스/리눅스, 커널, 시스템 호출

by 코곰 2021. 5. 22.

컴퓨터시스템 학습 복습 내용은 아이티뱅크 컴퓨터시스템 강의 내용 및 교안을 바탕으로 합니다.

 

1. 유닉스/리눅스 역사 및 발전

* 운영체제

: "컴퓨터 시스템 제어하는 프로그램의 집합"

: 하드웨어와 사용자/응용프로그램의 중개자 역할

 

* 유닉스(UNIX)

: 1969년 벨 연구소에서 Ken Thompson과 Dennis Ritchie가 개발. 어셈블리 언어에서 C로 변경

 

: 시스템 V (벨연구소, 상업용)

: BSD 유닉스 (버클리 대학교, 메모리 관리 기능 향상, 네트워킹 기능, 상업용)

: 솔라리스 (Sun 회사, 상업용)

 

* 리눅스(LINUX)

: 1991년 Linus Torvalds가 개발. 오픈소스로 만들어짐

: 레드햇 (RedHat 회사, 유료), 페도라(RedHat,무료), 우분투 (Canonical 회사, 무료), 데비안, CentOS 등

 

* 맥 OS

: 1984년 애플의 컴퓨터용 OS로 시작

: BSD 유닉스 기반으로 맥 OS X 개발

 

* 안드로이드 - 모바일, 리눅스 기반, 오픈 소스

* iOS - 맥 OS X 기반, 낫 오픈 소스

 

2. 커널

* 운영체제의 핵심이 되는 부분. 시스템 부팅 시 로드

OS를 규정짓는 매우 중요한 부분. 하드웨어의 자원을 자원이 필요한 프로세스에 나눠주고, 덩달아 프로세스 제어(태스크 매니저), 메모리 제어, 프로그램이 운영체제에 요구하는 시스템 콜 등을 수행하는 부분으로 운영체제 맨 하부에서 돌아간다. 현재 많이 사용되고 있는 OS는 커널 위에 여러 가지 레이어를 올린 것
from 나무위키

* 리눅스는 파일 이름에 커널 버전 번호가 표시됨 - x.y.z.tar => x는 주버전, x는 부버전, z는 패치버전

 

* 하드웨어 제어

* 프로세스 관리 - 프로세스 스케쥴링

* 파일 관리 - 파일 시스템 디스크에 구성

* 메모리 관리 - 메인 메모리 효율적 관리

* 통신 관리 - 네트워크 이용

* 주변 장치 관리

 

3. 유닉스

* 단순성 - 최소한의 필요 기능만 제공

* 이식성, 확장성 - C로 작성, 하드웨어 플랫폼이 바뀌어도 쉽게 이식 가능. 각 기능이 모듈화되어 있어 확장성 좋음

* 개방성 - 오픈 소스

* 대화형 - CLI 기반 인터페이스 제공

* 다중 사용자 시스템 - 여러 사용자가 동시에 접속해 사용할 수 있는 OS

* 네트워크 관련 응용 프로그램, 네트워크 서버 기능, 프로그래밍, 디버깅, 문서 편집, 출력 관련 도구 등 제공

 

* 구조 - 하드웨어 < 커널 < [시스템 호출] < 쉘/라이브러리 < 사용자/응용 프로그램/유틸리티

 

* 운영체제의 핵심인 커널이 사용자 단과 분리되어 있고 시스템 콜을 통해 접근 가능

 

4. 시스템 호출 (system call)

운영 체제의 커널이 제공하는 서비스에 대해, 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스이다. 보통 C나 C++과 같은 고급 언어로 작성된 프로그램들은 직접 시스템 호출을 사용할 수 없기 때문에 고급 API를 통해 시스템 호출에 접근하게 하는 방법
from 위키백과

* 라이브러리 존재

 

5. 쉘

* 사용자와 커널 사이 중간자 역할

* 명령어 해석기

* 스크립트라는 프로그램을 해석함

* 사용자 명령 -> 해석 -> 커널에 전달

* 커널의 수행 결과 -> 사용자에 전달

 

6. 유닉스 시스템 접속

: 시스템 관리자에게서 접속을 위한 계정 받고 접속 프로그램 설치해 이용

: 시스템 관리자 - root 계정. 사용자 계정 관리, 소프트웨어 및 전체 시스템 관리와 유지보수

 

 

 

 

댓글