IT/Linux
리눅스 셸(Shell), 환경 변수
셸이란? 커널과 사용자간 다리 역할을 하는것. 사용자로부터 명령을 받아 해석하고 실행하는 역할. 리눅스는 본셸(sh)을 기본으로 ksh와 csh 장점을 결합한 bash를 표준으로 한다. sh : 본셸(Bourne Shell) 1977년 AT&T 벨 연구소에 근무하는 스티븐 본이 개발한 유닉스 버전 7의 기본 셸 bash : 1989년 브라이언 폭스가 GNU 프로젝트를 위해 개발한 배시셸. 본셸을 기반으로 만들어졌다. csh : C 셸 1978년 버클리 대학의 빌 조이가 개발. C 언어를 기반으로 만들어졌다. 히스토리 기능, Alias 기능, 작업 제어 등 유용한 기능들을 포함하였다. tcsh : 1975년 켄 그리어가 티넥스 운영체제에 명령행 완성 기능을 반영하고 csh와 통합해서 탄생 ksh : 콘셸(..
X 윈도
X 윈도의 특징 네트워크 프로토콜에 기반을 둔 그래픽 사용자 인터페이스 환경으로 디스플레이에 의존성이 없고 플랫폼 제약이 없어 다른 기종간 사용이 가능하다. 다양한 그래픽 환경을 제공하며 원하는 UI를 직접 편집할 수 있다. X 윈도의 구조 클라이언트/서버 구조로 되어있으며 통신을 위해 X Protocol을 사용한다. X 서버란 그래픽을 제공하는 시스템이고, X 클라이언트는 서버 위에서 동작하는 응용프로그램이다. 로컬 사용자가 입력 장치를 사용하면 TCP 6000 포트로 전달되고, X 클라이언트 프로그램이 실행된다. Xlib Xlib란 C언어로 구현된 클라이언트 라이브러리로 X 서버와 통신을 한다. 관련 프로토콜의 정보가 없어도 Xlib를 통해 다양한 프로그램 구현이 가능케한다. Xlib는 저수준 인터페..
리눅스 파일 시스템
파일 시스템(File System) OS가 파티션에 데이터를 저장하고 읽고 쓰고 찾기 위해 구성하는 체계를 말한다. OS 설치 시에 일어나며 포맷이라는 작업을 통해 고유한 파일 시스템을 구축하게 된다. 리눅스 시스템은 모든것이 파일이다. 파일 시스템의 기능 파일의 생성, 수정, 삭제 제공 공동으로 사용할 수 있는 제어 방법 제공 공유를 위한 판독 접근, 기록 접근, 수행 접근 등 접근 제어 방법 제공 백업, 복구를 위한 기능 준비 사용자와 장치 간의 독립성 유지를 위해, 물리적 이름 대신 적절한 이름 제공 정보의 암호화와 복호화 제공 접근하기 쉬운 인터페이스 및 명령어 제공 리눅스 파일 시스템 다양한 파일 시스템을 지원하는데 리눅스 커널 2.4 버전부터 ext4 파일 시스템을 사용한다. 저널링 파일 시스..
리눅스 부팅, 실행 레벨, 로그인 메시지, 셧다운
리눅스 부팅 MBR에 설치된 부트 매니저 프로그램인 GRUB을 시작으로 CLI 기반 콘솔 로그인 화면까지의 과정을 부팅이라고 한다. OS 부팅과정 전원을 켜면 BIOS는 H/W를 점검한다. 점검이 끝나고 BIOS는 CMOS에 설정된 첫 번째 부팅 디스크를 확인하고 부트 섹터에 있는 부트로더를 실행한다. 부트로더는 환경 설정 파일을 참고하여 OS 부팅을 시작한다. H/W 인식 및 점검 리눅스 커널은 단일형 커널 형태로 외부 H/W를 사용하려면 드라이버가 커널 안에 포함되어 있어야 한다. 그러나 모든 모듈을 커널에 포함할 수 없기 때문에 모듈화 방법을 사용한다. 모듈은 커널과 분리되어 사용자의 필요에 따라 커널에 삽입되거나 제거될 수 있다. 모듈들은 환경 설정 파일 /etc/modprobe.conf나 /et..
리눅스 디렉터리 구조
디렉터리 (Directory) 디렉터리란 파일을 보관하는 곳으로 리눅스에서 최상위 루트(/)를 중심으로 하위 디렉터리에 다수의 디렉터리가 층층이 존재하는 트리 구조로 계층적인 형태를 하고 있다. 리눅스 기본 디렉터리 / : 최상위 디렉터리로 루트 라고 한다. /bin : binary의 약자로 실행 파일들이 들어있다. 명령어들의 PATH가 설정되어 있는 곳으로 cat, mv, cp, mkdir, rm 등이 있다. /boot : 부팅 이미지 파일이나 커널 등 시스템 부팅 시 필요한 파일이 들어 있다. grub 관련 파일 有 /dev : 디스크, 터미널 등 실제로 존재하는 물리적인 장치를 파일화 하여 관리하는 디렉터리 /etc : 시스템 환경 설정 파일 및 부팅 관련 스트립트 파일 有 /home : 개인 사용..
리눅스 클러스터링
클러스터링 컴퓨터 여러대의 컴퓨터를 연결하여 하나의 컴퓨터를 사용하는것 처럼 구성된 시스템을 말한다. 고계산용 클러스터(HPC), 부하분산 클러스터(LVS), 고가용성 클러스터(HA)로 나눌 수 있다. 고계산용 클러스터 (베어울프 클러스터) (HPC) 클러스터링의 시초로 채널 본딩한 16노드 병렬 컴퓨터를 만들었던 프로젝트 이름을 따서 베어울프라고도 부른다. 부하분산 클러스터 (LVM) Linux Virtual Server로 대규모 서비스를 제공하기 위한 목적의 클러스터링이다. 이용자가 많은 웹서비스에 많이 활용하며, 여러대의 리얼 서버에 부하를 분산해주는 로그밸런서를 두고 운영하는 방법이다. 고가용성 클러스터 (HA) 지속적인 서비스 제공을 목적으로 하는 클러스터로 부하분산 클러스터와 연동하여 많이 사..