[정보보안기사/리눅스] 리눅스(Linux)
리눅스
윈도우, 유닉스, iOS와 같은 운영체제의 한 종류로 컴퓨터 시스템의 하드웨어를 효율적으로 관리하기 위한 시스템 소프트웨어.
1989년 핀란드 헬싱키 대학에 재학 중이던 리누스 토르발스가 개발한 것으로 유닉스를 기반으로 하였으며 공개용 운영체제이다. 리눅스는 기존 유닉스와 다르게 대형 서버를 위해서 개발된 운영체제가 아니라 개인용 컴퓨터나 워크스테이션을 위해서 개발되었으므로 소스코드부터 운영체제 사용까지 GPL(General Public License) 라이센스가 적용된 운영체제이다. 그러므로 리눅스를 설치하고 사용자가 자신의 운영체제를 수정하여 사용할 수 있다
특징
-
다중 사용자
리눅스는 여러 명의 사용자가 네트워크를 통해서 접속하여 컴퓨터 시스템을 사용할 수 있는 다중 사용자 환경을 지원하기 때문에 사용자별 권한관리와 자원관리가 가능 -
다중작업
운영체제 내에서 여러 개의 프로세스를 동시에 실행시켜 CPU를 스케줄링하여 사용할 수 있다.여러 개의 프로세스가 동시에 실행되기 때문에 각 프로세스 간 작업순서 조정과 같은 스케줄링 기능을 가지고 있다. 이러한 스케줄링은 기본적으로 시간(Time Slice) 사용량만큼 자원을 할당하여 사용할 수 있게 하는 시분할 시스템을 지원
-
다중 처리기
컴퓨터 시스템에 한 개 이상의 CPU가 탑재되어 있는 경우 여러 개의 CPU를 지원해 주는 다중 처리기를 지원하며 작업을 병렬적으로 처리하여 시스템을 효율적으로 사용 -
다중 플랫폼
여러 종류의 CPU를 지원하여 대부분의 플랫폼을 지원하고 성능을 낼 수 있다 -
계층형 파일 시스템
리눅스 파일 시스템은 루트를 기반으로 하위 디렉터리를 이루는 계층형 파일 시스템으로 이루어져 있어서 디렉터리를 쉽게 추가하고 관리할 수 있으며 파일 시스템을 효율적으로 관리할 수 있다.계층형 파일 시스템은 리눅스 뿐만 아니라 윈도우, 유닉스 모두 계층형 파일 시스템으로 되어 있다
-
POSIX와 호환
POSIX는 유닉스 시스템의 표준 인터페이스를 정의한 것으로 리눅스는 POSIX 표준을 따른다 -
우수한 네트워킹
TCP/IP, IPX/SPC, Appletalk, Bluetooth 등 다양한 프로토콜을 지원하며 리눅스 설치 이후에 IP주소, 게이트웨이, 서브넷 등을 설정하면 바로 네트워크를 사용할 수 있다 -
가상콘솔
기본적으로 6개의 가상콘솔이 있어서 각 창마다 서로 다른 작업을 수행할 수 있으므로 물리적 모니터의 한계를 극복 -
가상 기억장치
주기억 장치의 한계를 극복하기 위해서 보조 기억장치를 마치 주기억 장치처럼 사용할 수 있도록 하여 주기억 장치의 공간을 증대하는 방법이 가상 기억장치이다.가상 기억 장치는 기억공간을 확대하여 기억장치를 효율적으로 사용할 수 있으므로 시스템을 안정적으로 사용할 수 있다
기능
-
작업 관리자
작업의 생성, 실행, 상태관리, 스케줄링, 시그널 처리, 프로세스 간 통신 등의 서비스 제공 -
메모리 관리자
세그먼테이션, 페이징, Swap 서비스를 통한 물리 메모리와 가상 메모리 관리 -
파일 시스템 관리자
파일 생성, 삭제, 접근 제어, 디렉터리 관리, 슈퍼블록 관리 등의 서비스 제공 -
네트워크 관리자
소켓, TCP/IP, 프로토콜 스택 관리 등의 서비스 -
장치 관리자
디스크, 각종 카드, 외부 인터페이스 등을 제어하는 드라이버 관리 서비스 제공
구성요소
커널(Kernel)
주기억 장치에 상주하면서 사용자 프로그램을 관리하는 운영체제의 핵심 역할
- 프로세스, 메모리, 입출력, 파일 관리 등을 수행
셀(Shell)
명령어 해석기, 번역기로 사용자 명령의 입출력을 수행하며 프로그램을 실행
- 기능
- 시그널을 처리
- 프로그램을 실행
- 파이프, 리다이렉션, 백그라운드 프로세스 설정
- 입력된 내용을 파악해서 명령 줄을 분석
- 와일드 카드, 히스토리 문자, 특수문자 분석
- 전역 설정파일 : 환경파일이 /etc 디렉터리에 존재하는 것으로 리눅스를 사용하는 모든 사용자에게 적용되는 환경 파일
환경변수
유용하게 사용될 변수 및 설정해야 하는 값을 설정해두는 것
환경변수 | 설명 |
---|---|
SHELL | 사용자의 로그인 셀의 절대경로 |
HOME | 홈 디렉터리에 대한 경로 이름 |
PATH | 실행할 명령어를 찾을 경로 |
USER | 사용자 이름 |
LOGNAME | 로그인할 때 사용할 이름 |
TERM | 사용 중인 단말기 설명 |
전자메일 우편함 | |
HOSTNAME | 호스트 명을 의미 |
TMOUT | 이 시간동안 명령 등의 입력이 없으면 연결 종료 |
C 셀
사용자의 작업 환경을 편리하게 하기 위하여 .cshrc
파일에 필요한 환경 변수를 저장하여 사용자가 로그인했을 때 지정 명령들을 자동으로 수행
TC 셀(tcsh)
- C 셀의 기능을 강화한 것으로 명령 편집 기능을 제공
bourne 셀
- 사용자의 편의성을 위하여
.profile
파일에 환경 변수를 저장 - .profile은 C 셀의 .cshrc 파일과 동일한 역할 수행
korn 셀
- .kshrc 또는 .profile 파일에 환경 변수 저장
- C 셀과 TC 셀의 기능을 모두 제공
bash 셀
- C 셀과 korn 셀의 특징을 결합한 것으로 GNU 프로젝트에 의해서 개발된 셀
- 리눅스에서 가장 많이 사용
- 명령 편집 기능을 제공
- .bash_profile : 사용자 홈 디렉터리에 있는 파일. 개별적인 셀 환경을 설정
- .bashrc : 사용자 정의 변수, 함수 alias를 정의
- .bash_logout : 사용자가 로그아웃할 때 실행되는 파일을 정의
댓글남기기