[ETC/시험] 리눅스 마스터 2급 2차 필기 정리 족보 (+노션pdf)
1. 리눅스 운영 및 관리
LVM (Logical Volume Manager) PV ⇒ VG ⇒ LV
- 리눅스와 유닉스 계열 운영 체제에서 사용되는 스토리지 관리 기술
- 물리적인 디스크를 유연하고 동적으로 관리할 수 있게 해주는 계층을 제공하여 디스크 관리의 편의성과 확장성을 높여줌
- 유연한 디스크 파티션 관리를 가능하게 하는 기술
- LVM 구성 흐름
- PV 생성 : LVM을 구성하기 위해 가장 먼저 실제 디스크나 디스크 파티션을 PV로 초기화함
- VG 생성 : 하나 이상의 PV를 묶어서 VG 생성
- LV 생성 : VG를 기반으로 LV 생성
- PE, 파일 시스템 및 마운트
- 구성요소
- PV (Physical Volume) : 물리 디스크 또는 디스크 파티션, LVM의 기본 단위
- VG (Volume Group) : 여러 PV를 결합하여 하나의 논리적 스토리지 풀을 형성하는 단위
- LV (Logical Volume) : 사용자가 필요한 만큼 할당해서 생성하는 논리적 파티션
- PE (Physical Extent) : PV를 나눈 고정된 크기의 블록 단위, 파일 시스템을 구성하는 일반적인 디스크의 블록
디스크 용량 단위
- GB < TB < PB < EB
제거
- rpm : e(erase)
- yum : r(remove), erase
RAID
- 스트라이핑 : 연속된 데이터를 여러 개의 디스크에 라운드 로빈 방식으로 기록하는 기술로 하나의 디스크에서 읽어 들이는 것보다 더 빠르게 데이터를 읽거나 쓸 수 있음
- 0
- 스트라이핑
- 데이터 복구 기능 제공하지 않음
- 1
- 미러링
- 2
- 3
- 4
- 5
- 패리티 정보 사용 ⇒ 패리티 정보를 별도의 디스크에 저장
- 최소 3개의 디스크 필요
- 블록 단위로 스트라이핑
- 6
- 이중 패리티 사용
- 최소 4개의 디스크 필요
프린터 큐
- lpstat : 프린터 큐의 작업 정보를 확인하는 명령어
OSS
- 리눅스 및 유닉스 계열 운영체제에서 사운드를 만들고 캡처하는 인터페이스
- 표준 유닉스 시스템콜(POSIZ)에 기반을 두고 있음
SANE
- 스캐너 하드웨어와 응용 프로그램 간의 인터페이스 제공
- GPL 라이선스로 공개되어 있음
- 이미지 관련 하드웨어를 사용할 수 있도록 해주는 API
- 스캐너 관련 드라이버와 사용자 관련 명령이 있는 2개의 패키지로 구분되어서 배포됨
- 명령
- USB로 연결된 스캐너 검색 명령어 : sane-find-scanner -v
- 스케너 디바이스
- SCSI : /dev/sg0, /dev/scanner
- USB : /dev/usb/scanner, /dev/usvscanner
XSANE
- GTK+ 라이브러리로 만들어짐
데비안 계열 리눅스
- 데비안 운영 체제를 기반으로 만들어진 리눅스 배포판
- 데비안은 오랜 역사를 가진 안정적이고 강력한 리눅스 배포판
- .deb 확장자의 패키지 형식과 APT 패키지 관리 시스템을 사용하는 것이 특징
- 명령어
- apt-get purge [패키지명] : 패키지를 환경 설정 파일 포함해서 완전 제거
- apt-get remove [패키지명] : 패키지를 삭제하지만, 환경 설정 파일은 남겨둠
- 패키지 관리 도구
- dpkg(로컬)
- apt-get
- dselect : cursor 메누 방식의 도구
CentOS
- 리눅스 배포판 중 하나
- RHEL(Red Hat Enterprise Linux)을 기반으로 만들어진 오픈소스 운영 체제
- 6 : init
- 7 : systemd
레드햇 계열 리눅스
- 패키지 관리 도구
- dnf
- rmp
- yum
리눅스 온라인 패키지 관리 도구
- 네트워크를 통해 원격 저장소에서 패키지를 다운로드하고 설치, 업데이터, 제거하는 기능 제공
- dnf : Red hat 계열에서 사용하는 온라인 패키지 관리 도구
- zypper : OpenSUSE 및 SUSE 계열에서 사용하는 온라인 패키지 관리 도구
- apt-get : Debian 계열에서 사용하는 온라인 패키지 관리 도구
프로그램을 소스파일로 설치하는 과정
- configure : 시스템에 맞는 환경 설정 및 Makefile 생성(소스 파일 설치)
- make : Makefile 파일을 읽어 들여서 소스 파일 컴파일
- make install : 컴파일된 프로그램 설치
make 명령어
- 소프트웨어 개발에서 자동화된 빌드 프로세스를 관리하기 위한 도구
- Makefile 설정 파일을 기반으로 동작함
- 종류
- make clean : 소스 파일의 압축을 푼 디렉터리에서 한 번 작업한 설정이나 관련 파일을 삭제하고 다시 설정 작업을 진행할 때 사용
- PHP, SAMBA, Apache HTTP
cmake 명령어
- 소프트웨어 빌드 도구
- 소스 컴파일 시 사용되는 Make의 대체프로그램으로 멀티플랫폼을 지원하기 위한 목적으로 등장한 오픈 소스 프로젝트
- 프로젝트의 빌드 시스템(Makefile)을 생성함
- MySQL, KDE, LMMS 가 사용
yum 명령어
- Red hat 계열 리눅스에서 사용되는 패키지 관리 도구
- yum install [패키지명]
- yum info [패키지명] : 미설치된 패키지에 대한 자세한 정보를 확인하는 명령
- yum history info : yum 명령을 사용한 작업 이력 확인
- yum search 문자열 : 해당 문자열이 포함된 패키지 검색
- yum groupinstall 패키지명 : 지정한 패키지 그룹 설치
- yum list : 전체 패키지에 대한 정보 출력
- yum list update : 업데이트시 필요한 패키지 정보
- yum check-update : 업데이트가 가능한 패키지 목록 확인
- /etc/yum.repos.d : yum 명령의 저장소 관련 파일들이 위치
rpm
- Red hat 계열 리눅스 배포판에서 사용하는 로컬 패키지 관리 도구
- rpm -iUF ⇒ 설치옵션
옵션 설명
-i | 패키지 설치 |
-U | 패키지 업데이트 |
-e | 패키지 제거 |
-qa | 설치된 모든 패키지 조회 |
-qi | 패키지 상세 정보 조회 |
-qf | 특정 파일이 속한 패키지 확인 |
-qR | 패키지 의존성 확인 |
-V | 패키지 검증 |
--force | 강제로 설치 또는 업데이트 |
--nodeps | 의존성 확인을 무시하고 설치/제거 |
-F | 현재 시스템에서 설치된 패키지만 찾아서 업데이트 |
EPEL
- Red hat 계열 리눅스에서 사용할 수 있는 확장 패키지 관련 저장소
- 공식 저장소에 포함되지 않은 소프트웨어 패키지를 제공하여 시스템 관리자가 다양한 소프트웨어를 설치할 수 있도록 지원함
- yum install epel-release
BSD 계열 유닉스
- lpr 명령어를 사용하는 프린터 시스템
- 명령어
- lpr: 프린트 작업 요청
- lpq : 대기 중인 프린트 작업 상태 확인
- lprm : 대기중인 프린트 작업을 취소
유닉스 프린팅 명령어
- System V계열
- lp
- -n : 인쇄 매수 지정
- lpstat
- cancel
- lp
- BSD계열
- lpr
- -# : 인쇄 매수 지정
- lpq
- lprm
- lpc
- lpd
- lpr
LPRng(Line Printer Next Generation)
- BSD 계열 유닉스 시스템에서 사용하기 위해 개발된 프린터 시스템
- 라인 프린터 데몬 프로토콜을 사용하여 프린터 스풀링과 네트워크 프린터 서버를 지원함
mkfs(Make file system) 명령어
- 특정 디스크 파티션을 원하는 파일 시스템으로 포맷
- 옵션
- -t : 파일 시스템의 종류 지정
mke2kf 명령어
- ext2/3/4 파일 시스템을 포맷하는 명령어
- 옵션
- -t : 파일 시스템의 종류 지정
- -b : 블록 크기를 바이트 수로 지정
- -c : 배드 블록 체크
- -f : 프래그먼트 크기 바이트 수로 지정
- -i : inode당 바이트 수 지정
- -T : inode 크기 설정
- -j : 저널링 파일 시스템으로 만들기
- -m : 슈퍼유저에게 예약해둘 블록의 퍼센트 지정
mkfs.xfs 명령어
- XFS 파일 시스템 생성
blkid 명령어
- 파티션에 할당된 UUID 값을 확인하는 명령어
tar 명령어
- 아카이브 파일을 생성하거나 해제할 때 사용하는 유틸리티
- 여러 파일을 하나의 파일로 묶거나 압축하는 데 사용
- tar [옵션] [생성할 tar 파일명] [대상 파일/렉터리]
- 주요 옵션:
- c (create): 아카이브 생성.
- x (extract): 아카이브 추출.
- t (list): 아카이브 목록 확인.
- r (append) : 다른 파일의 내용을 추가로 묶음
- f: 파일 이름 지정.
- z : gzip 형식으로 압축
- Z : compress 형식으로 압축
- j : bzip 형식으로 압축
- J: xz 압축 사용.
- v: 자세한 정보 출력.
- 압축 효율 xz(J) > bzip2(j) > gzip(z) > compress(Z)
편집기
vi ⇒ pico ⇒ gedit ⇒ nano
- nano ⇒ GNU 프로젝트
- 터미널 기반 텍스트 편집기
- CLI 에서 사용 가능
- GNU프로젝트에 의해 관리되는 편집기
- pico ⇒ 아보일 카사르
- nano 원조격인 CLI 기반 편집기
- 아보일 카사르가 개발
- kwrite
- KDE 데스크톱 환경에서 사용되는 GUI 기반 편집기
- X 윈도 환경에서만 사용 가능
- gedit
- X윈도 환경에서 실행되는 GUI 기반 편집기
- vim ⇒ 브람 무레나르
- 터미널 기반 텍스트 편집기
- GUI가 없는 서버나 명령줄 환경에서도 사용 가능
- CLI 기반
- 브람 무레나르가 개발
- 패턴 검색 시에 하이라이트 기능 제공하여 빠른 검색 가능
- 히스토리 가능
- 문법 검사 가능
- 다중 되돌리기 가능
- emacs ⇒ 리처드 스톨만, 제임스 고슬링
- CLI 및 GUI 모두 지원 가능한 편집기
- 전문가용
- 리처드 스톨만이 개발
- LISP에 기반을 두는 환경 설정 언어를 가지고 만듦
- 질의를 통한 치환 가능
- 종료 : [Ctrl] + [c] ⇒ [Ctrl] + [x]
- gVim
- GUI 기반으로 개발됨
vi 편집기
- 빌 조이가 개발
- 모드
- 명령모드 : 처음 실행 시 접하게 되는 모드, 삭제, 복사, 붙여넣기
- 입력모드 : a, A, i, I, o, O 누르면 모드됨
- ex 명령모드 : 치환, 저장, 종료의 역할 수행, ‘:’ 누르면 실행
- ex 명령어
명령어 설명
:w | 현재 작업 중인 내용을 저장 |
:w [파일명] | 지정한 파일명으로 저장 |
:q | 편집기를 종료 (수정 사항이 있을 경우 경고) |
:q! | 수정 사항을 저장하지 않고 강제로 종료 |
:wq | 변경된 내용을 저장하고 종료 |
:x | :wq와 동일 (변경 사항 저장 후 종료) |
:e [파일명] | 지정한 파일을 새로 열기 |
:set number | 줄 번호 표시 |
:set nonu | 줄 번호 숨김 |
u (undo) | 바로 직전에 삭제한 줄 다시 복원 |
:$ | 편집 중인 문서 파일의 마지막 줄로 이동하기 위한 명령 |
- 문자열 검색 및 탐색 명령어
- / : 아래 방향(순방향)으로 문자열 검색
- ? : 위 방향(역방향)으로 문자열 검색
- n : 다음 검색 결과로 이동
- N : 이전 검색 결과로 이동
- 문자열 치환 명령어
- :% : 파일 전체 범위에서 치환 수행
- s : 치환 명령
- /linux$/linux./ : 줄 끝에 있는 linux를 찾아 linux뒤에 . 을 덧붙이도록 치환
- .exrc파일
- vi 편집기의 환경 설정 파일
- 환경 설정한 내용을 계속해서 사용할 수 있음
emacs 편집기
- 리처드 스톨만이 개발
nano 편집기
- 키 조합
- [Ctrl]+[a] : 현재 줄의 시작으로 이동.
- [Ctrl]+[e]: 현재 줄의 끝으로 이동
- [Ctrl]+[o]: 파일 저장
- [Ctrl]+[i]: 탭 삽입
kill 명령어
- 프로세스 종료시키기 위해 사용
- 기본적으로 시그널 번호 15(SIGTERM)가 전송됨
- 작업번호를 이용하려면 % 사용 ⇒ kill %2
- 프로세스 id를 이용하려면 그냥 숫자만 사용 ⇒ kill 2
top 명령어
- 리눅스 시스템의 운영 상태를 실시간으로 모니터링하거나 프로세스 상태 확인 가능
jobs 명령어
- 현재 사용자가 실행한 백그라운드 프로세서 및 일시 정지된 작업의 목룍을 표시
bg 명령어
- 일시 정지된 프로세스를 백그라운드로 재개하는 명령어
ps 명령어
- 시스템의 모든 프로세스 또는 사용자의 특정 프로세스 정보를 출력
- 사용자가 로그인한 후에 이용중인 셸을 확인하는 명령어
- 옵션
- a : 터미널과 연관된 프로세스 출력
- u : 프로세스의 소유자를 기준으로 출력
- x : 데몬 프로세스 출력
df(disk free) 명령어
- 현재 마운트된 디스크의 남아있는 용량 확인
- 옵션
- i: 파티션에 사용 가능한 아이노드의 수 확인
du(disk usage) 명령어
- 파일 또는 디렉터리의 디스크 사용량을 확인하는 명령어
- 옵션
- -s : 총 사용량 표시
- -h : 사람이 읽기 쉬운 형식으로 출력
lsblk 명령어
- 시스템에 연결된 블록 장치(디스크와 파티션)을 트리 형태로 출력하는 명령어
nohub(No hang up) 명령어
- 사용자가 로그아웃하거나 터미널 세션이 종료되어도 프로세스를 백그라운드 프로세스로 계속 실행하도록 만드는 명령어
- 사용자가 작업 중인 터미널 창을 닫아도 백그라운드로 보내진 작업은 유지됨
- 실행한 명령을 백그라운드로 보낼 때는 사용자가 & 명령어를 이용해 직접 명시해주어야한다(자동 X)
- 실행중인 프로세스의 표준출력과 표준에러는 ‘nohup.out’파일을 생성하여 기록함
- 쓰기작업 권한이 없다면 ‘$HOME/nohup.out’ 파일을 생성하여 기록함
프로세스 상태 코드
- R (Running)
- 현재 실행 중이거나 실행 가능한 상태
- S (Sleeping)
- 단기 대기 상태
- T (Stopped)
- 정지 상태
- SIGSTOP 신호를 받아 일시적으로 중단
- Z
- 좀비 프로세스
- 작업이 종료되었지만, 부모 프로세스가 해당 프로세스의 종료 상태를 아직 회수하지 않아 프로세스 테이블에 잔존하는 상태
프로세스 생성 및 실행
- fork()
- 새로운 프로세스 생성
- 부모 프로세스를 복제하여 자식 프로세스 생성
- 부모와 자식은 동일한 메모리 상태 공유, 분리된 메모리 가짐
- exec()
- 현재 프로세스를 대체
- 기존 프로세스의 메모리를 새로운 프로그램으로 덮어씀
- 프로세스가 증가하지 않는 방식
<aside> 💡
포어그라운드 : 사용자가 현재 직접 상호작용하고 있는 프로세스
</aside>
프로세스 관련 키 조합
- [Ctrl] + [c] : 현재 프로세스 종료
- [Ctrl] + [z] : 포어그라운드 프로세스를 정지 상태로 전환
- [Ctrl] + [d] : EOF 신호를 보내고 셸을 종료
백그라운드 프로세스
- 터미널을 차지하지 않고 실행되는 프로세스
- 명령어 뒤에 **&기호**를 붙이면 해당 명령어가 백그라운드에서 실행됨
데몬 프로세스
- 운영체제에서 주기적이고 지속적인 서비스 요청을 처리하기 위해 백그라운드에서 실행되는 프로세스
fg 명령어
- 백그라운드에서 실행 중인 작업을 포그라운드로 전환
- fp %작업번호
NI값
- 프로세스의 우선순위를 조정하는 값
- 프로세스의 Nice 값을 나타냄
- **-20 ~ 19**까지의 범위를 가짐
- 낮을수록 높은 우선순위
- 기본 값은 0
- 우선순위가 높아진 상태 <
- 명령어
- nice -조정값 [프로세스명]
- 프로세스를 특정 NI 값으로 실행
- 기본적으로 기본 Nice 값(0)에 +10을 적용
- 주의할점
- 양수는 -n
- 음수는 —n으로 조정해야함
- renice
- 이미 실행 중인 프로세스의 NI 값을 변경
- 프로세스 증가 없이 우선순위 조정 가능
- renice [nice 값] -p [PID]
- nice -조정값 [프로세스명]
cron
- 리눅스에서 작업을 주기적으로 실행하는 데 사용되는 스케줄링 도구
- crontab 파일에서 작업 스케줄을 정의함
- 분(0~59) 시(0~23) 일(1~31) 월(1~12) 요일(0~7) 명령어 형식
- 단 요일은 일요일부터 시작 (0 : 일요일, 1 : 월요일)
- 명령
- cron 설정 파일 삭제 : crontab -r -u [유저이름]
- 삭제 전 사용자 확인 : crontab -ir
- root 사용자가 다른 사용자의 내용 작성 및 수정 : contab -e(edit) -u [유저이름]
네트워크 서비스
- 웹 서버, FTP 서버, 메일 서버 같은 서버 프로그램으로 클라이언트 요청을 받아 처리하는 역할
- 실행 및 관리 방식
- Standalone 방식
- 서비스가 독립적으로 실행
- 항상 메모리에 상주하여 클라이언트 요청을 처리하는 방식
- 서비스가 운영체제에 의해 직접 관리됨
- 서비스가 항상 실행중이므로 메모리 사용량이 크지만 클라이언트 요청에 빠른 응답 가능
- 대규모 트래픽처럼 빈번한 요청 처리에 유리
- inetd(슈퍼서버) 방식
- inetd 또는 xinetd라는 슈퍼서버가 클라이언트 요청을 대기하다가 요청이 있을 때 필요한 서비스 프로세스를 실행하는 방식
- 요청이 없을 때 서비스가 실행되지 않아 메모리 사용이 적음
- 요청이 들어올 때마다 새로운 프로세스를 실행하므로 초기 처리 시간이 걸림
- Standalone 방식
리눅스 시그널
- 리눅스 시그널은 운영체제에서 IPC의 한 형태로 프로세스에게 특정 이벤트나 상태를 알리기 위해 전달되는 소프트웨어 인터럽트
- kill -l 명령으로 시그널의 전체 목록 확인 가능
- 종류번호 이름 설명 기본 동작
1 SIGHUP 프로세스의 연결 종료(로그아웃 등) 종료 및 재시작 2 SIGINT 인터럽트(사용자가 Ctrl+C 입력 시) 종료 3 SIGQUIT 종료(사용자가 Ctrl+\\ 입력 시) 코어 덤프 생성 후 종료 4 SIGILL 잘못된 명령어 사용 코어 덤프 후 종료 5 SIGTRAP trace, breakpoint에서 TRAP 발생할 때 코어 덤프 6 SIGABRT 비정상종료 함수에 의한 발생, abort 시스템 호출 시 발생 코어 덤프 7 SIGBUS 메모리 접근 에러시 발생 코어 덤프 후 종료 9 SIGKILL 강제 종료(종료 불가) 종료 11 SIGSEGV 세그멘테이션 오류(잘못된 메모리 접근 시) 코어 덤프 생성 후 종료 15 SIGTERM 정상 종료 요청 종료 18 SIGCONT 정지된 프로세스 재개 실행 재개 19 SIGSTOP 프로세스 정지(사용자 복구 불가) 정지 20 SIGTSTP 프로세스 정지(사용자 복구 가능, Ctrl+Z) 정지
kill 명령어
- 기본적으로 SIGTERM(15)를 전달하여 정상적인 종료 요청
- 여러 PID 한 번에 처리 가능
- 옵션
- -l: 시그널 전체 목록을 확인 할 수 있음
pkill 명령어
- 프로세스 이름을 기반으로 프로세스 종료
killall 명령어
- 지정된 이름의 모든 프로세스 종료
pgrep 명령어
- 프로세스 이름을 기준으로 PID 검색
echo 명령어
- 리눅스 및 유닉스 셀에서 텍스트 또는 변수를 출력하는 데 사용되는 명령어
- 환경 변수 출력
- echo $USER
- echo $HOME
- echo $PATH
- echo $SHELL : 사용자가 로그인 시에 부여받은 셸 정보가 출력됨
- $LANG : 시스템 언어와 문자 인코딩 정보
- $TERM : 현재 사용하는 터미널 유형
!! 명령어
- 가장 최근에 실행한 명령 재실행
!?문자열 명령어
- 가장 최근에 실행한 명령 중 문자열을 포함한 명령어를 찾아서 실행
set 명령어
- 현재 셸에서 설정된 모든 변수를 출력
- 셸에서 선언된 셸 변수 전부 확인
unset 명령어
- 현재 선언된 셸 변수 해제
env 명령어
- 현재 환경 변수만 출력
export 명령어
- 환경 변수로 내보낸 변수만 출력
ps 명령어
- 사용자가 로그인하여 현재 실행중인 프로세스의 정보를 출력하는 데 사용
- 백그라운드로 실행 중인 데몬 프로세스를 포함해 확인 가능
chmod 명령어
- 옵션
- -c : 변경된 파일만 자세히 보여줌
- -f : 변경되지 않은 파일에 대해 오류메시지 보여주지 않음
- -v : 작업 상태 상세히 보여줌
- -R : 경로와 하위 파일 모두 변경
chsh 명령어
- 사용자가 기본 로그인 셸을 변경할 때 사용하는 명령어
- 주요 옵션 -s가 가장 많이 사용!!옵션 설명
-s (shell) 기본 로그인 셸을 변경합니다. -l 시스템에서 허용된 사용 가능한 셸 목록을 출력합니다. -h chsh 명령어의 **사용법(도움말)**을 출력합니다. -u non-standard 옵션으로 일부 시스템에서만 사용되며 사용자를 업데이트.
mount 명령어
- 파일 시스템을 특정 디렉토리(마운트 포인트)에 연결(마운트)하거나 옵션을 수정할 때 사용
- 옵션
- -t : 파일 시스템의 타입 지정, mount -t [파일시스템 타입] [장치 파일] [마운트 포인트]
- -o : 추가적인 마운트 옵션 지정
umount 명령어
- 마운트 해제
eject 명령어
- CD-ROM 드라이브의 디스크 트레이를 여는 데 사용
- 이동식 매체의 마운트를 해제하고 장치를 제거(꺼내기)
저널링 파일 시스템
- 백업 및 복구 기능을 갖춘 파일 시스템
- XFS
- ext3 이상
- ReiserFS
- JFS
파일 점검 명령어
- fsck : ext4 파일 점검 명령어
- 손상된 디렉터리나 파일 수정을 위한 임시 디렉터리 : /lost+found
- xfs_repair : xfs 파일 점검 명령어
- e2fsck : ex2/ex3 파일 점검 명령어
/user/bin/passwd
- 비밀번호를 변경하는 명령어 실행 파일로, SetUID 권한이 설정되어 있음
/sbin/nologin
- 시스템 계정에 설정되는 셸
/etc/shadow
- 민감함 정보가 포함된 파일로 읽기/쓰기 권한만 설정되어 있음
/etc/bashrc
- 모든 사용자에게 적용되는 alias와 함수 설정하는 파일명
/etc/passwd
- 리눅스 시스템에서 사용자 계정 정보를 저장하는 파일
- 사용자가 로그인 시에 부여되는 기본 셸 정보 포함
<aside> 💡
마운트 : 리눅스 및 유닉스 계열 운영체제에서 파일 시스템을 디렉토리 구조에 연결하는 작업
</aside>
/etc/mtab
- 현재 시스템에 마운트된 파일 시스템 정보를 저장하고 있는 파일
- 실제 파일은 /proc/self/mounts임
/etc/fstab
- 시스템 부팅 시 자동으로 파일 시스템을 마운트하기 위해 필요한 정보를 정의하는 파일
- 파일 시스템에 대한 정보를 담고 있는 파일로 부팅 시 마운트할 파티션 정보가 기록되어 있음
- 사용자 쿼터를 설정하기 위해 usrquota/grpquota 항목에에 설정함
- <장치> <마운트 포인트> <파일 시스템 유형> <마운트 옵션> <dump> <fsck>
/etc/services
- 시스템에서 사용되는 네트워크 프로토콜에 할당된 포트 번호와 서비스 이름을 매핑하는 파일
/etc/protocols
- 네트워크 프로토콜 번호와 이름을 매핑하는 파일
/etc/shells
- 특정 사용자가 로그인한 후에 사용 가능한 셸의 목록 정보를 확인할 수 있는 파일
.bash_history 파일
- 사용자가 로그인 후에 입력한 명령어들을 기록하는 파일
- 사용자가 실행한 명령의 목록 정보 확인
.bach_logout 파일
- 로그아웃할 때 자동으로 생성
.bashrc 파일
- 특정 사용자별 설정 파일로 함수 및 alias 관련 설정 파일
Shell
sh → csh → tcsh → ksh → bash → zsh ”쎈척TK바지”
- C Shell (csh)
- 빌 조이가 개발
- 히스토리 기능, Alias 기능, 작업 제어 기능
- Bourne Shell (sh)
- 최초 개발
- 유닉스 시스템의 기본 셀
- Korn Shell (ksh)
- C + Bourne 결합
- 일반적으로 유닉스에 가장 많이 사용
- Bash
- 브라이언 폭스가 개발
- GNU 프로젝트를 위해 개발된 셸
- Bourne Shell 기반으로 확장한 셸
- 현재 리눅스에서 가장 널리 사용됨
- 리눅스 표준 셸
- tch
- C기반 확장판
- zsh
- Korn 셸 기반
- dash
- POSIX와 호환되는 /bin/sh를 가능한 작게 구한셸
- 빠른 작업 수행
- history 명령 등은 지원하지 않음
fdisk
- 디스크의 파티션을 생성, 삭제, 수정하는 데 사용되는 유틸리티
- 명령어명령어 설명
n 새로운 파티션을 생성합니다. w 변경된 내용을 저장하고 프로그램을 종료합니다. x 고급(extra) 모드로 진입하여 추가적인 작업을 수행합니다. q 변경 내용을 저장하지 않고 종료합니다. l 장착된 디스크들의 파티션 테이블 정보 확인
파일 권한
- 기본 권한
- r
- 읽기 권한
- 파일 : 파일의 내용을 읽을 수 있는 권한
- 디렉토리 : 디렉토리 내의 파일 목록을 볼 수 있는 권한
- w
- 쓰기 권한
- 파일 : 파일의 내용을 수정하거나 삭제할 수 있는 권한
- 디렉토리 : 디렉토리에 파일을 생성, 삭제, 이름 변경할 수 있는 권한
- x (excute)
- 실행 권한
- 파일 : 파일을 실행할 수 있는 권한
- 디렉토리 : 디렉토리에 접근할 수 있는 권한
- r
- 특수 권한
- setUID: 4 ⇒ 파일
- 해당 파일을 실행하는 사용자가 파일 소유자의 권한으로 실행할 수 있음
- setGID: 2 ⇒ 파일, 디렉터리
- 새로 생성된 파일과 디렉터리는 해당 디렉터리의 그룹 소유권을 상속 받음
- s로 표시
- sticky-bit : 1 ⇒ 디렉터리
- 디렉터리 내 파일을 삭제하거나 이름을 변경할 수 있는 권한이 제한됨
- 본인이 생성한 파일만 변경이나 삭제 가능
- t 로 표시
- setUID: 4 ⇒ 파일
- 권한 표현 방식
- 10개의 문자로 나타냄
- 첫 번째 문자
- 파일 : -
- 디렉토리 : d
- 나머지
- 소유자 u
- 그룹 g
- 기타 사용자 o
umask 명령어
- 파일과 디렉토리가 생성될 때의 기본 권한 설정을 지정
- umask -S
- 파일
- 기본 권한은 666 : 모든 사용자에게 읽기/쓰기
- 실행 권한은 기본적으로 포함되지 않음
- 666 - umask 값
- 디렉토리
- 기본 권한은 777 : 모든 사용자에게 읽기/쓰기/실행 권한
- 777 - umask 값
chown 명령어
- 파일이나 디렉터리의 소유자와 그룹 변경
- chown [소유자]:[그룹] [파일명]
chomd 명령어
- 파일이나 디렉터리의 권한 변경 명령어
- 파일이나 디렉터리의 권한 변경 명령어
chgrp 명령어
- 파일이나 디렉터리의 그룹 소유권만 변경 가능
- 옵션
- -R (Recursive) : 디렉터리와 하위 디렉터리를 포함하여 재귀적으로 그룹 소유권 변경
- -c (changes) : 변경된 항목만 출력
- -v (verbose) : 처리된 모든 파일 출력
- -f (force) : 에러 메시지를 표시하지 않고 조용히 실행
- -h : 원본 파일의 소유권은 그대로 둔 채 심볼릭링크 파일의 그룹 소유권만 변경
ls 명령어
- 파일이나 디렉터리의 정보 표시
- 옵션 -l을 사용하면 소유자와 그룹 소유자, 권한, 파일 크기, 수정 시간 등 자세한 정보 확인 가능
디스크 쿼터 설정
- quotacheck
- 파일 시스템에 대해 쿼터 데이터베이스를 검사하고 갱신
- aquota.user, aquota.group을 생성하거나 갱신
- edquota : 쿼터 실제로 설정
- quotaon/quotaoff : 디스크 쿼터 기능 활성화
- repquota : 쿼터 사용량과 제한을 보고서 형태로 출력
quota 명령어
- 현재 사용자의 단위 쿼터 정보 출력
xfs_quota 명령어
- XFS 파일 시스템에서 디스크 쿼터를 관리하고 설정하는 명령어
edquota 명령
- 사용자나 그룹에 쿼터(디스크 사용 한도)를 설정할 때 사용하는 명령어
- 실행하면 기본적으로 vi 편집기가 열림
alias 설정
- 에일리어스가 설정되어 있으면 해당 명령어를 실행할 때 에일리어스가 적용됨
- alias c=clear
- 원래 명령어를 실행하려면 **\\(역슬래시)**를 이용하면 됨
- 혹은 unalias 명령어 사용하기
OSS
- 리눅스 및 유닉스에서 사운드를 만들고 캡쳐하는 인터페이스
- 표준 유닉스 장치 시스템 콜을 기반으로 둠
ALSA
- 리눅스에서 사운드카드 사용을 위한 오디오 시스템
- 명령어
- alsactl : 리눅스에서 ALSA 시스템을 제어 및 설정하는 데 사용하는 명령어
CUPS
- 애플이 개발한 공개 소프트웨어
- 유닉스 계열 운영체제에서 프린터 서버로 사용할 수 있는 시스템
- 웹 서버의 Common Log Format 형태의 로그파일을 제공함
- HTTP 기반의 IPP를 사용하고, SMB 프로토콜도 부분적으로 지원함
- CUPS 프린트 데몬의 환경 설정 파일의 기본문법이 아파치의 httpd.conf와 유사함
- 데몬 환경 설정 파일
- /etc/cups/cupsd.conf
IPP (Internet Printing Protocol)
- 인터넷에서 원격으로 인쇄하기 위해 사용하는 프로토콜
locale -a
- 리눅스 시스템에서 현재 설정 가능한 언어셋 확인 명령어
2. 리눅스 활용
서브넷 마스크
- 첫 주소 : 네트워크 주소
- 두번째 : 게이트웨이 주소
- 마지막 :
클라우드 서비스
- 이용자 많은 순서
- Iaas→ PaaS → SaaS
R
- 빅데이터 환경에서 데이터 분석 기술을 통해 분석된 데이터의 의미와 가치를 시각적으로 표현할 때 유용한 프로그래밍 언어
고성능 컴퓨팅 (HPC)
- 고성능의 계산 능력을 제공하기 위한 목적
- 여러 컴퓨터를 병렬로 묶어서 구성함
베어울프 클러스터 = 고계산용 클러스터
- 1990년대 초 CESDIS에서 Cray 슈퍼컴퓨터의 임대 기간 종료에 대비하기 위한 프로젝트에서 탄생
- 고성능의 계산 능력을 제공하기 위한 목적으로 제작
- 주로 과학계산용으로 사용됨
고가용성 클러스터링
- 다수의 웹 서버를 운영하는 환경으로 하나의 로드밸런서 시스템으로 부하를 분산
IPv4 클래스
- A클래스
- 0~127
- 루프백 네트워크가 속해 있음 : 127.0.0.0 ~ 127.255.255.255
- 대규모 네트워크에 사용됨
- B클래스
- 128~191
- 증규모 네트워크 사용됨
- C클래스
- 192~223
- 소규모 네트워크에 사용됨
- D클래스
- 224~239
- 멀티캐스트 전용
netstat 명령어
- 네트워크 연결 상태 및 소켓 정보 확인
- SYN Flooding 공격 탐지 가능
- 열려 있는 포트, 활성 연결, 사용 중인 프로토콜 등 네트워크 정보 출력
- 옵션
- -r : 라우팅 테이블 정보 출력
- -t : TCP 연결 상태 확인
- -m : 메모리 사용 현황
- -n : 숫자 형식의 주소와 포트 번호 출력
ss 명령어
- 네트워크 연결 상태를 확인 할 수 있는 명령어
- SYN Flooding 공격 탐지 가능
- 옵션
- -a : 모든 소켓 정보 출력
- -t : TCP 소켓 정보만 출력
- -n : 숫자 형태로 출력
- -o : 타이머 정보 출력
최상위 도메인
- com
- org
- net
- deu
- gov
- mil : 미군전용
- int : 정부 간 국제 규약에 의해 설립된 국제기구 등 특수한 자격조건을 갖춘 기관에서 사용 가능
- kr
- jp
/etc/resolv.conf
- DNS 설정 파일
- DNS 서버와 검색 도메인 정보 설정
- 단축 도메인 설정!!
/etc/hosts
- IP주소와 호스트 이름 간의 매핑 정보를 수동으로 정의하는 파일
- DNS 서버를 사용하지 않고도 특정 도메인 이름과 IP 주소를 해석할 수 있도록 함
/etc/services
- 프로토콜과 관련된 포트 번호 확인할 수 있는 파일
/etc/sysconfig/network
- 네트워크 사용 유무 지정, 호스트명 설정, 게이트웨이 주소 설정, NIS 도메인 명 등이 기록되는 파일
- 네트워크 연결을 활성화하거나 비활성화하는 주요 설정 파일
/etc/sysconfig/network-scripts
- 네트워크 인터페이스 환경 설정과 관련된 파일들이 저장되어 있는 디렉터리
mii-tool
- 네트워크 카드에 물리적으로 케이블이 연결되었는지를 점검할 때 사용하는 명령어
연결 상태 확인 명령어
- ss
- netstat
게이트웨이 주소 확인 명령어
- ip
- route
- netstat
- show
리눅스시스템에 설정된 ip 주소 확인 명령어
- ip
- ifconfig
ifconfig
- 리눅스 및 유닉스 기반 시스템에서 네트워크 인터페이스를 설정, 관리, 디버깅하는 데 사용되는 명령어
- ifconfig eth0 down
ipconfig
- 윈도우 시스템 ip 주소 확인 명령어
ethtool
- 이더넷 카드에 연결된 케이블의 상태를 확인할 수 있는 명령
- 이더넷 카드의 link mode 변경할 수 있는 명령어
WWW(World Wide Web)
- 하이퍼텍스트 기술을 사용해 웹페이지와 다른 웹페이지를 연결하는 정보 검색 시스템
- 웹 서버의 자원에 접근하기 위해 URL을 사용함
FTP (File Transfer Protocol) 명령어
- put
- 로컬 시스템에서 FTP 서버로 파일을 업로드
- get
- FTP 서버에서 로컬 시스템로 파일을 다운로드
- recv
- get 명령어의 별칭으로 파일을 다운로드할 때 사용
- mget
- 여러 개의 파일 동시에 가져옴
- mput
SSH 명령어
- ssh [사용자 이름]@[원격지 IP 주소 또는 도메인]
- 옵션옵션 설명
-p [포트번호] 기본 포트(22)가 아닌 다른 포트로 SSH 서버에 접속할 때 사용. -l [사용자명] 접속할 사용자 계정을 지정 (예: ssh -l user 192.168.0.1). -i [파일경로] 특정 SSH 키 파일(private key)을 지정하여 접속.
Telnet 명령어
- 원격 서버와의 통신을 위해 사용되는 네트워크 프로토콜
- 주요 옵션옵션 설명
-l [사용자명] 특정 사용자 계정으로 원격 서버에 접속. -n [파일명] Telnet 세션의 입력과 출력을 기록할 파일을 지정. -e [문자] Telnet의 종료 문자(Escape character)를 변경. 기본값은 ^](Ctrl + ]). -8 8비트 데이터 전송을 활성화. -d 디버깅 모드 활성화. Telnet 세션의 상세한 정보를 출력. -E 종료 문자(Escape character) 비활성화. -L **로컬 라인 모드(Local line mode)**를 활성화. - 클라이언트는 telnet, Telnet 서버는 telnet-server 패키지 설치해야 함
메일 관련 프로토콜
- SMTP
- 메일 서버 간의 메시지 교환에 사용
- 송신용
- 25번
- IMAP
- 사용자가 메일 서버에 저장된 이메일을 읽거나 관리할 때 사용
- 수신용
- POP3
- 메일 클라이언트가 메일 서버에서 메일을 다운로드하여 로컬에 저장할 때 사용
- 수신용
- 110번
응용 계층 프로토콜
- FTP
- 20 - 데이터 포트
- 21 - 제어 포트
- SSH : 22
- Telnel : 23
- SMTP : 25
- DHCP : 67,68
- POP3 : 110
- IMAP : 143
- SNMP : 161, 162
SAMBA
- 리눅스를 비롯한 유닉스 계열 운영체제와 윈도우 운영체제 간의 자료 및 하드웨어 공유 지원
- SMB(Sercer Message Block) 프로토콜을 구현한 소프트웨어 ⇒ 최근에는 CIFS 프로토콜 사용
- 주요 기능
- 파일 및 디렉터리 공유
- 프린터 공유
- 윈도우 도메인/Active Directory와의 통합
- SMB
- 삼바 서비스의 핵심 프로토콜
- 파일 및 프린터 공유 서비스를 제공하기 위해 사용
- CIFS
- SMB 확장 버전
- 윈도우 네트워크 파일 공유 프로토콜과 호환성 제공
- NetBIOS
- 네트워크 이름 해석 및 세션 관리
CIFS (Common Internet File System)
- 인터넷을 통해 원격지 컴퓨터상의 파일이나 서비스를 요청하는 표준 프로토콜
- TCP/IP 프로토콜 기반
NFS (Network File System)
- 유닉스/리눅스 계열 시스템에서 파일 공유를 위한 프로토콜
- RPC
- rpcbind
- portmap
네트워크 구조
- 링형(원형)
- 노드들이 순환 형태로 연결되어 있으며, 데이터가 순차적으로 전송
- 충돌이 없고 성능 저하가 적음
- 노드 추가가 어려움
- 노드에 문제 발생 시 전체 네트워크가 중단될 수 있음
- 버스형
- 네트워크 노드들이 하나의 중앙 공유 케이블에 연결된 구조
- 노드 추가가 쉬움
- 충돌 가능성이 높음
- 중앙 케이블에 문제가 발생하면 네트워크 전체가 중단될 수 있음
- 스푸핑 발생 가능성
- 한 번에 한 컴퓨터만 전송 가능
- 망형
- 모든 노드가 다른 모든 노드와 연결되어 있는 구조
- 노드 하나에 문제가 생겨도 다른 경로를 통해 데이터를 전송할 수 있어 안정적임
- 구성과 유지보수 복잡, 비용 높음
- 스타형
- 중앙에 허브 또는 스위치가 있고, 각 노드가 중앙 장치에 연결되는 구조
- 노드 추가가 쉬움
X 윈도우 시스템
- 리눅스와 유닉스 계열 운영체제에서 GUI를 제공하는 기본 그래픽 시스템
- 클라이언트와 서버 구조로 이루어져 있고 서로 간 통신을 위해 X 프로토콜 사용
- X 클라이언트는 X윈도에서 동작하는 일종의 응용 프로그램
- 역할
- GUI 데스크톱 환경 제공 : X윈도우가 없으면 GUI 환경이 없기 때문에 텍스트 기반 콘솔만 사용가능함
- 원격 그래픽 지원
- 파일 종류
- .Xauthority
- X 윈도우 시스템에서 사용자 인증을 위해 사용되는 파일
- 키 정보 저장
- .Xsession
- X 세션이 시작될 때 실행되는 사용자 정의 스크립트
- .Xsetup
- X 서버를 초기화할 때 실행되는 스크립트
- .Xinitrc
- X 서버를 시작할 때 실행되는 스크립트
- .Xauthority
- 환경변수
- DISPLAY : X 클라이언트를 원격지로 전송하거나 출력을 제어할 때 사용
- TERM : 터미널 유형 정의
- VISUAL : 기본 텍스트 편집기 설정
- 구성요소
- 디스플레이 매니져
- 사용자의 로그인 및 세션 관리 담당
- 텍스트 모드인 런레벨3
- 그래픽 모드인 런레벨5
- GDM
- 데스크톱 환경
- 전체적인 GUI 환경을 이용하기 위해 사용자에게 제공되는 인터페이스 스타일
- 파일관리자, 아이콘, 창, 도구모음, 배경 화면, 위젯 등을 제공함
- KDE, Xfce, GNOME
- 윈도 매니저
- 창의 크기, 위치, 제목 표시줄 등 관리
- Kwin, Windowmaker, Atferstep
- 유저 인터페이스
- 사용자와 시스템 간의 상호작용 담당
- 디스플레이 매니져
- X 윈도 관련 명령어
- systemctl
- set-default graphical : 시스템 부팅 시 X 윈도 실행 명령어
- get-default graphical.target : 현재 설정된 기본 target(부팅 모드) 확인
- Xauth 명령어
- X윈도 환경에서 인증 정보를 관리하기 위한 명령어
- X서버와 클라이언트 간에 안전한 연결을 보장하기 위해 MIT-MAGIC-COOKIE-1 인증 정보를 사용
- Using authority file /run/user/0/gdm/Xauthority
- xauth>
- xauth add [display] [protocol] [key]
- xauth list $DISPLAY
- echo $DISPLAY
- X 클라이언트를 실행하면 로컬 시스템의 첫 번째 X 서버에 실행됨
- xhost 명령어
- X서버에 대한 호스트 또는 클라이언트의 접속 권한을 제어하는 데 사용함
- xhost +/- [도메인명]
- access control enabled, only authorized clients can connect
- SI:localuser:root
- systemctl
- TCP 포트 번호
- 6000번 포트
XSANE
- X윈도 기반의 GTK+ 라이브러리로 개발된 스캐너 프로그램
- 2004년에 시작하여 기존에 사용되던 프로젝트의 라이선스 정책 변화로 인하여 관련 개발자들 대부분이 이 프로젝트에 합류함
Xlib
- C 언어로 구현된 클라이언트 라이브러리로 X서버와 통신을 하는 역할 담당
- 개발자들은 Xlib를 통해서는 X서버 및 X클라이언트와 관련된 프로토콜을 잘 몰라도 됨
- 저수준의 인터페이스로 키보드나 마우스에 대한 반응 등 단순한 기능만 가짐
XCB
- X 서버와의 통신을 위한 라이브러리
- Xlib을 대체해서 이보다 향상된 스레딩 기능을 지원함
윈도 매니저
- X 윈도우 시스템에서 창의 크기, 위치, 제목 표시줄 등을 관리하는 소프트웨어
- Metacity
- Enlightenment
- Window Master
- Xfwm
- Afterstep
XFree86
- IBM 호환 시스템을 사용하는 유닉스 계열 운영체제를 위한 X윈도 프로젝트
GNOME
- GNU 프로젝트에서 LGPL을 따르는 GTK+ 라이브러리를 사용해서 만든 공개형 데스크톱 환경
- 응용 프로그램
- Nautilus: GNOME 데스크톱 환경에서 사용하는 기본 파일 관리자
- totem
- evolution
KDE
- 리눅스와 유닉스 계열 운영 체제를 위한 데스크톱 환경
- Qt 라이브러리를 기반으로 개발됨
- 리눅스뿐만 아니라 FreeBSD, Solaris, OS X 등도 지원
- 응용 프로그램
- konqueror
브라우저
- links
- 텍스트 기반의 웹 브라우저 ⇒ GUI를 필요로 하지 않아 X윈도가 설치되지 않은 환경에서 콘솔 창에서 사용 가능
- firefox
- GUI 기반의 대표적인 웹 브라우저
- Gecko라는 독립적인 레이아웃 엔진을 사용함
- opera
- GUI 기반의 브라우저
- 노르웨이의 한 회사에서 시작된 프로젝트에서 탄생한 프리웨어 웹 브라우저
- 리눅스, 윈도우, Mac OS, X, 안드로이드, IOS에서도 사용 가능
- safari
- Apple에서 제공하는 GUi기반 웹 브라우저
- macOS나 iOS 환경에서 사용
- Webkit 엔진 사용
- chrome
- 구글에서 개발한 브러우저
- 초기에는 Webkit을 사용하다가 현재는 Blink를 사용함
- edge
- 초기에는 마이크로소프트에서 자체개발한 EdgeHTML 엔진을 사용했으나, 현재는 Blink 엔진 사용ㄷ
ICANN (Internet Corporation for Assigned Names and Numbers)
- 인터넷의 글로벌 운영을 지원하는 비영리 국제기구
- IP주소, DNS, 프로토콜 범주 및 포트 할당 등의 업무를 담당
OSI 7계층과 데이터 단위
계층 번호 계층 이름 주요 역할 데이터 단위 인터네트워킹 장비
7 | 응용 계층 (Application) | 사용자와 네트워크 간의 인터페이스 제공 | 데이터 (Data) | 게이트웨이 |
6 | 표현 계층 (Presentation) | 데이터 형식 변환 및 암호화 | 데이터 (Data) | |
5 | 세션 계층 (Session) | 통신 세션의 설정, 유지, 종료 | 데이터 (Data) | |
4 | 전송 계층 (Transport) | 데이터 전송의 신뢰성 보장 및 흐름 제어 | 세그먼트 (Segment, TCP) / 데이터그램 (Datagram, UDP) | |
3 | 네트워크 계층 (Network) | 네트워크 경로 설정 및 IP 주소 기반 라우팅 | 패킷 (Packet) | 라우터 |
2 | 데이터 링크 계층 (Data Link) | 물리적 링크에서 데이터 전송 관리, 오류 검출 | 프레임 (Frame) | 브릿지, 스위치 |
1 | 물리 계층 (Physical) | 실제 하드웨어를 통해 비트 데이터 전송 | 비트 (Bits) | 리피터, 허브 |
비-프-패-세
- 리피터 : 신호가 약해지거나 손실되는 것을 방지하기 위해 신호를 증폭하거나 재생하여 전송 거리와 품질을 유지
이더넷
- LAN을 위한 네트워크 기술
- 데이터를 전송하기 위해 고유한 MAC 주소를 사용함
- MAC 주소는 48비트 길이를 가짐
LAN 테이블 규격
- CAT-5 : 대역폭 100MHz, 전송 속도 100Mps
- CAT-5E : 대역폭 100MHz, 전송 속도 1Gbps, 기가비트 이더넷인 1000BASE-T에도 적합
- CAT-6 : 대역폭 250MHz, 전송 속도 1Gbps
- CAT-7 : 대역폭 600MHz, 전송 속도 10Gbps
ip 명령어
- 이더넷 카드의 MAC 주소 확인 명령어
패킷 교환 방식
- 데이터를 작은 단위인 패킷으로 분리하여 전송하는 네트워크 방식
- 패킷은 독립적으로 전송되며, 목적지에서 다시 조립됨
- 패킷별로 우선순위를 부여할 수 있음
- 각각의 패킷마다 오버헤드 비트가 존재함
- 중간 노드에서 대기 지연이 발생할 수 있음
- 고정된 대역을 점유하지 않아 이론상으로는 무제한 수용이 가능함
- 인터넷, LAN 등에서 사용되는 기본적인 데이터 전송 방식
네트워크 종류
- LAN (Local Area Network)
- 집, 학교, 사무실 등 작은 지역 내에서 사용하는 네트워크
- 주로 이더넷 또는 Wi-Fi를 통해 연결됨
- MAN (Metropolitan Area Network)
- 도시 규모 또는 캠퍼스와 같은 지역에 걸쳐 있는 네트워크
- WAN (Wide Area Network)
- 국가 또는 대륙 간에 걸친 대규모 네트워크
DQDB
- MAN에 사용되는 프로토콜, IEEE802.6 규격
- 회선 교환과 패킷 교환이 모두 가능
- 데이터, 음성 및 비디오 등의 전송을 지원함
이미지 뷰어 프로그램
- ImageMagicK
- 이미지 변환 및 편집 도구
- Eog
- GNOME 환경의 기본 이미지 뷰어
- GIMP
- 이미지 편집 도구
- Gwenview
- KDE에서 제공하는 이미지 뷰어 프로그램
- gThumb
동영상 프로그램
- Totem
- 동영상 및 음악 재생을 위한 미디어 플레이어
evince
- PDF 문서 확인 프로그램
LibreOffice
- Impress
- 프레젠테이션 제작 도구
- Calc
- 숫자 표에서 다양한 계산을 위해 사용함
- Writer
- 워드 프로세서
- Draw
- 벡터 그래픽 및 다이어그램 제작 도구
- 간단한 일러스트나 다이어그램 작성에 적합
- Base
- 데이터베이스 관리 프로그램
FDDI (Fiber Distributed Data Interface)
- 광섬유 케이블을 기반으로 최대 100Mps의 데이터 전송 속도를 제공하기 위해 개발된 네트워크 기술
- 이중 링 토폴리지를 사용해 네트워크의 안정성을 보장함
IEEE
- LAN 및 MAN 관련 표준 제정 기관
ITU
- 이동통신 분야의 5g 제정과 관련된 국제기구
EIA
- LAN 케이블 관련 표준 제정
- 주로 전기 및 전자 정비와 관련된 물리적 연결 표준 제정
- 이더넷 케이블의 배열 순서인 T568B를 표준화함
<aside> 💡
에뮬레이션 : 한 시스템이 다른 시스템의 동작을 흉내 내거나 모방하여, 원래 설계된 시스템에서 실행되도록 만들어진 프로그램이나 작업
</aside>
반가상화
- 하드웨어를 직접 에뮬레이션하지 않고 게스트 OS가 호스트 OS와 협력하여 가상화 환경에서 더 효율적으로 실행되도록 지원하는 방식
가상화기술
- Xen
- 리눅스에서 지원하는 가상화 기술
- KVM
- 리눅스 커널에 내장된 가상화 기술
- VirtualBox
- 크로스 플랫폼 가상화 소프트웨어
- 리눅스, Windows, macOS에서 모두 실행 가능하며, 가상 머신 운영 가능
- Hyper-V
- Window Server 환경에서 사용되는 가상화 기술
Xen
- CPU 반가상화를 지원하는 가상화 하이퍼바이저
KVM(Kernel-based Virtual Machine)
- Qumranet에서 개발된 가상화 기술
- x86 아키텍처를 기반으로 CPU 전가상화 방식 사용
- 현재 레드햇사 주도로 개발되고 있음
Kubernetes
- 소스가 공개된 컨테이너 관리 프로그램
- 컨테이너화된 애플리케이션의 배포, 확장, 관리를 자동화해줌
Docker
- 컨테이너 엔진
- 애플리케이션을 컨테이너화하고 실행함
- 리눅스의 응용 프로그램들을 프로세스 격리 기술을 사용해 컨테이너로 실행하고 관리하는 오픈 소스 프로젝트
- 경량화된 가상화 기술
- 하이퍼바이저나 게스트 운영체제를 사용하지 않고, 응용 프로그램과 라이브러리 등을 이미지로 만들어서 프로세스처럼 동작시키는 방식
- 2013년 3월에 탄생함
Hadoop
- 빅데이터 인프라 구축과 관련된 프로그램으로 파일시스템 구축에 사용함
Arduino 아두이노
- 마이크로컨트롤러를 기반으로 하드웨어와 소프트웨어를 결합하여 특정 기능을 반복적으로 수행하는 전자 제어 시스템
- 오픈 소스를 기반으로 한 단일 보드 마이크로컨트롤러로 완성된 보드와 관련 개발 도구 및 환경을 말함
- 2005년 이탈리아의 IDII에서 개발함
Ansible
- 소프트웨어 프로비저닝, 구성 관리, 배포 프로그램으로 유닉스, 리눅스, 윈도우 운영체제에서 사용 가능한 공개 프로그램
- 2025년 이후 레드햇에 인수되어 관리되고 있음
- 오픈소스 IT 자동화 툴
OpenStack
- XEN, KVN 등으로 나눠서 운영되는 가상화 환경 통합 관리에 유용
GENIVI
- 2009년 2월에 BMW, 델파이, GM, 인텔, 윈드리버 등이 설립하여 만든 조직에서 리눅스 커벌 기반의 표준화된 자동차용 IVI를 위해 만든 플랫폼
Tizen
- 리눅스 커널 기반으로 인텔, 삼성전자, 리눅스 재단, 리모 재단이 공동으로 개발한 모바일 및 IT 기기를 지원하는 운영체제
Bada OS
- 삼성전자에서 개발한 독자적인 운영체제
- 현재는 타이젠으로 통합됨
QNX
- 캐나다의 QNX Software System에서 개발한 실시간 운영체제
- 유닉스 커널 기반 운영체제
Raspberry Pi
- 영국의 Raspberry Pi 재단에서 학교 및 개발도상국에서 컴퓨터 과학 교육을 촉진하기 위해 개발된 신용카드 크기의 싱글 보드 컴퓨터
임베디드 리눅스
- 디바이스 드라이버 프레임 워크가 복잡함
- 사용자 모드와 커널 모드 메모리 접근이 복잡함
- 소스가 공개되어 있는 관계로 변경 및 재배포가 용이함
- 큰 메모리 차지
R 언어
- 빅데이터 환경에서 데이터 분석 기술을 통해 분석된 데이터의 의미와 가치를 시각적으로 표현할 때 유용한 프로그래밍 언어
IRC (Internet Relay Chat)
- 실시간 채팅 프로토콜로 여러 사용자가 모여 대화를 할 수 있는 서비스
- 개인 간의 대화와 파일 전송기능도 제공함
lo (loopback)
- 물리적으로 존재하는 인터페이스가 아니라 가상으로 만들어진 네트워크 인터페이스 장치
- 자체적인 ping 테스트 등 네트워크 디버깅에 사용됨
유즈넷
- 텍스트 형태의 기사들을 전 세계의 사용자들이 공개된 공간에서 주고받으며 토론할 수 있는 자유 게시판 서비스
Juk
- KDE 데스크톱환경의 음악 재생프로그램
제가 직접 정리한 자료입니다.
아래는 노션 버전입니다.