-
[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 사용자의 홈 디렉토리를 의미
반응형'Linux' 카테고리의 다른 글
[Linux/리눅스] 0-6. Directory & File (디렉토리와 파일) (0) 2018.11.26 [Linux/리눅스] 0-5. OSI 7 Layer (0) 2018.11.08 [Linux/리눅스] 0-4. 리눅스 디렉토리 종류와 특징 (0) 2018.11.08 [Linux/리눅스] 0-2. VMware 에 CentOS7 설치 (0) 2018.11.07 [Linux/리눅스] 0-1. Windows 에 VMware 가상머신 설치하기 (0) 2018.11.07