TFTP(Trivial File Transfer Protocol)
TFTP(Trivial File Transfer Protocol)란 이더넷을 이용하여 파일을 다운 받는 프로토콜 로직이다. UDP 방식을 사용한다. TFTP은 ftp와 같은 파일 전송 프로토콜이지만, 매우 간단한 프로토콜로 구성되므로 부트로더와 같은 작은 크기의 프로그램에서 수행할 수가 있다. 보통 BOOTP와 연동하여 네트워크 부트를 할 때 사용하게 된다.
TFTP는 다음의 두 가지 방법에 의해 사용될 수 있다.
일반 ftp프로토콜은 tcp프로토콜을 사용하지만, tftp는 udp프로토콜을 사용하여 전송한다. 동작되는 방식은 클라이언트가 서버에 접속하여 파일을 요청하면 해당 파일을 서버는 전송하고 이를 클라이언트는 응답하는 방식을 취한다. 매번 파일의 블록을 전송 시 블록의 길이를 전송하는데 이 블록의 크기는 고정되어 있어 이 크기보다 작은 블록이 오면 이를 마지막 블록으로 인식한다. 단점은 하나의 블록 전송이라도 실패하면 전송을 중지하므로 패켓 손실이 많은 환경에서는 사용이 곤란하다.

BOOTP(Bootstrap Protocol)
BOOTP는 네트웍 사용자가 자동으로 구성되고(IP 주소를 받게), 사용자의 간여 없이도 부트되는 운영체계를 가지고 있게 해주는 프로토콜이다. X 터미널 등과 같이 하드디스크를 갖지 않은 장치의 설정 정보를 자동적으로 할당, 관리하기 위해서 개발되었다. 네트웍 관리자에 의해 관리되는 BOOTP 서버는, 일정 시간동안 IP 주소를 자동으로 할당한다.

BOOTP는 좀더 진보된 네트웍 관리 프로토콜인 DHCP의 기반이 된다


DHCP(DynaHost Configuration Protocol; 동적 호스트 설정 통신 규약, 動的-設定通信規約)은 호스트 IP 구성 관리를 단순화하는 IP 표준이다. 동적 호스트 설정 통신 규약 표준에서는 DHCP 서버를 사용하여 IP 주소 및 관련된 기타 구성 세부 정보를 네트워크의 DHCP 사용 클라이언트에게 동적으로 할당하는 방법을 제공한다.


NFS(Network Files System)

NFS는 컴퓨터 사용자가 원격지 컴퓨터에 있는 파일을 마치 자신의 컴퓨터에 있는 것처럼 검색하고, 마음대로 저장하거나 수정하도록 해주는 클라이언트/서버형 응용프로그램이다. 사용자 시스템에는 NFS 클라이언트가 있어야하며, 다른 컴퓨터 (원격지의 컴퓨터)에는 NFS 서버가 설치되어 있어야 한다. 또한, 둘 모두 TCP/IP 프로토콜이 설치되어 있어야 하는데, 왜냐하면, NFS 서버와 클라이언트가 파일을 보내거나 수정하는 프로그램으로 TCP/IP를 사용하기 때문이다 (그러나, 초기버전의 NFS에서는 TCP 대신에 UDP가 사용되기도 한다).

cramfs

cramfs 파일 시스템은 플래시 디바이스 내부에서 사용 가능한 압축된 읽기 전용 리눅스 파일 시스템이다. cramfs는 간단하고 공간 효율적이라는 주요 특징이 있다. 이 파일 시스템은 메모리 크기가 작은 임베디드 디자인에 활용된다.

cramfs 메타데이터는 압축이 되어 있지 않은 반면에, cramfs는 페이지 단위 기반으로 zlib 압축을 사용하므로 임의 접근이 가능하다(페이지는 접근할 때 압축이 해제된다).

mkcramfs 유틸리티와 루프백 디바이스로 cramfs를 사용할 수 있다.

SquashFS

SquashFS는 플래시 디바이스 내부에서 유용하게 사용 가능한 또 다른 압축 읽기 전용 리눅스 파일 시스템이다. SquashFS는 다양한 라이브 CD 리눅스 배포판에서도 찾을 수 있다. 압축을 위해 zlib 지원 이외에도 SquashFS는 압축 수준과 속력을 개선하기 위해 LZMA(Lembel-Ziv-Markov chain Algorithm)를 활용한다.

cramfs와 마찬가지로 표준 리눅스 시스템에서 mksquashfs와 루프백 디바이스로 SquashFS를 사용할 수 있다.


JFFS2(저널링 플래시 파일 시스템 2)

JFFS가 개발된 시절에는 아주 유용했지만, 닳기 균등화 알고리즘은 NOR 플래시 디바이스 수명을 단축하는 경향이 있었다. 이런 결과로 인해 순환 로그를 제거하도록 기반 알고리즘을 다시 설계하게 되었다. JFFS2 알고리즘은 NAND 플래시를 위해 설계되었으며, 압축을 통한 성능 향상을 포함한다.

JFFS2에서 플래시에 있는 각 블록은 독립적으로 다뤄진다. JFFS2는 디바이스 닳기 균등화에 충실하게 블록 목록을 유지한다. clean 목록은 유효한 노드가 가득 찬 디바이스에 있는 블록을 표현한다. dirty 목록은 최소한 사용되지 않는 노드가 하나라도 있는 블록을 포함한다. 마지막으로 free 목록은 삭제되어 사용 가능한 블록을 표현한다.

가베지 컬렉션 알고리즘은 합리적인 방식으로 무효한 블록을 수집할지 현명하게 판단한다. 현재, 일고리즘은 확률적으로 clean이나 dirty 목록에서 선택한다. dirty 목록에서 (유효한 내용을 다른 블록으로 옮기는 방법으로) 무효한 블록을 수집하는 데 선택된 99% 시간을 보내고, clean 목록에서 (단순히 새로운 블록으로 내용을 옮기는 방식으로) 무효한 블록을 수집하는 데 1% 시간을 보낸다. 양쪽 모두 선택된 블록을 삭제하고 free 목록에 넣는다(그림 3 참조). 이는 가베지 컬렉터가 사용되지 않는 블록을 재활용하도록 만들지만 여전히 정적 닳기 균등화를 지원하기 위해 플래시를 헤집고 다니면서 자료를 옮겨야 한다.


그림 3. JFFS2에서 블록 관리와 가베지 컬렉션
JFFS2에서 블록 관리와 가베지 컬렉션 



IDE(Intergrated Drive Electronics)

IDE는 컴퓨터 마더보드의 데이터 버스와 컴퓨터의 디스크 저장 장치간에 사용되는 표준 전자 인터페이스이다. IDE 인터페이스는 IBM PC의 ISA 16 비트 버스 표준에 기반을 두었으나, 다른 버스 표준을 사용하는 컴퓨터에서도 사용된다. 최근에 팔리는 대부분의 컴퓨터들은 EIDE라고 불리는 IDE의 기능 강화판을 사용한다. IDE는 디스크 드라이브 콘트롤러가 디스크 드라이브 내의 논리적 보드 내에 기본으로 장착되기 때문에 그러한 이름이 붙여졌다.


SATA(Serial ATA)

SATA 또는 직렬 ATA(Serial ATA)는 하드 디스크 혹은 광학 드라이브와의 데이터 전송을 주요 목적으로 만든 컴퓨터 버스의 한 가지이다. 흔히 사타라고 읽으며 새터, 세이터라고 발음하기도 한다.

SATA는 예전의 ATA 표준을 계승하여, ‘병렬 ATA(PATA, Parallel ATA, 기존의 ATA)’를 대체하기 위해 고안되었다.

SATA 어댑터와 장치들은 비교적 속도가 빠른 직렬 연결을 이용하여 연결된다.


Posted by eoseontaek