리눅스를 설치하면 상당히 많은 디렉토리가 자동으로 생성됩니다. 이러한 디렉토리는 대부분 유닉스와 유사합니다. 파일 시스템의 구조는 유닉스의 종류(AT&T 계열과 BSD계열)에 따라 약간 차이가 있으며, 리눅스는 주로 AT&T를 중심으로 BSD가 섞인 형태입니다. 리눅스 연합에서는 이러한 배포판의 파일시스템 차이를 표준화하기 위해 FSSTND(File System Standard) 표준안을 마련해 놓고 있습니다.아래는 리눅스의 파일시스템 구조를 나타낸 것입니다.

 

파일과 디렉토리는 카테고리별로 조직화되어 있습니다. 위 그림에서 가장 분명하게 알 수 있는 카테고리는 고정(static)과 유동(dynamic)적인 파일들입니다. 또한 다른 카테고리로는 실행가능 여부, 환경설정, 데이터 파일들 등이 있습니다. 시스템 관리자라는 입장에서 볼 때, 이와 같은 파일 시스템 구조는 관리하기에 적합합니다.


고정적인 파일들과 디렉토리는 또한 네트워크 상의 다른 호스트들로부터 공유가 가능하기 때문에 공유 가능한(shared) 카테고리 분류에도 해당이 됩니다. /usr, /sbin, /opt 같은 디렉토리들이 여기에 해당합니다.


환경 파일들, 디바이스 파일들, 커널 파일들과 같이 특정한 호스트를 위한 파일들과 로그 파일들, 임시 파일들, 사용자의 홈디렉토리에 있는 파일들은 유동적인 파일들입니다. 관련 디렉토리로는 /boot, /home, /tmp, /dev, /etc, /var 등이 있습니다.

 

운영체제와 응용프로그램들은 서로 분리 시켜서 유지하여야 합니다. 오랜 시간 동안 많은 응용프로그램을 설치하다 보면 이러한 테크닉이 도움이 된다는 것을 알 수 있을 것입니다. 응용프로그램 제공업체들은 설치되는 위치에 대해서 사용자의 편의를 제공하지 않습니다. 부주의로 인해 운영체제 파일들을 응용프로그램 파일들이 덮어 쓰는 것을 방지하는 것은 시스템 관리자로써 매우 중요한 일입니다. 게다가 운영체제와 분리된 영역에 설치된 응용프로그램을 "모듈화"가 가능하므로 추가, 삭제 및 수정에 있어서 운영체제나 다른 응용프로그램에 영향이 미치지 않도록 할 수 있습니다. 

 

유닉스 계열의 운영체제들은 /opt 라는 디렉토리에 응용프로그램들이 설치되지만, 레드햇 리눅스는 이 디렉토리를 구성하지 않고 /usr/local 디렉토리에 응용프로그램 별로 설치가 되거나 RPM으로 설치를 하면 각각의 구성파일들이 필요한 디렉토리로 설치가 됩니다.

실행 파일들도 시스템 환경 파일들과 구분이 되어져야 합니다. 이는 호스트들 사이에 실행 파일들을 공유하기 위함이며, 운영체제를 업데이트 할 때 환경 파일들에게 영향을 주는 것을 방지할 수도 있습니다.

 

다음은 레드헷 리눅스를 기준으로 한 디렉토리의 구성과 용도에 대한 간략한 설명입니다.

 

디렉토리

기능

/

 

 루트 디렉토리

/boot

 BOOT

 부트 이미지 디렉토리

/bin

 BINaries

 사용자 명령어 디렉토리

/dev

 DEVice

 장치 파일 디렉토리

/etc

 ETCetera

 시스템 환경 설정 디렉토리

/home

 HOME

 사용자 홈 디렉토리

/lib

 LIBraries

 공유 라이브러리 및 커널 모듈 디렉토리

/lost+found

 LOST+FOUND

 파일 시스템 복구를 위한 fsck의 링크 디렉토리

/misc

 MISCellaneous

 아키텍처 독립 자료 디렉토리

/mnt

 MouNT

 마운트 포인트 디렉토리

/opt

 OPeraTion

 애드온(Add-on) 소프트웨어 패키지 디렉토리

/proc

 PROCess

 커널과 프로세스를 위한 가상 파일 시스템 디렉토리

/root

 ROOT

 루트 사용자 홈 디렉토리

/sbin

 System BINaries

 시스템 명령어 디렉토리

/tmp

 TeMPorary

 임시 작업 디렉토리

/usr

 USeR

 공유 파일 시스템 디렉토리

/var

 VARiable data

 가변 자료 디렉토리

 

 /

루트 디렉토리로 파일 시스템 계층 구조의 시작점입니다. 따라서 빈 상태로 유지하는 것이 바람직합니다.

 

 /boot

환경 설정 파일을 제외한 부팅 과정에서 필요한 모든 구성 요소들이 포함되어 있습니다.

 

 /bin

실행 파일들이 모두 모여 있습니다. 이 디렉토리에는 많은 필수적인 프로그램들이 포함되어 있습니다.

"ls /bin"을 해보면 이 안의 파일들을 볼 수 있으며 cp, ls, mv 같은 몇 개의 명령어들은 알아 볼 수 있을 것입니다. 이것들은 이들 명령어들의 실제 프로그램들입니다. 따라서 "cp" 명령을 입력하면, /bin/cp 프로그램이 실행되는 것입니다.

" ls -F"를 사용하면, /bin의 대부분의 파일들에서 "*"가 파일명 끝에 추가되어 있는 것을 볼 수 있습니다. 이것은 이 파일이 실행 가능한 파일임을 표시하는 것입니다.

 

 /dev

/dev 안의 파일들은 디바이스 드라이버들입니 다. 이것들은 디스크 드라이버, 모뎀, 메모리 등과 같은 시스템 디바이스나 자원들을 접근하는데 사용됩니다. 예를 들면, 파일들로부터 정보를 읽어 볼 수 있는 것과 같이, /dev/mouse를 access 함으로써 마우스로부터 입력되는 정보를 읽어 올 수 있습니다. fd로 시작하는 파일 이름들은 플로피 장치들입니다. fd0는 첫 번째의 플로피 디스크 드라이브이며, fd1은 두 번째입니다. 이 이외의 것들은 보통 플로피 디스크의 특정 형태를 표시합니다. 예를 들면, fd0H1440은 첫 번째 드라이브(A: 드라이브)의 고밀도 3.5 인치 디스켓을 말합니다.

 

/dev/console

시스템의 콘솔이며, 모니터가 시스템에 직접 연결되어 있음을 말합니다.

 

/dev/ttyS? 와 /dev/cua?

직렬 포트를 액세싱합니다. 예를 들면, /dev/ttyS0는 도스 상의 "COM1"을 뜻하며, /dev/cua는 "callout" 장치로써, 이것은 모뎀을 직접 액세스할 때 사용됩니다.

 

hd로 시작하는 디바이스 이름

하드 디스크를 액세스합니다. /dev/hda는 첫 번째 하드 디스크 전체를 뜻하며, hda1은 /dev/hda의 첫 번째 파티션을 의미합니다.

 

sd로 시작하는 디바이스 이름

SCSI 하드 디스크 드라이브나 테이프 드라이브 같은 SCSI 장치들을 의미합니다. 만약 SCSI 하드 디스크를 가지고 있다면, /dev/hda를 접근하는 대신에 /dev/sda를 액세스해야 합니다.

 

lp로 시작하는 디바이스 이름

병렬 포트를 말하며, /dev/lp1은 도스의 "LPT1"과 같습니다.

 

/dev/null

"black hole"로써 사용되는 것으로서 어떠한 데이터를 이 장치에 보내면 모두 없어지게 됩니다. 예를 들면, 화면에 아무 것도 출력되지 않기를 바랄 경우, /dev/null로 출력을 보내면 됩니다.

 

/dev/tty로 시작하는 디바이스 이름

시스템에 있는 "가상 콘솔 : Virtual Console(VC)"입니다. /dev/tty1은 첫번째 VC이며, /dev/tty2는 두 번째입니다. 가상 콘솔은 한 화면이 여러 개의 가상 터미널을 갖는 것입니다. 각각의 터미널은 [alt]+[F1], [alt]+[F2] 등을 누름으로서 전환할 수 있으며, 같은 사용자나 다른 사용자로 login할 수 있습니다.

 

/dev/pty로 시작하는 디바이스 이름

이것들은 원격 login 세션에서 사용되는 "pseudo-terminal"들입니다. 예를 들어, 사용 중인 컴퓨터가 네트워크에 연결되어 있고, telnet으로 login하려고 할 때, /dev/pty 디바이스를 사용합니다.

 

 /etc

시스템의 부팅, 셧다운 시에 필요한 파일들 시스템의 전반에 걸친 설정 파일들  초기 스크립트 파일들이 있습니다. 시스템에 어떠한 문제가 발생한다거나, 시스템 전체 환경에 관한 설정을 바꾸기 위해서는 이들 디렉토리 내에 포함되어 있는 파일들에 대해서 잘 알아야 합니다.

 

/etc/rc.d/rc

/bin/sh shell이 시스템이 부트되면, 자동적으로 실행되는 스크립트입니다. 이것은 update, crond, inetd 같은 프로그램을 백그라운드로 실행시키며, 파일 시스템 마운팅, 스왑 영역 활성, 그리고 이런 유사한 다른 작업들을 합니다. /etc/rc.d/rc.local과 /etc/rc.d/rc.# 파일이 포함되기도 합니다.

 

/etc/passwd

사용자에 대한 정보를 포함하고 있는 문서 파일입니다.

 

/etc/fdprm

플로피 디스크 파라메터 표입니다.

 

/etc/fstab

이 파일은 /etc/rc.d/rc 파일 안의 mount -a 명령에 의해 마운팅되는 파일 시스템과 스왑 영역의 목록입니다.

 

/etc/getty (혹은 /sbin/getty)

이 프로그램은 터미널로 누군가가 login하기를 기다립니다. 명령어 init에 의해 자동적으로 실행되며, login 가능한 터미널 라인이나 가상 콘솔 당 한번씩 실행됩니다. 또한, 사용자의 패스워드를 기다리며, login을 실행합니다.

 

/etc/gettydefs 혹은 /etc/gettytab

getty가 터미널 라인의 속도, 패리티 검사 등을 어떻게 사용할 것인가를 설정합니다.

 

/etc/group

/etc/passwd와 유사하며, 사용자 대신에 그룹을 설정합니다.

 

/etc/init (혹은 /sbin/init)

이 프로그램은 부팅 시에 커널에 의해 첫 번째 프로세스로 실행됩니다. init가 실행된 후에 커널 부팅이 완료됩니다. init는 /etc/rc.d/rc와 getty 등을 실행합니다.

 

/etc/inittab

init가 시작할 때의 getty의 파일 목록입니다.

 

/etc/issue

로그인 프롬프트 이전에 출력되는 getty 출력 문서 파일입니다. /etc/issue.net 파일은 remote 로그인시 프로프트에 출력됩니다.

 

/etc/mtab

이 파일은 마운팅된 파일 시스템을 포함하고 있습니다. /etc/rc/rc.d와 mount나 umount 명령에 의한 셋업이며, 마운팅된 파일 시스템의 목록이 필요할 때 사용됩니다.

 

/etc/shadow

시스템의 shadow 패스워드를 포함하는 파일입니다.

 

/etc/login.defs

login 명령에 사용되는 설정 파일입니다.

 

/etc/printcap

/etc/termcap과 유사하며, 프린터를 사용할 때(lpr) 쓰입니다.

 

/etc/profile

Bourne shell(/bin/sh 혹은 bash)에 의해 로그인 할 때 실행되는 파일입니다.

 

/etc/securetty

터미널 보안을 위해 사용하는 것으로 root는 이 파일에 열거된 터미널로 로그인할 수 있습니다. 보통 가상 콘솔들이 열거되어 있으며, 모뎀이나 네트워크로 시스템에 접근하여 수퍼 유저의 권한을 얻는 것을 막을 수 있습니다.

 

/etc/shells

shell의 목록으로 chsh 명령으로 사용자 로그인 shell을 바꿀 때, 이 파일의 목록에 있는 shell만 바꿀 수 있도록 합니다.

 

/etc/termcap

터미널의 기능 데이터베이스입니다. 이것은 문서 파일로서 ESCAPE 문자들로서 터미널을 제어할 때 사용됩니다.

 

/etc/update (혹은 /sbin/update)

/etc/rc.d/rc에 의해 백그라운드로 실행되는 프로그램의 하나로 매 30초 마다 버퍼 캐시에 있는 하드로 쓰여지지 않은 데이터를 저장합니다. 이러한 것은 전원의 단절이나, 커널의 이상 등을 대비하여 매 30초 마다 데이터를 저장함으로써 데이터 손실의 위험을 줄이는 것입니다.

 

/etc/utmp (혹은 /var/run/utmp)

각각의 터미널에 로그인한 사용자나, 로그인에 관한 정보가 기록되어 있는 이진 파일입니다. 사용자가 로그인하면 login은 누가 로그인을 하고 언제 로그 아웃을 하였는가에 대한 정보를 기록합니다.

 

/etc/wtmp (혹은 /var/log/wtmp)

/etc/utmp와 유사하며, 단지 존재하는 정보를 덮어 쓰지 않고 계속 추가합니다. /etc/ftpusers, /etc/rpc, /etc/exports 네트워크에 관한 파일들입니다.

 

/home

사용자의 홈 디렉토리로써 login 하였을 경우, 처음으로 위치하게 되는 디렉토리입니다. 예를 들어, /home/foo는 사용자 "foo"의 홈 디렉토리입니다. 시스템이 새로 설치되면, 이 디렉토리 안에 아무 것도 포함되어 있지 않습니다.

 

 /lib

부팅과 시스템 운영에 필요한 공유 라이브러리(Shared Library) 커널 모듈(Kernel Module)이 위치합니다. 공유 라이브러리란 windows 95/98의 DLL(Dynamic Link Library)과 같이 여러 가지 프로그램들에 의해서 사용되는 기능을 별도의 프로그램으로 분리시켜 놓은 것입니다. 커널 모듈도 공유 라이브러리와 같이 커널 안에 자체적으로 프함되지 않고 독립적인 형태로 분리되어 있으면서 부팅 시에 커널에 동적으로 연결되어서 전체적인 커널을 유기적으로 구성하게 되는 별도의 파일(Object File)들입니다.

 

/lost+found

파일 시스템의 이상 유무를 진단하고 복구하는 프로그램인 fsck(File System Check)에 의해서 사용되는 디렉토리입 니다. 손상된 파일이나 디렉토리를 /lost+found 디렉토리로 연결한 뒤에 오류를 수정하게 되며, 평상시에는 null 파일 링크에 의해서 비어있는 상태로 존재합니다. 리눅스의 파일 시스템인 ext2에 의한 fsck.ext2(File System Check.extended2) 프로그램도 이 디렉토리를 사용합니다.

 

/misc

시스템 아키텍처와 무관한 프로그램들과 자료들이 위치합니다. 레드햇 리눅스는 이 디렉토리를 구성하지 않습니다.

 

/mnt

루트 파일 시스템에 연결된 파일 시스템들의 마운트 디렉토리입니다. 마운트하지 않은 상태에서 빈 디렉토리로 존재하지만 마운트시키게 되면 해당 파일 시스템의 내용이 그대로 포함됩니다.

 

/opt

Add-On 소프트웨어 패키지가 설치됩니다. 레드햇 리눅스는 이 디렉토리를 구성하지 않습니다.

 

/proc

가상 파일 시스템입니다. 이 디렉토리의 내용들은 시스템에서 운영되고 있는 다양한 프로세서들에 관한 내용과 프로그램에 대한 정보를 포함하고 있습니다. 이 디렉토리에서 볼 수 있는 것은 실제 드라이브에 저장되어 있는 내용이 아니며, 메모리 상에 저장되어 있는 것입니다.

 

/root

시스템 관리자인 root의 홈 디렉토리입니다.

 

/sbin

시스템 관리를 위한 전반적인 실행 유틸리티를 담고 있습니다. 이 디렉토리에 있는 명령어들은 일반 사용자는 실행할 수 없습니다.

 

/tmp

프로세스 진행 중 발생하는 임시 파일들이 저장되는 작업 디렉토리입니다. 따라서 이 디렉토리 파일들은 수시로 생성되고 삭제되므로 중요한 자료일 경우, 이 디렉토리에 보관해서는 안됩니다. /tmp 디렉토리는 모든 사용자에 대해서 읽기와 쓰기 작업이 허용되며, 스티키 비트(sticky bit)라는 특별한 설정에 의해서 파일의 소유자만이 자신의 소유로 되어 있는 파일을 지울 수 있도록 되어 있습니다.

 

/usr

루트 디렉토리와 함께 중요한 시스템 디렉토리 계층을 구성합니다. /usr 디렉토리에는 공유 가능한 대부분의 프로그램들이 설치되며 네트워크를 이용해서 여러 개의 시스템을 연결할 경우, 이 디렉토리를 공유해서 설치된 프로그램들을 활용할 수 있게 됩니다. 따라서 /usr 디렉토리는 읽기 전용으로 마운트되어야 하며, 가변 자료들은 /var 디렉토리로 심볼릭 링크시켜서 사용하게 됩니다. /usr 디렉토리는 다른 시스템과 연결될 경우, 시스템 운영과 연관되기 때문에 내부적으로 전체 루트 디렉토리와 유사한 구조를 갖게 됩니다.

 

/usr/X11R6

X윈도우 시스템을 설치하였다면 이 디렉토리에 설치가 됩니다. X윈도우 시스템은 방대하여, 많은 그래픽 유틸리티와 프로그램들이 그래픽 윈도우로 출력되는 강력한 그래픽 사용자 환경입니다. 이 디렉토리에는 X윈도우 실행 파일, 사양 파일, 자원 파일들을 포함하고 있습니다. X11R6은 X의 버전과 릴리즈 번호를 뜻합니다.

 

/usr/bin

시스템이 소유하고 있는 소프트웨어를 담기 위한 warehouse입니다. /bin과 같은 곳에는 없는 유용한 실행 파일들을 가지고 있습니다.

 

/usr/etc

유틸리티와 파일들이 있습니다. 일반적으로 /usr/etc에 있는 파일들은 /etc에 있는 것만큼 반드시 필요한 것들은 아닙니다.

 

/usr/include

C 컴파일러를 위한 include 파일을 포함합니다. 이 파일은 데이터 구조 이름과 서브루틴, 상수 같은 C로 작성된 프로그램에서 사용되는 내용을 담고 있습니다. /usr/include/sys에 있는 파일들은 리눅스 시스템 레벨의 프로그래밍을 할 때 사용됩니다. 만약, C프로그래밍 언어에 익숙하다면, 여기에 printf()가 선언되어 있는 stdio.h같은 헤더 파일을 찾을 수 있을 것입니다.

 

/usr/lib

/lib에서 찾을 수 있는 "stub"와 "static"와 같은 라이브러리를 포함하고 있습니다. 프로그램을 컴파일할 때, 프로그램은 /usr/lib에 있는 파일들과 link되며 이 라이브러리 안에 실행 코드가 필요로 할 때, /lib를 찾습니다. 또한, 많은 프로그램들이 /usr/lib 안에 사양 파일을 저장합니다.

 

/usr/local

/usr에 포함된 것과 유사하고, 시스템에 반드시 필요로 하는 것은 아니지만, 매우 유용한 것들을 포함하는데 사용합니다. /usr/local에 있는 프로그램들은 시스템의 특성을 결정 짓는 소프트웨어들이 있을 수 있습니다.

 

/usr/man

이 디렉토리는 실제적인 man page를 포함하고 있습니다.

 

/usr/src

시스템에 있는 다양한 프로그램의 컴파일 되지 않은 소스 코드를 포함하고 있습니다. 여기서 가장 중요한 것은 /usr/src/linux이며, 이것은 리눅스 커널의 소스 코드를 포함하고 있습니다.

 

/usr/dict

사전 파일 디렉토리입니다.

 

/usr/doc

프로그램의 문서와 관련한 파일들이 저장되는 곳입니다.

 

/usr/games

게임 프로그램들이 위치하고 있습니다.

 

/usr/infi

GNU info 파일을 위한 디렉토리입니다.

 

/usr/sbin

시스템 명령어들이 위치합니다.

 

/usr/share

아키텍처 독립적인 자료들의 디렉토리입니다.

 

/var

내용이 수시로 변경될 수 있는 변수를 담고 있는 파일들이 위치합니다. 예를 들면, 부팅 중의 시스템 확인 과정은 부팅 때마다 달라질 수 있으므로 부팅 과정을 기록하는 파일은 이 디렉토리에 위치하게 됩니다. /tmp 디렉토리가 파일 자체에 대한 임시 디렉토리인데 반해서 /var 디렉토리는 변경될 수 있는 자료를 포함하고 있는 파일들을 위한 디렉토리입니다.

 

/var/adm

시스템 관리적인 문제의 파일, 로그 파일, 커널 크래쉬 덤프를 기록한 파일들을 포함합니다.

 

/var/spool

스풀 파일들이 위치합니다.

 

출처: https://firedev.tistory.com/entry/Linux-Unix-%EB%A6%AC%EB%88%85%EC%8A%A4%EC%8B%9C%EC%8A%A4%ED%85%9C-%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC-%EA%B5%AC%EC%A1%B0%EC%99%80-%EA%B8%B0%EB%8A%A5

RAID

Redundant Array Inexpensive Disk 혹은 Redundant Array Independent Disk 의 약자

처음 개념이 등장할 때는 여러개의 저렴한 디스크를 하나로 모아 고성능의 디스크처럼 사용하자는 생각에서 출발.

현재는 꼭 저렴한 디스크 라기 보다는 여분의 독립적인 디스크들을 하나로 모아 고성능 혹은 고가용성을 위한 개념이다.

 

RAID는 구현 방법에 따라 여러개의 RAID LEVEL 로 표현된다.

 

단일 디스크 I/O

아래 그림은 단일디스크에서 I/O가 발생하는 상황이다.

모든 데이터는 조각(block 혹은 cluster로 표현됨)으로 나뉘어 디스크에 쓰여지기 때문에 아래와 같은 그림이 된다.

1번 조각이 디스크에 쓰여지고 있는 동안 나머지 조각들은 대기를 하게 되고, 1번이 다 쓰여진 이후에 2번, 3번 순으로 쓰기가 이루어진다.

 

RAID 0 (Striping)

처음 개념이 등장했을때, 즉 여러개의 저렴한 디스크를 하나로 모아 고성능의 디스크로 사용하는 개념에서 나온 Level 이다. 

패리티(오류검출기능)이 없이 striping 된 형태를 말한다. 최소 2개 이상의 디스크를 필요로 하며 안정성보다는 고성능을 위해 사용된다.

 

RAID 0의 경우는 I/O가 일어날때 데이터를 여러 조각으로 나누어 각각의 디스크에 순서대로 저장하게 된다. 아래 그림처럼 디스크 2개로 RAID-0 을 구성했을 경우, 1번 조각이 DISK1에 쓰여지고 있을 동안 2번 조각은 기다리지 않고 바로 DISK2에 기록이 된다. 1번 조각의 쓰기가 끝나는대로 DISK1 에서는 3번조각이 쓰여지고 2번 조각의 쓰기가 끝나는대로 4번 조각의 쓰기가 일어나 단일디스크일 경우보다 거의 2배에 가까운 성능을 발휘한다. (물론 실제적으로 2배까지는 아님) 하지만 두 디스크중 하나의 디스크에 Fault가 발생했을 경우, 데이터의 절반을 날리게 되므로, 나머지 하나의 디스크도 사실상 못쓰게 된다. 관리 포인트가 하나 늘어남으로 인해 안정성은 떨어지게 되는 것이다.

 

장점 : 빠른 I/O 성능, 디스크가 N개로 구성될 경우 N개의 디스크 용량 모두를 활용할 수 있음.

단점 : 낮은 안정성

 

RAID 1 (Mirroring)

RAID 0과는 달리 안정성에 중점을 둔 RAID Level 이다. 아래 그림에서 보면 1번 조각이 디스크에 쓰여질 때 양쪽 디스크(DISK1, DISK2)에 동시에 동일한 데이터가 기록됨을 볼 수 있다.

 

RAID 1은 하나의 데이터를 양쪽 디스크에 동일하게 기록함으로써, 하나의 DISK에 Fault가 발생해도 나머지  하나의 디스크를 통해 데이터에 접근할 수 있는, 안정성을 강화한 방법이라고 보면 된다. 일반적으로 서버에 있어 OS가 설치되는 디스크에 필수적으로 사용되는 구성방법이다.

 

장점 : 높은 안정성. 일반적인 구성대비 읽기 성능에서 아주 조금 향상된성능을 보임.

단점 : 전체 디스크 용량에 비해 사용가능한 용량은 절반이 됨. 즉 높은 비용.

 

RAID 2

RAID2는 RAID 0처럼 스트라이핑 구성이지만 일부 디스크에는 오류 검사 및 수정을 위해 ECC(Error Correction Code) 정보가 저장된다. RAID 3~4에 비해 이점이 없으며 현재는 더 이상 사용되지 않는 구성이다.

 

단점 : ECC를 위한 드라이브가 손상될 경우는 문제가 발생할 수 있으며 패리티 정보를 하나의 하드 드라이브에 저장하는 RAID 4가 나오면서 폐기되었다.

 

최소 디스크 개수 : 3

용량 : (디스크 수 - 1) X 디스크 용량

 

RAID 3

 

RAID 3 구성은 스트라이핑을 사용하고 하나의 드라이브를 패리티 정보를 저장하는데 사용된다. 내장 된 ECC 정보는 오류를 감지하는 데 사용된다. 데이터 복구는 다른 드라이브에 기록 된 정보의 배타적 OR (XOR)을 계산하여 수행된다.

 

I/O 작업은 동시에 모든 드라이브를 처리하므로 RAID 3은 I/O를 중첩 할 수 없습니다. 이러한 이유 때문에 RAID 3는 수행시간이 긴 응용 프로그램이있는 단일 사용자 시스템에 가장 적합하다.

 

최소 디스크 개수 : 3

용량 : (디스크 수 - 1) X 디스크 용량

 

RAID 4 (Parity)

 

RAID 0(Striping)의 성능에 안정성을 결합한 방식이다. 데이터는 RAID 0에서처럼 디스크에 순차적으로 쓰여지기 때문에 성능 향상의 이점이 있고, 불안한 안정성을 위해 하나의 디스크를 Parity 전용 디스크로 사용한다. 전체 디스크가 N개로 구성되면 실제 사용가능한 디스크는 N-1개가 된다. RAID 5로 인해 잘 사용되지는 않지만 NetApp의 스토리지 구성에서는 자주 볼 수 있다.(NetApp은 RAID 4,6을 사용)

 

※ Parity 가 어떻게 사용되는건지에 대해~~

 - 아래 그림에서 1번,2번,3번 데이터와 맨 윗줄의 P 하나가 한 셋트가 된다.

정말 간단하게 설명하면 1번 데이터의 실제 값은 1, 2번 데이터의 실제값은 0, 3번 데이터의 실제값은 1이라고 가정해 보자 

(이렇게 가정할 수 있는 이유는 컴퓨터는 실제 0과 1로만 이루어진 데이터를 주고받기 때문이라고 보면 된다)

 

맨 윗줄의 Parity는 같은 위치에 있는 1~3번 데이터의 실제값을 확인하게 되는데, 1이 홀수개면 1, 1이 짝수개면 0이라는 값이 쓰여진다.

이경우 맨 첫번째 Parity는 1번 데이터는 1, 2번 데이터는 0, 3번 데이터는 1 -> 즉 1이 총 짝수개, 따라서 Parity값은 0이된다. 

이후에 만약 DISK 1이 손상되어 1번 데이터 부분이 없어진다고 해도, Parity 값을 이용하여 1번 데이터 부분에 어떤 값이 있는지 역추적이 가능하기 때문에 복구가 가능해 지는 것이다.

 

장점 : RAID 0 대비 높아진 안정성, RAID 1 대비 뛰어난 성능

단점 : Parity 전용 디스크에 부하가 걸릴 경우(Parity 연산을 해야하는 경우가 많을수록) 전체적인 성능이 저하됨. 읽기 보다는 쓰기에서 성능의 저하가 큼(디스크에 쓸 때는 Parity를 연산하여 기록해야 하기 때문에, 읽기때는 데이터만 읽으면 됨)

 

RAID 5

이 구성은 패리티가있는 블록 레벨 스트라이핑을 기반으로합니다. 패리티 정보는 각 디스크에 스트라이핑되므로 하나의 드라이브가 고장 나더라도 다른 어레이로 대체 작동 할 수 있다. 어레이 아키텍처는 읽기 및 쓰기 작업을 여러 드라이브로 확장이 가능하기 때문에 일반적으로 단일 드라이브의 성능보다 좋지만 RAID 0 어레이의 성능은 높지 않습니다. RAID 5는 3개 이상의 디스크가 필요하지만 성능상의 이유로 적어도 5 개의 디스크를 사용하는 것이 좋다고 한다.

 

RAID 5 어레이는 일반적으로 패리티 정보 작성과 관련된 성능 영향으로 인해 쓰기 집약적 시스템에서 사용하기에는 좋지 않은 선택이다. 디스크에 장애가 발생하면 RAID 5 어레이를 재구성하는 데 오랜 시간이 걸릴 수 있기 때문이다. 성능은 대개 재구성 시간 동안 저하되며 어레이는 재구성이 완료 될 때까지 추가 디스크 오류에 취약할 수 밖에 없다.

 

즉, RAID 5는 RAID 3,RAID 4 에서 별도의 패리티 정보 디스크를 사용함으로써 발생하는 문제점을 보완하는 방식으로 패리티 정보를 stripe로 구성된 디스크 내에서 처리하게 구성한다. 만약 1개의 디스크가 고장 나더라도 남은 디스크들이 복구를 할 수 있기 때문이다.

 

최소 디스크 개수 : 3

용량 : (디스크 수 - 1) X 디스크 용량

RAID 6

RAID 5 의 경우 Parity bit을 이용하여 어느정도의 안정성을 보장할 수 있었다.(1개의 디스크 Fault까지는 Parity를 이용하여 복구 가능)

 

하지만 1개의 디스크가 손상된 후, 바로 또 하나의 디스크가 손상이 된다면 전체 디스크의 데이터를 사용할 수 없게 되었다. 이에 하나의 디스크를 추가로 Parity로 사용, 즉 Parity bit을 두개의 디스크에 두어 안정성을 더욱 강화한 방법이다. 전체 디스크가 N개일 경우, 실제 사용가능한 디스크는 N-2 개가 된다.

 

장점 : RAID 4,5 대비 안정성 증가

단점 : RAID 4,5 대비 비용 증가

 

RAID 1+0, 0+1 (RAID10)

RAID 0과 1을 합쳐놓은 방법이다. RAID 0으로 구성된 디스크들을 다시 RAID 1로 구성하면 0+1, RAID 1로 구성된 디스크들을 다시 RAID 0으로 구성하면 1+0 이 된다. RAID 0과 1의 장점들을 취한 방법으로, striping(RAID 0)의 성능과, mirroring(RAID 1)의 안정성을 갖는 방법이다.

 

디스크 4개로 구성된 0+1, 1+0의 경우 서로간에 성능 차이는 없다고 보면 된다. 하지만 디스크가 4N 개(4의 배수)가 아닌 6개로 구성되어 있을 경우는 0+1보다 1+0의 안정성이 더 높아지므로, 실질적으로 1+0 을 많이 사용하고 있다.

 

※ 왜 디스크가 6개일때 1+0의 안정성이 높은가???

디스크 6개를 1+0으로 구성하게 되면 2+2+2 형태로 구성이 가능하다

(2개씩 mirror 구성 후 3개의 셋트를 다시 striping). 

디스크 6개를 0+1로 구성하게 되면 3+3 형태로 구성이 가능하다

(3개씩 striping 구성 후 2개의 셋트를 다시 mirror). 

 

이경우 2+2+2 상태에서는 각각의 셋트에서 디스크가 하나씩 Fault가 발생해도 전체 데이터를 사용할 수 있는 반면 3+3 상태에서는 각각의 셋트에서 디스크가 1개씩만 fault가 허용될뿐 추가적으로 Fault 가 발생할 경우 전체 데이터를 손실하게 된다. 즉 2+2+2 상태에서는 최대 3개까지 디스크 Fault를 커버 가능, 3+3 상태에서는 최대 2개까지 디스크 Fault를 커버 가능하게 된다. 

 

장점 : 성능, 탄력성 및 비용은 RAID의 주요 장점이라고 볼 수 있다. 여러 개의 하드 드라이브를 함께 설치하면 RAID를 사용하여 단일 하드 드라이브의 작업을 향상시킬 수 있으며 구성 방법에 따라 충돌 후 컴퓨터 속도와 안정성이 향상 될 수 있기 때문이다.

 

단점 : 중첩 된 RAID 레벨은 많은 수의 디스크가 필요하기 때문에 기존의 RAID 레벨보다 구현 비용이 비싸다. 대다수의 디스크가 중복성을 위해 사용되기 때문에 중첩 된 RAID의 경우 스토리지 비용도 높습니다. 하지만 중첩 된 RAID는 표준 RAID 레벨과 관련된 일부 안정성 문제를 극복하는 데 도움이되므로 비용에도 불구하고 널리 보급되어 사용되었다.

 

※ 번외편

 

- Hardware RAID :

하드웨어 적으로 RAID를 구성하는 방법이다. 별도의 RAID 컨트롤러를 사용하여 구성하게 되며, RAID 컨트롤러에서 디스크 구성을 한 후 OS에게 전달하는 방식으로 OS는 해당 디스크가 RAID 구성되어있는지 아닌지의 여부를 알 수가 없게된다.

 

                           OS가 RAID에 관여하지 않고, 또 별도의 하드웨어가 RAID관련 연산을 처리함으로 인해 Software RAID 방식보다 더 나은 성능을 기대할 수 있다. 단, RAID 컨트롤러를 이중화 하지 않을 경우, 컨트롤러의 손상만으로 디스크 전체를 사용할 수 없게 될 수가 있다.

 

- Software RAID :

OS가 RAID 구성을 지원하는 방식이다. OS는 장치에 연결된 모든 디스크를 인식할 수 있으며 OS에서 제공하는 기능을 통해 RAID 구성이 가능하다. 별도의 RAID 컨트롤러가 필요가 없기에 비용적인 측면에서 조금 더 나을 수 있지만, Hardware RAID방식에 비해 성능은 더 낮다.

 

                           Windows OS에서는 동적디스크를 사용하여 RAID 구성이 가능하며, UNIX 계열에서는 LVM을 사용하여 구성이 가능하다. (HP나 IBM쪽에서는 LVM을 통해 Mirror를 구성하는, 즉 Software RAID방식을 사용해도 Hardware RAID 방법과

                           비교하여 성능차이가 거의 없다고 한다. 하지만 Windows의 경우에는 Software RAID 방식을 사용하면 성능 저하가

                           크다. 성능저하 뿐만 아니라 복구시에 안정성도 낮음)

 

오늘날 배울 수있는 가장 유용한 Linux 명령어

이 글에는 Linux 시스템 경험을 급격히 높이기 위해 Google 전문가가 엄선한 50가지 최고의 리눅스 명령어 모음이 나와 있습니다.

파일 시스템 탐색을 위한 리눅스 명령어

모든 최신 운영 체제와 마찬가지로 리눅스 파일 시스템은 기본 디자인의 핵심에 있으며, 시스템 계층을 시각화하고 조작할 수 있는 다양한 방법을 제공합니다. 파일 시스템을 창의적으로 탐색하는 법을 배우면 Linux 기술이 한 층 성장할 수 있습니다.

1. pwd

pwd는 Print Work Directory의 약자이며, 현재 작업 중인 디렉터리를 보여줍니다. 이것은 현재 사용자가 있는 디렉터리를 보여줍니다. 이는 사용자의 작업을 평화롭게 만드는 것을 목표로 하는 가장 편리한 리눅스 명령어 중 하나입니다.

2. ls

ls 명령 list segments의 약자이며, 아마도 유닉스 세계에서 가장 널리 사용되는 명령 중 하나일 것입니다. 파일과 디렉터리의 모든 정보를 제공하며 특정 디렉터리와 특정 파일의 내용도 제공합니다. 이 명령을 pwd와 함께 사용하여 강력한 Unix 파일 시스템 내에서 길을 탐색할 수 있습니다.

3. cd

리눅스/유닉스는 보통 디렉터리와 파일로 이루어져 있습니다. 특히 사용자가 리눅스를 사용하다 보면 특정 디렉터리 아래 하위 디렉터리를 만들게 되고 여기서 다양한 작업을 하게 됩니다.

리눅스에서 작업하고 있는 현재의 위치를 현재 디렉터리라고 합니다. 기본적으로 디렉터리를 기준으로 파일이나 디렉터리를 찾으려고 시도합니다. 즉 파일 또는 디렉터리의 이름을 절대 경로로 지정하지 않으면 현재 디렉터리를 기준으로 상대적인 위치에서 파일을 찾습니다. 시스템에 로그인하면 홈 디렉터리가 현재 디렉터리가 된다. 이에 해당 디렉터리로 이동하는 방법이 cd 명령어입니다.

4. mkdir

Windows os에서 문서 또는 이미지 파일 등을 정리하기 위해 새 폴더를 만드는 것과 같이 리눅스에서도 새 디렉터리를 만듭니다. 터미널을 통해 새 폴더를 만들고 싶습니까? mkdir 명령은 필요한 권한을 가지고 있다면 Linux 시스템에서 원하는 위치에 폴더를 만들 수 있습니다.

5. rmdir

rmdir은 remove directory의 약자이며, 빈 디렉터리를 삭제할 때 사용하는 명령어이다. 삭제하려는 디렉터리가 비어있지 않을 경우에는 삭제를 할 수 없없습니다.

6. lsblk

Linux 시스템에서 사용 가능한 블록 장치를 나열해야 할 경우가 종종 있습니다. lsblk는 이 목적으로 가장 많이 사용되는 Linux 명령어 중 하나입니다. 이 편리한 리눅스 명령어는 블록 장치의 트리 구조를 나타내며 전문 사용자가 많이 사용합니다.

7. mount

Windows와 달리 SD 카드 또는 USB를 연결할 때마다 배포판이 처음에 직접 표시되지 않을 가능성이 존재합니다. mount 명령을 사용하여 기존 파일 시스템으로 마운트 해야 합니다. 이 리눅스 명령어는 가장 강력한 터미널 명령 중 하나입니다.

8. df

df 명령은 파일 시스템의 디스크 공간에 대한 필수 정보를 표시하는 가장 강력한 Linux 터미널 명령 중 하나입니다. 시스템 관리자가 실시간 서버 또는 네트워크 지향 시스템을 모니터링하고 분석하는 데 널리 사용됩니다. 기본적으로 1,024Byte 블록 단위로 출력하며, 옵션을 통해서 다른 단위로도 출력이 가능합니다.

시스템 조작을 위한 리눅스 명령어

시스템 명령은 Linux 시스템에 대한 정보를 얻는 데 필수적입니다. 이 작업을 위해 많은 강력한 Linux 명령을 사용할 수 있습니다.

9. uname

uname 명령은 이름, 버전 및 기타 시스템 특정 세부 사항과 같은 시스템 정보를 얻기 위한 기본 Linux 명령어입니다. 이 명령으로 OS 및 커널 버전을 빠르게 확인할 수 있으며, 시스템의 명령 길이를 확인할 수 있습니다.

10. ps

이 리눅스 명령어는 현재 시스템에서 실행 중인 프로세스를 시각화할 수 있습니다. 시스템 리소스를 분석하는데 사용되는 매우 유연한 수단이며, 터미널을 통해 기본적으로 시스템 프로세스를 조작할 수도 있습니다. 이 리눅스 명령어는 기본 및 최상의 Linux 모니터링 도구 중 하나로 간주됩니다.

11. kill

kill 명령은 자원 제한으로 인해 멈춘 프로세스를 중지하는 강력한 방법입니다. Linux 시스템 기술을 발전시키시면 이 명령의 본질과 중요성을 알게 될 것입니다. 종종 재미있는 Linux 명령 목록에 표시되는 kill 명령은 이름만큼이나 강력합니다.

12. service

service 명령은 리눅스 터미널에서 시스템 전체 서비스를 호출하기 위한 명령입니다. 시스템 조작을 위한 강력한 Linux 터미널 명령. 터미널 창에서 직접 System V init 스크립트를 실행하기 위해 이 명령을 사용할 수 있습니다.

13. batch

미리 정의된 일정에 따라 시스템 서비스를 실행하는 깔끔한 도구를 찾고 있다면 배치 명령이 있습니다. 자동화 쉘 스크립트 작성을 위한 또 다른 강력한 Linux 명령어 중 하나로 Linux 생산성을 크게 향상시킬 수 있습니다.

14. shutdown

리눅스 명령어 shut down은 halt, init과 함께 시스템을 종료하는 명령어 중 하나입니다. shut down은 현재 접속 중인 모든 사용자에게 시스템이 종료된다는 메시지를 보낼 수 있습니다.

파일 관리를 위한 리눅스 명령어

파일은 Linux 시스템의 중심에 있습니다. 시스템에서 볼 수 있는 거의 모든 것이 일종의 파일이므로 그에 따라 조작할 수 있습니다. Linux 전문가가 되려면 파일 관리 방법을 숙달해야 합니다.

15. touch

touch 명령은 유효한 빈 파일을 작성하기 위한 필수 Linux 명령어입니다. 터미널에서 이동 중에 파일을 생성하고 요구 사항에 따라 나중에 또는 실시간으로 파일을 채울 수 있습니다. 타임스탬프를 변경하기 위한 이동 명령이기도 합니다.

16. cat

처음에 여러 파일을 연결하기 위해 고안된 cat 명령은 이후 다른 목적으로 사용됩니다. 이 리눅스 명령어는 새 파일을 작성하고 터미널에서 파일 내용을 보고 출력을 다른 명령행 도구 나 파일로 리디렉션하는 데 사용합니다.

17. head

head 명령을 사용하면 터미널에서 직접 파일 또는 파이프 된 데이터의 시작을 볼 수 있습니다. 텍스트 처리를 많이 사용하는 사용자가 가장 많이 사용하는 Linux 명령 중 하나입니다. 터미널에서 많은 파일을 처리할 때마다 이 명령을 사용하여 생산성을 향상시킬 수 있습니다.

18. tail

tail 명령어는 파일의 마지막 행을 기준으로 지정한 행까지의 파일 내용 일부를 출력합니다. 기본 값으로 마지막 10줄을 출력해 줍니다. 참고로 head 명령어의 경우에는 파일의 앞 부분을 출력합니다. 리눅스에서 오류나 파일 로그를 실시간으로 확인할 때 매우 유용하게 사용됩니다.

19. cp

cp 명령은 copy의 약어이며, 시스템에서 파일이나 디렉터리를 한 폴더에서 다른 폴더로 복사하도록 지시하는 간단한 방법입니다. 이 깔끔한 명령을 사용하면 터미널에서 바로 여러 파일을 디렉터리로 복사할 수 있습니다.

20. mv

move의 줄임말로 GUI에서 수행하는 절단 작업을 보완합니다. cp와 마찬가지로 mv 명령을 사용하여 하나 또는 여러 파일을 한 위치에서 다른 위치로 이동할 수 있습니다. 이 Linux 명령이 -f 매개 변수를 사용하여 큰 파일을 전송하도록 할 수 있습니다.

21. comm

Linux 세계로 향한 최초의 Unix 명령 중 하나인 comm을 사용하여 두 개의 파일을 공통 행과 구별되는 행으로 비교할 수 있습니다. 이것은 터미널에서 많은 양의 파일을 처리해야 하는 많은 사람들에게 필수적인 리눅스 명령어입니다.

22. less

가장 많이 사용되는 또 다른 Linux 명령어인 less 명령은 파일의 내용을 볼 때 제공하는 편리성 때문에 많이 사용됩니다. cat 과는 달리 less 명령을 사용하면 터미널 세션을 방해하지 않으면서 파일 내에서 양방향으로 탐색할 수 있습니다.

23. ln

ln 명령은 특정 파일에 대한 심벌릭 링크를 만들기 위한 가장 편리한 리눅스 명령어 중 하나입니다. 이 작지만 유연한 명령을 사용하여 디스크 공간의 특정 파일이나 디렉터리에 대한 심벌릭 링크의 여러 인스턴스를 생성할 수 있습니다.

24. cmp

두 파일을 비교하고 결과를 표준 출력 스트림에 인쇄하려면 cmp 명령을 사용하면 정확하게 수행할 수 있습니다. 이 명령어는 comm 명령과 함께 대량의 텍스트 파일을 정기적으로 처리하는 사용자들이 가장 많이 사용하는 Linux 명령어 중 하나입니다.

25. dd

이 명령어는 베테랑 사용자들이 파일을 한 유형에서 다른 유형으로 복사 및 변환하기 위해 가장 많이 사용하는 Linux 명령 중 하나입니다. 이 강력한 명령어에 대한 흥미로운 점은 부팅 가능한 라이브 USB 스틱을 만들 때 다른 터미널 명령 중에서 자주 사용한다는 것입니다.

26. alias

터미널에서 직접 파일의 다른 문자열로 단어를 바꿀 수 있으므로 시스템 관리자가 가장 많이 사용하는 리눅스 명령어 중 하나입니다. 다른 기능 중에서, 쉘을 사용자 정의하고 환경 변수를 조작할 수 있는 최상의 터미널 명령 중 하나입니다.

지루할 때 탐색 할 수 있는 재미있는 리눅스 명령어

터미널 앞에서 즐거운 시간을 보내기 위해 재미있는 리눅스 명령어를 사용할 수 있습니다. 이 터미널 명령은 유닉스 철학에 대한 심층적인 통찰력을 제공하면서 지루함을 되찾을 수 있는 재미있는 Linux 명령어입니다.

27. cal

유닉스가 터미널에 편리한 작은 달력 도구를 제공한다는 것을 알고 계셨습니까? cal 명령은 달력을 ASCII 텍스트 형식으로 표시하는 재미있는 Linux 명령어 중 하나입니다. 지정된 정보를 터미널에 바로 가져오려면 월 및 연도와 같은 매개 변수와 함께 이 명령을 입력해보세요.

28. fortune

이 명령어는 제가 가장 좋아하는 재미있는 리눅스 명령어 중 하나입니다. 터미널에 입력하고 직접 확인하십시오! 독창적이거나 어리석은 구절을 보여줄 것입니다.

29. history

터미널 세션 기록을 확인하고 싶습니까? history 명령을 사용하면 정확하게 수행할 수 있습니다. 매개 변수 없이 입력하면 작은 창에서 터미널 세션의 bash 기록이 인쇄됩니다. 터미널에서 사용할 유용하면서 재미있는 Linux 명령 일뿐만 아니라 터미널 사용에 대한 훌륭한 통찰력까지 제공합니다.

30. yes

yes 명령어는 주어진 문자열을 Ctrl + C키로 멈출 때까지 계속 반복해서 출력해줍니다. 이런 명령어가 왜 필요할까 싶겠지만, 시스템 성능 테스트 같은 것을 할 때 사용할 수 있습니다.
예를 들면 CPU를 100%까지 올려서 컴퓨터의 냉각 시스템이 작동하는지를 테스트할 때 사용할 수 있습니다.

31. banner

구식 유닉스에서 사용되는 멋진 ASCII 배너를 보았고 마음에 드셨나요? banner 명령은 자신만의 맞춤 배너를 만들 수 있는 재미있는 Linux 명령 중 하나입니다. 터미널에 일부 텍스트와 함께 이 명령을 입력해보세요.

32. rev

이것은 베테랑 리눅스 사용자를 위한 또 다른 재미있는 터미널 명령어 입니다. rev 명령은 입력 텍스트를 가져 와서 각 문자를 반대로하여 표준 출력에 기록합니다! 친구에게 비밀스럽고 미묘한 인상을 남기기 위해 사용할 수있는 Linux 명령어 중 하나입니다.

네트워크 관리자에게 가장 많이 사용되는 리눅스 명령어

Linux는 네트워킹을 위해 제공하는 강력함과 유연성으로 전 세계 sysadmins에게 유용한 솔루션입니다. Linux는 우리에게 익숙한 대부분의 컴퓨터 네트워크 뒤에 있습니다. 이 가이드는 초보자를위한 것이므로 네트워킹을 위한 가장 기본적인 터미널 명령만 간략하게 설명합니다.

33. wget

이 명령어는 네트워크 관리자가 터미널에서 바로 웹에서 파일을 다운로드하는데 활용하는 최고의 리눅스 명령어 중 하나입니다. 이것은 스크립트나 크론 작업에 사용될 수 있는 편리한 작은 터미널 명령 중 하나이며, 사용자에게 HTTP, HTTPS 및 FTP 인터넷 프로토콜을 사용할 수 있는 기능을 제공합니다.

34. iptables

iptables 명령은 시스템 관리자가 특정 호스트 시스템에서 들어오고 나가는 인터넷 트래픽을 제어할 수 있는 터미널 유틸리티를 호출합니다. sysadmins는 정기 트래픽을 정의하고 의심스럽거나 신뢰할 수 없는 네트워크 요청을 블랙리스트에 올리는 데 가장 많이 사용하는 Linux 명령어 중 하나입니다.

35. traceroute

이 명령은 네트워크 패킷이 한 시스템에서 다른 시스템으로 이동하는 경로를 결정하기 위해 이 명령을 다른 터미널 명령과 함께 사용하는 보안 전문가가 많이 사용합니다. 이것은 여러 가지 유해한 침입자로부터 컴퓨터를 보호할 수 있는 강력한 네트워크 명령입니다.

36. cURL

cURL은 네트워크를 통해 파일을 전송하여 새로운 Linux 시스템 사용자도 사용할 수 있는 매우 강력한 네트워크 도구입니다. 이것은 사용자 개입 없이 작동하도록 설계된 리눅스 명령어 중 하나이며, 일반적으로 네트워크 관련 쉘 스크립트에 사용됩니다.

Linux 명령어 검색 및 정규 표현식

Linux는 머신을 효과적으로 검색하기 위한 유연한 터미널 명령을 제공합니다. 이러한 Linux 터미널 명령을 강력한 정규식 명령과 결합하면 파일의 특정 파일 또는 시퀀스에 대한 정보를 매우 빠르게 얻을 수 있습니다.

37. find

find 명령어 는 터미널에서 파일을 검색하는데 가장 많이 사용되는 리눅스 명령어 중 하나입니다. 이 강력하면서도 유연한 터미널 명령을 통해 사용자는 파일 권한, 소유권, 수정 날짜, 크기 등과 같은 특정 기준에 따라 파일을 검색할 수 있습니다.

38. which

검색하려는 모든 파일이 실행 파일인 경우 which 명령은 매우 유용합니다. 이 편리한 터미널 명령은 특정 매개 변수를 취하여 $ PATH 시스템 환경 변수에서 이진 파일을 매우 효과적으로 검색합니다.

39. locate

locate 명령은 특정 파일의 위치를 ​​찾는데 사용되는 리눅스 명령어 중 하나입니다. Linux 시스템에서 특정 파일의 위치를 ​​모를 때 활용할 수 있는 가장 간단한 터미널 명령 중 하나입니다.

40. grep

대량의 텍스트 파일에서 패턴을 검색할 때 사용할 수 있는 가장 강력한 정규식 터미널 명령 중 하나입니다. 찾고자 하는 패턴을 입력으로 받아 특정 패턴에 대해 지정된 파일을 검색합니다.

41. sed

지정된 부분을 교체하여 파일 또는 스트림의 각 줄을 조작하는데 가장 많이 사용되는 Linux 명령어 중 하나입니다. 많은 양의 텍스트 데이터를 다루고 이동 중에도 변경해야 하는 사용자들이 많이 사용합니다.

I / O 및 소유권을 다루는 리눅스 명령어

Linux는 I/O 스트림과 파일 또는 디렉터리 소유권을 설정하고 조작하기 위한 강력한 터미널 명령 세트를 제공합니다. 아래에 나열된 Linux 명령어는 이러한 목적을 위한 가장 기본적인 Linux 터미널 명령 중 일부를 간략하게 보여줍니다.

42. clear

clear 명령은 기존 터미널 화면을 지우는데 편리합니다. 이전의 일부 Linux 명령이 터미널 화면을 깨져서 출력이 깨진 후 터미널 화면을 지워야 하는 경우가 종종 있습니다.

43. echo

echo 명령은 터미널 콘솔에 특정 텍스트를 출력할 수 있는 매우 강력한 명령 줄 유틸리티입니다. echo를 입력하고 괄호 안에 일부 텍스트를 입력하면 스스로 확인할 수 있습니다. 이 명령의 흥미로운 점은 출력을 다른 터미널 명령으로 파이프 할 수 있다는 것입니다.

44. sort

정렬 명령은 수행하는 작업에 매우 효과적입니다. 사전 순 또는 역순으로 파일을 정렬해야 할 때마다 이 명령을 사용하십시오.

45. sudo

sudo 명령은 Linux 명령의 성배입니다. 권한이 없는 사용자는 낮은 수준의 권한이 필요한 파일에 액세스하고 수정할 수 있습니다. 종종이 명령을 사용하여 일반 사용자 계정에서 루트에 액세스합니다.

46. chmod

chmod 명령은 시스템 파일 또는 객체의 액세스 권한을 변경하거나 수정하는데 사용하는 가장 강력한 Linux 명령어 중 하나입니다. 이 명령은 사용자로부터 매우 다양한 매개 변수 세트를 취할 수 있으며, 파일 권한 변경에 따라 다릅니다.

47. chown

chown 명령은 chmod 명령과 매우 유사합니다. 그러나 액세스 권한을 변경하는 대신 사용자가 파일 또는 디렉터리의 소유권을 변경할 수 있습니다. chmod 및 chown 터미널 명령은 모두 루트 권한이 필요합니다.

일상적인 사용을 위한 기타 명령어

아래 터미널 명령어는 생산성을 높이고 작업량을 줄이는 데 도움이 됩니다. 상황에 맞지 않을 때마다 이 Linux 명령을 사용하십시오.

48. man

man 명령은 manual을 나타내며, 사용자가 직접 사용할 수 있는 가장 유용한 Linux 명령어 중 하나입니다. 이 명령 다음에 다른 명령의 이름은 해당 명령의 매뉴얼 또는 설명서 페이지를 나열합니다. 특정 터미널 명령을 사용하는 방법을 결정할 때 이 명령을 자주 사용해야 합니다.

49. tar

tar 명령은 파일을 아카이브하고 추출하는데 사용됩니다. 파일을 압축하는데 널리 사용되는 명령으로 이러한 작업을 매우 효율적으로 처리할 수 ​​있습니다.

50. whatis

whatis 명령은 사용자가 제공한 간단한 설명으로 데이터베이스 세트를 순회하며 해당 데이터베이스 명령과 일치하는 시스템 명령을 인쇄합니다.

 

출처: https://dora-guide.com/linux-commands/

'CS > Linux&Unix' 카테고리의 다른 글

리눅스 디렉토리 구조와 기능  (0) 2020.06.02
RAID 종류 및 특징  (0) 2020.06.02
UNIX - 운영체제 특징  (0) 2020.02.26
Linux - 리눅스 디렉터리 종류와 특징  (0) 2020.02.26
Linux - 리눅스 배포판 종류와 특징  (0) 2020.02.26

UNIX란?

1969년 Bell 연구소에서 개발한 소프트웨어 개발용의 운영체제(OS, Operating System).

초기의 유닉스 운영체제는 어셈블리(Assembly) 언어로 작성되었으나, 같은 연구소의 Dennis Ritchie가 C 언어를 개발한 뒤, 이 언어를 이용하여 유닉스를 다시 만들었다. 그리하여 1973년에 다른 운영체제와는 달리 유닉스는 C언어가 90% 이상이고 나머지가 어셈블리 언어로 작성되어, 고급언어로 작성된 최초의 운영체제가 되었다.

 

* 운영체제(OS, Operating System) : CPU, RAM, ROM, 모니터 등의 하드웨어를 동작시키고 제어할 수 있는 프로그램. 일반적인 운영체제로는 윈도우, Mac OS, 리눅스 그리고 유닉스가 있음.

* 어셈블리(Assembly) 언어 : 컴퓨터의 기계어를 사람이 기억하기 쉬운 단어일대일 대응하여 만들어진 프로그래밍 언어. 컴퓨터가 이해하기는 쉬워도 사람이 기억하기 어려운 저급 언어.

UNIX의 역사 

유닉스는 다른 컴퓨터의 시스템 프로그램과는 달리 일반인에게 공개함으로써 미국의 각 대학과 여러 기업체로 널리 퍼지게 되었다. 이렇게 유닉스가 널리 퍼지게 되면서 유닉스에 많은 기능들이 추가되었다. 그리하여 1978년에 UNIX V6(Version 6)라는 이름으로 일반인에게 공개되면서 IBM 370 컴퓨터에 이식하여 시험하였고 다른 많은 회사에서도 자사의 중대형 컴퓨터에 유닉스를 이식하기 시작하였다.

 

유닉스는 크게 2개의 계보로 발전하였는데, AT&T의 상업용 유닉스로서 SYSTEMV 계열과 학문적 연구 목적인 버클리 대학의 BSD(Berkeley Software Distribution) 계열로 나뉘어 발전하였다. 요즘은 두 가지 계열의 장점들을 결합하여 통합된 형태로 각 회사의 유닉스 운영체제로 사용하고 있다.

UNIX의 특징

① 대화식 운영체제
명령어를 입력받기 위해 쉘 프롬프트($)를 화면에 나타난다. 프롬프트가 나타난 상태에서 사용자가 명령을 입력하면 시스템은 그 명령을 수행하고 다시 새로운 명령을 받기 위해 대기하고 있다는 표시로 쉘 프롬프트($)를 나타낸다.

 

② 다중 작업 기능(multi-tasking)

한 번에 하나 이상의 작업을 수행하는 것을 말한다.

 

③ 다중 사용자 기능

여러 대의 단말기(키보드와 모니터)가 하나의 컴퓨터에 연결되어 각 단말기에서 사용자들이 프로그래밍을 하거나 파일 편집을 동시에 수행할 수 있다. 즉, 여러 사람이 동시에 유닉스 시스템을 사용하여 개개의 작업을 수행할 수 있다.

 

④ 이식성(하드웨어 종류에 상관없이 운영되는 특성)

유닉스는 90% 이상이 C 언어로 구현되어 있고, 시스템 프로그램이 모듈화 되어 있어 다른 하드웨어 기종으로의 이식이 용이하다. 즉, 다른 기종으로 이식할 경우 하드웨어에 의존하는 부분인 어셈블리어로 작성된 부분을 새로운 환경으로 변환시키고, C 언어로 구현된 나머지 부분을 재컴파일하여 실행하면 된다.

 

⑤ 계층적 트리 구조 파일 시스템

유닉스는 계층적 트리 구조를 가짐으로써 파일 관리를 용이하게 한다. 

 

⑥ 개발 도구

프로그래머가 여러가지 언어(Fortran, C, C++ 등)를 사용하여 프로그래밍할 수 있도록 많은 컴파일러(compiler)를 제공하고 있다.

컴파일러(compiler) : 명령어 번역 프로그램

 

⑦ 통신  

유닉스 시스템은 서로 다른 컴퓨터와 통신 가능하도록 하기 위해 여러 가지의 통신 유틸리티(mail, ftp, telnet 등)를 제공한다.

 

⑧ 가상 메모리 

한정된 메모리를 갖는 시스템에서 실제 메모리보다 더 큰 프로그램을 수행하기 위해 가상 메모리(virtual memory) 기법을 사용한다.

UNIX의 구조

커널, 쉘 그리고 유틸리티 및 응용프로그램으로 나누어진다.

출처 : 예제 중심의 유닉스 기초, 정일북스, 김병순 저

 

① 커널

유닉스 시스템이 부팅될 때 가장 먼저 읽혀지는 운영체제의 핵심 부분. 메모리 관리, 입출력 장치 관리 등 하드웨어와 관련된 작업을 수행하는 것으로 사용자들은 커널에 접근할 수 없다.

 

② 쉘(shell) 

명령을 해석하는 부분으로서 사용자와 유닉스 시스템을 연결시켜 준다. 즉, 사용자가 명령을 입력하면 이를 해석하여 커널이 이해할 수 있는 명령으로 번역하여 커널에게 넘겨줌.

 

출처 : 예제 중심의 유닉스 기초, 정일북스, 김병순 저

 

③ 유틸리티 및 응용 프로그램 

유닉스는 많은 프로그래밍 언어를 지원하고, 파일 작성, 파일 출력, 파일 내용을 선택적으로 변경시키는 기능 등과 같은 여러 가지 유틸리티와 다른 컴퓨터와 통신을 가능하게 해주는 여러 가지 응용 프로그램으로 구성된다.



출처: https://6kkki.tistory.com/3 [NATION OF 6KKKI]

/ : 최상위에 있는 디렉토리로 부트 디렉토리라고 한다.

/bin : 기본 실행 파일들, 즉 사용자 명령어들이 들어 있다.

/boot : 시스템 부팅시 필요한 파일들이 들어 있다.

/dev플로피, 하드디스크, CD-ROM 드라이버 등의 각종 장치 파일들을 모아 놓은 곳이다.

/etc : 시스템 관리시 필요한 스크립트 파일들과 설정 파일들이 들어 있다.

/home : 일반적으로 사용자들이 사용할 수 있는 계정의 홈 디렉토리가 위치한다. 예) linuxer라는 계정으로 로그인할 경우 이 계정의 홈 디렉토리는 /home/linuxer이다.

/lib : 각종 라이브러리가 저장되는 디렉토리로 커널 모듈도 이곳에 있다.

/lost+found : ext2 및 ex3 파일 시스템에서 파일 시스템 복구를 위한 디렉토리이다.

/mnt : 마운트될 파일시스템의 마운트 포인터가 되는 디렉토리들이 위치한 부분으로 시스템에 설치된 입출력 장치들과 연결시 이들은 해당 디렉토리에 위치하게 된다. 예) /mnt/floppy 또는 /mnt/cdrom가 존재한다.

/opt : 추가된 응용 프로그램 패키지가 설치되는 디렉토리이다.

/proc : 시스템 관리를 목적으로 메모리상에 만들어 놓은 가상 디렉토리로 디렉토리안의 파일들은 현재 시스템 설정을 보여준다.

/root : 루트 사용자의 홈 디렉토리로 루트 사용자만 접근할 수 있다.

/sbin : 시스템 점검 및 복구 명령, 네트워크 인터페이스 설정 명령, 시스템 초기 및 종료 명령, 커널 모듈 등 시스템 관리에 관련된 실행 파일들이 포함되어 있다.

/tmp : 각 장치에 필요한 socket이 위치하고 시스템에 필요한 임시 파일들을 만들고 삭제하는 디렉토리이다.

/usr : 시스템이 정상적으로 가동 되는데 필요한 모든 명령들과 라이브러리들, 메뉴얼 페이지 들어 있다.

         /usr/bin              /bin에 없는 유용한 실행 파일들이 위치해 있다.

         /usr/include        C언어 헤더 파일들을 보관하는 곳이다.

         /usr/src              시스템에 있는 다양한 프로그램의 컴파일되지 않은 소스 코드들을 포함하
                                  고 있다. 중요한 것은 /usr/src/linux로 리눅스 커널의 소스 코드를 포함하
                                  고 있다.

         /usr/man             명령어로 볼 수 있는 man page(메뉴얼 페이지)를 포함하고 있다.

/var : 자료 데이터가 변경될 때 저장되는 디렉토리시스템 작동 log들과 네트워크에 관련된 기록 파일들, 보안기록을 저장하고 메일서버로 운영하는 경우 전송된 메일을 받아 저장하고 있는 가변저장 공간이다.

 

출처: https://kimbyhy.tistory.com/6

글쓰기에 앞서~

리눅스를 시작할 때 한번쯤은 고민을 해봤을 법한 리눅스 종류와 선택 및 특징에 대해 글을 써보겠습니다.

리눅스란? GNU란? GPL? 리눅스의 특징

 

◈ 리눅스 배포판 역사 및 순위

사진 출처:  https://www.reddit.com/r/linuxmasterrace/comments/7diwwi/linux_distro_timeline/

 

리눅스가 그 긴 역사동안 얼마나 많은 배포판들이 나오고 사라지고 업데이트 되었는지 보여주는 사진입니다. 시초는 GNU/LINUX를 기반하고 있네요~! 여기서 갈래가 뻗어나오는 것을 볼 수 있습니다.

 

사진 출처:  https://medium.com/@bhajneet/what-is-the-most-popular-linux-distro-ff059d8616c6

 

어쨋든 가장 많이 사용되는 1~2위 리눅스 배포판은 우분투인 것 같습니다.

◈ 배포판의 종류

리눅스의 배포판은 수백가지가 있는데 역사의 분기에 따라 크게 분류하면, 슬렉웨어 계열, 데비안 계열, 레드햇 계열 이렇게 3가지 갈래로 나눌 수 있다. (맨 위 갈래를 보여주는 사진을 참고)

▶최초의 리눅스 배포판 :SLS

1992년 5월 피터 맥도날드에 의해 만들어진 소프트랜딩 리눅스 시스템(Softlanding Linux System: SLS)이 리눅스 최초의 배포판이다. 출시 당시에는 가장 인기 있는 리눅스 배포판이었지만 사용자들에 의해 버그가 다소 존재하는 것으로 파악되었고 이것은 곧 다른 리눅스 배포판의 등장을 알리게 되는 계기가 되었다. 패트릭 볼커딩은 SLS에 존재하는 버그를 잡기 시작하는데 이 결과로 만들어진 리눅스 배포판이 슬렉웨어이다.

슬랙웨어 (Slackware): 현재까지 살아있는 가장 오래된 배포판 

슬랙웨어는 현재까지 살아있는 가장 오래된 배포판이예요.

하지만 뭔가 프로그램을 설치할 때 필요한걸 알아서 따따따따따 설치해주는,, 의존성 문제를 우분투나 레드햇처럼 자동으로 해결해주지 않기 때문에,, 초보자가 사용하는 용은 아니죠 ㅎㅎ

현재 슬렉웨어를 많이 사용하는 것 같지는 않습니당.

수세 (OpenSUSE)

수세 리눅스는 독일에서 출시된 배포판으로 유럽에서 가장 인기를 누리고 있습니다. 오픈 수세는 상당히 안정적인 리눅스입니다. 믿고쓰는 배포판이라는 말이 있을정도 ㅎㅎ, 다만 저장소가 우분투나 민트에 비해 많지 않다는 단점과 국내에 정보가 많지 않다는 단점이 있습니다.

 

가장 널리 이용되는 KDE 리눅스 배포판을 꼽으라고 하면 오픈 수세와 쿠분투가 경합할 정도!

수세 리눅스(SUSE Linux) 배포판은 컴퓨터 운영체제이다. 리눅스 커널을 최상위로 하여 만들어졌으며 다양한 프로젝트로부터 나온 시스템 소프트웨어 응용 소프트웨어를 포함하여 배포한다. 수세 리눅스는 본래 독일에서 나왔으며 주로 유럽에서 개발된다.

 

최초의 배포판은 1994년 초에 나타났는데 수세 리눅스가 가장 오래된 상용 배포판임을 말해 준다. YaST 구성 도구로도 알려져 있다. 수세 브랜드와 상표는 수세를 사들인 2003년 이후부터 노벨이 소유하고 있다. 2014년 10월, 수세를 포함한 Attachmate Group 전체가 영국 회사 마이크로 포커스 인터내셔널에 의해 인수되었다. 2018년 07월, 스웨덴 사모투자전문회사 EQT가 마이크로포커스로 부터 인수 발표 후, 2019년 03월 인수 절차를 완료했다. 인수 후 SuSe는 독립회사로 운영된다.

데비안 (Debian)

데비안 계열은 좀 더 오픈소스쪽에 가깝고 레드햇은 상용쪽에 가깝습니다. 아무래도 데비안 계열에서 파생된 배포판 중 가장 유명한 건 우분투(Ubuntu)이겠죠?. 데비안도 오래되었기 때문에 Granpa Linux 리눅스 할아버지라고 부르기도 한다 하더라고요 ㅎㅎ

데비안이 이렇게 오래되었음에도 불구하고 초보자들에게는 적합하지 않아요. 일반 사용자들이 설치하여 사용하기에는 어렵고 기술지원이나 사후관리가 어렵기 때문인 점도 있습니다

▼데비안 나무위키

데비안 데비안 프로젝트가 개발한 자유 컴퓨터 운영 체제이다. 리눅스 커널을 탑재한 데비안 GNU/리눅스, GNU 허드 커널을 탑재한 데비안 GNU/허드, FreeBSD 커널을 탑재한 데비안 GNU/KFreeBSD, NetBSD 커널을 탑재한 데비안 GNU/NetBSD 등으로 나뉘며 현재 이 가운데 정식판이 존재하는 것은 리눅스 커널에 기반한 데비안 GNU/리눅스뿐이다.

데비안의 특징은 패키지 설치 및 업그레이드의 단순함에 있다. 일단 인스톨을 한 후 패키지 매니저인 APT 업데이트 방식을 이용하면 소프트웨어의 설치나 업데이트에서 다른 패키지와의 의존성 확인, 보안관련 업데이트 등을 자동으로 설정 및 설치해준다.

 

출처: https://namu.wiki/w/%EB%8D%B0%EB%B9%84%EC%95%88https://ko.wikipedia.org/wiki/데비안

 

▼출처: 리눅스마스터 1급 정복하기

데비안은 전부 자유소프트웨어로 구성된 유닉스 계열 운영체제로 대부분이 GNU PL 라이선스 기반 하에 있고 데비안 프로젝트에서 1993년 9워에 최초 버전을 출시하였다.

데비안 프로젝트는 이안 머독(Ian Murdock)이 설립하고 이 프로젝트 그룹에 참여한 개인들에 의해 패키지화되어 있다. 자유소프트웨어를 추구하는 GNU 프로젝트에 동참하는 수많은 개발자들이 데비안 프로젝트에 같이 동참하면서 다양한 플랫폼을 지원한다. 또한 다양한 커널이 탑재된 운영체제도 선보였는데, 리눅스 커널을 탑재한 데비안 GNU/Linux, GNU 허드(hurd) 커널을 탑재한 데비안 GNU/Hurd, FreeBSD 커널을 탑재한 데비안 GNU/KFreeBSD, NetBSD커널을 탑재한 데비안 GNU/NetBSD 등으로 나뉘며 이 가운데 정식판으로 지원되는 버전은 데비안 GNU/Linux 뿐이다.

초창기 리눅스 배포판에 속하는 데비안과 슬렉웨어는 모두 SLS 기반으로 만들어졌으나 이 두 배포판의 차이점은 패키지 관리에 있다. 슬렉웨어는 사용자가 패키지를 새롭게 추가하거나 수정하기 어려운 반면에 데비안은 패키지 설치 및 업그레이드 등 패키지 관리가 매우 편리하다. 초기에는 dpkg라는 패키지 관리 도구를 사용하였고, 최근에는 더욱 기능을 확장한 apt를 사용해서 설치나 업데이트할 경우에 다른 패키지와의 의존성 확인과 보안 관련 업데이트를 자동으로 수행한다. 이러한 특징으로 인해 수많은 사람들의 호응을 얻고 데비안이 가장 영향력있는 오픈소스 프로젝트 중에 하나로 자리잡는 계기가 되었다.

우분투는 데비안 계열에서 파생된거니까 아무래도 얘네들은 엄청 비슷한 점이 많겠죠? 많은 점이 비슷하거나 같지만, 둘이 약간 차이점은 있습니다. 데비안은 애초에 안정성을 기반으로 나온 모델이고, 우분투는 정기적으로 버전이 업데이트 되는 모델입니다.

 

데비안 버전 중 안정성에 기반을 둔 배포는, 안정성이 진짜 강하다는 강점이 있지만, 그렇기에 그에 따른 단점도 있죠 ㅎㅎ 데비안 소프트웨어는 당연히 구시대적일 수밖에 없습니다. 안정성이 높다는건 그만큼 검증된 시간을 가졌다는 거고, 빠르게 흘러가는 IT 산업에서는 그 시간동안 수많은 새로운 기능들이 출시되었다는 것을 의미하니까요. 

 

데비안 장점: 배포되고 있는 서버 리눅스 들 중 안정성이 매우 높다. 다양한 패키지 활용,

목적: 데스크탑 보다는 서버에 적합

데비안 계열에 속하는 배포판:

Konoppix, Corel, Lindows, Ubuntu, Linux Mint, Elementary OS, BackTrack, Kali LInux

우분투 (Ubuntu) : 데비안 계열

현존하는 리눅스 배포판 중 가장 널리 쓰이고 널리 알려진 배포판. 우분투는 데비안 리눅스를 기반으로 제작된 리눅스입니다.

우분투는 업데이트 주기가 짧은 편으로 4월 10월 총 두번에 걸쳐서 진행됩니다.

일단 우분투는 설치도 쉽고 웹에 정보가 굉장히 많아요 그래서 초보 사용자들이 실습으로 혼자 진행하는데 많은 도움이 됩니다. 초보자들에게 가장 강력하게 추천되고 있는 배포판이죠. 그 특징을 살려 앞으로의 포스팅은 우분투를 기반으로 진행될 예정이예요 

우분투 데스크탑 바탕화면 사진

 

출처: https://crampstory.tistory.com/40

 

레드햇 (Red Hat)

레드햇은 기업용 서버 OS로 가장 인기가 있죠! 그래서 실제 현업에서 가장 널리 사용되는 OS이기도 합니다.

예전에는 레드햇 리눅스는 유로버전과 무료버전을 모두 배포하였으나 현재 레드햇 리눅스의 의미는 상용으로 판매되는 레드햇 엔터프라이즈 리눅스(RHEL)만을 의미합니다.

기업 버전인 RHEL에 들어갈 기능을 테스트 하기 위한 용도로 배포되는 페도라가 레드햇 계열에 속하고, RHEL이 유료라 사후지원 기능을 제외하고 무료용으로 배포하는 centOS도 레드헷 계열에 속합니다.

 

▼출처: 리눅스마스터 1급 정복하기

가장 인기 있는 리눅스 배포판으로는 레드햇 소프트웨어사에서 제공하는 래드햇 리눅스를 손꼽을 수 있다. 래드햇은 1993년 밥 영(Bob Young)이 리눅스 및 유닉스 소프트웨어 액세서리를 판매하는 ACC Corporation을 설립하고 1994년 마크 유잉(Marc Ewing)이 자신만의 독자적인 리눅스 배포판인 Red Hat Linux라는 이름으로 출시하게 된다. 1995년 밥 영이 마크 유잉의 사업을 인수하면서 Red Hat Software라고 회사명을 바꾸고 본격적인 리눅스 배포판 회사로 탈바꿈하게 된다. 래드햇 리눅스가 사용자들에게 인기를 끌 수 있던 배경에는 쉬운 설치와 독자적인 패키지 관리에 있다. 래드햇 리눅스의 설치 과정은 텍스트 기반의 인터페이스 뿐만 아니라 그래픽 사용자 인터페이스를 제공하여 초보자들도 손쉽게 설치할 수 있다. 또한 RPM과 YUM이라는 패키지 관리 도구를 제공하여 손쉽게 설치, 관리, 업그레이드를 할 수 있다. 레드햇은 2003년에 배포된 Red Hat Linux 9버전까지만 소스 공개를 포함하여 무상으로 배포하였고, 현재는 Red Hat Enterprise Linux(이하 RHEL)이라는 유료 배포판을 만들어 업데이트 등을 지원하고 있다. 추가적으로 일반 사용자를 위한 무료 배포판은 fedora라는 오픈 소스 프로젝트를 만들어 자유롭게 사용 가능하도록 하였다. 2014년 1월에는 RHEL의 복제판(Clone)으로 자체적인 커뮤니티에 의해 관리되던 CentOS도 흡수하였다.

레드햇 계열에 속하는 배포판:

RHEL, CentOS, Fedora, Oracle Linux, Scentific Linux, Asianux, Mandriva Linux, Mandrake 등

페도라 (Fedora) : 레드헷 계열

레드햇이 Red Hat 9.0을 마지막으로 더는 무료로 레드햇을 배포하지 않았는데, 그 대신 페도라 프로젝트를 후원함으로써 일반인들도 계속 레드햇 리눅스의 연장선에 있는 페도라 리눅스를 사용할 수 있게 했습니다. 무료인 페도라 리눅스는 상용인 RHEL에 포함될 새로운 기술을 미리 시험하는 용도로 사용됩니다. 즉 페도라 리눅스에서 안정화된 기능을 RHEL에 포함한것.

그래서 페도라는 잔버그도 많이 발생할 수 있고 오류가 있을 수도 있어요 (아무래도 신기능 테스트용으로 선보이는 거니까..) 이런 것들을 피드백받아서 개선하고 안정화시켜 RHEL에 추가하는 것

페도라 장점:

레드햇에 추가될 기능들을 먼저 맛볼 수 있다. 개발을 위한 여러가지 툴을 제공해주기 때문에 리눅스 전문가에게는 엄청 좋은 리눅스

사진 출처: https://crampstory.tistory.com/40

 

센트OS (centOS) : 레드헷 계열

RHEL이 유료로 변경하면서 반발에 의해 무료버전으로 빌드한게 센트오에스예요 ㅎㅎ, 센트OS는 레드햇 엔터프라이즈 기술을 그대로 사용할 수 있다는 장점이 있습니다. 유료로 판매되는걸 어떻게 무료로 배포하지 할 수 있는데 GPL 라이선스 룰을 이용한 거예요. GPL은 소스를 받은 자가 그것을 재배포하는 것을 막지 않기 때문에 RHEL을 구입한 자가 누구든간에 그는 레드햇에 소스를요청할 권리가 있습니다. 이 점을 이용해서 상표권을 배제하고 배포된 리눅스가 centOS입니다.

즉 RHEL의 클론이기 때문에 현업에서 많이 쓰이는 서버용 OS를 무료로 사용할 수 있다는 장점이 있습니다.

RHEL와 무료인 CentOS의 가장 큰 차이점은 무엇이냐?

사후 기술지원입니다. RHEL의 경우 돈을 지불하기 때문에 서버에서 문제가 생기거나 이러면 지원을 받을 수 있어요 ㅎㅎ 서버는 일반적으로 24시간 돌아가야하고 한 순간이라도 장애가 발생하면 큰 손실로 이어지기 때문에 이런 사후기술 지원이 중요해요 ㅎㅎ 그래서 돈을 내고 RHEL을 사용하는 것입니다. 근데 중소기업이나 중견기업 또는 개인적으로 서버를 구축할 경우에는 CentOS가 많이 사용되겠죠?

전체적으로 리눅스 배포판에 통계에 대해서 잘 정리되어 있는 사이트:

https://hostingtribunal.com/blog/linux-statistics/

참고한 사이트:

https://crampstory.tistory.com/40, 나무위키, https://medium.com/@bhajneet/what-is-the-most-popular-linux-distro-ff059d8616c6 등등

◈ 그래서 어떤 배포판을 사용해야하는가, 추천

사실 학생이 실습용으로 사용하려고 하는거면 뭘 사용해도 체감하기 힘듭니다..ㅎㅎㅎ

그리고 아래 제안은, 그냥 추천일 뿐이므로 직접 알아보고 골라서 사용하시는 걸 추천...

초보자가 연습하기 좋은 배포판: 우분투 (Ubuntu)

해킹에 사용하기 좋은 배포판: 칼리 리눅스 (Kali Linux)

서버로 사용하기 좋은 배포판: RHEL(근데 요놈은 유료..) CentOS(무료)

전문가가 개발하기에 좋은 배포판: 페도라

 

[리눅스마스터 1급 1802회]

다음 중 레드헷 계열에 속하는 리눅스 배포판으로 틀린 것은?

1. CentOs

2. Scientific Linux

3. Vector Linux

4. Oracle Linux

답: 3번

해설: vector 리눅스는 슬렉웨어 계열입니다.

 

출처: https://m.blog.naver.com/PostView.nhn?blogId=jhnyang&logNo=221648840292&proxyReferer=https%3A%2F%2Fwww.google.com%2F

 

+ Recent posts