리눅스란?
핀란드 헬싱키대학에 재학 중이던 리누스 토르발스가 유닉스를 기반으로 개발한 공개용 OS
컴퓨터 OS 커널의 일종인 리눅스 커널을 사용하는 운영체제로, 리누스 토르발스가 만든 커널에 쉘, 컴파일러, 기타 응용 프로그램들이 조합된 배포판.
유닉스란?
처음으로 어셈블리어가 아닌 고급 프로그램 언어인 C언어로 작성된 운영체제(OS)
C언어로 개발되었기 때문에 다른 하드웨어로 이식하기가 쉬웠으며, 멀티태스킹 기술을 도입하여 여러 사용자가 동시 사용 가능
POSIX라는 UINX OS 표준이 생겼으며, 대표적으로 LINUX와 MAC, IOS, Android가 있음
CLI(Command Line Interface)에 특화되어 있음
CLI: 가상 터미널을 통해 사용자와 컴퓨터가 상호 작용하는 방식
커널
사전적 의미는 '알맹이', Linux OS의 핵심으로 자동차의 엔진에 해당하는 부분
프로세스 관리, 메모리 관리, 파일 시스템 관리, 장치들과의 정보 교환 및 제어 등
현재 제어하는 하드웨어 장치의 지원 여부 정보, 하드웨어 성능, 하드웨어를 제어하는 코드 등이 들어있음
안정 버전(Stable Version): 이미 검증된 개발 완료 코드
개발 버전(Developmental Version): 현재 개발 중인 버전
셸(Shell)
운영체제 상에서 다양한 운영체제 기능과 서비스를 구현하는 인터페이스 제공 프로그램
사용자와 운영 체제의 내부(커널) 사이의 인터페이스를 감싸는 층
사용자가 입력한 명령어의 해석을 담당
사용자가 입력한 명령어의 해석을 담당
셸은 텍스트 기반에서 사용자가 원하는 작업을 실행하고 그 명령을 운영체제를 통하여 수행 후 다시 사용자에게 결과를 보여줌
셸 종류 | 설명 |
Bourne Shell(1977) : bs | Unix 셸의 최초의 셸, 벨 연구소의 스티브 본이 개발 |
C Shell(1978) : csh | 버클리 대학 빌 조이가 개발한 것으로 C언어를 기반으로 개발함 크기가 크고 속도가 느리지만 기능이 편리 |
TC Shell(1981) : tcs | C셸과 통합해서 탄생된 셸 C셸에 없던 자동완성, 편집기능 지원 |
Korn Shell(1983) : ksh | AT&T사의 벨 연구소에서 데이비드 콘이 개발 bs를 확장해서 제작함 C셸의 특징을 모두 제공하며 처리 속도가 빠름 History, vi 기능을 제공 |
bash(1989) | 브라이언 폭스가 GNU프로젝트를 위해 개발 bs를 기반으로 제작되었으며 리눅스의 기본 셸으로 정착 다양한 운영체제에서 사용 |
dash | POSIX표준을 준수하여 작은 크기로 만들어진 셸 우분투 6.10이후 부터는 dash셸을 기본으로 사용 |
리눅스의 특징
다중 사용자: 서로 다른 사용자가 동시에 하나의 시스템을 사용할 수 있는 OS
자유 사용: 리눅스는 오픈소스 소프트웨어로, 누구나 사용할 수 있고 누구나 수정할 수 있으며, 판매 및 재배포 가능
높은 이식성(확장성): C언어로 작성된 OS로서, 특정 기계에 비 의존적이기 때문에 어느 기계나 컴퓨터에서도 구동하기 쉬움
계층적 구조: 리눅스는 root 폴더부터 시작하여 계층적 구조로 이루어져 있음
root 사용자: 계정 및 전체 시스템을 관리 감독할 수 있는 관리자 계정이 존재하며, 관리자를 통해서만 가능한 작업이 존재
사용: 개인 Desktop, 서버(웹, 메일, FTP, DNS 등), 모바일(스마트폰, 태블릿) 등 많은 곳에서 사용
우분투
데비안 리눅스를 기초로 GNOME 데스크톱 환경을 사용하는 리눅스 배포판
데비안 리눅스는 1993년, 이안 머독이 창시한 데비안 프로젝트에서 제작
패키지 설치 및 업그레이드가 상당히 단순하며, apt 프로그램을 이용해 자동으로 소프트웨어 설치와 업그레이드가 가능
우분투 배포판은 기본적으로 우분투 데스크톱/우분투 서버 두 가지를 배포
우분투 데스 크롭: X 윈도 환경 지원, 파이어폭스, Gimp이미지 편집기 등 다양한 GUI tool을 제공
우분투 리눅스의 장점
설치가 쉬움, 유니티 그래픽 환경, 쉬운 업데이트/ 자동 업데이트, 소프트웨어 센터, 높은 점유율과 활발한 커뮤니티
가상 머신(VMware)의 특징과 장점
한대의 컴퓨터만으로 실무 환경과 거의 비슷한 네트워크 환경을 구성할 수 있음
운영체제의 특정 시점을 저장하는 스냅숏(Snapshot) 기능
하드디스크 등의 하드웨어를 내 맘대로 여러 개 장착해서 테스트 가능
현재 PC 상태를 그대로 저장해놓고, 다음에 사용할 때 현재 상태를 이어서 구동 가능
'Linux' 카테고리의 다른 글
리눅스에서 네트워크 패킷 테스트: 네트워크 성능과 보안 점검 (0) | 2025.03.18 |
---|---|
tail 명령어 활용법 (0) | 2024.07.16 |
백그라운드에서 Java 애플리케이션(WAR 파일) 실행하기 (0) | 2024.06.26 |
#Linux 3 (2) | 2022.11.08 |
#Linux 2 (0) | 2022.11.07 |