*이기적 영진닷컴 Youtube Link - https://www.youtube.com/watch?v=YWz5YsgFyxg&list=PL6i7rGeEmTvp_MYm0zuiFe7COrM3endfu
특징
소스코드 특정 프로그래밍 언어 자바, C와 같은 언어로 작성된 프로그램이다.
소스코드로 작성된 프로그램은 저작권 등의 이유로 열람이 불가능 하거나, 열람이 가능하더라도 개발자의 허가없이 수정이 불가능하고 배포를 금지하고 있다.
마이크로소프사의 윈도우는 소수 고객들(정부, 다국적 기업)에게 소스코드를 공개하고 보안유지를 위해서 소스코드 수정을 가능케 하고 있습니다만 해당 수정본을 재배포하는 것은 금지하고 있기 때문에 윈도우 운영체제를 오픈소스라고 하지는 않는다.
이에 반해 리눅스는 개발자의 저작권을 지키면서도 소스코드를 열람하고 수정하고 재배포를 허용하고 있기 때문에 오픈소스 운영체제라고 할 수 있다.
멀티 유저란 여러 사용자가 동일한 시스템에 동시에 접근하는 것이 가능한 것을 의미하는 것인데 예를 들어 한대의 컴퓨터에 다수의 사용자가 자신의 입출력 장치를 이용해서 해당 시스템을 사용하는 것을 의미하는 것이다.
멀티 태스킹은 하나의 작업이 컴퓨터 자원을 항상 사용하는 것이 아니기 때문에 하나의 작업이 작업을 안 하고 있는 상태에 다른 작업이 공유 자원인 CPU 등을 점유함으로써 여러 작업이 동시에 진행되도록 하는 것이다.
멀티유저와 멀티 태스킹은 CPU와 메모리와 같은 컴퓨터 자원을 효율적으로 사용해서 시스템의 성능을 최대한 활용하는 것이 주 목적이라고 볼 수 있다.
다중 스레드를 지원하는 네트워크 운영체제이다.
먼저 스레드를 언급하기 이전에 프로그램과 프로세서를 구분해야 한다.
프로그램은 특정 언어로 작성된 개발 코드 아직 실행되지 않은 정적인 상태를 말한다.
프로세스는 실행중인 프로그램을 의미한다.
즉 프로그램이 cpu를 할당받아 특정 업무를 처리중인 동적인 상태를 일반적으로 프로세스라고 이야기 한다.
스레드는 프로세스 내에서 실행되는 작업으로 일반적으로 하나의 프로세스에서는 하나의 스레드를 처리한다.
다중 스레드는 하나의 프로세스에서 2개 이상의 풀 스레드를 동시에 실행하는 것으로 멀티 유저와 멀티 태스킹 같은 시스템 사용의 효율성을 높이는 작업을 지원하게 된다.
다중 스레드를 지원하는 네트워크 환경인 경우 네트워크 기반의 멀티유저나 멀티 태스킹 지원도 가능하게 하기 때문에 좀 더 강력한 한 네트워크 지원을 가능케 한다.
여러 종류의 파일 시스템을 지원한다.
파일 시스템 파일 관리자라고도 이야기 하기도 하는데 기본적인 리눅스 파일 시스템인 ext계열과 dos의 펫 윈도우의 ntfs 또는 네트워크 파일 시스템인 nfs 등 다양한 파일 시스템을 지원하고 있다.
장단점
리눅스는 유닉스 기반 운영체제 인터페이스인 포직스 규격을 따르고 있기 때문에 유닉스용 프로그램을 수정없이 리눅스에서 작동시킬 수 있다.
다른 운영체제들보다 안정적이다. 시스템이 안정적이다라는 말은 가용성, 즉 시스템이 다운되지 않고 얼마나 오랫동안 해당 시스템을 사용할 수 있는지를 정하는 것인데 리눅스는 특별한 상황을 제외하고 항상 켜놓아도 시스템이 다운이 되지 않기 때문에 안정성이 뛰어나다고 말할 수 있다.
다른 운영체제들보다는 적은 양의 메모리를 사용함으로써 하드웨어 기능을 효과적으로 사용한다는 것이다. 수학 방식을 통해서 램이 부족할 경우 스왑 영역을 늘려서 메모리의 효율성을 높일 수 있다.
리눅스의 단점 중 하나는 오픈소스이기 때문에 문제점이 일어나면 기술지원을 받는데 한계가 있다는 것이다. 예상치 못한 오류가 발생을 하면 기술지원을 즉각적이거나 직접적으로 받는 것이 불가능해서 장애 처리시 어려움을 겪을 수가 있다. 초창기에는 그랬고 현재는 많이 나아졌다.
한글 지원이 미흡하다. 한글을 배포본 마다 다 지원을 하고 있긴 하다만 별도로 설치를 해서 사용을 해야 되기 때문에 이게 처음 리눅스를 접한 사람들한테는 처음부터 무언가를 설치해서 진행을 해야 된다는 부담감 때문에 좀 어렵다라고 리눅스가 어렵게 다가올 수 있다.
디렉터리는 파일이 저장되는 공간이다.
운영체제는 파일 저장 공간을 계층적 트리 형태로 구성해서 저장하고 있다.
상위 디렉토리와 하위 디렉토리로 계층 구조를 이루고 있고, 하위 디렉토리가 다른 하위 디렉토리의 상위 디렉토리가 될 수 있다.
리눅스의 매우 중요한 특징 중 하나다.
/는 최상위 디렉토리이다. 모든 디렉토리의 출발점인 동시에 또 다른 시스템과의 연결되는 아주 중요한 디렉토리이다.
/ 최상위 디렉토리 바로 아래에 있는 디렉토리들을 우리가 보통 상위 디렉토리라고 한다. 14개의 디렉토리로 구성되어 있다.
각 디렉토리마다 동일한 특성을 가진 파일들을 한 곳에 모아 놓기 때문에 디렉토리 명 만으로도 그 해당 디렉토리에 어떤 파일들이 저장되어 있는지 확인할 수 있다.
/boot 디렉토리는 부팅시 필요한 커널 이미지 파일들이나 부트 로더인 그럽 파일 같은 것들이 저장되어 있다.
/proc 디렉토리는 프로세스 디렉토리라고 한다. 가상화의 시스템으로 운영되고 있는 다양한 프로세스들과 프로그램에 대한 정보를 포함하고 있다. 시스템 정보 디렉토리이기 때문에 커널 기능도 제어할 수 있다.
/lib 디렉토리는 동적 공유 라이브러리를 저장하고 있다. 라이브러리라 하면 소프트웨어를 개발을 할 때 미리 필요한 코드를 작성한다. 서브루틴 함수 이러한 것들을 라이브러리라고 이야기 한다. 라이브러리는 동적 라이브러리와 정적 라이브러리로 분류할 수 있다. 정적 라이브러리란 공유 라이브러리 루틴을 사용하지 않고 프로그램 내 라이브러리 루틴을 복사해서 자기 고유한 라이브러리를 사용하는 것을 말하는 것이다. 공유 라이브러리는 실행 내부에 라이브러리를 두지 않고 프로그램을 실행할 때 마다 해당 라이브러리를 가져와서 실행을 하는 형태를 말한다. 쉐어 라이브러리를 쓰는 것이다. 리눅스는 주로 동적 라이브러리를 사용하기 때문에 메모리의 효율성을 높인다.
/bin 바이너리 디렉토리이다. 리눅스를 운영하기 위해서는 기본적인 명령어들이 저장이 되어야 하는데 clear, cd, ls 명령어들이 루트 사용자 뿐만 아니라 일반 사용자도 사용할 수 있는 일반적인 명령어들이다. 이러한 명령어들을 저장하는 공간이다. 보통 실행하는 파일들이기 때문에 바이너리 디렉토리에 저장을 한다.
/dev 디바이스 디렉토리이다. 시스템 디바이스 파일들을 저장한다. 장치 파일 특수 파일을 디바이스 드라이브 또는 장치 드라이브라고 이야기를 하는데 장치 파일에는 블럭 장치하고 문자 장치 파일로 구분을 하고 있다. 블럭 장치 파일은 하드디스크나 cd dvd나 플로피 디스크같은 저장장치를 말한다. 문자 장치 캐릭터 디바이스는 키보드나 마우스 같은 입출력 장치들을 말한다. 작업을 하려다 보면 하드디스크나 키보드 같은 장치들이 이를 운영하는 파일 프로그램 디바이스 파일들이 필요한데 이러한 디바이스 파일들을 저장하는 디렉토리를 디바이스 디렉토리라고 한다.
/etc 디렉토리이다. 시스템 환경 설정 파일들이 저장되는 디렉토리이다. 사용자 계정 정보 뿐만 아니라 특정 애플리케이션 메일이나 ssh같은 파일들을 설치한 후에 관련된 환경설정을 해야 하는데 그와 같은 특정 애플리케이션의 환경설정을 모아놓은 디렉토리를 보통 etc 디렉토리라고 한다.
/root 디렉토리이다. 시스템 관리자들을 보통 루트라고 이야기를 한다. 루트 관리자의 홈 디렉토리를 루트 디렉토리라고 이야기를 한다. 여기는 관리자 운영을 하기에 필요한 다양한 파일들이 저장되는 공간이다.
/sbin 디렉토리이다. 시스템 바이너리 디렉토리라고 하는 것은 시스템을 셧다운시켜야 되거나 계정을 생성해야 되거나 이런 시스템 관리나 운영에 대한 명령어들이 저장된다. 이 디렉토리에 저장되는 파일들은 관리자만 해당 명령어들이나 파일들을 관리할 수 있다.
/usr 디렉토리이다. 일반 주로 시스템 관리자가 루트 디렉토리를 이용한다면 그 일반 사용자들이 주로 사용하는 디렉토리를 유저 디렉토리라고 한다. 사용자 데이터나 애플리케이션이 설치되는 디렉토리이다. 공유 가능한 프로그램이 설치될 수 있고, 네트워크를 이용해서 여러 시스템을 연결할 경우에 이 디렉토리를 공유해서 설치된 파일들을 활용할 수 있다. 활용도가 조금 높은 디렉토리 중 하나가 바로 유저 디렉토리라고 할 수 있다.
/home 디렉토리이다. 사용자 계정 디렉토리이다. 일반 사용자들이 처음 텔넷이나 ftp 접속했을 때 처음 위치하게 하는 디렉토리이다. 사용자들의 환경설정 정보들이나 내용들이 저장이 되는 디렉토리이다.
/var 디렉토리이다. 가변 저장 디렉토리이다. 파일 크기가 고정되지 않고 가변적인 파일들 예를 들어서 로그 파일이나 메일을 통해서 송수신 되는 데이터들을 저장할 때 활용하는 디렉토리이다.
/tmp 디렉토리이다. temporary 디렉토리라고 하는데 이제 프로그램이나 프로세스 작업을 할 때 임시로 생성되었다가 삭제되는 파일들이 저장되는 공간이다. 모든 사용자에 대해서 읽게 하고 쓰게 하기가 허용되고 있다.
/mnt 디렉토리이다. 마운트 디렉토리는 파일 시스템을 일시적으로 마운트할 때 사용을 한다. 마운트라는 용어는 시스템마다 다르게 정의되고 있다. 리눅스 환경에서는 마운트란 논리적인 시스템과 디렉토리를 연결해서 해당 논리 시스템을 사용할 수 있게 조정하는 작업을 마운트한다고 정의를 한다.
/lost+found 디렉토리이다. 결함이 있는 파일에 대한 정보가 저장되는 공간이다. 손상된 파일이나 디렉토리들은 /lost+found 디렉토리에 연결한 뒤에 오류가 수정이 되면 평상시에는 널 링크로 비어있는 상태가 된다. 시스템에 문제가 발생하면 문제가 발생한 파일들의 정보가 저장되고 해결이 되면 비어지게 되는 오류 수정이 가능하게 하는 결함 정보들이 저장되는 디렉토리이다.
리눅스 배포판은 리눅스 시스템을 구성하는 소프트웨어를 패키지 형태로 만들어 놓은 것이다.
배포판의 가장 핵심은 커널이다.
커널은 커널.org 사이트에 들어가서 다운을 받으면 되고 그 커널의 중심에 여러 가지 GNU 소프트웨어를 다양하게 설치함으로써 배포판을 구성할 수 있다.
전세계 약 300여가지 배포판이 있는데 그 중 대표적인 배포판으로는 슬랙웨어, 데비안, 레드햇 등이 있다.
슬랙웨어 배포판은 리눅스 패포판에서 가장 대중적인 것으로 알려져있다. 최근 패키지 관리 문제점으로 인해서 인기가 다소 떨어진 상태이긴 하지만 구조가 간결하고 파악하기 쉽다. 유닉스 학습을 목적으로 사용하기에 아주 적합한 배포판이다.
데비안 배포판은 데비안 프로젝트에서 만들어 공개된 운영체제. GNU에 공식적인 후원을 받는 배포판이라고 좀 유명한 배포판이라고 할 수 있다.
우분투는 초창기에는 데비안 프로젝트 팀에서 후원을 받다가 영국의 기반을 둔 캐노니칼의 지원을 받으면서 우분투로 이름이 바뀌면서 여러가지 성격이 바뀌어졌다. 우분투는 사용자의 편의성에 초점을 둔 배포판이다.
레드햇은 미국의 레드햇사가 개발하던 리눅스 배포판이다. 현재 레드햇사가 유료로 기술지원을 전향하면서 그 두개의 버전으로 나뉘어진다. 레드햇 엔터프라이즈 에디션으로 발헬이라는 것과 하나는 페도라 프로젝트에서 개발된 페도라로 나뉘어져 있다. 그래서 지금 레드햇은 일반적으로 기업용 유료 유닉스 배포판 알헬에 지원을 하고 있는 상태이다. 알헬(RHEL)은 상용 리눅스 배포판으로 알려져있는 레드햇 엔터프라이스 리눅스의 약자이다. 18-24개월 사이에 새로운 버전을 공개하고 있고 라이센스는 별도로 판매하지 않고 있다. 산업용 패키지니까 구입은 해야 하지만 소스코드 같은 경우 레드햇의 ftp사이트를 통해서 공유받을 수 있다.
페도라는 초창기에는 레드햇사에서 개발하다가 최근에도 레드햇의 후원과 개발 공동체의 지원을 받고 있긴 하지만 무료 배포판으로 유명하다. RHEL은 상업용, 페도라는 무료 배포판으로 이해하면 된다. rpm 기반의 소프트웨어로 이제 결합된 운영체제이다. 6개월 간격으로 새로운 버전이 배포가 되어 있다. 지원 간격은 설치후에 13개월까지이다.
centos는 레드햇 엔터프라이즈 리눅스와 완벽하게 호환되는 무료 기업용 컴퓨팅 운영체제이다. 플랫폼을 제공할 목적으로 만들어진 리눅스 운영체제이다. 자체 커뮤니티에서 관리하고 있다.
수세는 독일에서 출시된 배포판으로 현재 유럽에서 인기가 많은 배포판. 안정성이나 보안 기능이 높다라고 볼 수 있다.
감사합니다.
'리눅스' 카테고리의 다른 글
[리눅스 마스터 2급] 01-02-03 부트 매니저(Boot Manager) (1) | 2024.11.18 |
---|---|
[리눅스 마스터 2급] 01-02-02 파티션(Partition) (0) | 2024.11.18 |
[리눅스 마스터 2급] 01-02-01 기본 설치 및 유형 (0) | 2024.11.17 |
[리눅스 마스터 2급] 01-01-03 리눅스 라이선스 (1) | 2024.11.17 |
[리눅스 마스터 2급] 01-01-02 리눅스의 역사 (0) | 2024.11.17 |