Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 코테
- 리눅스
- Linux
- 문자열
- 월간코드챌린지
- 개발자 회고록
- 백준 javascript
- 연습문제
- 반복문
- GoingBus
- 리눅스마스터 1급 정리
- 리눅스마스터1급
- 자바스크립트 코딩의 기술
- map
- Java
- Kotlin
- 코딩테스트
- toCharArray
- 고잉버스
- 카카오
- 스프링 컨테이너
- 자바
- Memoir
- 리눅스마스터 3과목
- 백준 java
- java 백준 1차원 배열
- 스프링 빈
- JavaScript
- 명령어
- 프로그래머스
Archives
- Today
- Total
hoon's bLog
리눅스 실무의 이해 | 리눅스 시스템의 이해 2 본문
반응형
1. 리눅스의 구조
1). 부트 매니저
- 부팅을 도와주는 역할을 하는 프로그램
- 선택하여 부팅할 수 있도록 해줌
- 부트로더
- 하드디스크의 맨 앞쪽 영역인 MBR(Master Boot Record)에 설치
- MBR은 부트 섹터로 디스크의 첫 번째 섹터에 해당하고 크기는 512 바이트
- 부트 섹터에 부트 매니저 프로그램과 파티션 정보가 기록
- 리눅스에서 사용하는 대표적인 부트 매니저 프로그램에는 LILO(Linux Loader)와 GRUB(Grand Unified BootLoader)가 있음
- LILO는 특정 파일 시스템에 구애받지 않고 플로피 디스크와 하드디스크를 이용한 부팅을 지원
- 현재는 GRUB 씀.
2). GRUB
- GNU 프로젝트에서 만든 부트로더
- 다양한 파일 시스템 지원
- 부팅 시에 커널 인자를 조정하여 동적인 부팅을 지원
- 메뉴 인터페이스 방식을 기본으로 사용. Bash와 같은 명령행 인터페이스를 추가로 제공 .
GRUB의 부팅 모드
- [a] : 매개변수를 추가. 맨 뒷부분을 입력할 수 있게 해줌.
- [e] : 부팅 목록의 모든 항목을 직접 편집할 수 있음
- [c] : 상호대화식으로 직접 입력할 수 있는 모드로 사용 방법은 명령어를 입력하는 환경이 Bash Shell과 비슷
GRUB의 환경 설정 파일
- #boot=/dev/sda : 부팅이 되는 하드디스크를 지정. 하드 하나인 경우 주석처리
- default : 전원을 켰을 때 기본적으로 부팅되는 운영체제를 설정하는 항목
- timeout=10 : GRUB 메뉴 화면에서의 대기 시간.
- splahimage=(hd0. 3)/boot/frub/splash.xpm.gz : GRUB 화면의 배경 이미지를 지정.
2. 디렉터리 구조 및 역할
1). 디렉터리의 개요
트리구조로 갖추어 계층적으로 관리
2). 디렉터리 종류와 특징
- /bin : 실행 파일. 명령어. 보통 PATH가 설정(cp, mkdir, rmdir, mv, rm, cat)
- /boot : grub 관련 파일. 부팅 이미지 파일, 커널
- /dev : 실제로 존재하는 물리적인 장치 등을 파일화하여 관리
- /etc : 시스템 환경 설정 파일 및 부팅과 관련된 여러 가지 스크립트 파일
- /lib : 각종 라이브러리가 저장. 커널 모듈
- /mnt : 하드디스크, 네트워크 파일 시스템 등을 마운트할 때 포인터가 되는 디렉터리.
- /misc : 자동 마운트 프로그램인 autofs에 의해 사용됨
- /opt : 응용 프로그램들의 설치를 위해 사용됨
- /proc : 가상 파일 시스템. 다양한 프로세스의 상태 정보, 하드웨어 정보 등
- /sbin : 시스템 관리에 대한 명령어들이 들어 있는 디렉터리. root가 사용. 시스템 종료 명령, 네트워크 인터페이스 설정 명령. 시스템 점검과 복구 등의 명령어
- /usr : 시스템 운영에 필요한 명령, 응용 프로그램들이 위치하는 디렉터리. 커널 소스, c언어 헤더 파일, mysql, php 등 이 디렉터리에 설치됨. /usr/bin,sbin은 응용 프로그램 명령어들이 있고, /usr/local에 설치됨.
- /var : 운영 로그 파일과 스풀링과 같은 가변적인 데이터를 보관하는 디렉터리
3. 부팅과 셧다운
1). 부팅의 개요
하드디스크에 설치된 운영체제의 부팅과정
- 컴퓨터 전원을 켜면 바이오스는 컴퓨터에 장착된 하드웨어를 점검
- CMOS에 설정된 첫 번째 부팅 하드디스크를 확인
- MBR 영역에 있는 부트 매니저 프로그램을 실행
- 부트 매니저 프로그램은 관련 환경 설정 파일을 참고하여 운영체제 부팅을 시작
2). 리눅스 부팅
리눅스 부팅의 하드웨어 인식단계
- 부트 매니저 프로그램인 grub이 시작되면 리눅스 설치 시에 인식된 하드웨어 설정대로 부팅을 진행
- 부팅 시 커널에 포함시킬 모듈들은 관련 환경 설정 파일을 읽어들여 관련 모듈을 커널에 적재하기까지가 하드웨어 인식 단계
리눅스 부팅의 소프트웨어 구동 단계
- 루트 파일 시스템을 읽기 전용 형태로 마운트하고 검사 후 이상이 없으면 쓰기 가능 형태로 다시 마운트
- 그 후 init 프로세스를 발생시켜 리눅스 부팅과 관련된 소프트웨어 구동은 init 프로세스에 위임
- init은 /etc/init/ 디렉터리 안에 설정되어 있는 환경 설정 파일을 읽어 들여서 동작
환경 설정 파일
- /etc/initab : 부팅과 관련된 실행 레벨이 정의
- /etc/init/rcS.conf : 시스템 초기화와 관련된 내용이 설정. /etc/rc.d/rc.sysinit 스크립트를 실행 이 파일이 호스트명 설정, 시스템 점검, RAID 및 LVM 장치 홝성화, 쿼터 설정 활성화 등을 함
- /etc/init/rc.conf : 부팅 시 각 레벨별로 진행되는 내용이 설정된 파일. /etc/rc.d/rc 스크립트 실행.
- / etc/rc.d/rc.local : 사용자가 부팅 시에 필요한 서비스를 구동할 때 이 파일 안에 등록
3). 실행 레벨
init 데몬에 의해 수행되어질 내용이나 시스템 초기화 등을 정의해둔 여러 가지 모드
0 : 시스템을 중지할 때 호출되는 레벨
1 : 관리자 모드
2 : 네트워크를 사용하지 않는 다중 사용자 모드
3 : 네트워크를 사용하는 다중 사용자 모드
4 : 사용자 정의
5 : X 윈도를 사용하는 다중 사용자 모드
6 : 시스템을 재부팅할 때 호출되는 레벨
로그인
- 실행 레벨이 3인 경우 6개의 가상 콘솔을 통해 로그인
- 실행 레벨이 5인 경우 X-Window 기반의 그래픽 로그인 창이 나타남
- 실행 레벨 3에서는 getty라는 프로그램이 터미널이나 콘솔에 로그인 프로그램을 실행, 이 때 메시지 파일인 /etc/issue의 내용을 상단에 출력
로그인 메시지 관련 파일
- /etc/issue : 'login:' 메시지 전에 출력되는 내용을 적는 파일
- /etc/issue.net : 위와 같은데 텔넷을 통한 네트워크 접속 할 때 축력되는 메시지를 기록
- /etc/motd : 'Message Of The Day'의 약어로 성공적으로 로그인되었을 때 접속된 사용자에게 보여주는 메시지
4). 시스템 종료
shutdown : 시스템을 재시작하거나 전원을 종료하는 명령어. root만 가능
사용법 | $ shutdown [option] 시간 [경고메시지]
option).
- -r : 시스템 재부팅(reboot)
- -h : 시스템 종료(halt)
- -c : 예약된 셧다운 명령을 취소
- -k : 실제로 셧다운 하지 않고 경고 메시지만을 접속한 사용자들에게 전송
reboot : 시스템을 재시작하는 명령어. 모두 사용 가능
사용법 | $ reboot [option]
option).
- -w : /var/log/wtmp에 셧다운한 기록만을 저장
halt : 시스템을 종료하는 명령어. 모두 사용 가능
사용법 | $ halt [option]
option).
- -p : 시스템 종료하고 전원까지 끄는 경우에 사용하는 옵션
poweroff : 시스템 종료 및 전원을 끔
init, telinit : 실행 레벨을 변경할 때 사용
사용법 | $ init 실행 레벨
4. 파일 시스템의 개요
1). 파일 시스템의 개요
운영체제가 파티션이나 디스크에 데이터를 저장화고, 읽고, 쓰고 찾기 위해 구성하는 일련의 체계를 의미
파일 시스템의 기능
- 파일을 생성, 수정, 삭제할 수 있게 함
- 사용자가 파일을 사용하기 적합한 형태의 구조로 구성
- 파일을 공동으로 사용할 수 있는 적절한 제어 방법 제공
- 판독 접근, 기록 접근, 수행 접근 등의 다양한 접근 제어 방법 제공
- 백업 복구 기능 준비
- 암호화, 복호화 기능
- 인터페이스 및 명령어
리눅스 파일 시스템의 구조
- 디스크 드라이브 이용 시에 파티션을 분할 하고 흔히 포맷이라고 부르는 작업을 통해 파일 시스템을 생성
- I-list는 아이노드 번호의 목록
- 저장되는 정보는 Directory Blocks and Data Blocks 영역에 저장.
- 디렉터리 블록에는 아이노드 번호와 파일명이 저장
- 데이터 블록에는 파일이 보관해야할 정보를 저장
ex2 파일 시스템
- 부트 블록(부트 섹터), 블록 그룹으로 구성
- 블록은 파일 시스템에서 기본적으로 데이터를 저장하는 단위
- Super Block, Group Descriptor, Block Bitmap, Inode Bitmap, Inode Table, Inode Block, 데이터 블록으로 구성
- 슈퍼 블록은 파일 시스템에 대한 전체적인 정보를 가지고 있음 주요 정보로 매직 넘버, 마운트 정보, 전체 아이노드 수 및 남은수, 전체 블록 수 및 남은 수, 블록 그룹 번호, 블록 크기, 그룹 당 블록 수 등이 있음.
- 그룹 기술자는 각각의 블록 그룹을 기술하는 자료구조로서, 저장되는 주요 정보는 블록 비트맵, 아이노드 비트맵, 아이노드 테이블이 있음
- 추가적으로 간접 블록은 추가적인 데이터 블록을 위한 포인터들이 사용할 동적으로 할당되는 공간.
728x90
반응형
'IT > Linux Master 1급' 카테고리의 다른 글
리눅스 시스템 관리 | 일반 운영관리 1 (0) | 2021.08.24 |
---|---|
리눅스 실무의 이해 | 리눅스 시스템의 이해 3 (0) | 2021.08.13 |
리눅스 실무의 이해 | 리눅스 시스템의 이해 1 (0) | 2021.08.10 |
리눅스 실무의 이해 | 리눅스의 개요 2 (0) | 2021.08.09 |
리눅스 실무의 이해 | 리눅스의 개요 1 (0) | 2021.08.05 |