교재 : 리눅스 시스템 원리와 실제 (창병모, 생능출판)
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
'전공과목 정리 > 리눅스시스템 + 시스템프로그래밍' 카테고리의 다른 글
[리눅스시스템🐧] 6장 프로세스 (4) | 2024.01.03 |
---|---|
[리눅스시스템🐧] 5장 쉘과 명령어 사용 (2) | 2024.01.03 |
[리눅스시스템🐧] 4장 파일 사용 (2) | 2024.01.02 |
[리눅스시스템🐧] 3장 기본 명령어 (2) | 2024.01.02 |
[리눅스시스템🐧] 2장 X 윈도우와 데스크톱 환경 (2) | 2023.12.28 |