[Linux] 유닉스와 리눅스
by Choi HyeSun
유닉스(UNIX)
UNIX?
-
주로 서버용 컴퓨터에서 사용되는 운영체제
-
원래는 멀티유저용 서버 운영체제이나 현재는 개인용 데스크탑이나 임베디드용으로도 쓰임
-
대부분의 현대적 컴퓨터 운영 체제의 원형이 된 OS
-
현대의 윈도우 계열이 아닌 리눅스, 안드로이드, macOS, iOS 등의 많은 운영 체제가 유닉스를 그 뿌리로 하고 있음
UNIX 특징
-
시분할 시스템(Time Sharing System)을 위해 설계된 대화식 운영체제로, 소스가 공개된 개방형 시스템
-
대부분 C언어로 작성되어 있어 이식성이 높으며 장치, 프로세스 간의 호환성이 높음
-
크기가 작고 이해하기가 쉬움
-
다중 사용자, 다중 작업을 지원
-
많은 네트워킹 기능을 제공하므로 통신망 관리용 운영체제로 적합
-
트리구조의 파일 시스템
-
전문적인 프로그램 개발에 용이
-
다양한 유틸리티 프로그램들이 존재
UNIX 구성
-
커널(Knernel)
-
Unix의 가장 핵심적인 부분
-
컴퓨터가 부팅될 때 주기억장치에 적재된 후 상주되면서 실행
-
하드웨어를 보호
-
프로그램과 하드웨어 간의 인터페이스 역할을 담당
-
프로세스(CPU 스케줄링)관리, 기억장치 관리, 파일관리, 입출력 관리, 프로세스간 통신, 데이터 전송 및 변환 등 여러가지 기능을 수행
-
-
쉘(Shell)
-
사용자의 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어해석기
-
시스템과 사용자간의 인터페이스를 담당하며 주기억장치에 상주하지 않고, 명령어가 포함된 파일 형태로 존재
-
보조기억장치에서 교체처리가 가능
-
파이프라인 기능을 지원
-
입출력 재지정을 통해 출력과 입력의 방향을 변경할 수 있음
-
자신이 만든 Shell을 사용할 수도 있음
-
-
유틸리티프로그램(Utility Program)
-
일반 사용자가 작성한 응용프로그램을 처리하는데 사용
-
Dos에서의 외부 명령어에 해당
-
에디터, 컴파일러, 인터프리터, 디버거 등
-
UNIX 파일 시스템
-
UNIX파일 시스템의 디렉터리 구조는 트리구조
-
디렉터리나 주변장치를 파일과 동일하게 취급
-
파일 소유자, 그룹 및 그 외 다른 사람들로부터 사용자를 구분하여 파일을 보호
-
파일 생성 및 삭제 기능, 보호 기능
-
파일 형식은 일반파일, 디렉터일파일, 특수파일 이렇게 3가지 형식을 제공
-
-
UNIX 파일 시스템의 구조
-
UNIX파일 시스템의 구조는 디스크를 블록으로 분류하여 배치한 구조를 의미
-
부트블록, 슈퍼블록, I-node블록, 데이터블록으로 구성
-
부트블록 : 부팅시 필요한 코드를 저장하고 있는 블록
-
슈퍼블록 : 전체 파일 시스템에 대한 정보를 저장하고 있는 블록
-
I-node블록 : 각 파일이나 디렉터리에 대한 모든 정보를 저장하고 있는 블록
파일 소유자의 사용자번호(UID), 그룹번호(GID), 파일 크기, 파일 타입,
생성시기, 최종변경시기, 최근사용시기, 파일의보호권한, 파일링크수, 데이터가 저장된 블록의 시작주소 -
데이터블록 : 디렉터리 별로 디렉터리 엔트리와 실제 파일에 대한 데이터가 저장된 블록
-
UNIX 명령어
- 프로세스 관련
명령어 | 의미 |
---|---|
fork | 새로운 프로세스 생성 |
exec | 새로운 프로세스 수행 |
exit | 프로세스 수행 종료 |
wait | fork 후 exec에 의해 실행되는 프로세스의 상위 프로세스가 하위 프로세스 종료 등의 event를 기다림 |
kill | 프로세스 제거 |
getpid | 자신의 프로세스 아이디를 얻음 |
getppid | 부모 프로세스 아이디를 얻음 |
& | 백그라운드 처리를 위해 명령의 끝에 입력 |
signal | 신호를 받았을 때 프로세스가 취할 동작 지정 |
pipe | 프로세스 간 통신을 위한 경로 설정 |
- 파일 및 디렉터리 관련 & 기타 관련
명령어 | 의미 |
---|---|
create | 파일 생성 |
open | 파일을 사용할 수 있는 상태로 준비 |
close | 파일 닫음 |
cp | 파일 복사 |
mv | 파일 이동 또는 이름 변경 |
rm | 파일 삭제 |
cat | 파일 내용을 화면에 표시 |
chmod | 파일의 보호 모드를 설정 → 파일 사용 허가 지정 |
chown | 소유자 변경 |
find | 파일 찾기 |
mknod | 특수 파일 생성 |
mount | 파일 시스템 마운팅 |
unmount | 파일 시스템 마운팅 해제 |
mkfs | 파일 시스템 생성 |
fsck | 파일 시스템 검사 및 보수 |
mkdir | 디렉터리 생성 |
chdir | 현재 사용할 디렉터리 위치 변경 |
rmdir | 디렉터리 삭제 |
ls | 현재 디렉터리 내의 파일 목록 확인 |
finger | 사용자 정보 표시 |
리눅스(LINUX)
LINUX란?
-
소스 코드가 공개되어 있는 대표적인 오픈 소스 소프트웨어 (git)
-
다양한 배포판이 있음
- 리눅스 커널을 사용하면 전부 리눅스라고 부름
-
[라이선스] GNU General Public License (GNU 일반 공중 사용 허가서)(GPL)라는 ‘소스 공개 및 자유로운 이용을 원칙으로 하는’ 라이선스에 의해 배포
- GPL : 무료로 배포할 의무는 없고 돈이나 이런저런 조건 하에 배포할 수 있지만, 구매자에게는 소스만큼은 최대 3년내에 읽을 수 있는 형태로 배포해야 하며 이 구매자가 소스를 다시 배포하는 것을 제한해서는 안 되기 때문에 현실적으로는 무료나 다름없음
-
[보안] 타 OS에 비해 상대적으로 안전한 환경
-
파편화돼 있는 리눅스의 여러 변종이 악성코드에 대해서는 오히려 강점으로 작용
-
윈도우에 비해 보안 업데이트시 재부팅이 거의 없어서 유저들이 보안 업데이트를 굳이 끄지 않음
-
리눅스를 사용하는 유저들 대부분이 컴퓨터에 대해 잘 아는 사람들이라 해커들이 리눅스를 타겟으로 한 바이러스를 많이 만들지 않음
-
물론 리눅스용 바이러스도 없지는 않고, root 권한이 뚫리는 취약점이 발견되는 등 보안 허점도 있음
-
LINUX 계열
Debian 계열
-
Debian
-
온라인 커뮤니티에서 제작하여 레드햇보다 더 먼저 배포되어 시장을 선점
-
데비안에서 파생되어진 OS를 데비안 계열이라고 부름
-
자발적인 커뮤니티에서 만드는 배포판
-
전문적인 회사에서 서비스를 했던 레드햇계열에 비해 사후지원과 배포가 늦고 내장 유틸들의 성능이 레드햇계열에 비해 부족한감이 있어 오랫동안 레드햇에 밀렸었음
-
현재는 무료 개인사용자 서버용으로 인기가 매우 높으며 최근에는 지속적인 업데이트를 거친 결과 레드햇계열에 비해 결코 성능이나 뒤쳐지지 않음
-
넓은 유저층을 가지고 있는 데비안계열은 그 사용법이 온라인 웹사이트나 커뮤니티에 자세히 기술되어 있다는 점이 진입장벽을 낮추어 초보 리눅스유저들이 접근하기 쉬운 OS
-
-
우분투
-
영국의 캐노니컬이라는 회사에서 만든 배포판
-
쉽고 편한 설치와 이용법 덕분에 진입장벽이 낮아 초보자들이 쉽게 접근할 수 있음
-
데스크탑용 리눅스 배포판 가운데서 가장 많이 사용되어지고있는 배포판
-
개인용 데스크톱 운영체제로 많이들 사용
-
서버용으로도 기능이 부족하거나 성능이 부족하지는 않지만 서버용 리눅스 점유율로 볼때 CentOS에 많이 밀림
-
Redhat 계열
-
Redhat
-
레드헷이라는 회사에서 배포한 리눅스
-
2003년까지는 오픈소스 라이선스로 진행하다가 이후 상용화
-
배포판 중에서 가장 인기가 많음
-
커뮤니티가 아닌 회사에서 관리하는 레드햇계열의 리눅스는 다른 리눅스 배포판에 비해 패치가 빠르며 내장되어있는 유틸리티의 양도 많고 관리툴의 성능도 우수
-
호환성이 좋음
-
레드햇 계열의 리눅스에는 Fedora와 CentOS가 있음 (요즘은 CentOS를 더 많이 사용하는 추세)
-
-
CentOS
-
Community Enterprise Operating System
-
Red Hat이 공개한 RHEL을 그대로 가져와서 Red Hat의 브랜드와 로고만 제거하고 배포한 배포본
-
RHEL 과 OS 버전, Kernel 버전, 패키지 구성이 똑같고 바이너리가 100%로 호환
-
무료로 사용 가능하지만 문제 발생시 레드햇이라는 회사가 아닌 커뮤니티를 통해 지원이 되므로 다소 패치가 느린감이 있음
-
서버용 운영체제로 인기가 매우 높으며 서버용으로 리눅스를 운영할 목적이라면 아마 대부분 CentOS를 사용하는것이 대부분
-
LINUX 특징
-
멀티 유저, 멀티 태스킹 운영체제
-
Multi-User : 여러 사용자가 동시에 하나의 시스템에 접근할 수 있음
-
Multi-Tasking : 여러 개의 태스크(작업)를 동시에 실행하고, 교대로 컴퓨터의 자원을 사용할 수 있는 기능
-
-
높은 신뢰성과 성능
-
유닉스의 기본 설계를 모태로 함
-
시스템의 자원을 효율적으로 관리 및 사용할 수 있음
-
PC 서버에서도 엔터프라이즈 급의 성능 제공(성능이 낮은 PC에서도 리눅스가 작동함)
-
-
CUI(Command User Interface) 및 GUI(Graphic User Interface)의 지원
-
키보드로 문자를 입력 받는 커맨드 방식의 CUI 환경의 지원
-
X 윈도우즈(X-Windows)를 활용한 GUI 지원
-
-
뛰어난 안정성과 보안성
- 커널 소스코드 및 모든 관련 자료가 공개되어 빠른 발전을 지원
-
다양하고 완벽한 네트워킹 기능
-
최다 프로토콜 지원 및 네트워크 서비스 기능 제공
-
여러 종류의 파일시스템을 지원
-
리눅스 파일시스템 ext2, ext3
-
NTFS, FAT32, FAT, Minix-1, Xenix 등 다양한 파일시스템을 지원, IS-9660 CD-ROM 도 지원
-
-
폭넓은 하드웨어 장치 지원 (플랫폼 제약 없음)
-
유닉스 기반의 운영체제로는 가장 많은 수의 하드웨어 장치 지원
-
커널의 소스가 공개되어 있기 때문
-
-
다양한 업무 환경을 만족시키는 다양한 배포판의 존재
- 시스템 관리방식 및 구성 응용 프로그램의 종류나 범위 상이
-
풍부한 응용 프로그램 제공
- GUI 소프트웨어, 네트워크 툴, 편집기, 개발도구 등
Subscribe via RSS