반응형

1. cd 명령어란?

change directory 의 약자로 리눅스 터미널에서 디렉토리를 이동할때 사용하는 명령어다.


2. 사용방법

사용방법은 cd [-L|[-P [-e]] [-@]] [dir] 이렇게 옵션을 붙여 사용할 수 도 있으며

일반적으로는 [dir] 정도만 적어줘도 무방하다.


ex) 현재 위치에서 /home/kjj 라는 디렉토리로 접근하고자 한다면?

# cd /home/kjj 라고 입력을 하면 아래 그림처럼 /home/kjj 디렉토리로 접근이 가능하다.


ex) /home/kjj 디렉토리에서 한단계 상위 디렉토리인 /home 으로 가고자 한다면?

# cd .. 이라는 명령어를 입력하면 /home 디렉토리로 넘어간다.


ex) /home/kjj 라는 디렉토리에서 /home/kjj2로 경로를 변경하고 싶다면?

# cd ../kjj2/ 라고 ..을 통해서 /home 디렉토리를 거쳐서 kjj2 디렉토리로 접근을 하거나

# cd /home/kjj2/ 라고 kjj2의 절대경로를 써주면 이동이 가능하다.


이렇게 cd 라는 명령어도 리눅스 터미널 환경에서는 매우 많이 사용되는 명령어다.


반응형
반응형

1. ls 란?

리눅스 터미널에서 파일 및 디렉토리 리스트를 확인하고자 할 때 사용하는 명령어

(터미널을 주로 사용하는 사용자라면 많이 사용하는 명령어.)


2. 사용형식

ls [option]... [file]...

(man 페이지에 정의)


이렇게 ls 에 옵션을 넣어 사용하거나 디렉토리를 정의하면 정의한 디렉토리의 내부를 볼 수 있다.


3. 옵션들

man 에서 정의된 ls 의 옵션들은 꽤 많은데 그중에서 가장 잘 사용하는, 사용할 것 같은 옵션들만 몇개 적어보았다.


-a , --all : 해당 디렉토리에 숨겨진 파일, 디렉토리를 출력 (현재(.), 상위 디렉토리(..) 모두 출력)


-i , --inode : inode 넘버를 출력해준다.


-l : 긴 목록 형식으로 출력해준다.


-r, --reverse : 디렉토리 및 파일을 역순으로 출력한다.


-R, --recursive : 재귀적으로 서브디렉토리를 나열한다.


-s, --size : 각 파일의 할당 된 크기를 블록 단위로 출력한다.


-t : 수정 시간순으로 정렬, 가장 새로운 것 부터


* 주로 옵션은 -a 와 -l 옵션을 조합해서 보기 편하게 사용을 한다. (ex: ls -al, ls -lR 등등)

* 그리고 리눅스 버전마다 다르지만 CentOS 계열에서는 ll 이라는 명령어도 많이 사용한다.

반응형
반응형

<vmware 기준>

사례: 새로 볼륨을 추가(100G) 후 리부팅을 하였으나 fdisk -l 하였을 때 새로운 볼륨이 추가되지 않는 현상


OS : Redhat 4 버전

거의 모든 장치들은 시스템 설치 당시에 모두 생성되어 마운트까지 되어있기 때문에 왠만해서는

장치파일을 만들필요가 없다.

하지만 수동으로 장치파일을 만들어 줘야 할때가 있다.

(볼륨을 추가하고 보통 리부팅을 하면 장치파일이 자동으로 생성되는데 되지 않을 경우,

일부 오래된 OS버전에서 발생하는 것으로 추정됨)


1. 먼저 디스크(볼륨)가 인식이 되었는지 확인


 1) /var/log/dmesg 확인

   SCSI device sdc : 209715200 512-byte hdwr sectors (107374MB)

   sdc : cache data unavailable

   sdc : assuming drive cache : write through

   sdc : unknown partition table

   Attached scsi disk sdc at scsi0, channel 0, id 2 lun 0

   --> sdc 100G 가 인식이 되어있는게 보인다.


 2) /proc/scsi/scsi 확인

   Host : scsi0 channel : 00 Id : 02 Lun : 00

   Vender : VMware Model : Virtual disk Rev:1.0

   Type : Direct-Access          ANSI SCSI revision : 02

   --> 마찬가지로 추가가 되어있는 것이 보인다.


 3) /proc/partitions 확인

  major     minor     #blocks     name

   8          0       71171907     sda

   8         16      314572800     sdb

   8         32      104857600     sdc --> /dev/sdc 100G 짜리가 보인다.

---------------------------------------------------------------------------------------------------------


2. 해결방법 : 블럭 디바이스를 생성 해준다.(mknod)


<사용 형식>


mknod [장치명][옵션][major 값][minor 값]


옵션

b : 블럭 디바이스 파일

c : 문자 디바이스 파일


여기서는 블럭 디바이스 파일을 생성 할 것이므로 b 옵션을 준다.


# mknod /dev/sdc b 8 32


하고 나서 fdisk -l 을 하면 /dev/sdc 가 보일 것이다.

Block device 와 Character device

[Block device]

* serial 한 특성의 데이터를 다루기 위한 디바이스를 지칭하며, Terminal, Serial Port 등이 포함이 된다.

- 데이터 버퍼링이 불가능함

- 정해진 단위(Block, Sector)로 데이터를 전송한다.

- ioctl() 시스템 콜을 이용한 핸들링을 기본으로 한다.


[Character device]

* Random Access가 가능한 데이터를 다루기 위한 디바이스를 지칭하며, Disk, Tape 등이 포함이 된다.

- 데이터 버퍼링이 가능

- 데이터 전송단위를 byte를 기본으로 한다.

- 마운트와 언 마운트가 가능하다.



Block Device

Character Device

데이터 전송

System buffer 사용 (Block, Sector)

byte 단위로 전송

I/O 전송속도

전송속도가 높다

시스템의 I/O Buffer를 사용하지 않아 느릴 수도 있으나 버퍼처리를 응용프로그램이 제어하므로 응용 프로그램의 성능에 따라 다를 수 있다

대표적인 장치

하드 디스크

테이프 장치

플로피 디스크

광 자기 디스크

단말기

프린터

플로터 및 기억장치




반응형
반응형

칼리리눅스를 설치한 후 firefox 브라우저를 통해 국내 웹사이트를 접속해보면 그림과 같이 한글이 깨져보이는 경우가 있다.



이와 같은 경우에는 다음 명령어로 fonts 패키지를 설치해주면 된다.

# apt-get install fonts-nanum*


폰트를 설치 후 다시 웹사이트를 접속한 이미지


이렇게 깨졌던 글자들이 보인다.


한글입력기 설치 및 칼리리눅스 언어 변경해보기



im-config 입력시



OK 누른다.



Yes 누른다.



ibus를 클릭하고 OK 누른다.



ibus-hangul 설치

# apt-get install ibus-hangul



터미널 창에 # ibus-setup



ibus-setup 화면



Input Method 탭 클릭



Add 클릭



안정적인 적용을 위해 리부팅을 한번 해준다.

그리고 settings 찾아 들어가서 Region & Language로 들어간다.



※ 칼리리눅스의 전체적인 언어도 한글로 바꾸고 싶다면?

Language와 Formats 부분을 English → korean(대한민국)을 찾아서 변경하고

재부팅을 해주면 된다.


input Sources에 보면 기본 English로 되어있을텐데 좌측 하단에 +를 누르고 Korean(Hangul)을 추가해준다.



추가를 하게 되면 우측 상단에 빨간색 네모로 되어있는 것 처럼 언어 선택창이 나온다.



English(US) 에서 Korean(Hangul)로 바꿔보면 이런 창이 추가로 뜨게된다.


한/영 변환 토글키 변경하기

위 화면에서 Setup을 클릭한다.


Hangul toggle key에서 기존에 추가되어있는 부분은 지우고(별도로 추가 가능)

Add를 눌러서 한/영 키로 변경한 후 Apply 버튼을 누른다.


*  노트북에서 작업이 진행되었으며 노트북 한/영 키 입력시 Alt_R로 나왔다

(데스크탑 환경에서는 다를 수도 있음)


그리고 메모장이나 터미널 창 또는 인터넷 창을 열어 한글과 영어 전환이 잘되는지 확인한다.


이 설정은 제가 직접 만져보면서 진행한거라 위 설정 중에서 필요없는 부분이 있을 수도 있음을

알려드립니다.

반응형
반응형

운영체제의 개요

운영체제란 시스템 자원을 효율적으로 사용하고, 컴퓨터-사용자간의 편리한 인터페이스를 제공하며 처리능력(Throughput), 신뢰도(Realiability), 사용가능도(Availability)의 향상과 반환시간(Turn Around Time) 단축의 목적이 있다. 또한 프로세스, 기억장치, 입출력 장치, 파일 등 자원관리 및 자원의 스케줄링기능, 시스템의 각종 하드웨어 및 네트워크 관리 제어 등을 포함하고 있다.


1. 운영체제의 주요기능

1) 프로세스 관리 : 하드웨어에 의존된 가장 하위 단위 수준으로 프로세스 스케줄링을 통해 실행 가능한 프로세스를 추적 관리한다.

2) 주기억장치관리 : 주기억장치의 접근을 제어하는 장치부분으로 주소변환, 기억보호, 버퍼기억 등의 기능을 수행한다.

3) 보조기억장치관리 : 하드디스크 및 주변기기의 기억장치에 대한 접근관리, 제어 등을 수행한다.

4) 입출력시스템관리 : 중앙시스템과 외부와 효율적인 통신방법을 제공하고 주변장치라고도 한다. 주로 키보드, 마우스, 디스플레이장치, 프린터와 보조기억장치인 자기테이프, 자기디스크 들이 있다.

5) 파일시스템관리 : 운영체제는 프로그램이나 데이터를 파일단위로 관리하며 저장장치에 파일단위로 저장한다.

6) 에러검출 및 응답

  * 내부 및 외부 하드웨어 에러(메모리 에러, 디바이스 결함)관리

  * 소프트웨어 에러 : 금지된 메모리 영역의 접근, 응용프로그램 수용 거부


2. 운영체제의 구조

1) 프로세서 관리(1계층-하위단계) : 동기화 및 프로세서 스케줄링 담당

2) 메모리 관리(2계층) : 메모리 할당 및 회수 기능을 담당

3) 프로세스 관리(3계층-상위단계) : 프로세스 생성, 제거, 메시지 전달, 시작과 정지 작업

4) 주변장치 관리(4계층) : 주변장치 상태파악과 입출력 장치의 스케줄링

5) 파일 관리(5계층) : 파일의 생성과 소멸, 파일의 열기와 닫기, 파일의 유지 및 관리


운영체제의 발전 흐름

1) 순차처리 : 운영체제가 없으며, 이 시대 컴퓨터들은 디스플레이 발광체(Light), 토글(Toggle), 스위치, 입력장치, 그리고 프린터로 구성된 콘솔(Console)을 통해 운영됨

2) 일괄처리시스템(Batch Processing System) : 초기의 컴퓨터 시스템에 사용한 형태로 일정량 또는 일정기간 데이터를 모아서 한꺼번에 처리하는 방식

3) 다중프로그램(Multi-Programming System) : 입출력 장치와 CPU 사이의 속도 차이를 이용하여 하나의 CPU와 주기억 장치를 이용하여 여러 개의 프로그램을 동시에 처리하는 방식

4) 시분할시스템(Time Sharing System) : 여러 명의 사용자가 사용하는 시스템에서 컴퓨터가 사용자들의 프로그램을 번갈아가며 처리함으로써 각 사용자는 독립된 컴퓨터를 사용하는 느낌을 줌. 라운드 로빈(Round Robin)방식이라고도 함

5) 다중처리시스템(Muti-Processing System) : 여러 개의 CPU와 하나의 주기억 장치를 이용하여 여러 개의 프로그램을 동시에 처리하는 방식

6) 실시간처리시스템(Real Time Processing System) : 데이터 발생 또는 데이터 처리요구가 있는 즉시 처리하여 결과를 산출하는 방식

7) 다중모드처리(Muti-Model Processing) : 일괄처리 시스템, 시분할 시스템, 다중처리 시스템, 실시간 처리 시스템을 한 시스템에서 모두 제공하는 방식

8) 분산처리시스템(Distributed Processing System) : 여러 개의 컴퓨터(프로세서)를 통신 회선으로 연결하여 하나의 작업을 처리하는 방식


1세대 : 순차처리, 일괄처리 시스템

2세대 : 다중프로그램, 시분할시스템, 다중처리시스템, 실시간처리시스템

3세대 : 다중모드처리

4세대 : 분산처리시스템


프로세스와 스레드의 차이점

프로세스

스레드

프로그램(코드)이 메모리상에 읽혀져서 실행중인 상태

하나의 프로그램 내에서 여러 개의 실행흐름을 두기 위한 모델

각 프로세스는 별도의 리소스를 할당받음

스레드들은 같은 프로세스에 있는 자원과 상태를 공유

논리적으로 운영체제가 해야 하는 작업

프로세스의 하위 작업 중에 하나. 프로세스보다는 작은 단위


기억장치의 종류

1. 주기억장치(Main Memory, Real Memory) - ROM,RAM : 주기억 장치는 비교적 비싼 자원이며 소량의 자료를 임시로 기억할 수 있고 영구히 저장할 수는 없다.

* CPU가 직접 접근하여 처리할 수 있는 기억장치

* 현재 수행되는 프로그램, 입력데이터, 작업, 출력데이터를 저장하는 기억장소

* ROM(Read Only Memory) : 기억된 내용을 자유롭게 읽을 수 있으나 자료를 임의로 기억 시킬 수 없는 읽기 전용 기억장치로 전원이 중단되어도 없어지지 않는다(비휘발성)

* RAM(Random Access Memory) : 임의로 사용할 수 있으며 전윈이 중단되면 데이터가 사라지는 휘발성 메모리로 컴퓨터 작업시 하드디스크에 있는 내용을 RAM으로 불러서 작업하게 된다.

* 주기억장치 공간분할 방식

 - 고정 분할(Fixed Partition) 방식 : 주기억장치 공간을 동일한 크기의 고정된 부분으로 미리 나누어 할당하는 방식으로 정적(Static) 방식이라고도 함

 - 가변 분할(Variable Partition) 방식 : 각 부분의 크기가 고정되어 있는 것이 아니라 프로세스를 처리하는 과정에서 필요한 만큼 공간을 할당하는 동적(Dynamic) 분할 방식이라고도 함


2. 가상기억장치(Virtual Memory) : 컴퓨터에서 프로그램이나 작업을 실행하는데 필요한 RAM이 부족한 경우 사용하기 위하여 확보된 실제 RAM 이상의 메모리 영역을 말한다.

* 가상 기억장치 구현방식

 - 페이징(Paging) 방식 : 프로그램을 동일한 크기의 물리적 단위(Page)로 나누어 이 페이지 단위로 가상기억장치를 구현하는 기법

 - 세그먼테이션(Segmentation) 기법 : 프로그램의 가변적인 크기의 논리적인 단위(Segment)로 나누어 세그먼트 단위로 가상 기억 장치를 구현하는 방식


3. 보조기억장치(Auxiliary Memory, Secondary Memory) : 대량의 데이터를 적은 비용으로 저장하기 위하여 사용되는 비휘발성의 기억장치로서 데이터를 반영구적으로 저장할 수 있다.

* 자기디스크 : 둥근 원형에 자성 물질을 입혀 이를 회전시키면서 데이터를 기록하고 읽는 장치(플로피디스크, 하드디스크)

* 자기테이프 : 기억된 순서에 따라 내용을 읽는 순차 접근만 가능하여 속도가 느리지만 용량에 비해 가격이 저렴하여 백업용으로 많이 사용됨.

* 자기드럼 : 원통형 표면에 자성물질을 입힌 것으로 고정 헤드디스크를 사용하므로 Seek Time이 없어 엑세스 시간이 빠르지만 낮은 용량으로 현재는 거의 사용되고 있지 않음.

* 기타저장장치 : CDROM(Compat Disk Read Only Memory), WORM(Write One Read Many Time), Zip Disk, DVD(Digital Versatile Disk), USB 등


반응형

'운영체제(OS)' 카테고리의 다른 글

VMware Workstation 12에서 macOS 10.12 Sierra 설치하기  (0) 2018.04.26
반응형

Root 도메인 : 도메인의 중심!(ex: ns.kjj.kr. 에서 kr 뒤에 붙는 점(.)이 루트도메인을 의미)


도메인을 질의할때 뒤에서 부터 질의를 시작한다.

ex)www.kjj.kr. 이라면 .부터 시작해서 kr → kjj → www → www.kjj.kr 식으로 찾아나간다.


쿼리 과정

DNS의 변환은 크게 두가지 방식으로 할 수 있다.

1. 반복적 DNS 변환

2. 재귀적 DNS 변환


반복적 DNS 변환은 도메인을 가지고 끝에서부터 하나씩  질의를 해나가며 알아내는 것이고

재귀적 DNS 변환은  


TLD(Top Level domain) 최상위 도메인

- 일반 도메인(generic domain) gTLD

- 국가 도메인(country domain) ccTLD

- 인터넷 인프라 도메인(infrastructure domain) ARPA


SLD(Second level domain)2단계 도메인


<네임서버 유형>

네임서버에는 Primary 네임서버, Secondary 네임서버, Cache only Server로 구분할 수 있다.


-Primary Server (프라이머리 네임서버): 독자적으로 관리하는 zone 정보파일을 유지하면서 질의에 응답하고 정보를 갱신하는 서버를 프라이머리 네임서버라고 한다.


-Secondary server(세컨더리 네임서버): 프라이머리서버에 부하가 많이 걸릴 경우 분산하기 위해 사용하거나 프라이머리서버의 자료를 백업하여 두고 프라이머리서버에 장애가 발생하면 프라이머리서버의 역할을 위임 받아서 동작하는 서버


-Master Server(마스터 네임서버): 세컨더리서버의 관점에서 볼 때 도메인 설정 자료를 백업해 오는 원본서버를 지칭


-Slave Server(슬라이브 네임서버): 마스터서버의 관점에서 볼 때 자신의 설정자료를 백업하기 위해 가져가는 서버를 지칭


-Cache Only Server(캐시온리 네임서버): 스스로 관리하는 zone은 없고 단지 반복되는 질의만을 전문적으로 수행하는 서버이다.


-Forwarder Server(포워드 서버): 질의를 해석하기 위해 다른 DNS 서버로 다시 질의를 요청하는 서버를 말한다.


[root@kangtest php-5.2.1]# cat /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1      localhost localhost.localdomain localhost6 localhost6.localdomain6

127.0.0.1 kangtest kangtest


hosts 파일에 지정되지 않은 도메인은 resolv.conf를 참조한다.

[root@kangtest php-5.2.1]# cat /etc/resolv.conf

# Generated by NetworkManager

nameserver 168.126.63.1


<DNS 네임서버와 리졸버 개요>

DNS는 크게 다음의 3가지 요소로 구성된다.

1) 도메인네임 공간(Domain Name Space)과 리소스 레코드(Resource Record)

  • 도메인 네임 공간은 도메인네임의 구성과 그 구조를 정의하는 반면, 리소스 레코드는 하나의 도메인네임이 가질 수 있는 속성정보군을 정의한다.


2) 네임서버(Name Server)

  • 네임서버는 도메인 데이터베이스의 일정영역(zone)을 소유하고 있는 DNS서버이다. 도메인 데이터베이스는 DNS 체계에 따라 분산구조를 지니고 있다.

  • 네임서버는 두가지의 모드로 동작할 수 있다.

  1. 리커시브가 아닌 모드(non-recursive mode)

  • 네임서버가 기본적으로 동작하는 동작 모드

  1. 리커시브 모드(recursive mode)

  • 네임서버가 옵션기능으로 구현, 동작할 수 있는 동작 모드이다.


3) 리졸버(Resolver)

  • 리졸버는 도메인네임서버와 사용자 프로그램(user program)간의 인터페이스의 기능을 한다.


--------------------------------------------------------------------------------------------------------------------------------------

<설치되어있는 bind 패키지>

[root@kangtest ~]# rpm -qa|grep bind

bind-utils-9.8.2-0.30.rc1.el6_6.1.x86_64

ypbind-1.20.4-30.el6.x86_64

samba-winbind-clients-3.6.23-12.el6.x86_64

bind-9.8.2-0.30.rc1.el6_6.1.x86_64

samba-winbind-3.6.23-12.el6.x86_64

bind-libs-9.8.2-0.30.rc1.el6_6.1.x86_64

rpcbind-0.2.0-11.el6.x86_64

PackageKit-device-rebind-0.5.8-23.el6.x86_64

bind-chroot-9.8.2-0.30.rc1.el6_6.1.x86_64


<패키지 설치>

[root@kangtest ~]# yum install -y bind

Loaded plugins: fastestmirror, refresh-packagekit, security

Setting up Install Process

Loading mirror speeds from cached hostfile

* base: centos.tt.co.kr

* extras: centos.tt.co.kr

* rpmforge: ftp.riken.jp

* updates: centos.tt.co.kr

base                                                                                                                                                                                 | 3.7 kB 00:00

extras                                                                                                                                                                               | 3.4 kB 00:00

rpmforge                                                                                                                                                                             | 1.9 kB 00:00

updates                                                                                                                                                                              | 3.4 kB 00:00

Package 32:bind-9.8.2-0.30.rc1.el6_6.1.x86_64 already installed and latest version

Nothing to do


<네임서버 정보 검색 유틸리티>

  1. host

  2. dig

  3. nslookup


host : 네임서버에 질의하여 호스트의 IP를 얻을 수 있는 가장 기본적이며 간단한 유틸리티

"host [찾고자 하는 호스트이름]"의 형태로 질의한다.

→ google 검색 결과

[root@kangtest ~]# host www.google.com

www.google.com has address 74.125.203.99

www.google.com has address 74.125.203.106

www.google.com has address 74.125.203.104

www.google.com has address 74.125.203.103

www.google.com has address 74.125.203.147

www.google.com has address 74.125.203.105

www.google.com has IPv6 address 2404:6800:4008:c02::63


dig :  최근에 많이 사용하고 있는 네임서버 검색 유틸리티이며, 기본형식으로 "dig[찾고자 하는 호스트이름]"형식을 사용한다.

→ google 검색 결과

[root@kangtest ~]# dig www.google.com


; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.1 <<>> www.google.com

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41958

;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 4, ADDITIONAL: 4


;; QUESTION SECTION:

;www.google.com.    IN    A


;; ANSWER SECTION:

www.google.com.    274    IN    A    74.125.203.105

www.google.com.    274    IN    A    74.125.203.106

www.google.com.    274    IN    A    74.125.203.147

www.google.com.    274    IN    A    74.125.203.99

www.google.com.    274    IN    A    74.125.203.103

www.google.com.    274    IN    A    74.125.203.104


;; AUTHORITY SECTION:

google.com.    68434    IN    NS    ns2.google.com.

google.com.    68434    IN    NS    ns3.google.com.

google.com.    68434    IN    NS    ns1.google.com.

google.com.    68434    IN    NS    ns4.google.com.


;; ADDITIONAL SECTION:

ns1.google.com.    235371    IN    A    216.239.32.10

ns2.google.com.    236039    IN    A    216.239.34.10

ns3.google.com.    236411    IN    A    216.239.36.10

ns4.google.com.    236441    IN    A    216.239.38.10


;; Query time: 11 msec

;; SERVER: 168.126.63.1#53(168.126.63.1)

;; WHEN: Tue Dec 30 15:39:09 2014

;; MSG SIZE  rcvd: 264


nslookup : 네임서버 질의시 가장 많이 사용하는 유틸리티이며, "nslookup [찾고자 하는 호스트이름][질의할 네임서버]"의 형식을 사용한다.

질의할 네임서버를 지정하지 않으면  /etc/resolv.conf에 지정된 네임서버에게 질의한다.


[root@kangtest ~]# nslookup www.google.com

Server:    168.126.63.1

Address:    168.126.63.1#53


Non-authoritative answer:

Name:    www.google.com

Address: 74.125.203.99

Name:    www.google.com

Address: 74.125.203.103

Name:    www.google.com

Address: 74.125.203.104

Name:    www.google.com

Address: 74.125.203.105

Name:    www.google.com

Address: 74.125.203.106

Name:    www.google.com

Address: 74.125.203.147


nslookup은 실행 후 대화형 프롬프트 >를 표시하고 /etc/resolver.conf에 정의된 첫번째 네임서버를 기본 질의 서버로 설정한다.


nslookup은 기본적으로 입력된 도메인에 대해 A레코드를 검색하고, IP주소(in-addr.arpa)에 대해서는 PTR레코드를 검색한다.


<네임서버 운영을 위한 설정파일>

bind-9.2 버전까지는 /etc/named.conf 파일을 사용하였으나 bind-9.3 버전부터(CentOS 5.X RPM)는 named.caching-nameserver.conf파일을 사용하고 있다.

이 파일은 named.rfc1912.zones 파일의 존파일 설정파일을 include 하고 있다.


named.conf 내부

options {

11      listen-on port 53 { 127.0.0.1; };  

네임서버의 포트번호와 접근할 수 있는 IP를 설정하는 지시자(외부에서 네임서버로 접근을 허용해야 한다면 포트 지시자에 허용 ip 부분에 any를 입력하여 외부와의 연결을 허용

12      listen-on-v6 port 53 { ::1; };

이 지시자는 ipv6 하의 네임서버 운영을 설정하는 것으로 현재는 필요하지 않다.

13      directory    "/var/named";

이 지시자는 DNS 의 zone파일의 위치를 지정하는 곳 zone파일의 기본 설정파일들은 /var/named 디렉토리에 모두 위치해 있다.

14     dump-file    "/var/named/data/cache_dump.db";

캐시 덤프 파일이 생성되는 파일의 절대경로 위치를 지정하는 지시자

15     statistics-file "/var/named/data/named_stats.txt";

통계파일이 생서되는 절대경로와 파일이름을 지정하는 지시자

16      memstatistics-file "/var/named/data/named_mem_stats.txt";

메모리 관련 통계파일이 생성되는 절대경로와 파일이름을 지정하는 지시자

17      allow-query { localhost; }; → any

네임서버 쿼리를 허용할 IP 혹은 IP 대역을 설정하는 지시자이다. 여기서는 외부와의 쿼리 허용을 위해서 any를 입력한다.

18      recursion yes;

외부에서 현재의 네임서버를 지정하여 사용할 수 있게 하느냐, 사용할 수 없게 하느냐를 설정하는 지시자이다. 네임서버 쿼리시에도 이 지시자의 설정에 따라 쿼리결과를 얻을 수 없도록 설정 할 수 있다. 기본은 yes로 되어있으나, 네임서버 보안을 위하여 no로 설정하도록 한다.

19

20      dnssec-enable yes;

21      dnssec-validation yes;

22      dnssec-lookaside auto;

23

24      /* Path to ISC DLV key */

25      bindkeys-file "/etc/named.iscdlv.key";

26

27      managed-keys-directory "/var/named/dynamic";

28 };

29

30 logging {

31      channel default_debug {

32              file "data/named.run";

33              severity dynamic;

34      };

35 };

이 부분은 네임서버 실행에 있어서 디버깅시 참고 할 수 있는 로그파일생성 위치를 지정하는 지시자이다. 네임서버에 에러가 발생하면 이 파일을 참고하여 디버깅하면 될 것이다.

36

37 zone "." IN {

38      type hint;

39      file "named.ca";

40 };

존파일에 정의되어 있는 (닷).의 의미는 루트 도메인이라는 뜻이며, 루트 도메인의 내용이 named.ca파일에 정의되어 있다고 알려주고 있다. type설정에서 hint라고 설정하면 루트도메인을 지정한다는 의미이며, master 라고 입력하면 1차 네임서버를 의미하고, slave 라고 입력하면 2차 네임서버를 지정한다는 의미이다.

41

42 include "/etc/named.rfc1912.zones";

43 include "/etc/named.root.key";

44


<네임서버 시작>

[root@kangtest ~]# /etc/rc.d/init.d/named start

Generating /etc/rndc.key:                               [  OK  ]

named 시작 중:                                          [  OK  ]


루트네임서버의 내용

[root@kangtest ~]# cat /var/named/named.ca

; <<>> DiG 9.9.4-P2-RedHat-9.9.4-12.P2 <<>> +norec NS . @a.root-servers.net

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26229

;; flags: qr aa; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 24


;; OPT PSEUDOSECTION:

; EDNS: version: 0, flags:; udp: 1472

;; QUESTION SECTION:

;.    IN    NS


;; ANSWER SECTION:

.    518400    IN    NS    a.root-servers.net.

.    518400    IN    NS    b.root-servers.net.

.    518400    IN    NS    c.root-servers.net.

.    518400    IN    NS    d.root-servers.net.

.    518400    IN    NS    e.root-servers.net.

.    518400    IN    NS    f.root-servers.net.

.    518400    IN    NS    g.root-servers.net.

.    518400    IN    NS    h.root-servers.net.

.    518400    IN    NS    i.root-servers.net.

.    518400    IN    NS    j.root-servers.net.

.    518400    IN    NS    k.root-servers.net.

.    518400    IN    NS    l.root-servers.net.

.    518400    IN    NS    m.root-servers.net.


;; ADDITIONAL SECTION:

a.root-servers.net.    518400    IN    A    198.41.0.4

b.root-servers.net.    518400    IN    A    192.228.79.201

c.root-servers.net.    518400    IN    A    192.33.4.12

d.root-servers.net.    518400    IN    A    199.7.91.13

e.root-servers.net.    518400    IN    A    192.203.230.10

f.root-servers.net.    518400    IN    A    192.5.5.241

g.root-servers.net.    518400    IN    A    192.112.36.4

h.root-servers.net.    518400    IN    A    128.63.2.53

i.root-servers.net.    518400    IN    A    192.36.148.17

j.root-servers.net.    518400    IN    A    192.58.128.30

k.root-servers.net.    518400    IN    A    193.0.14.129

l.root-servers.net.    518400    IN    A    199.7.83.42

m.root-servers.net.    518400    IN    A    202.12.27.33

a.root-servers.net.    518400    IN    AAAA    2001:503:ba3e::2:30

c.root-servers.net.    518400    IN    AAAA    2001:500:2::c

d.root-servers.net.    518400    IN    AAAA    2001:500:2d::d

f.root-servers.net.    518400    IN    AAAA    2001:500:2f::f

h.root-servers.net.    518400    IN    AAAA    2001:500:1::803f:235

i.root-servers.net.    518400    IN    AAAA    2001:7fe::53

j.root-servers.net.    518400    IN    AAAA    2001:503:c27::2:30

k.root-servers.net.    518400    IN    AAAA    2001:7fd::1

l.root-servers.net.    518400    IN    AAAA    2001:500:3::42

m.root-servers.net.    518400    IN    AAAA    2001:dc3::35


;; Query time: 58 msec

;; SERVER: 198.41.0.4#53(198.41.0.4)

;; WHEN: Wed Apr 23 14:52:37 CEST 2014

;; MSG SIZE  rcvd: 727


<네임서버 존파일 작성법>

(/var/named 디렉토리)

네임서버를 운영하기 위해서는 존(zone)파일 설정이 가장 중요하다고 볼 수 있다. 도메인에 대한 존파일의 위치는 기본적으로  /var/named/ 디렉토리이다.

[root@kangtest ~]# vi /var/named/named.localhost(예시)

 1 $TTL 1D

 2 @    IN SOA  @ rname.invalid. (

 3                                      0    ; serial

 4                                      1D   ; refresh

 5                                      1H   ; retry

 6                                      1W   ; expire

 7                                      3H ) ; minimum

 8      NS   @

 9      A    127.0.0.1

10      AAAA ::1


위와 같은 존파일은 네임서버 관리자가 빈번히 수정하는 파일로써 각각의 의미를 충분히 이해하고 있어야 한다.

$TTL

$TTL항목은 Time To Live의 약자로써 이곳에 설정한 도메인에 대한 정보를 다른 네임서버에서 읽어간 다음 읽어간 네임서버측에 얼마동안 보관하고 있을 것인가를 설정하는 항목

설정값은 초단위로 설정 예로 $ TTL 86400의 의미는 86400초 즉, 하루 24시간을 의미한다.


@

존파일내의 @의 의미는 ORIGIN을 의미하는 특수문자로 public domain을 의미한다.


IN

IN 다음으로 나오는 우측 설정을 사용한다는 의미이다.


SOA

SOA는 start of authority의 약어로써 도메인네임서버에 대한 모든 정보를 가지고 있으며, 여기서 주의할 점은 도메인이름을 적은 다음에는 항상 닷(.) 루트 도메인을 표시하여야 한다는 점이다.


    0    ;serial

  1D   ; refresh

  1H   ; retry

  1W   ; expire

  3H ) ; minimum

위의 설정들은 모두 마스터 네임서버와 슬레이브 네임서버간의 연동설정을 위한 내용들이다.

NS   @

NS 레코드는 해당 도메인의 네임서버를 지정하는 레코드이다. NS 레코드 다음에 네임서버의 도메인(닷(.) 루트도메인 포함)을 입력한다.


MX

MX 레코드는 Mail Exchanger의 약어로 해당 도메인에 대한 메일서버를 지정하는 레코드 이다.

일반적으로 메일서버 여러개 사용할 때 MX 레코드 다음에 우선순위 번호를 지정하여 메일을 수신할 수 있다.


A    127.0.0.1

A 레코드는 해당 도메인의 실제 IP 주소를 설정하는 레코드이다.



반응형
반응형

유닉스 & 리눅스 파일시스템 종류

유닉스의 파일시스템에서 슈퍼블럭(Superblock)은 디스크의 크기와 같은 파일시스템에 관한 일반적인 정보를 저장하는 곳을 말한다. 이곳의 정확한 정보는 파일시스템에 영향을 미친다.

아이노드(Inode)는 파일 이름을 제외한 파일에 관한 모든 정보를 저장하는 곳을 말한다.


1. EXT2 파일시스템 : 리눅스를 위한 확장성있고 강력한 파일시스템으로 ext의 상위버전으로

파일에 들어 있는 데이터의 데이터 블록에 저장되며 데이터 블록의 크기는 같고 ext2 파일시스템의 크기는 mke2fs 명령을 통하여 파일시스템이 만들어질 때 결정된다.


<ext2 파일시스템의 특징>

* 파일시스템의 모든 정보를 슈퍼블럭과 Group Descriptor Table에 저장한다.


* ext2는 Boot Sector와 Block Group으로 구성되며 Block Group은 파일시스템 손상시 데이터를 복원한다.


* Block은 윈도우 클러스터와 같은 개념으로 1k-4k로 설정이 가능하며 파일시스템 생성시 그 크기를 정할 수 있다.


파일시스템이 효율과 퍼포먼스에 중점을 두고 디자인된 파일시스템으로 예기치 않은 시스템 상의 재난으로부터 FSCK(File System Check)라는 파일시스템 복구 기능을 제공한다.


2. EXT3 파일시스템 : 데이터의 신뢰성이 강화되었고 사용자가 직접 데이터 보호 유형과 수준을 결정할 수 있는 파일시스템을 말한다. 특히 저널링(Journaling) 기술은 데이터를 디스크에 쓰기 전에 로그에 데이터를 남겨 시스템의 비정상적인 셧다운에도 로그를 사용해 FSCK 보다 빠르고 안정적인 복구기능을 제공하는 기술이다.


2. EXT4 파일시스템 : 리눅스의 저널링 파일시스템 중 하나로 ext3 파일시스템의 향상된 버전이다.

<ext4 파일시스템의 특징>

* 대형 파일 시스템 : 최대 1엑사바이트의 볼륨과 최대 16테라바이트의 파일을 지원한다. 현재 e2fsprogs는 16테라바이트의 파일 시스템만 다룰 수 있지만, 보다 큰 드라이브를 지원하기 위한 개발이 진행 중이다.


* Extent : Extent는 ext2와 ext3에 쓰이던 전통적인 블록 매핑(Block mapping) 방식을 대체하기 위한 것이다. Extent는 인접한 물리적 블록의 묶음으로, 대용량 파일 접근 성능을 향상시키고 단편화를 줄인다.


* 하위 호환성 : ext3와 ext2에 대한 하위 호환성이 있어서 ext3와 ext2 파일 시스템을 ext4로 마운트 하는 것이 가능하다. 이는 성능을 조금 향상시킬 수 있는데, ext4의 새 기능 중 새로운 블록 할당 알고리즘 같은 것은 ext3와 ext2에서도 사용될 수 있기 때문이다. ext3는 ext4 파일 시스템을 마운트할 수 있는 ext4에 대한 부분적인 상위 호환성이 있지만 ext4 파티션이 ext4의 중요한 새 특징인 Extents를 사용한다면,  ext3로 마운트는 불가능하다.


* 지연된 할당 : ext는 지연된 할당이라고도 알려진, allocate-on-flush 라는 파일 시스템 성능 기술을 사용한다. 이는 데이터가 디스크에 쓰여지기도 전에 블록을 할당하는 다른 파일 시스템과는 다르게 데이터가 디스크에 쓰여지기 전까지 블록 할당을 지연시킨다.

따라서 실제 파일 크기에 기반하여 블록 할당을 결정함으로 인해 향상된 블록 할당이 가능하게 되어 하나의 파일에 대한 블록이 여러 곳으로 분산되는 현상을 막는다.

이는 다시 디스크 이동을 최소화 시킴으로써 성능을 향상 시킨다.


* 32,000개의 하위 디렉터리 제한 없음 : ext3에서 하위 디렉터리의 수는 32,000개로 제한되어 있다. 이 제한은 ext4에서 64,000개로 늘어났으며 ‘dir_nlink’기능은 이보다 더 큰 개수도 허용한다.


EXT2,3,4 파일시스템의 장단점


구분

EXT2

EXT3

EXT4

장점

* 시스템이 손상될 경우 FSCK 기능을 이용 복구 가능


* 다른 리눅스 파일시스템 대비 비교적 간단 명료함

* 사용자가 직접 데이터 보호 유형과 수준 결정 가능


* EXT2에 비해 빠른 속도의 작업 가능


* 저널링 기능을 사용해 더 빠르고, 안정적인 복구 가능


* 자동 압축 및 안정성


* 향상된 파일 이름 저장 및 길이 지원

* ext3 보다 더욱 큰 용량을 지원


* 대용량 파일 접근 성능을 강화한 Extent 기능 제공


* ext2, ext3 파일시스템에 대한 하위 호환성이 있음


* 하위 디렉터리 수가 64,000개로 증가

단점

* /var 디렉토리와 같이 새로운 자료가 쌓이는 곳에 취약

* Jfs, ext4, XFs와 같이 extents 기능 지원 불가


* Checksum 검사하지 않음

* 지연된 할당과 데이터 유실 가능성




반응형

'운영체제(OS) > 리눅스(Linux)' 카테고리의 다른 글

칼리리눅스 한글 언어 설정 방법  (0) 2017.07.28
네임서버(DNS) 서버  (0) 2017.07.26
리눅스 스케쥴러 cron  (0) 2017.07.16
리눅스 원격파일 전송 명령어 scp  (0) 2017.07.14
리눅스 TCP Wrapper  (0) 2017.07.14
반응형

윈도우 파일시스템 종류


1. FAT(File Allocation Table) 파일시스템 : DOS 때부터 사용되고 있는 대표적인 파일시스템으로 하드디스크에 FAT라는 영역을 만들어 이 안에 하드디스크에 저장되어 있는 파일의 실제 위치 등의 정보를 기록해 두고 이를 이용하는 파일시스템을 말한다.

FAT16과 FAT32등이 있다.


2. NTFS(NT File System) 파일시스템 : MFT(Master File Table)를 사용하여 관리하며 Mirror와 파일로그가 유지되어 비상시 파일 복구가 가능하다. 윈도우 파일시스템의  FAT32 파일시스템 기능에 대용량 하드 디스크 지원, 보안기능, 압축기능, 원격저장소 기능 등을 추가하여 만든 윈도우 NT 전용 파일시스템을 말한다. 클러스터의 개수는 2^64개로 FAT32보다 많다.


NTFS 파일시스템의 특징

* NTFS는 기본 NTFS 보안의 공유 보안과 동일하게 Everyone 그룹에 대해서는 모든 권한이 ‘허용’이다.


* 기본 NTFS 보안을 변경하면 사용자마다 서로 다른 NTFS 보안을 적용시킬 수 있다.


* 파일에 설정한 NTFS 보안이 폴더에 설정한 NTFS 보안보다 우선하기 때문에 강력한 보안을 설정할 수 있다.


* 특정 사용자가 생성한 폴더나 파일에 대해서는 생성한 사용자에게 소유자 권한이 있다.


* Windows 2000 server의 시스템 폴더에 대해서는 일반 사용자가 설정할 수 없다. 설정할 수 있는 사용자는 Administrators 그룹과 Power User 그룹만이 가능하다.


NTFS 파일시스템 주요기능

* 파일과 폴더에 대한 보안강화 및 접근 제어가 가능하다(파일과 폴더 보안).


* 압축 파일로 더 많은 저장 공간의 사용이 가능하다(디스크압축).


* 사용자별 디스크 사용 공간의 제어가 가능하다(디스크할당).


* 파일에 대한 암호화 지원이 가능하다(파일 암호화).


FAT & NTFS의 장단점


구분

FAT

NTFS

장점

* 호환성 우수

* 단순성

* 저용량 볼륨에 최적화


* 대용량 볼륨 지원

* 디스크 효율적 사용

* 강력한 보안 기능

* 자동 압축 및 안정성

* 향상된 파일 이름 저장 및 길이 지원

단점

* 보안에 취약

* 대용량 볼륨의 비효율적 이용

* 다른 운영체제에 호환 불가

* 저용량 볼륨에서 FAT 대비 속도가 느림



반응형

+ Recent posts