리눅스마스터 2급 2차 기출문제 해설/보충설명 1701 20170311

시험종목 : 제1701회 리눅스마스터 2급 2차
시험일자 : 2017. 03. 11.(토), 14:00 ~ 15:40(100분)

1701 2급2차 기출문제

바로가기 >> 리눅스마스터 기출문제 목록

ls : 디렉터리 안의 내용을 출력해 주는 명령이다.

chgrp
파일이나 디렉터리의 소유그룹을 바꾸는 명령으로 root가 아니면 사용하는 경우가 드물지만 특정한 사용자가 여러 그룹에 속한 경우에 본인 소유의 파일을 본인이 속한 그룹 내에서 소유권을 변경시킬 수 있다.

사용법
# chgrp [option] group file(s)

주요옵션
-R : 하위 디렉터리를 포함하여 디렉터리 내부의 모든 파일의 접근 권한을 변경한다.
-c : 변경된 정보를 출력
-f : 주요한 오류 메시지가 아니면 출력하지 않는다.
-h : 심볼릭 링크 파일의 그룹 소유권을 변경한다.

umask
파일이나 디렉터리 생성시 부여되는 기본 허가권 값을 지정하는 명령이다. 파일 생성 시에는 666, 디렉터리인 경우에는 777에서 설정한 umask 값을 뺀 값을 기본 허가권으로 지정한다.
설정된 umask 값이 022 인 경우 파일을 생성하면 기본 권한이 644(666-022), 디렉터리는 755(777-022)로 설정된다.

사용법
# umask [option] [값]

주요 옵션
-S : umask 값을 문자로 표기

ex)
umask : umask 값 출력
umask 022 : umask 값을 022 로 변경

리눅스의 특수 권한
리눅스의 권한 체계는 3계층(사용자, 그룹, 기타 사용자)에 3가지 권한(읽기, 쓰기, 실행)을 부여하는 형태로 이루어져 있다. 그러나 이러한 권한 체계로 원할한 시스템 운영을 할 수가 없다. 일반 사용자가 작업을 하다보면 간혹 root 권한이 필요한 경우가 있는데, 그렇다고 root 의 암호를 알려줄 수도 없고 root 권한을 부여할 수도 없는 상황이 있다. 이처럼 일부 권한 허용 등을 위한 특별한 권한이 있는데, 이것이 Set-UID, Set-GID, Sticky-Bit 이다. 이 3가지 권한 모두 시스템 운영에 필요한 권한들이지만 보안상의 위험을 초래할 수 있으므로 정확한 이해가 필요하다.

Set-UID : 보통 실행 파일에 사용되며 Set-UID 가 부여된 파일을 실행 시, 해당 파일을 실행하는 동안 해당 파일의 소유자 권한으로 인식힌다.

Set-GID : 파일에 설정되어 있을 경우 소유한 그룹 권한으로 인식힌다. 보통 Set-GID 는 주로 디렉터리에 설정되는데, 이 권한이 설정된 디렉터리에 사용자들이 파일이나 디렉터리를 생성하면 사용자가 속한 그룹에 상관없이 디렉터리 소유 그룹 권한이 만들어진다.

Sticky-Bit : 디렉터리에 설정되는 특수 권한으로 일종의 공유 디렉터리로 사용된다. /tmp 디렉터리에 설정되어 있다. Sticky-Bit를 설정하면 사용자들이 생성에는 제한이 없지만, 삭제할 경우 본인이 생성한 파일 이외에는 불가능하다.

 

mkfs
새로운 파일 시스템을 만드는 명령으로 root만 사용 가능하다. 파일 시스템 유형을 지정하지 않으면 ext2 로 생성된다.
사용법
# mkfs [-t fs_type] [option] 장치명
주요옵션
-t fs_type : 파일 시스템의 유형을 지정하는 옵션

mke2fs
ext2, ext3, ext4 파일 시스템을 만드는 명령으로 최근 리눅스 배포판에서 mkfs 명령 실행시 실제 사용되는 명령어이다.
파일 시스템의 유형을 지정하지 않으면 ext2 로 생성된다.
사용법
# mke2fs [option] 장치명
주요 옵션
-j : 저널링 파일 시스템인 ext3 로 만든다.
-t fs_type : 파일시스템의 유형을 지정하는 옵션

df(disk free)
현재 마운트된 디스크의 크기, 사용량, 남아있는 용량 등에 대한 정보를 출력

du(disk usage)
파일이나 디렉터리들이 디스크에서 차지하고 있는 크기를 출력한다.

fdisk
디스크 파티션을 확인하고 추가/삭제하는 명령으로 설정 후에는 반드시 재부팅을 해야 한다.

 

파일시스템 생성 관련 명령어
fdisk : 디스크 파타션을 확인하고 추가/삭제하는 명령으로 설정 후 반드시 재부팅을 해야한다.
mkfs : 새로운 파일 시스템을 만드는 명령으로 root 만 사용 가능.
mke2fs : ext2, ext3, ext4 파일 시스템을 만드는 명령으로 mkfs 명령 실행시 실제 사용되는 명령
mount : 보조기억장치나 파일시스템이 다른 디스크를 / 의 하위 디렉터리로 연결하여 사용 가능하게 해주는 명령
umount : unmount 의 약자로 마운트된 파일 시스템을 해제시켜주는 명령
eject : 보조기억장치의 미디어를 꺼낼 때 사용. 이명령을 사용하면 자동으로 언마운트 작업을 수행한다.

파일시스템 점검 관련 명령어
fsck : 파일 시스템을 검사하고 수리하는 명령
e2fsck : 리눅스 파일 시스템인 ext2, ext3, ext4 를 검사하고 수리하는 명령. fsck 실행시 실제 사용된는 명령
df : 현재 마운트된 디스크의 크기, 사용량, 남아있는 용량 등에 대한 정보를 출력
du : 파일이나 디렉터리들이 디스크에서 차지하고 있는 크기를 출력

fdisk
디스크 파티션을 확인하고 추가/삭제하는 명령으로 설정 후에는 반드시 재부팅을 해야 한다.

옵션
-l : 현재 디스크의 파티션 테이블 정보를 출력
-s partition : 특정 파티션의 크기를 출력. 단위는 block.
-v : fdisk의 버전을 출력한다.

fdisk 명령을 실행하면 텍스트 기반의 특정 명령어를 입력해야 파티션을 설정할 수 있다.
fidisk 실행 시 주요 명령
p : 현재 디스크 정보를 출력한다.
d : 파티션을 삭제한다.
n : 파티션을 새롭게 생성한다.
t : 파티션의 속성을 변경한다.(= 파티션의 시스템 id 를 변경한다.)
w : 변경된 파티션의 정보를 저장하고 종료한다.
q : 변경된 파티션의 정보를 저장하지 않고 종료한다.

Shell의 종류
Bourne Shell, Bash Shell, C Shell, tcsh, Korn Shell

Bourne Shell : 1977년 스티븐 본이 개발한 유닉스 버전 7의 기본 셸

Bash shell : 1989년 브라이언 폭스가 GNU 프로젝트를 위해 개발한 배시셸은 본 셸을 기반으로 만들어졌다. GNU 운영체제, 리눅스 , 맥 OS X 등 다양한 운영체제에서 사용중이며 현재 리눅스의 표준 셸이다

C 셸
: C 셸(C shell, csh)은 1978년 버클리 대학의 빌 조이가 개발한 것으로 C 언어를 기반으로 만들어졌으며 강력한 프로그램 작성 기능을 가지고 있다.

tcsh
: 1975년 켄 그리어가 테넥스(TENEX)라는 운영체제에 명령행 완성 기능을 반영하게 되었고, 1981년 C Shell 과 통합해서 탄생시킨 것이 tcsh 이다. csh 의 기능을 강화시킨 셸.

ksh
: 콘 셸(Korn Shell, ksh) 은 1983년 벨연구소의 데이비트 콘이 개발. 본 셸을 확장해서 만들어졌으며, 벨연구소 사용자들의 요청으로 C 셸의 많은 기능을 추가하였다.

 

 

Shell 이란
Shell 은 커널과 사용자간의 다리역할을 하는 것으로 사용자로부터 명령을 받아 그것을 해석하고 프로그램을 실행하는 역할을 한다.

주요 환경 변수
HOME : 사용자의 홈 디렉터리
PATH : 실행 파일을 찾는 디렉터리 경로
LANG : 셸 사용 시 기본으로 지원되는 언어
TERM : 로그인한 터미널 종류
PWD : 사용자의 현재 작업 디렉터리
SHELL : 사용자의 로그인 셸
USER : 사용자의 이름
DISPLAY : X 에서 프로그램 실행 시 출력되는 창
PS1 : 프롬프트 변수
PS2 : 2차 프롬프트 변수
HISTFILE : 히스토리 파일의 절대경로
HISTSIZE : 히스토리 스택의 크기가 지정되어 있는 변수로 단위는 명령의 개수이다.
HISTFILESIZE : 히스토리 파일의 크기
HOSTNAME : 시스템의 호스트명
MAIL : 도착한 메일이 저장되는 경로
TMOUT : 사용자가 로그인한 후 일정 시간 동안 작업을 하지 않을 경우에 로그아웃 시키는 시간. 단위는 초.
UID : 사용자의 UID

15번 문제 해설 참조

history
사용자가 입력한 명령어를 확인하는 명령으로 ! 로 대체하여 사용할 수 있다.
사용법
$ history [숫자값]

!와 history 명령문
!! : 마지막에 사용한 명령을 실행
!n : n번째 사용한 명령을 실행
!-n : 사용한 명령 목록을 역으로 세어서 n번째 명령을 실행
!문자열 : 가장 최근에 사용한 명령 중에 문자열로 시작하는 명령을 찾아서 실행한다.
! 문자열 : 가장 최근에 사용한 명령 중에 문자열을 포함하고 있는 명령을 찾아서 실행한다.
^문자열1^문자열2 : 마지막에 사용한 명령문의 문자열1 을 문자열2 로 대체한 후에 실행한다.

alias
alias 란 별명이라는 뜻으로 어떠한 명령을 지정해 놓으면 사용자가 그 명령을 실행했을 때 alias 로 지정해 놓은 명령이 대신 실행되게 된다.

 

시그널
Ctrl+C (SIGINT) : 프로세스를 종료시킨다.
Ctrl+\ (SIGQUIT) : core dump를 남기고 프로세스를 종료시킨다.
Ctrl+Z (SIGTSTP) : 프로세스를 중단시킨다.

bg
포그라운드 프로세스를 백그라운드로 전환하는 명령이다.
CTRL+Z 를 눌러 작업을 일시 중지시킨 후 bg 명령을 사용하여 백그라운드로 전환한다.

fg
백그라운드 프로세스를 포그라운드로 전환하는 명령이다.
사용예
$ fg
백그라운드로 수행중인 작업을 포그라운드로 전환한다. 만약 백그라운드로 수행중인 작입이 여러 개인 경우에는 가장 최근에 수행한 작업(보통 + 기호가 붙어 있는 작업)을 포그라운드로 전환한다.
$ fg 2
작업번호가 2번인 프로세스를 포그라운드로 전환한다.

bg
포그라운드 프로세스를 백그라운드로 전환하는 명령이다.
CTRL+Z 를 눌러 작업을 일시 중지시킨 후 bg 명령을 사용하여 백그라운드로 전환한다.

 

하나의 프로세스가 다른 프로세스를 실행하기 위한 시스템 호출방법에는 fork 와 exec 가 있다.
fork 는 새로운 프로세스를 위해 메모리를 할당받아 복사본 형태의 프로세스를 실행하는 형태로 기존의 프로세
스는 그대로 실행되어 있다.
exec 는 원래의 프로세스의 메모리에 새로운 프로세스의 코드를 덮어씌워 버린다.

 

SIGTSTP(TSTP) : 실행 정지 후 다시 실행을 계속하기 위해 대기하는 시그널이다. [CTRL]+[Z] 를 입력했을 때 보내지는 시그널이다.

pstree
현재 실행중인 프로세스를 트리 구조로 보여주는 명령어. 가장 왼쪽이 부모, 오른쪽이 자식 프로세스
사용법
$ pstree [option]
주요옵션
-a : 각 프로세스의 명령행 인자까지 보여준다.
-h : 현재 프로세스와 그것의 조상 프로세스를 하이라이트로 강조해서 보여준다.
-n : 프로세스 이름 대신에 PID 값으로 정렬해서 보여준다. (Number sort)
-p : PID 값을 같이 보여준다.

kill
프로세스에 특정한 시그널을 보내는 명령으로 옵션 없이 실행하면 프로세스에 종료 신호(15, TERM, SIGTERM)를 보낸다. 보통 중지시킬 수 없는 프로그램을 종료시킬 때 많이 사용한다.
사용법
# kill [option] [signal] [PID 또는 %lob_number]
주요옵션
-l : 시그널의 종류를 출력
-s signal : 시그널의 이름을 지정하는 옵션
ex)
# kill 724
pid 가 724인 프로세스에 기본 시그널인 15번 시그널을 보낸다.
# kill -9 756 757 758
pid 가 756 757 758 인 프로세스를 강제 종료 한다.

시그널번호
1 SIGHUP 재시작
2 SIGINIT 인터럽트
9 SIGKILL 강제종료
15 SIGTERM 종료

pstree
현재 실행중인 프로세스를 트리 구조로 보여주는 명령어. 가장 왼쪽이 부모, 오른쪽이 자식 프로세스

nohup
사용자가 로그아웃하거나 작업중인 터미널 창이 닫혀도 실행중인 프로세스를 백그라운드 프로세스로 계속 작업할 수 있도록 해주는 명령이다. nohup 는 실행한 명령을 자동으로 백그라운드로 보내지 않고, 사용자가 명령행 뒤에 & 를 명시해야 한다.

모두정답

cron 을 이용하여 주기적으로 실행하는 작업은 시스템 운영에 필요한 작업과 사용자의 필요에 의한 작업으로 나눌 수 있다.
실행에 필요한 작읍은 root 권한으로 /etc/crontab에 등록하여 주기적으로 수행할 수 있고 사용자는 crontab라는 명령을 수행해서 등록할 수 있다.
crontab 파일은 다음과 같이 총 7개의 필드로 구성되어 있다.
<minute> <hour> <day_of_month> <month> <day_of_week> <user-name> <command>

ex)
0 12 * * 1-5 /home/posein/work.sh
월요일부터 금요일까지 오후 12시에 /home/posein/work.sh 스크립트를 실행한다.

Evince : PDF 형식이나 포스트스크립트 형식의 문서를 그놈 데스크톱 환경에서 읽을 수 있는 소프트웨어이다.

 

vim(vi improved)
브람 무레나르(Bram Moolenaar)가 vi 편집기와 호환되면서 독자적으로 다양한 기능 추가하여 만든 편집기이다. 편집시에 다양한 색상을 이용하여 가시성을 높였으며, 패턴 검색시에 하이라이트 기능을 제공하여 빠른 검색이 가능하게 해준다.

[ctrl] + [f] : 커서 한칸 우로 이동

 

 

소스 설치의 주요 3단계
configure : 소스 프로그램의 환경 설정을 하는 스크립트이다.
make : 소프트웨어를 컴파일하는 유틸리티로 configure 에 의해 변경된 내용을 반영하고 타겟과 의존성 관련 작업을 하고 최종적으로 실행파일을 만든다.
make install : 컴파일된 실행 파일을 지정한 속성으로 지정된 디렉터리에 설치한다.

cmake 의 특징
1) 소프트웨어 빌드에 특화된 언어로 독자적인 설정 스크립트를 이용한다.
2) 유닉스 계열 운영체제, Mac OS X, 윈도우 계열 등 다양한 플랫폼을 지원한다.
3) C, C++, Java, Fortran 에 대해서는 자체적으로 의존 관계를 분석할 수 있다.
4) SWIG, Qt, FLTK 등을 지원한다.
5) 마이크로 소프트 Visual Studio .net 및 Visual Studio 를 지원한다.
6) 이클립스용 빌드 파일을 생성할 수 있다.
7) 타임스탬프를 통해 파일 내용의 변화를 알 수 있다.
8) 평행 빌드를 지원한다.
9) 크로스 컴파일을 할 수 있다.
10) Dart, Ctest, Cpack 등을 포함한다.

compress, gzip, bzip2, xz

검증모드
검증모드는 rpm 데이터베이스에 저장되어 있는 패키지의 메타데이터 정보를 이용하여 변경된 정보를 찾아내는 모드이다. 검증모드는 -V( verify) 옵션을 사용하고 파일의 크기, 허가권, 소유권, 파일 형식 등에 대한 변경 정보를 출력한다.
검증 코드
S : 파일 크기 변경
M : 파일 모드 변경
5 : 메시지 다이제스트(Message Digets) 변경(보통 MD5값 변경)
D : 장치 파일의 메이저 및 마이너 번호 불일치
L : 링크 파일 경로 불일치
U : 소유자 변경
G : 그룹 소유권 변경
T : 수정 시간 변경
P : 권한 변경
. : 테스트 통과
: 테스트를 수행하지 못했을 경우
주요옵션
-V : 검증시 사용하는 기본 옵션
-a : 모든 패키지를 검사할 때 사용

apt-get
데비안 리눅스 배포판에서 패키지 관리를 쉽게 하기 위해 제공되는 명령행 기반의 유틸리티로 레드햇 계열의 yum과 유사하다.
패키지를 설치할때 가장 큰 문제점은 의존성과 충돌성인데 apt-get 은 /etc/apt/sources.list 파일에 패키지 관련 정보를 관리하여 이러한 문제점을 손쉽게 해결한다.

tar(tape archive)
테이프 관련 장치를 이용하여 백업할 때 사용하는 명령이었으나 현재는 여러 파일들을 하나의 파일로 묶어주는 명령으로 사용한다.
사용법
$tar [option] 파일명
tar 옵션
-c : 지정한 파일이나 디렉터리를 하나로 묶어 새로운 tar 파일을 생성한다.
-x : 생성된 tar 파일을 푼다.
-v : 어떤 명령을 실행할 때 대상이 되고 있는 파일들을 보여준다.
-f 파일명 : 작업 대상이 되는 tar 파일의 이름을 지정한다.
-r : 기존의 tar 파일 뒤에 파일을 추가한다.
-t : tar 파일 안에 묶여 있는 파일의 목록을 출력한다.
-h : 심볼릭 링크가 가리키고 있는 원본 파일을 저정한다.
-p : 파일이 생성되었을 때 권한을 그대로 유지하게 해준다.

-Z : compress 관련 옵션으로 예전 UNIX 계열 표준 압축 파일인 tar.Z 에 사용한다.
-J : xz 관련 옵션으로 압축 파일인 tar.xz 에 사용한다.
-z : gzip 관련 옵션으로 압축 파일인 tar.gz 에 사용한다.
-j : bzip2 관련 옵션으로 압축 파일은 tar.bz2 에 사용한다.

YUM (Yellowdog Updater, Modified )
rpm기반의 시스템에서 패키지를 손쉽게 설치해 주고 자동으로 업데이트를 수행하는 명령행 기반의 유틸리티이다. 특히 rpm 패키지 설치 시에 가장 많이 발생하는 의존성 문제를 자동으로 해결해 준다.

 

 

삼바(SAMBA) 서버관리
삼바는 SMB를 이용하여 리눅스를 비롯한 유닉스 계열 운영체제와 윈도우 운영체제간의 자료 및 하드웨어를 공유할 수 있도록 해준다.

SAS,SATA,SCSI타입의 디스크 장치명
/dev/sda : 첫번째 SAS,SATA,SCSI 디스크
/dev/sdb : 두번째 SAS,SATA,SCSI 디스크
/dev/sdc : 세번째 SAS,SATA,SCSI 디스크
/dev/sdd : 네번째 SAS,SATA,SCSI 디스크

IDE타입의 디스크 장치명
/dev/hda : 첫번째 IDE디스크(hd) : Primary Master
/dev/hdb : 두번째 IDE디스크(hd) : Primary Slave
/dev/hdc : 세번째 IDE디스크(hd) : Secondary Master
/dev/hdd : 네번째 IDE디스크(hd) : Secondary Slave

lsmod
리눅스 커널에 적재된 모듈 정보를 출력하는 명령.

ps
동작중인 프로세스의 상태를 출력해 주는 명령이다.

top
동작중인 프로세스의 상태를 실시간으로 화면에 출력해 주는 명령으로 프로세스의 상태뿐만 아니라 CPU, 메모리, 부하 상태 등도 확인할 수 있다.

> : 프로세스의 출력을 표준 출력에서 다른 출력으로 변경
< : 프로세스의 입력을 표준 입력에서 다른 입력으로 변경

lpr : 프린터 작업을 요청하는 명령

| : 파이프는 프로세스의 통신을 위해 도입한 것으로 어떤 프로세스의 표준 출력이 다른 프로세스의 표준 입력으로 쓰이게 하는 것을 말한다.

scanimage : 이미지를 스캔하는 명령이다.

DISPLAY
X 클라이언트 프로그램이 실행될 때 표시되는 창이 설정되어 있는 환경변수이다. 이 환경 변수의 기본값을 확인해 보면 ‘:0.0’ 이라고 설정되어 있는데, 첫 번째 0 은 시스템에 실행되고 있는 첫 번째 X 윈도를 뜻하고 두 번째 0 은 첫 번째 모니터를 뜻한다. X 클라이언트의 프로그램을 원격지의 X 서버로 전송하려면 이 값을 변경하면 된다.
ex)
# export DISPLAY=”203.247.21.100:0.0″
X 클라이언트 프로그램을 203.247.21.100 으로 전송한다.
# export DISPLAY=”203.247.21.100:0.1″
X 클라이언트 프로그램을 203.247.21.100 의 첫 번째 실행된 X 서버의 두 번째 모니터로 전송한다.

 

 

원격지에서 X 클라이언트 이용
X 윈도는 X 서버와 X 클라이언트가 독립적으로 동작하는 네트워크 지향 시스템이기 때문에 원격지의 X 클라이언트를 다른 시스템의 X 서버에서 실행시킬 수 있다. X 서버에서 원격지의 X 클라이언트를 실행하기 위해서는 접근을 허가해야 하는데 이 때 사용하는 명령이 xhost 이다.

xhost
X 서버에 접근할 수 있느 클라이언트를 지정하거나 해제하는 명령
사용법
# xhost [ +|- ] [ IP주소 or 도메인명 ]
ex)
xhost + 192.168.10.100
192.168.10.100 의 접속을 허가
xhost – 192.168.10.100
192.168.10.100 접속을 차단

윈도 매니저
X 윈도 환경에서 윈도이 배치와 표현을 담당하는 시스템 소프트웨어
윈도 매니저 종류
대표적인 X 윈도 매니저에는 GNOME 에서 사용되는 Mutter 및 MetacityKDE 에서 사용되는 KWin 및 KWM 이 있다.

리눅스의 런레벨
실행 레벨이란 init 데몬에 의해 수행되어질 내용이나 시스템 초기화 등을 정의해둔 여러가지 모드를 말한다.
리눅스는 총 8개의 레벨로 정의가 되어있다.
0 시스템의 종료할때 호출되는 레벨이다.(기본값으로 설정해서는 안됨)
1 단일 사용자모드(Single User Mode)로 로그인 과정 없이 root 사용자로 리눅스 시스템을 부팅하여 일종의 관리자 모드 같은 역할을 한다.
2 네트워크를 사용하지 않는 다중 사용자 모드
3 네트워크를 지원하는 다중 사용자 모드(Multiuser Mode)
4 사용되지 않는 레벨이지만, 사용자가 정의하여 사용할 수 있다.
5 X윈도를 사용하는 다중 사용자 모드로 최근 배포판에서 기본적으로 설정되는 레벨이다.
6 시스템을 재부팅할 때 호출되는 레벨이다.(기본값으로 설정해서는 안됨)

53번 문제 해설 참조

XFree86
Intel x86 계열의 유닉스 계열 운영체제에서 동작하는 X서버이다.
XFree86은 IBM 호환 시스템을 사용하는 유닉스 계열 운영체제를 위한 X 윈도 프로젝트이다.
초기에는 인텔 x86 기반 플랫폼으로 개발되었으나 차후에 Macintosh, Alpha, SPARC 용으로 확대 되면서 2004년 초까지 가장 선도적인 X윈도 시스템이었다.
2004년 2월에 발표된 4.4.0버전이 자유 소프트웨어 재단의 GPL 라이선스와 호환되지 않으면서 현재는 X.org로 변경된 상태이다.
2008년 12월 4.8.0 버전을 발표한 후에 개발이 중단된 상태이다.

LAN 은 구성방식에 따라 스타형, 버스형, 링형, 망형으로 나뉜다.
1) 스타(Star)형
중앙에 위치한 중앙 컴퓨터가 각 컴퓨터와 통신하는 방식으로 중앙의 제어기(허브 또는 교환기)를 중심으로 모든 기기는 Point-to-Point 방식으로 연결한다.
2) 버스(Bus)형
하나의 통신회선(Bus)에 여러 컴퓨터를 전송하는 연결해서 방법으로 모든 장치들은 동등한 조건으로 경쟁한다. 연결된 컴퓨터 수에 따라 네트워크 성능이 좌우된다.
3) 링(Ring)형 : 원형의 통신회선에 컴퓨터와 단말기를 연결하는 형태로 연결된 앞의 컴퓨터로부터 수신한 내용을 다음 컴퓨터에 재전송하는 방법으로 동작하며, 토큰 패싱이라는 방법을 통해 데이터를 전송한다.
4) 망(Mesh)형 : 스타형과 링형의 혼합된 형태로 각 네트워크 장비가 여러개의 인터페이스를 갖추고 상호간에 그물 형태로 연결하는 방식이다.

통신망의 종류
LAN
집, 사무실, 학교 등의 건물과 가까운 지역을 네트워크 매체를 이용하여 하나로 묶는 근거리 통신망을 말한다.
스타형, 버스형, 링형, 망형 으로 나뉜다.

MAN
MAN(도시권 통신망) 은 LAN과 WAN의 중간 형태로 위성 도시 등을 연결한 형태를 말한다.
MAN은 LAN보다 장거리이고 고속이며 음성과 데이터 모두 전송이 가능하다.

WAN
WAN(원거리 통신망 또는 광여 통신망) 은 국가, 대륙 등과 같은 넓은 지역을 연결하는 네트워크이다.
거리상의 제약이 없지만, 다양한 경로를 경유해서 도달하므로 LAN보다 속도가 느리고 전송 에러율도 높다.
WAN을 구성하는 방법에는 전용 회선과 교환 방식이 있다.
전용 회선 방식은 회선 제공하는 통신업자가 계약 체결한 송수신 사용자끼리만 전용 통신 선로로 연결하여 데이터를 교환하는 방식으로 안전성이 우수하나 높은 비용이 소요된다.

인터네트워킹(Internetworking) 장비
네트워크와 네트워크의 연결을 인터네트워킹(Internetworking)이라고 하는데, 이러한 기능을 수행하는 장치를 일반적으로 게이트웨이(Gateway)라고 한다. 게이트웨이는 서로 다른 통신망과 프로토콜을 사용하는 네트워크 간에 통신 기능을 가응하게 해주는 장치를 뜻하는데, 기능에 따라 다양하게 존재한다. 대표적인 장치로는 리피터, 브리지, 라우터 등이 있다.
1) 리피터(Repeater)
물리적 신호는 전송 거리가 멀면 감쇄되기 때문에 중간에 이를 보완해 주어야 하는데, 입력된 신호를 증폭하여 중계하는 장치가 리피터이다. OSI 모델의 첫 번째 계층인 물리 계층에서 동작한다.

2) 브리지(Bridge)
브리지는 OSI 모델의 데이터 링크 계층에 있는 여러 개의 네트워크 세그먼트를 연결해 준다. 브리지는 물리 계층에 있는 리피터나 허브(HUB)의 기능을 하면서, 특정 네트워크로부터 오는 통신량을 조절하여 트래픽을 관리할 수 있다.

3) 라우터(Router)
라우터 OSI 모델의 물리 계층, 데이터 링크 계층, 네트워크 계층의 기능을 지원하는 장치이다. 브리지 기능에 추가하여 네트워크 계층에 대한 경로 선택 기능을 제공해야 하고, 임의의 네트워크에 들어온 데이터를 어느 네트워크로 전달할지 판단할 수 있어야 한다.

 

A 클래스 주소값( 255.0.0.0 ) 호스트개수 16,777,216
B 클래스 주소값( 255.255.0.0 ) 호스트개수 65,536
C 클래스 주소값( 255.255.255.0 ) 호스트개수 256

실제 Network에서 사용되는 Class는 A Class, B Class, C Class이며, D Class는 멀티캐스트, E Class는 미래에 사용하기 위해 남겨둔 것으로 예약되어 있다.

IPv6
IPv6 는 IPv4 의 주소 고갈 문제를 해결하기 위해 제안된 차세대 인터넷 프로토콜이다. 주소 범위는 128비트이고, 주소 표현은 16비트 단위로 하여 8자리로 나타낸다. 각 자리는 콜론(:)으로 구분하고, 16진수 값으로 표기한다.

IPv6 의 특징
– IP 주소의 확장
– 패킷 크기의 확장
– 호스트 주소 자동 설정
– 헤더 구조 단순화
– 흐믈 제어 기능 지원
– 인증 및 보안 기능
– 이동성

TCP : 연결지향 전송 프로토콜로 세그먼트가 수신자에게 제대로 전달되었는지 응답을 주고받음으로서 점검한다.

UDP : 비연결 전송 프로토콜로 세그먼트를 보내기만하고 응답을 주고받지 않는다.

IP 주소 : IP 주소는 인터넷에서 다른 컴퓨터와 서로 인식하고 통신하기 위해 사용되는 특수한 번호로 각 컴퓨터마다 고유한 값으로 제공된다.

ICMP : 메시지에 대한 오류보고와 이에 대한 피드백을 원래 호스트에 보고하는 역할을 수행한다.

 

 

ssh
ssh는 원격 시스템에 로그인하여 명령을 실행하는 프로그램으로 기본적인 사용법은 telnet과 유사하다. telnet 은 데이터 전송 시에 일반 텍스트 형태로 패킷을 전달하여 유출당할 위험이 있지만, ssh 는 패킷 전송시 암호화시키므로 안전하게 전송할 수 있다.

ssh 클라이언트 명령어 : ssh
리눅스에서는 openssh-clients 패키지를 설치하면 ssh 명령을 이용해서 접속할 수 있고, 윈도우에서는 xshell 등과 같은 프로그램을 이용해야 한다.
사용법
$ ssh [option] 호스트명 or IP주소
$ ssh 계정 이름@호스트네임
$ ssh 호스트네임 명령
주요 옵션
-l : 다른 계정으로 접속할 때 사용.
-p : ssh 서버의 포트 번호가 22번이 아닌 경우 -p 옵션을 사용해서 바뀐 포트를 지정할 때 사용한다.

 

 

67번 문제 해설 참조

 

 

 

netstat
네트워크 연결 상태를 출력하는 명령이다.
네트워크 연결 상태 이외에도 라우팅 테이블 정보, 네트워크 인터페이스 상태, 매스커레이드 연결 상태, 멀티캐스트 멤버 등의 정보를 출력한다.

네트워크 관련 파일
/etc/sysconfig/network : 네트워크 사용 유무 지정, 호스트명 설정, 게이트웨이 주소 설정, 게이트웨이 장치파일 설정, NIS 도메인 이름 등이 기록되는 파일이다.
/etc/sysconfig/network-scripts 디렉터리 : 네트워크 인터페이스 환경 설정과 관련된 파일들이 저장 되는 디렉토리.
/etc/resolv.conf : 시스템에서 사용하는 DNS 서버를 설정하는 파일
/etc/hosts : DNS 서버를 사용하기 이전에 많이 이용된 파일로 IP 주소와 호스트명을 매핑시켜 데이터베이스처럼 사용하는 파일. 자주 이용하는 IP 주소에 별칭을 설정하여 접속을 쉽게 할 수 있다.

75번 문제 해설 참조

고계산용 클러스터(HPC)
HPC 클러스터는 고성능의 계산 능력을 제공하기 위한 목적으로 제작되는데 주로 과학계산용으로 활용되고, 흔히 부르는 슈퍼
컴퓨터가 HPC 클러스터로 구성하여 제작된다. 다른 말로 베어울프 클러스터라고도 한다. 최근에 CPU, Motherboard, Disk 등
하드웨어의 성능 개선, 저렴한 가격과 개발 도구인 GNU C Compiler, 관련 프로그램 툴, PVM 및 MPI 같은 메시지 패싱 라이브
러리들이 등장하면서 더욱 더 높은 성능을 내고 있다.

Docker
경량화된 가상화 기술의 일종으로 하이퍼바이저나 게스트 운영체제 없이 서버 운영에 필요한 프로그램과 라이브러리만 격리해서 설치 및 사용 가능하다.

 

답글 남기기