[비교/차이점] 콘솔(Console), 터미널(Terminal), 펌웨어(Firmware...

[비교/차이점] 콘솔(Console), 터미널(Terminal), 펌웨어(Firmware...

한번에 정리 콘솔

(Console) 터미널

(Terminal) 펌웨어

(Firmware) 운영체제

(OS; Operating System) 커널

(Kernel) 쉘, 셸

(Shell)

목차

0. 참고 및 출처

1. Console과 Terminal 차이

2. 펌웨어, 운영체제, 커널, 쉘 차이

3. 운영체제, 커널, 쉘, 터미널 비교표

4. 참고

1-1) CLI (Command-Line Interface 또는 Character User Interface)

1-2) GUI (Graphical User Interface)

2) 일괄 프로그램 (배치 파일, Batch File)

5. CMD, BASH 명령어 비교표

1. Console과 Terminal 차이

참고 : https://dinfree.com/lecture/core/101_basic_3.html

터미널은 원래 유닉스 기반의 대형 컴퓨터에서 사용자들이 컴퓨터에 접속하기 위해 사용했던 단말기를 의미 합니다. 즉 하나의 컴퓨터를 케이블로 연결해 여러명이 접속해 사용하는 방식이었습니다. 각각의 터미널은 대부부은 특별한 기능은 없고 모니터와 키보드를 가지고 있었으며 나중에는 확장되어 프린터나 마우스 등이 연결되는 형태로 까지 발전 했습니다.

지금은 개인용 컴퓨터를 사용하기 때문에 더이상 과거와 같은 터미널을 사용하지는 않습니다. 대신 원격으로 컴퓨터에 접속하거나 혹은 명령어입력을 통해 컴퓨터를 직접 제어 하기 위해 사용하는 소프트웨어를 터미널 혹은 콘솔(Console) 이라고 합니다.

콘솔과 터미널을 구분짓기 위해 수많은 자료를 찾고 또 찾았지만 머리 속에 혼란만 가중됩니다. 제가 찾은 자료 중 가장 설명이 잘 된 글을 소개합니다. 아래 글의 출처는 https://dojang.io/mod/forum/discuss.php?d=1117 입니다.

질문

책 본문에 콘솔(터미널, 명령 프롬프트)라고 괄호 안에 들어가 있는데요,

책, 위키, 검색으로도 기본적인 용어 정리가 안 되어서 여쭙니다.

물론, 깊이 파고들면 끝도 없지만... 어떤 차이가 있는지 궁금해서요.

(가상)콘솔/(가상)터미널/명령 프롬프트/cmd 등의 용어 정리 간략하게 부탁드립니다.

답변

구분 없이 쓰이고 있고, 앞으로도 그럴 겁니다.

역사적으로는 컴퓨터는 매우 비쌌고, 이를 제어하기 위해 쓰던 장비가 콘솔입니다. 콘솔이 가장 오래된 단어겠지요.

콘솔은 여전히 볼 수 있는데, 은행이 그렇습니다. 메인프레임 서버가 있고, 여기에 수없이 연결된 콘솔에서 업무를 처리하죠.

오늘날의 컴퓨터와 달리 콘솔은 화면, 키보드 같은 것들로만 구성되어 있었고, 저장 장치는 달려 있지 않았겠죠.

그래서 콘솔이라고 하면 여전히 하드웨어라고 생각하는 경향이 강합니다.

서버와 연결하는 세션을 터미널이라고 합니다. GUI 시대가 되고, 동시에 여러 서버에 접속하거나 같은 서버에 여러 개가 동시에 접속할 수 있는 시대가 되었습니다. 세션의 의미가 강조되어 터미널이라는 표현을 더 많이 쓰게 되었습니다. 리눅스나 맥 같은 경우에는 프로그램 이름이 터미널인 경우도 많고, 터미널 앱을 실행하면 제목 표시줄에는 console이라고 표시되기도 하죠.

윈도에서는 CUI 환경에서 PC를 제어하는 환경을 명령 프롬프트라고 부릅니다. 이는 DOS 시절에 명령 프롬프트라고 불렀던 것의 의미가 강합니다. 단, 여기에는 원격 연결 기능은 없습니다.

UNIX 환경에서부터 시작했던 서버/클라이언트 구조에서는 콘솔 = 원격 연결이었습니다. 중앙에 있는 서버에 접속할 수 있는 단말의 뜻이 더 강했습니다. 콘솔/터미널를 구분해서는 잘 안 쓰지만, 요즘은 앱 이름이 terminal이어서 터미널이라는 이름을 더 많이 쓰기도 합니다.

원격이든 로컬이든 터미널에서 접근하고 서버를 제어할 수 있습니다.

하드웨어와 물리적으로 연결해서 쓰던 장비가 콘솔이지만, 원격 접속인데도 console이라고 띄우는 프로그램들도 여전히 있습니다.

명령 프롬프트는 DOS 시절부터 이어져온 이름으로 윈도에서도 여전히 쓰이는 이름입니다.

프롬프트는 ~$이나 C:\>처럼 명령어 입력을 받을 수 있는 상태임을 나타내는 용어입니다.

UNIX 계열(리눅스, macOS 포함)이면 터미널이라는 이름을 쓰고,

윈도 계열이면 명령 프롬프트라는 이름을 씁니다.

콘솔은 역사상 가장 오래된 표현인데 UNIX 계열에서 터미널과 구분 없이 널리 쓰이고 있습니다. 예전에는 물리적으로 연결된 단말기가 콘솔이었습니다. 이 당시의 콘솔이란 전원을 켜면 서버에 자동으로 접속되어 해당 업무만 볼 수 있었습니다. 오늘날의 PC와는 많이 다릅니다.

굳이 집착할 필요가 없습니다. 어차피 현업 개발자나 강사들도 엉뚱한 의미로 쓰고 있고, 설명이 틀린 경우도 많습니다.

"콘솔(console)이라는 용어도 커맨드 라인 인터페이스를 뜻하는 말이다."

맞다면 맞고, 틀리다면 틀린 설명이죠.

컴퓨터 콘솔: 컴퓨터를 동작시키는 물리 장치로 단말기를 칭한다.[1]

https://ko.wikipedia.org/wiki/%EC%BD%98%EC%86%94

여전히 물리적인 장치라는 뜻이 남아 있어서 게임기 콘솔이나 콘솔 게임 시장 같은 표현을 씁니다. 보통 플레이스테이션, 닌텐도 스위치 등을 가리키죠.

반면에 PC 게임 시장을 가리킬 때는 물리적으로 연결되어 있음에도 '콘솔'이라는 표현은 쓰지 않습니다. 은행원의 콘솔처럼 특정 업무만 할 수 있다라는 뜻이 포함된 것인지도 모르겠습니다.

2. 펌웨어, 운영체제, 커널, 쉘 차이

참고 : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId;=sheep_horse&logNo;=221271033909

1) 펌웨어(Firmware)

- CPU를 둘러싼 주변장치들이 각자의 기능대로 작동하기 위해 필요한 가장 최소한의, 기본적인 프로그램

- 전자기기에 공장 출고시 설치되며 애플리케이션 설치를 통한 기능 추가를 할 수 없는 것

- 읽기 전용 메모리 (ROM; Read-Only Memory)

2) 운영체제 (OS; Operating System)

- 시스템 하드웨어를 관리할 뿐 아니라 응용 소프트웨어를 실행하기 위하여 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어이다.

- RAM(Random Access Memory), 저장장치

- 응용 소프트웨어(응용 프로그램) : 운영 체제에서 실행되는 모든 소프트웨어를 뜻한다. 따라서, 워드프로세서, 스프레드시트, 웹브라우저들뿐만 아니라 컴파일러나 링커 등도 응용 소프트웨어에 속한다.

3) 커널(Kernel)

- 운영 체제의 일부분으로, 운영 체제의 핵심적인 역할을 하는 부분

- CPU, 메모리, 입출력 장치 등과 같은 중요한 자원을 초기화하고 관리하는 부분

- 종류 : 단일형 커널(monolithic kernel), 마이크로커널(microkernel), 혼합형 커널(hybrid kernel), 엑소커널(exokernel), 나노커널(nanokernel)

4) 쉘, 셸(Shell)

운영 체제에서 커널과 이용자 사이에 끼어서 이용자의 명령을 해석하고 그 처리 결과를 뿌려주는 시스템 프로그램 또는 터미널을 사용하기 위한 소프트웨어 환경을 말합니다. 쉘은 조개 껍데기라는 의미를 갖고 있어 내부의 커널이 있고 사용자는 이를 감싸고 있는 껍데기를 통해 커널에 접근한다는 개념으로 컴퓨터 초창기인 60년대부터 사용된 단어이다.

예를 들어 키보드 입력과 명령을 실행할 수 있도록 해주고 디렉토리의 이동과 파일의 생성등을 지원하며 필요시 스크립트 작성을 지원해 복잡한 작업을 한번에 처리할 수 있도록 하는등의 기능을 제공합니다.

유닉스 사용을 위해 제일 처음 배우는 것이 바로 쉘 이며 쉘역시 소프트웨어 이므로 여러 종류의 쉘이 존재 합니다. 쉘에 따라 명령어 자동완성이나 텍스트 강조 등 여러 기능에 차이가 있을 수 있습니다.

- 종류 : 본 셸(Bourne Shell; sh), 본 어게인 셸(Bourne-Again Shell; Bash), C셸(csh), 콘셸(korn Shell; ksh), Z셸(zsh)

- Dollar sign ($) : 일반 사용자

- Hash (#) : root 사용자

- percent (%) : C셸(csh)의 일반 사용자

3. 운영체제, 커널, 쉘, 터미널 비교표

소유 Microsoft Apple The Open Group GPLv2 하에 오픈 소스 로고 운영체제

(OS) MS-DOS Windows 계열 Mac OS

(Macintosh System) UNIX LINUX 커널

(Kernel) io.sys, msdos.sys Window NT

(ntoskrnl.exe,

혼합형 커널) 리눅스 커널

(단일형 커널) 유닉스 커널

(단일형 커널) 리눅스 커널

(단일형 커널) 쉘

(Shell) CLI COMMAND.COM cmd.exe bash, csh, ksh 등

GUI MS-DOS 셸 explorer.exe Finder X X 프로그램(앱) MS-DOS 프롬프트

(MS-DOS Prompt)

명령 프롬프트

(CMD; Command Prompt) Terminal - 파워셸

(PowerShell)

4. 참고

1-1) CLI (Command-Line Interface 또는 Character User Interface)

- 사용자가 컴퓨터 키보드 등을 통해 문자열의 형태로 입력하며, 컴퓨터로부터의 출력 역시 문자열의 형태로 주어진다.

- 예시) MS-DOS, 명령 프롬프트(CMD), Bash 등

Windows의 명령 프롬프트(cmd)

1-2) GUI (Graphical User Interface)

- 사용자가 편리하게 사용할 수 있도록 입출력 등의 기능을 알기 쉬운 아이콘 따위의 그래픽으로 나타낸 것이다.

- 예시) Windows, Mac OS 등

Windows 10

2) 일괄 프로그램 (배치 파일, Batch File)

윈도 명령 프롬프트를 위한 스크립트 언어. GUI이므로 자동화가 곤란한 Windows 탐색기를 대신하여 CUI 환경인 명령 프롬프트에서 자동화 작업을 수행할 수 있도록 해 준다.

확장자는 MS-DOS 시절부터 내려오는 .bat과 명령 프롬프트 고유의 .cmd가 있다. 아직도 .bat 확장자가 널리 쓰인다.

.ps1이라는 확장자도 있다. 이는 powershell에서 실행된다.

5. CMD, BASH 명령어 비교표

작업 내용 작업 내용 상세 CMD

(Windows) BASH

(Mac OS, UNIX/LINUX) 현재 디렉토리의 파일 목록 출력 dir

(directory) ls

(list) 숨겨진 파일 포함 ls -a

(list all) 자세히 ls -l

(list long) 파일 크기 순으로 정렬 ls -s

(list size) 거꾸로(역순) ls -r

(list reverse) 하위 디렉토리 포함 ls -R

(list recursive) 조합하여 사용 ls alSrh

(list all Long Size Reverse Human) v로 시작, .c로 끝나는 디렉토리 ls v*.c 현재 디렉토리 path 출력 cd

(change directory) pwd

(print working directory) 디렉토리 이동 현재 디렉토리 이동

(의미 없음) cd . 상위 디렉토리로 이동 cd .. 루트(/) 디렉토리로 이동 cd / 홈(~) 디렉토리로 이동 cd 이전(-) 디렉토리로 이동 cd - 특정 디렉토리로 이동

(기준 : 현재 디렉토리) cd [디렉토리명] 특정 디렉토리로 이동

(기준 : 루트 디렉토리) cd /[디렉토리명] 빈 파일 생성 touch [파일명] 디렉토리 생성 mkdir [디렉토리명]

(make directory) 텍스트 형태로 파일 내용 출력 cat [파일명]

(concatenate) 파일 이름 바꾸기 rename [변경전 파일명] [변경후 파일명] [대상 파일]

from http://seomile.tistory.com/39 by ccl(A) rewrite - 2021-09-22 18:00:41