리눅스 마스터 2급

[ 리눅스 마스터 2급 ] _리눅스의 이해

ITsubin 2022. 5. 5. 00:34

{ 특징 }

> 오픈 소스 운영체제. (소스코드 및 모든 관련 자료가 공개되어 있는 OS)

> 멀티유저(다중 사용자), 멀티태스킹(다중 작업) 운영체제.

    + 멀티유저란? : 여러 사용자가 동시에 동일한 시스템에 접근이 가능한 기능

    + 멀티태스킹이란? : 여러 개의 태스크를 동시에 실행하고, 교대로 컴퓨터의 자원을 사용하는 기능

> 가상 터미널 환경으로 하나의 모니터에 여러 개의 가상 화면(가상 콘솔)을 사용 가능

> 다중 스레드를 지원하는 네트워크 운영체제.

> 여러 종류의 파일 시스템 지원 (ext2, ext3, ext4, FAT, NTFS, ...)

 

{ 장점 }

> 리눅스는 유닉스와 완벽하게 호환 가능.

    + 리눅스는 POSIX(Portable Operating System Interface) 규격을 따름.

    + POSIX는 유닉스 OS에 기반을 두는 표준 OS 인터페이스.

> 리눅스는 PC용 OS보다 안정적.

    + (네트워크 사용을 전제로 설계되었으며, 멀티유저 멀티태스킹이 가능하여 보통은 안정적)

> 하드웨어 기능효과적으로 사용.

    + 다른 OS보다 적은 양의 메모리를 사용

    + SWAP 방식을 통해 RAM이 부족한 경우에도 메모리의 효율성을 높일 수 있음.

> 리눅스는 오픈 소스 운영체제.

    + 다양한 배포판 존재, 여러가지 유틸리티. 응용 프로그램 존재

 

{ 단점 }

> 공개 운영체제이므로 문제점 발생 시 기술 지원에 한계가 있음.

> 한글 지원이 미흡.

> 취약점 노출 가능성이 있음 (공개 운영체제이기 때문...이지만 꾸준한 기술 개발로 비교적 높은 보안성을 지원함)

 

{ 리눅스 디렉터리의 특징 }

> 디렉터리란? : 파일 저장소를 의미. (윈도우 환경에서의 "폴더"와 같음.)

> 최상위 디렉터리 ( / )를 기준으로 하위 디렉터리들이 존재하는 계층적 트리 구조로 구성됨.

> 디렉터리 간에는 부모와 자식의 관계를 가짐. (부모 디렉터리 = 상위 디렉터리 / 자식 디렉터리 = 하위 디렉터리)

 

{ 리눅스 디렉터리의 종류 }

[ / ]

> 파일 시스템이 있는 최상위 디렉터리 (루트 디렉터리)

[ /boot ]

> 부팅 시 커널 이미지와 부팅 정보 파일 저장 (부트 디렉터리)

[ /proc ]

> 커널 기능을 제어, 현재 실행되는 프로세스와 실제로 사용되는 장치 및 하드웨어 정보 저장 (시스템 정보 디렉터리)

> 가상 파일 시스템. (디렉터리에서 보이는 것은 실제 드라이브가 아닌 메모리 상에 저장되어 있음)

    + 사용자가 /proc 디렉터리나 하위 파일에 접근할 때마다 커널에서 파일 내용을 동적으로 만들어냄.

    + 각 프로세스는 고유 식별자를 가짐. (이 식별자를 가진 디렉터리 밑에 정보를 저장)

[ /lib ]

> 커널 모듈 파일들과 프로그램 실행을 지원해주는 라이브러리 저장 (공유 라이브러리 디렉터리)

> 동적 공유 라이브러리를 저장하고 있음.

    + 공유 라이브러리에는 여러 프로그램에서 공통으로 사용하는 함수들이 저장되어 있어 디스크 공간 절약

    + 라이브러리 공유 방법은 두 가지 [ 정적 라이브러리 / 동적 라이브러리 ]

    + 정적 라이브러리 : 컴파일 과정에서 공유 라이브러리의 루틴을 사용하지 X,

                               프로그램 내에 라이브러리 루틴의 복사본을 갖도록 컴파일함.

    + 동적 라이브러리 : 실행 파일 내부에 라이브러리를 넣어두지 않고 프로그램을 실행할 때 가져와 사용

                               (메모리 효율성 ⇑⇑)

[ /bin ]

> 기본적인 명령어가 저장된 디렉터리 (root 사용자와 일반 사용자가 함께 사용 가능)

[ /dev ]

> 시스템 디바이스 파일들을 저장하는 디렉터리 (하드디스크 장치 파일, CD-ROM 장치 파일 등)

> 하드디스크, 프린터, IO장치 등의 장치들을 파일화하여 관리. (장치 실행 시 해당 장치 파일을 실행해야 함)

    + 장치 파일 / 특수 파일 : "장치 드라이버"

    + 블록 장치 파일? : 하드디스크, CD/DVD 등의 저장장치.

    + 문자 장치 파일? : 키보드, 마우스, 모니터, 프린터 등의 IO 장치.

    + 리눅스에서의 표준 입/출력 장치 : 키보드/모니터

[ /etc ]

> 시스템 환경 설정 파일 저장 디렉터리

    + (시스템 환경설정 파일, 부팅 관련 스크립트 파일, 사용자 정보 및 암호 정보 파일, 보안 파일 등을 저장)

> /etc/group : 그룹 정보 저장

> /etc/passwd : 사용자 목록 정보 저장

> /etc/shadow : 패스워드를 암호화하여 관리 (/etc/passwd의 두 번째 필드가 해당 부분)

[ /root ]

> 시스템 관리자용 홈 디렉터리

[ /sbin ]

> 관리자용 시스템 표준 명령 및 시스템 관리와 관련된 실행 명령어 저장

[ /usr ]

> 사용자 데이터 및 애플리케이션 저장 (사용자 디렉터리)

    + 시스템이 아닌 일반 사용자들이 사용하는 디렉터리

    + 공유 가능한 프로그램들이 설치됨.

    + 이 디렉터리는 "읽기 전용"으로 마운트되어야 함. (가변 자료들은 /var 디렉터리로 심볼릭링크(바로가기)됨)

[ /home ]

> 계정들의 홈 디렉터리가 위치 (사용자 계정 디렉터리), (일반 사용자들이 로그인 시 처음으로 위치)

[ /var ]

> 로그 파일이나 메일 데이터 저장 (가변 자료 저장 디렉터리)

[ /tmp ]

> 각종 프로그램이나 프로세스 작업 시 임시로 생성되는 파일들이 저장 (모든 사용자에 대해 r, w 권한 허용)

    + 특수 권한 중 하나인 Sticky Bit 설정으로 파일의 소유자만이 자신의 소유 파일을 삭제 가능

[ /mnt ]

> 파일 시스템을 일시적으로 마운트할 때 사용

[ /lost+found ]

> 결함이 있는 파일에 대한 정보가 저장되는 디렉터리

> 파일 시스템의 이상 유무를 진단 및 복구하는 "fsck"에 의해 사용됨.