전공과목 정리/리눅스시스템 + 시스템프로그래밍

[리눅스시스템🐧] 1장 유닉스/리눅스 소개

최연재 2023. 12. 28. 04:36

교재 : 리눅스 시스템 원리와 실제 (창병모, 생능출판)

 

1.1 왜 리눅스인가?

1) 동기

- 유닉스/리눅스 운영체제는 1970년대 초 AT&T 벨 연구소에서 유닉스가 개발된 이후 지속적으로 발전하고 있다.

- 스마트폰, PC, 서버 시스템, 슈퍼컴퓨터에도 사용되며 소프트웨어 경쟁력의 핵심이라 할 수 있다.

- 유닉스/리눅스 기반 운영체제

  • 안드로이드 OS
  • iOS
  • 맥 OS X
  • 리눅스
  • BSD 유닉스
  • 시스템 V
  • Sun 솔라리스
  • IBM AIX
  • HP HP-UX
  • Cray 유니코스

2) 유닉스의 설계 철학

- 단순성 : MIT MULTICS에 반대하여 최소한의 기능만 제공하며 자원에 대한 일관된 관점을 제공.

- 이식성 : 이식성을 위해 C언어로 작성되었으며 다양한 플랫폼에 이식 가능.

- 개방성 : 소스 코드가 공개되어 있음.

3) 유닉스의 특징

- 다중 사용자, 다중 프로세스

  • 여러 사용자가 동시에 사용 가능하다.
  • 여러 프로그램이 동시에 실행된다
  • 관리자 슈퍼 유저가 있다.

- 쉘 프로그래밍 : 명령어나 유틸리티 등을 사용하여 작성한 프로그램

- 훌륭한 네트워킹

  • 유닉스에서부터 네트워킹이 시작되었다.
  • ftp, telnet, WWW, X-window 등

 

1.2 유닉스 시스템 구조

1) 유닉스 운영체제 구조

- 운영체제

  • 컴퓨터의 하드웨어 자원을 관리하고 프로그램을 실행할 수 있는 환경을 제공

- 커널

  • 운영체제의 핵심으로 하드웨어 운영 및 관리

- 시스템 호출

  • 커널이 제공하는 서비스에 대한 프로그래밍 인터페이스 역할

- 쉘 (shell)

  • 사용자와 운영체제 사이의 인터페이스
  • 사용자로부터 명령어를 입력받아 해석하여 수행해주는 명령어 해석기

2) 커널

(1) 커널의 역할

- 하드웨어 운영 관리

- 프로세스, 파일, 메모리, 통신, 주변장치 등을 관리하는 서비스 제공

 

(2) 프로세스 관리

: 여러 프로세스가 실행될 수 있도록 프로세스들을 CPU 스케줄링하여 동시에 수행되도록 함.

 

(3) 파일 관리

: 디스크와 같은 저장장치에 파일 시스템을 구성하여 파일을 관리

 

(4) 메모리 관리

: 메인 메모리가 효과적으로 사용될 수 있도록 관리

 

(5) 통신 관리

: 네트워크를 통해 정보를 주고받을 수 있도록 관리

 

(6) 주변장치 관리

: 모니터, 키보드, 마우스와 같은 장치를 사용할 수 있도록 관리

 

1.3 유닉스 역사 및 버전

1) 유닉스 역사 및 표준

- AT&T 벨 연구소에서 개발

  • D.Ritchie가 c언어로 다시 작성
  • 이론적으로 c 컴파일러만 있으면 이식 가능
  • 소스코드를 대학에 개방함.

- 유닉스의 큰 흐름

  • 시스템 V
  • BSD 유닉스
  • 리눅스

2) 유닉스 시스템 V

- 벨 연구소에 개발된 버전의 발전

- 유닉스 버전 중 최초의 대표적 성공 사례 : 여러 유틸리티가 공개되며 일반 사용자들에게 확산

- 다양한 상업용 버전으로 발전

ex) IBM의 AIX, Sun의 Solaris, HP의 UP-UX

3) BSD 유닉스

- 공개 소스코드를 기반으로 버클리대학교에서 개선

- 주요 기능 개선 : 메모리 관리 기능향상. 네트워킹 기능 추가(TCP/IP 네트워킹, 소켓 등)

- 상업용 운영체제의 기초

4) 리눅스

- PC를 위한 효율적인 유닉스 시스템

- 공개된 소스 코드

  • 인터넷 상에서 자원자들에 의해서 기능 추가 및 확장
  • 공용 도메인 상의 무료 OS

- 다양한 하드웨어 플랫폼에 포팅 가능

  • PC, 워크스테이션, 서버, 메인프레임 등
  • 놀라운 성능 및 안정성

- GNU 소프트웨어와 함께 배포

  • GNU/Linux 운영체제
  • 다양한 응용 프로그램

 

1.4 가상머신에 리눅스 설치

- 가상머신

  • 컴퓨터 하드웨어를 추상화
  • 실제 하드웨어와 같은 환경을 소프트웨어로 제공
  • 가상머신 소프트웨어 : VirtualBox, VMWare

 

1.5 사용자 계정 관리

- 슈퍼유저

  • 시스템을 관리할 수 있는 사용자
  • 슈퍼유저가 사용하는 계정 : root