본문 바로가기

블록체인 기반 핀테크 및 응용 SW개발자 양성과정 일기

[112-3일차 복습] 운영체제, 커널, 리눅스, 쉘 (Shell)이란?

반응형

OS, 운영체제란? 

- 컴퓨터에서 일어나는 모든 동작을 제어

- 다양한 소프트웨어 및 하드웨어와 같은 컴퓨터의 모든 *자원 관리

- 운영체제 : 컴퓨터 내에 있는 시스템 소프트웨어 프로그램의 집합

=> 컴퓨터 시스템의 자원들을 효율적으로 관리하여, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 묶음 

 

- 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스로서 동작하는 시스템 소프트웨어의 일종 

- 다른 응용프로그램이 유용한 작업을 할 수 있도록 환경을 제공 

- 하드웨어 기능으로는 : 입/출력 및 메모리 공간 할당 

- 운영체제 프로그램은 : 응용프로그램과 하드웨어 사이의 중개자 역할 / 일반적으로 하드웨어에 의해 직접 실행되기도 

- An Operating System (OS) is a system software (Figure 5.1) that enables the hardware to communicate and operate with other software. It also acts as an interface between the user and the hardware and controls the overall execution of the computer.

 

 

OS의 대표적 예시 : Windows, Linux, Unix, Mac(Unix기반) ... 

 

OS의 목적 : 

처리능력 (Throughtput): 일정 시간 내에 시스템이 처리하는 일의 양

반환시간 (Turn Around Time): 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간

사용가능도 (Availability) : 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도 

신뢰도 (Reliabilty) : 시스템이 주어진 문제 

 

OS의 기능 : 

1. 프로세서, 기억장치, 입출력장치, 파일 및 정보 등 자원 관리

2. 자원을 효율적으로 관리하기 위한 자원의 스케쥴링 기능 제공

3. 사용자와 시스템 간 편리한 인터페이스 제공

4. 시스템의 각종 하드웨어와 네트워크를 관리, 제어

5. 데이터 관리, 데이터 및 자원의 공유 기능 제공

6. 시스템의 오류 검사 & 복구

7. 자원 보호 기능을 제공

8. 입 출력에 대한 보조 기능 제공

9. 가상 계산기 능력 제공 

 

OS 의 핵심 : 어떻게 자원을 효율적으로 관리할 것인가 !?  

자원은 하드웨어 자원과 소프트웨어 자원으로 나뉨. CPU는 통상적으로 컴퓨터 한 대에 하나가 탑재되어 여러 프로세스들이 CPU를 효율적으로 나누어 사용할 수 있도록 관리해야한다. CPU와 메모리는 전원이 꺼지면 처리 중이던 정보가 모두 사라지기 때문에 전원이 나가도 기억해야 하는 부분은 보조기억장치에 파일 형태로 저장된다. 이러한 파일들이 저장되는 방식 및 접근 권한 등에 대해서도 운영체제가 관리를 해주어야한다. (도움 : https://goodmilktea.tistory.com/23 )

 

 

*자원 

물리적 자원(Physical Resource) : CPU, 메모리, 디스크, 터미널, 네트워크, 주변장치 등

추상적 자원(Abstract Resouce) : 태스크, 세그먼트, 페이지, 파일, 통신프로토콜, 패킷 등 

 

 

 

- CLI (Command Line Interface), 명령 줄 인터페이스 = 명령어 인터페이스

: 웬만하면 요 CLI 터미널을 사용하는 것이 컴퓨터의 성능을 최대치로 사용 할 수 있다. 

 

 

- GUI (Graphic User Interface)

: 유저에게 보일 UI 을 구성하는데 컴퓨터 공간을 많이 차지함 

 

 

 

 

 

 

 

Kernal, 커널이란 ? 

- 컴퓨터의 가장 기본적인 각 장치들을 관리하고 제어하기 위한 소프트웨어 

- 항상 메모리에 상주 => 컴퓨터의 각 장치들을 관리 및 제어 => 사용자들과의 의사소통 담당 

- 프로세스, 메모리 관리, IPC, 파일 시스템, 네트워킹, 디바이스 드라이버 등의 역할 담당

- 리누즈토발즈가 개발한 리눅스는 RedHat or SULinx와 같은 배포형태의 개념이 아닌 그 속에 들어 있는 커널 부분만을 의미 

 

커널의 역할 

1) 태스크 관리 (Task Management) 

2) 메모리 관리 (Memory Management) 

3) 파일 시스템 관리 (File System Management)

4) 디바이스 관리 (Device Management)

5) 네트워크 관리 (Network Management) 

 

컴퓨터 전원을 켜면 운영체제가 동시에 수행됨 -> 소프트웨어가 컴퓨터 시스템에서 수행되기 위해 메모리에 올라가져 있어야 함 -> 마찬가지로 운영체제 자체도 소프트웨어로써 전원이 켜짐과 동시에 메모리에 올라가야함 

 

하지만 운영체제는 규모가 큰 프로그램이어서 메모리 공간 낭비가 심함 -> 따라서 OS 중 항상 필요한 필수적인 부분만을 메모리에 올려 놓고 다른 부분은 필요시에 꺼내서 사용 -> 이 때 메모리에 상주하는 OS 의 부분을 : 커널 이라고 함

 

커널 = 메모리에 상주하는 운영체제의 핵심적인 부분
=  좁은 의미의 운영체제 (보통 운영체제라고 하면 커널을 말하게 된다) 

 

 

 

 

 

 

Linux, 리눅스란 ? 

- 윈도우와 같은 OS, 즉 독자적인 컴퓨터 운영체제

- 리눅스 커널을 사용하는 무료 오픈소스 운영체제(OS), 버그 및 개발이 자유로워 역사상 가장 많은 참여자가 관여하고 있는 오픈 소스 프로젝트 

- 공개 소프트웨어라서 그룹이나 회사 등에서 커널소스 (Kernal Source: 하드웨어 자원을 효율적으로 관리하기 위한 요소) 를 받아 OS를 직접제작하여 사용된다. 따라서 특정 기관이 소유한 것이 아니어서 많은 다른 배포판이 나오게 됨 

- 상용 OS는 패치나 버그 수정을 발표하는데 수 개월이 걸리지만 리눅스는 효율적인 네트워크 구축이 되어 있어 엄청난 수의 프로그래머들이 직접 참가하여 수정 / 개발 / 발전이 매우 빠름 

 

리눅스의 종류 : Red Hat, Debian, Ubuntu, Android

 

리눅스의 특징 및 기능 : 

1) 뛰어난 신뢰성 , 높은 성능

2) 다양한 배포판 존재 -> 각 상황 / 업무 환경에 따라 선택 가능

3) 다중 사용자, 다중 처리 시스템 

: 각각의 응용 프로그램은 다른 응용 프로그램에 보호적으로 동작 -> 하나의 응용프로그램 오작동으로 인해 전체 시스템을 다운시키지않음

4) 풍부한 응용프로그램의 제공

5) 누구나 자유롭게 사용할 수 있는 운영체제 = 오픈소스 기반

6) 강력한, 안전한 네트워크 지원 

7) GUI 방식의 X윈도우 지원 

8) 뛰어난 안정성과 보안성 

 

 

  Linux Windows
개발환경 ASP Script 언어 지원 
MySQL db 사용 
PHP 언어 지원
MySQL db 사용 
응용 프로그램의 환경 파일  운영체제 및 응용프로그램의 환경을 설정하는 것으로 TEXT 파일을 이용하는 경우가 대부분  많은 환경 설정을 레지스트리라는 특별한 데이터베이스를 이용 
다중 사용자 환경 여부  O
여러 사용자가 동시에 서버에 접속하여 사용하도록 고안된 운영체제 
X
한 병의 사용자가 한 대의 컴퓨터를 사용하는 " 단일 사용자 환경 " 운영 체제 
커널 기반 특징  커널 기반 
사용자 환경과 커널이 분리되어 있음 
커널 존재 but 
사용자 인터페이스와 커널이 결합되어 있음 

 

 

 

 

 

SHELL 이란 ? 

The shell is the command prompt within Linux where you can type commands.

- 리눅스OS에서 명령을 입력하는 명령 프롬프트 창 

 

 

 

 

 

 

 

 

 

References : https://goodmilktea.tistory.com/23

 

1. 운영체제와 커널이란?

운영체제란? 운영체제는 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고, 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임입니다. 운영체제

goodmilktea.tistory.com

https://www.brainkart.com/article/Introduction-to-Operating-System_33654/

 

Introduction to Operating System

An Operating System (OS) is a system software (Figure 5.1) that enables the hardware to communicate and operate with other software....

www.brainkart.com

https://kma1079.tistory.com/entry/01-%EB%A6%AC%EB%88%85%EC%8A%A4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80

 

01. 리눅스란 무엇인가?

>리눅스란?  쉽게 말하자면 윈도우와 같은 하나의 독자적인 컴퓨터 운영체제(OS)입다.  ( -> OS란 컴퓨터의 하드웨어와 소프트웨어를 제어하여, 사용자가 컴퓨터를 쓸 수 있게 만들어주는 프로그

kma1079.tistory.com

http://www.penguintutor.com/linux/basic-shell-reference

 

Basic shell reference guide - Linux tutorial from PenguinTutor

Linux Basic Shell Reference Guide What is a Shell? The shell is the command prompt within Linux where you can type commands. If you have logged into a machine over a network (using ssh or telnet) then the commands you entered were run by the shell. If you

www.penguintutor.com

 

반응형