정보보안기사 : 시스템보안

◆ 커널(Kernel)
- UNIX계열의 시스템이 부팅될 때 가장먼저 읽혀지는 운영체제의 핵심부분으로 주기억 장치에 상주. 프로세스 스케쥴링, 기억장치 관리, 파일 시스템 관리 등 운영체제 고유의 기능을 제공

◆ 운영체제의 5계층
1. 프로세서 관리 : 프로세서의 스케쥴링을 위한 관리
2. 기억장치 관리 : 기억공간의 할당과 회수기능을 실행하는 기억장치 관리
3. 프로세스 관리 : 프로세스의 셍성, 제거, 이들간의 메시지 전달, 시작과 정지드을 담당
4. 주변장치 관리 : 주변장치의 상ㅌ를 관리, 입출력장치의 스케쥴링
5. 파일과 데이터 관리 : 파일의 생성과 소멸, 팡리의 오픈과 클로즈, 파일의 유지관리 담당

◆ 프로세스
- 시스템 작업의 기본 단위
- 현재 수행상태에 있는 프로그램을 의미 (수행중인 응용프로그램, CPU 스케쥴러 등)
- 프로세스가 할당받고 있는 자원 및 자원에 대한 추가 요청 여부에 따라 프로세스의 상태가 결정됨

◆ PCB (Process Control Block) : 프로세스 제어 블럭

- OS가 프로세스에 대한 중요한 정보를 저장할 수 있는 장소
- 프로세스의 현재 상태, 고유 식별자, 우선 순위, 프로세스가 적재된 기억장치 포인터, 할당받은 자원을 가리키는 포인터, 레지스터 내용을 저장하는 장소 등이 저장됨

◆ 스케쥴링 기법

- 선점 스케쥴링 : RR(Round-Robin), SRT(Shortest-Remaining-Time), MLQ(MultiLevel Queue), MFQ(Multilevel Feedback Queue)
- 비선점 스케쥴링 : FIFO(First-In-First-Out), SJF(Shortest-Job-First), HRN(Highest Response-raito Time)
- FCFS(First Come First Service) : 프로세스들이 대기큐에 도착한 순서대로 CPU를 할당
- SRT : SJF와 마찬가지로 새 프로세스를 포함해 가장 짧은시간이 걸리는 얘한테 CPU를 할당
- HRN : SJF의 약점을 보안 (작업시간 간의 지나친 불평등을 보완)
- RR : FCFS로 프로세스들이 내보내지며 각 프로세스는 같은 크기의 CPU할당 시간을 가짐


◆ 교착상태 필요조건

- 상호배제 : 프로세스들이 필요로 하는 자원에 대해 배타적 통제권을 요구
- 점유 및 대기조건 : 프로세스가 자기 자원을 가지고있는 상태에서 다른 자원을 요구
- 비선점조건 : 프로세스가 점유한 자원은 사용이 끝날 때까지 해제할 수 없음
- 순환 대기 : 프로세스들의 순환 대기 사이클이 존재함

◆ 임계영역

- 하나의 프로세스가 공유자원을 변경하는 코드를 실행하고 있을 때 이를 임계영역에 있다고 한다
- 어떤 프로세스가 임계영역에 있을 때는 다른 프로세스가 임계영역에 들어가지 못함
- 어떤 프로세스가 임계영역에 들어가고자 할 때 비어있다면 즉시 들어갈 수 있음

◆ 메모리 반입 정책

- 최적 적합 : 입력된 프로그램을 수용할 수 있는 공간 중 가장 작은 공간을 할당
- 최초 적합 : 입력된 프로그램을 수용할 수 있는 공간 중 가장 먼저 발견된 공간을 할당
- 최악 적합 : 입력된 프로그램을 수용할 수 있는 공간 중 가장 큰 공간을 할당

◆ 스래싱 (thrashing)

- 프로그램의 실행보다도 페이징에 많은 시간이 필요하게 되는 상태
- 가상 기억 장치 시스템에서 시스템이 처리 할 수 있는 것보다 더 많은 작업을 무리하게 실행시키려 할 때 발생

◆ 페이징 (paging)

- 한정된 기억 용량으로 될 수 있는 대로 다수의 프로그램을 넣고 동시에 처리할 수 있도록 하기 위해 프로그램을 한번에 처리할 수 있는 적당한 크기(페이지)로 분할하여 처리하는 것
- 외부단편화 현상은 제거 할 수 있으나 내부 단편화 현상은 제거하지 못함

◆ Clock 알고리즘

- FIFO와 LRU알고리즘을 결합

◆ 메모리 단편화

- 프로그램을 할당하고 반납하는 과정이 반복되면서 사용하지 않고 남는 빈 공간 조각이 생기는것을 의미
- 내부단편화 : 할당 요청한 크기보다 처리 단위가 더 큼. 요청한 메모리보다 더 많이 할당되어 메모리가 낭비되는 현상
- 외부단편화 : 메모리가 띄엄띄엄 할당되어 있어서 요청한 메모리는 충분하지만 연속적으로 할당할 수 없는 현상


◆ 세그멘테이션

- 페이징에서 발생하는 내부 단편화를 해결하기 위한 기법
- 프로세스를 서로 다른 크기로 분할하며 메모리에 불연속적으로 할당하는 기법
- 페이징과 마찬가지로 논리주소를 물리주소로 변환

◆ 페이징 + 세그멘테이션 혼용

- 세그먼트가 너무 가변적, 때론 그 크기가 너무 커서 주기억장치에 적재할 수 없는 경우도 있음
- 프로그램을 논리적인 세그먼트 단위로 분할, 분할된 세그먼트를 다시 페이지 단위로 분할

◆ 레지스터 : 중앙처리장치 내부의 임시기억장소

- 번지 레지스터(MAR : Memory Access Register) : 주기억 장치의 번지를 기억
- 기억 레지스터(MBR : Memory Buffer Register) : 주기억 장치에서 연산에 필요한 자료를 호출
- 명령 레지스터(IR : Instruction Register) : 중앙 처리장치에서 현재 수행중인 명령어의 내용을 기억
- 명령 계수기(PC : Program Counter) : 다음에 수행할 명령어의 번지를 기억
- 누산기(Acc : Accumulator) : 연산의 결과를 임시로 저장
- 범용 레지스터(GPR : General Purpose Register) : 다목적으로 사용되는 레지스터
- 인덱스 레지스터(Index Register) : 유효 번지를 상대적으로 계산
- 베이스 레지스터(Base Register) : 유효 번지를 절대적으로 계산
- 상태 레지스터(Status Register) : CPU의 각종 상태를 표시, 비트별로 할당해서 플래그로 상태를 나타냄

◆ 트로이 목마

- 자기복제 능력이 없고 고의적인 부작용만 가지고 있는 악성 프로그램
- 정상적인 기능을 하는 프로그램처럼 위장
- 악성코드가 실행될 때 사용자 패스워드와 같은 정보를 수집
- 유용하거나 자주 사용되는 프로그램 또는 명령 수행 절차내에 코드를 삽입/잠복

◆ HTTP 상태코드

- 100번대 : information
▷ 100 : Continue. 서버가 request헤더를 받았고, 클라이언트가 request 바디 부분을 보내고있는중
▷ 101 : Switching Protocols. 요청자가 서버에게 switching protocol을 묻는 과정
▷ 102 : Checkpoint. 중단된 PUT과 POST요청을 재개할 목적으로 되찾을 수 있는 request를 사용
- 200번대 : Successful
▷ 200 : OK. 에러없이 성공
▷ 201 : Created. request가 되었고, 새로운 자원이 만들어짐
▷ 202 : Accepted. 서버가 request를 전송 받았으나 현재 완전하게 처리되지 않음
▷ 203 : Non-Authoritative Information. 서버가 클라이언트 요구 중 일부만 전송
▷ 204 : No Content. 서버가 클라이언트 요구를 처리했으나 전송할 데이터가 없음
▷ 205 : Rest Content. No Contenet상태라서 요청자의 document view의 reset이 필요할 때
▷ 206 : Partial Content. 클라이언트의 header범위 문제로 서버가 자원의 일부만 전달받은 상태
- 300번대 : Redirection
▷ 300 : Multiple Choices. 최대 다섯 개의 링크를 골라서 이동 할 수 있다.
▷ 301 : Moved Permanently. 요청된 페이지가 새 URL로 옮겨짐
▷ 302 : Found. 요청된 페이지가 일시적으로 새 URL에 옮겨짐
▷ 304 : See Other. 요청된 페이지는 다른 URL아래서 찾을 수 있음
▷ 305 : use proxy. location field에 proxy의 URL을 사용
▷ 306 : switch proxy. (더 이상 사용하지 않는 코드)
▷ 307 : temporary redirect. 302랑 같음
▷ 308 : resume incomplete. 103코드와 같음
- 400번대 : Client Error
▷ 400 : bad request. 요청 사항에 문법적인 오류가 있어서 서버가 이해 할 수 없음
▷ 401 : unauthorized. 해당 요청에 대한 권한이 없음
▷ 402 : payment required. (미래에 사용하기 위해 예약된 코드(?))
▷ 403 : forbidden. 금지된 요청을 허가하지 않음
▷ 404 : not found. 요청한 페이지를 찾을 수가 없음
▷ 405 : method not allowed. request에 명시된 요청 메소드가 제공되어지지 않음
▷ 406 : not acceptable. request에서 accept header에 not acceptable의 내용을 가진 자원을 요청한 경우
▷ 407 : proxy authentication required. 프록시 서버에게 해당 요청이 수행되도록 인증을 받아야 함
▷ 408 : request timeout. 요청 대기 시간이 지남
▷ 409 : conflict. request 충돌로 인해서 요청이 완료되지 못함
▷ 410 : gone. 요청 페이지는 더 이상 사용할 수 없음
▷ 411 : length required. content-length부분이 빠져서 요청을 허가하지 않음
▷ 412 : precondition failed. request헤더 필드에 선결 조건에 대한 값이 서버에서 false가 나왔을 경우
▷ 413 : request entity too large. 요청 개체가 서버가 처리하기에 너무 큼
▷ 414 : request-URI too long. 요청 URI가 너무 김. POST를 GET으로 바꿀 때 종종 일어남
▷ 415 : unsupported media type. 지원하지 않는 미디어 타입을 요청함
▷ 416 : requested range not satisfiable. 클라이언트가 파일의 일부를 요청했을 때 서버가 지원하지 않음
▷ 417 : expectation failed. expect request-header필드의 요구를 서버가 충족시킬 수 없음
- 500번대 : Server Error
▷ 500 : internal server error. 일반적인 서버 에러 메세지
▷ 501 : not implemented. 서버가 해당 요청 메소드를 인식못하거나 이행할 능력이 없는 경우
▷ 502 : bad gateway. 게이트웨이나 프록시의 상태가 나쁘거나 과부하일 경우
▷ 503 : service unavailable. 일시적인 과부하나 서비스 중단 상태
▷ 504 : gateway timeout. 과부하 등의 이유로 게이트웨이나 프록시의 한계 대기 시간이 지남
▷ 505 : HTTP version not supported. request에서 사용한 HTTP프로토콜을 서버가 지원하지 않음
▷ 511 : network authentication required. 클라이언트의 네트워크 인증 필요

◆ 유닉스 운영체제 3요소

- 커널(Kernel) : 유닉스 운영체제의 핵심중의 핵심. 메인 메모리에 상주. 컴퓨터 자원 관리
- 쉘(Shell) : 커널과 사용자간의 인터페이스를 담당. 사용자 명령의 입출력 수행. 프로그램 실행
- 파일시스템(File System) : 디렉터리, 서브 디렉터리, 파일등의 계층적 트리구조를 제공

◆ 유닉스 시스템의 로그인 과정


1. init getty - /bin/login
2. /bin/sh
3. /etc/profile
4. $HOME/.profile

◆ 파일시스템의 마운트 옵션

- default : 모든 것
- noquota : 쿼터 사용안함
- nosuid : SUID 접근 불가능
- quota : 쿼터 사용
- ro : 읽기가능
- rw : 읽기쓰기 가능
- suid : SUID 접근 가능


댓글

이 블로그의 인기 게시물

ping 일반오류 (General failure)를 고쳐보자

Windows 10. 공유폴더 쉽게 삭제하기 (feat. CMD)

Piolink TiFront Switch password recovery (파이오링크 스위치 비밀번호 초기화)