ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Linux/리눅스] 0-3. 리눅스란?
    Linux 2018. 11. 8. 10:27
    반응형

    1. 리눅스의 특징


    (1). 실시간 페이지 적재 기능 ( Demand Loading Excutables )


    -  리눅스를 사용하면서 메모리를 페이지(메모리) 단위로 관리하는 것

    -  페이지 단위로 메모리를 할당하고 , 스왑(Swap) 하며 , 운영체제를 사용할 때 필요한 만큼만 메모리를 사용하도록 한다.

       → 메모리를 효율적으로 관리

    = 가상 메모리에 의해 프로그램이 페이지 단위로 분리되어 있을 때 실행되는 순간에만 메모리로 적재되는 기능

       :: 프로그램이 실행되지 않는 페이지는 보조 기억 장치에 위치하게 됨

         → 메모리를 보다 효율적으로 사용할 수 있다. 


    (2). CPU 최적화


    -  어떤 프로세서(INTEL , AMD , Cyrix)를 사용하더라도 최고의 성능을 이끌어 낸다.


    (3). 뛰어난 네트워킹


    -  완벽한 TCP/IP의 구현

    -  IPX/SPC, Appletalk , SLIP (Serial Line IP) , PPP , Bluetooth 등 

       여러 네트워킹 프로토콜을 지원 및 각종 네트워킹 서비스를 제공

       :: 리눅스 설치시 넷마스크 , 도메인 이름 , IP 주소 , 게이트웨이 등 몇 가지 설정만 마치면 

         바로 네트워크 서버로 사용 가능

       :: 이더넷이나 인터넷에 안정적으로 연결 가능


    (4). 가상 콘솔


    -  Virtual Console :: 개인이 사용하는 하나의 PC의 물리적인 모니터 하나로 여러 개의 가상 화면을 두는 기능

    -  기본적으로 6개의 가상 콘솔이 설정

       :: 각 창마다 서로 다른 작업 진행 가능


    (5). POSIX의 완벽한 호환


    (6). Tree 형태의 계층적 구조의 파일시스템


    -  파일 시스템은 '/root'에서 시작

       :: 모든 디바이스는 이 아래에 연결

       :: 다른 파티션의 경우 mount 명령으로 연결

                            ↕대조적

    -  DOS , WINDOWS 의 경우는 모든 파티션이 독립적으로 존재


    (7). 효율적인 가상 메모리


    -  가상 메모리 :: 하드 디스크를 진짜 메모리(RAM) 처럼 사용하는 방법

                        : 전체 메모리의 사이즈를 크게 하는 기능

                        : 메모리를 효율적으로 사용하도록 도와줌


    (8). 동적 공유 라이브러리 제공


     - Dynamic Shared Library

       :: 프로그램마다 특별한 목적을 가지고 고유한 기능을 수행하지만

         입력 , 출력 , 저장 , 읽기 , 창 만들기 등 대부분 프로그램에 꼭 들어가는 공통적인 기능으로써

         여러 개의 프로그램이 똑같이 사용하는 코드를 프로그램마다 따로 가지지 않고 이를 공유하는 라이브러리

    -  컴파일 할 때 프로그램에 넣지만 동적 공유 라이브러리는 실행 파일 내부에 항상 넣어두지 않고,

       프로그램마다 실행 도중에 가져다 사용한다.

       → 경제적이고 효율성이 매우 높다.


    (9). 완벽학 다중 사용자, 다중 작업 시스템


    -  리눅스는 Time Sharing (시분할) 로 동시에 여러 개의 프로세스를 실행할 수 있다.

       하나의 시스템을 여러 명의 사용자가 동시에 사용할 수 있는 시스템

       → 다른 유닉스 운영체제와 같이 진정한 Multi-tasking 시스템

       → 한 시스템에서 여러 사용자가 많은 프로그램을 동시에 사용할 수 있다.


    (10). 다중 플랫폼


    -  인텔 CPU , Digital Alpha , Sun Sparc , Sparc64 , PowerPC , M64K 등 현존하는 대부분의 플랫폼에서 그 성능을 발휘한다.

    -  임베디드 시스템의 운영체제로 활용되고 있다.

    -  다양한 이동통신 기기에서 사용되고 있다.


    (11). 최신 웹서비스 제공


    -  클러스터링 , 클라우드 , 가상화 등 최신의 웹서비스에서 필요로 하는 대부분의 기능, 훌륭한 성능을 갖추고 있다.

    -  리눅스 클러스터링은 인터넷 게임 , 포털 서비스 등 대형 서버 시스템을 필요로 하는 경우에 사용

    -  클러스터링 , 가상화 등의 기술을 통해 서비스를 제공할 수 있다.




    2. 리눅스의 장단점


    (1). 이식성 , 확장성 용이


    -  리눅스는 C 언어와 어셈블리 언어로 작성

    -  C 언어 자제가 특정 기계에 비 의존적 → 프로그램을 다른 기계의 시스템으로 포팅하는 것이 쉽다.

       :: 운영체제 자체도 여러 가지 하드웨어에 적합하게 변형이 가능

    -  리눅스는 처음에 x86용으로 개발 → 현재는 SPARC이나 맥의 PowerPC CPU , Alpha 등에 모두 적용된다.


    (2). 텍스트 모드 중심의 관리 , 다양한 관리 환경의 제공


    -  아직도 텍스트 모드에서 관리를 하는 경우가 많다.

       :: 관리의 편리성 측면에서 단점

    -  BUT, 직접 설정 파일을 수정

               → 세밀한 시스템 설정 가능

    -  소스코드를 직접 수정 

       → 프로그램을 시스템에 최적화

    -  프로그램을 실행하여 설정을 저장하는 등의 번거로운 작업 

       → 간단한 파일 수정 작업이나 명령의 실행만으로 간편하게 시스템 관리 가능

    -  간단한 스크립트 파일 작성

       → 자유롭게 시스템을 위한 작업을 자동화 가능


    -  X 윈도우상에서 GUI 프로그램을 제공

       → 텍스트 모드 간단하게 작업할 수 있는 관리자 인터페이스를 제공하는 관리 프로그램 존재

       → 웹서비스 이용 시스템의 관리와 모니터링 가능하게 하는 프로그램 존재

    = 관리자는 다양한 방식의 시스템 관리 가능


    (3). 다양한 네트워크 서비스 및 작업환경 지원


    -  웹서버 , 메일서버 , 데이터베이스 서버 , Proxy 서버 , 도메인이름서버(DNS) , 

       파일서버 , 프린트 서버 , 라우터 , 방화벽 , 원격로그인 ,

       브릿지 , FTP , PHP 프로그램 등이 지원

    -  오픈소스 소프트웨어 형태로 제공

       → 웹서비스를 구축 및 서비스 가능

       → 웹을 통한 작업환경을 구축 가능


    (5). 뛰어난 안정성


    -  국제적이고 개방적인 개발 환경

       → 커널 및 응용 프로그램에 중대한 버그 발생 → 신속하게 패치가 개발되어 공개됨

    -  커널 , 파일 시스템 , 쉘(Shell)  , 웹서비스 프로그램 등 

       리눅스 시스템의 기반이 되는 모든 프로그램이 소스코드가 공개됨

       → 직접 시스템을 최적화 할 수 있다.


    (6). 저수준 하드웨어로 구성된 시스템의 사용 가능


    -  구형 컴퓨터에서 서버 시스템의 운영 가능


    (7). 시스템의 높은 신뢰성


    -  RAID 기능 지원 , 로컬 또는 인터넷을 통한 다양한 백벙 방식을 지원
    -  ext3 , ext4 등의 파일 시스템은 fsck 등의 명령을 통해 안정적인 시스템 복구 기능을 지원
    -  서버 시스템으로서 높은 신뢰성을 가지고 있다.

    (8). 가격 대비 탁월한 성능


    -  비용을 들이지 않고 CentOS , Debian 등 다양한 종류의 리눅스를 다운로드 가능

    -  유료 서비스를 받지 않더라도 서버 시스템의 운영이 가능


    (9). root 개념


    -  리눅스 시스템에서 root 라고 얘기하면 root 사용자 계정과 , root 디렉토리중 하나를 의미한다.

    -  모든 권환을 가진 최고관리자 계정


    -  리눅스 파일체제의 최상위 디렉토리 루트(/)

    -  모든 디렉토리들의 시작점 , 절대 경로

    -  /root 는 root 사용자의 홈 디렉토리를 의미

    반응형
Designed by Tistory.