본문 바로가기

Linux

Linux 셸, 커널의 의미와 리눅스의 역사

728x90

Unix의 계보

 

Linux는 엄밀히 Unix 계열이 아니다.

Unix와 매우 유사하지만 Unix-like OS다.

 

그리고 Unix 계열 OS가 매우 다양한데, 옛날에는 AT&T 사의 System V와 Berkeley Software Distribution(BSD)가 Unix의 양대산맥을 이루었다. 그리고 다양한 회사가 변종을 만들어내어 Unix는 중구난방이었고 OS 간의 호환성도 떨어졌다.

 

그래서 IEEE는 POSIX(Portable Operating System interface)를 제안하였고 POSIX를 통해 유닉스 소스 간 호환성을 보장한다.

 

최근에 나오는 Unix 계열 OS 대부분은 POSIX-compliant하다.

다만, 대부분의 Linux OS는 POSIX를 100% 준수(POSIX-compliant)하지는 않는다.

[+] 참고 : POSIX compliant한 OS를 개발하기 위해서는 Conformance Test Suites(CTS)라는 것이 필요한데 이 비용이 만만치 않다고 한다.


유닉스 OS

Unix OS

유닉스 OS를 '범용 다중 사용자 방식의 시분할 운영체제'다.

70년대 초에 개발되었으며 추후에 AT&T SysV 계열과 BSD 계열로 나뉘어 발전하게 된다.

다양한 변종으로 발전되다 보니 표준화의 필요성이 제기되었고 IEEE에서 POSIX를 제안했다.

이후 UNIX는 POSIX compliant하게 개발되었다.

 

Linux

최초 Linux 커널 버전 0.0.1은 리누스 토팔즈(Linus Torvalds)에 의해 개발되었다(1991).

POSIX

앤드루 타넨바움(Andrew Tanenbaum)의 미닉스(Mini-Unix)는 리누스 토발즈에게 영감을 주어 Linux 커널이 개발된 것이다.

 

GNU Project

리차드 스톨만(Richard Stallman)은 GNU 프로젝트를 개시했다(1983).

리차드 스톨만은 자유 소프트웨어 운동의 일환으로 GNU 프로젝트를 개시하고 FSF(Free Software Foundation)을 설립했다. GNU 프로젝트를 통해 emacs, gdb, gcc 등을 개발했다. 또한, copyleft를 주장한 것으로 유명한데, copyleft는 copyright(저작권)의 반댓말로, 지식과 정보의 공유를 주장한다.

 

GNU 프로젝트로 개발된 FSF의 GNU 시스템과 리누스 토팔즈가 개발한 Linux 커널이 합쳐져 오늘날 불리우는 Linux OS가 탄생한다.


Kernel이란?

Kernel이란, 컴퓨터 운영체제의 핵심 프로그램으로 시스템의 모든 것을 제어 및 통제한다.

하드웨어와 애플리케이션 사이에서 운영체제와 응용 프로그램 수행에 필요한 여러가지 서비스를 제공한다.

 


Shell이란?

이란 운영체제의 사용자 인터페이스로 사용자의 요청을 운영체제가 이해할 수 있는 명령으로 변경하고 운영체제가 처리한 결과를 사용자에게 돌려주는 일종의 프로그램. 즉, 셸은 OS 사용자로 하여금 CLI 또는 GUI를 통해 OS를 제어할 수 있게 해준다. 대표적으로 bash, cshell, zshell 등이 있다.

* CLI(Command-Line Interface), CUI(Character-based User Interface) : 문자 기반의 인터페이스

* GUI(Graphic User Interface) : 그래픽 형태로 제공되는 인터페이스

 

셸, 커널의 개념

 


Bash란?

Bourne Again Shell의 약자로 스티브 본(Steve Bourne)이 개발한 최초 유닉스 쉘 프로그램인 sh의 확장판

1989년 개발되어 이후 Linux의 기본 셸로 탑재되었다.


Shell Prompt

user@DESKTOP-MN888BHC:/home/bithub/$
user@DESKTOP-MN888BHC:/home/bithub/#

사용자명@호스트이름:PWD$ 또는

사용자명@호스트이름:PWD#

형태를 가진다.

 

* $은 일반 사용자를 의미

* #은 관리자 권한을 가진 사용자(root)를 의미