Study Programming/LinuxMaster 1급 따기

[Linux] 리눅스의 기술적 특징(Technical features of Linux )

네모메모 2021. 3. 1. 00:22
반응형

Why is'Linux' so special?

 

 

 

리눅스의 기술적 특징

① 모놀리딕 커널 = Monolithic kernel, 모놀리식 커널, 단일형 커널

('Monolithic'단어 뜻이 모든 것이 단단히 짜여 하나에 묶여있는 것 ~> Monolithic아키텍처 개념도 있다)

: OS가 제공하는 서비스(HW자원관리)를 하나의 커널(Kernel)로 구현하여 제공하는 방식 

 

- 단점 : 커널의 일부 기능 수정 시 커널을 다시 컴파일해야함

ㄴ 단점보완 : 동적 로드가 가능한 '커널모듈' & 동적 설정을 위한 '프로퍼티 기능'을 제공 >> 커널의 유연성 확보

 

- 모놀리딕 커널과 다른 커널들의 비교 이미지

 

 

② 장치의 파일화

- "리눅스는 시스템의 자원을 모두 파일로 다룬다"

- 1) 파일

   1.1) 디렉터리 
   1.2) 일반 파일

   1.3) 특수 파일

        ㄴ1.3.1) 장치 파일 : (장치유형에 따라) '1.3.1.1) 문자 장치 파일' / '1.3.1.2) 블록 장치 파일' 로 나뉨.

        1.3.2) 파이프 파일 : 프로세스 간 통신을 위해 제공

        1.3.3) 소켓 파일 : 응용프로그램이 소켓 프로그래밍이 가능하도록 제공

 

 

③ 다양한 파일시스템의 지원

- 리눅스 자체 파일시스템(ext2,3,4) 지원

- 윈도우용 파일시스템(FAT32, NTFS), NW파일시스템(SMB, CIFS) 등도 지원

- 시스템 충돌, 전원문제 시 복구 가능한 '저널링 파일시스템(journaling file system)' 지원

 

 

④ 가상메모리

- 프로세스들이 접근하는 메모리를 가상메모리에 매핑하고, 가상 메모리는 페이지¹를 통하여 물리메모리에 매핑

- 시스템에서 동작 중인 프로세스가 사용하는 메모리만 물리메모리에 로드하고, 사용빈도가 낮은 메모리는 디스크에 저장 >> '요구 페이징(Demand Paging)'방식

- 물리적인 메모리의 크기를 극복하기 위한 메모리 관리 기법

- 각 페이지에 대한 '보호 메커니즘' & 넓은 '주소 공간' & '메모리 매핑' : 이미지와 데이터 파일을 프로세스 주소 공간에 매핑 & 프로세스 간 '공유 메모리 기능' 제공

 

+) 페이지¹  : 가상메모리를 최소 단위로 쪼개어 일정한 크기인 블럭 cf) 페이징기법

 

 

⑤ 스왑 = Swap

: 물리 메모리 사용량이 가득 차 프로그램을 메모리에 로드할 수 없는 경우, 실행 빈도 접근이 낮은 데이터나 프로그램을 디스크로 옮기고 물리메모리 확보해 프로그램 로드하는 과정

   ㄴ 전원 꺼지면 휘발성 메모리 사라지므로 비휘발성인 디스크에 데이터 저장이 필요

- Swap out(스왑 아웃) : 실행 빈도 접근이 낮은 데이터나 프로그램을 디스크로 옮기는 동작

- Swap in(스왑 인) : 디스크에서 다시 메모리로 옮기는 동작

- Swap space(스왑 스페이스) : 스왑을 위한 디스크상의 공간이며 전용 파일이나 전용 파티션↓이 존재햐야 함.

- Swap partition (스왑 파티션) : 스왑 스페이스 전용 파티션 (최대 절전 기능을 사용하기 위해서 필요)

- Swap 빈도 변경하기 : /etc/sysctl.conf 내 sm.swapiness를 설정 ex) 10설정 시, 메모리 가용량 10%일 때 swap함

- Swap 용량 확인하기 : free 명령어 (+메모리 상태도 확인 가능)

- 장점 : 물리메모리 한계를 극복하고 효율적으로 메모리 공간을 활용

- 단점 : 동적으로 크기 조절할 수 없어 하드디스크의 공간을 차지함

 

 

⑥ 동적 라이브러리와 정적 라이브러리

- 동적 라이브러리 : 메모리에 한 번 적재하고 나면 여러 프로세스가 공용으로 사용가능

장점 : 실행 프로그램 크기가 작음 / 메모리 효율적 사용가능

단점 : 실행 속도가 느림 / 배포에 제약 존재

- 정적 라이브러리 : 실행 프로그램이 컴파일될 떄 링크되어 프로세스가 실행될 때 함께 메모리에 로드된다. 
↓장단점 동적 라이브러리의 반대

장점 : 실행 속도가 빠름 / 배포에 제약 없음

단점 : 실행 프로그램 크기가 큼 / (프로세스마다 메모리 적재되어 중복 상주 가능해) 메모리 비효율적 사용 가능

 

⑦ 파이프 = Pipe

: 프로세스의 표준 출력을 다른 프로세스의 표준 입력으로 받을 수 있는 프로세스 간 통신 방식

 

 

⑧ 리다이렉션 = Redirection

- 프로세스의 표준 입출력을 파일, 화면, 장치 등에서 입출력으로 받을 수 있도록 재지정할 수 있는 매커니즘.

 

⑨ 가상 콘솔 = Virtual console

: 하나의 화면에서 여러 개의 콘솔을 사용할 수 있는 기능 ex) 터미널, X윈도우 등등

- 리눅스는 총 6개의 콘솔 제공

+) 콘솔 생성 : ctrl + alt + F(1~6)
    ㄴcf) X윈도우 콘솔 생성 : : ctrl + alt + F7

    콘솔 간 전환 : alt + F(1~6)

 


 

[출처]

- Monolithic : ahea.wordpress.com/2018/04/26/msa-1-monolithic-architecture-%EB%9E%80/

- 모놀리식 커널 : ko.wikipedia.org/wiki/%EB%AA%A8%EB%86%80%EB%A6%AC%EC%8B%9D_%EC%BB%A4%EB%84%90

- 페이지 :  https://godkyu.tistory.com/10

- 페이징 ; jhnyang.tistory.com/290

 

 

 [책] 리눅스마스터 1급 기본서(2020) | 저자 김윤수, 최정현|영진닷컴 |2020.03.25

http://book.naver.com/bookdb/book_detail.nhn?bid=16317946

 

리눅스마스터 1급 기본서(2020)

떠오르는 신흥 강자! 리눅스마스터 1급 2020년 도서가 드디어 영진닷컴에서 출간되었습니다. 리눅스마스터 1급을 취득하기 위해 필요한 최대한의 것을 전부 제공해 드립니다. 시행처에서 발표한

book.naver.com

 

 

 

 

 

 

 

반응형