중간고사
- 매 챕터 학습정리, 연습문제, 예제
- OX, 사지선다
운영체제
- 컴퓨터는 하드웨어와 소프트웨어로 구분
- 소프트웨어는 시스템 소프트웨어와 응용 소프트웨어로 구분
- 운영체제 기능-메모리 관리, 입출력 관리, 파일 및 데이터 관리, 프로세스 관리, 기억장치 관리, 자원관리, 스케줄링
유닉스 특징
- 뛰어난 통신, 호환성, 유연성
- 복수 사용자, 다중 처리
- 대화형 시스템
- 셸 프로그래밍
- 계층적 파일 시스템
- 다양한 소프트웨어 개발 도구
유닉스 구조
- 커널: 운영체제 주요 기능
- 셸(shell): 명령어 번역기, 커널과 사용자 사이 인터페이스
- 유틸리티: 사용자 편의를 위해 만들어진 시스템 프로그램
리눅스
- UNIX의 많은 장점을 흡수
- 리눅스는 운영체제 커널의 일부
- 리누스 토발즈에 의해 최초 리눅스 커널 개발
- GNU: 공개 라이센스 소프트웨어
- 단점: GNU이기 때문에 문제점 발생 시 보상X, 한글 입출력 어려움, 사용자를 위한 통합 개발 환경 및 응용 프로그램 부족
- GPL: 무료 소프트웨어, 프로그래머는 이 소프트웨어로 발생한 어떤 문제에 법적 책임 X
- 배포판: 데이란 리눅스, 레드헷, CentOS 리눅스, 수세 리눅스, 슬랙 웨어
리눅스 커널
- 모노리식 커널: 모든 기능이 하나의 주소공간에서 한 프로그램으로 실행
- 커널 모듈 지원: 커널의 다른 부분과 독립적으로 컴파일, 모노리식의 단점 해결
리눅스 설치
수업은 CentOS를 사용하나 나는 GCP의 우분투로 학습하였다.
파티션
- 하드디스크를 논리적으로 나눈 구역(각 구역은 드라이브로 인식)
- 파티션 테이블: 파티션 정보를 저장
- primary 파티션: 파티션 테이블에 저장된 4개의 파티션
- Logical 파티션: 사용자가 만든 파티션(Extended 파티션 안에 생성)
- Extended 파이션: 4개의 파티션 중에 하나. Logical 파티션의 껍데기
리눅스 파티션
- 리눅스는 최소 두개 이상의 파티션 필요
- 리눅스 파티션: 리눅스 시스템이 운영. 사용자가 크기 조정 가능
- 스왑 파티션: 물리적인 메모리 부족 방지를 위해 가상으로 사용. 설치된 메모리의 약 2배
- 리눅스 파티션 설정-Fdisk(텍스트 콘솔 타입), 디스크 드루이드(비주얼함)
리눅스 디렉토리
- 루트(/): 리눅스 파일 시스템이 있음
- 부트(/boot): 부팅될 때 커널 이미지와 부팅 정보 파일이 있음
- 시스템 설정 파일(/etc): 중요한 시스템 환경 설정 파일이 있음
- 바이너리(/bin): 기본적인 실행 명령어가 들어 있음
- 공유 라이브러리(/lib): 프로그램들이 의존하는 라이브러리들이 있음
- 사용자 계정(/home): 시스템 관리자가 만든 계정을 가진 사용자를 위한 독립적인 공간
- 시스템 정보(/proc): 커널의 정보를 가지고 제어하는 가상 파일 시스템
- 시스템 관리와 관련된 실행 명령어(/sbin): 시스템 점검 및 복구, 네트워크 인터페이스 설정, 시스템 초기화 및 종료, 커널 모듈 등
- 가변 자요 저장(/var): 시스템 운영중에 변경된 자료를 저장
- /var/log: 시스템 로그 파일
- /var/named: 네임 서버 설정 파일
- 디바이스(/dev): 디바이스 드라이버 저장
- 사용자(/usr): 특별하고 중요한 기능의 파일
- /usr/bin: 압축 파일, 네트워크 실행 파일, 자료전송 파일
- /usr/sbin: 주로 네트워크 관련 실행 명령어와 데몬
- /usr/include: 기본 c 라이브러리 파일과 각종 라이브러리 파일
- /usr/lib: /usr/bin과 /usr/sbin에 있는 실행 바이너리를 위한 라이브러리
리눅스 시작
일반적인 운영체제 부팅 과정
- 전원 공급
- ROM BIOS의 부트로더가 MBR(Master Boot Record)에 있는 부팅 관련 프로그램 실행
- 부팅 관련 프로그램이 MBR의 정보를 바탕으로 OS의 부트 섹터로 제어 권한 넘김
- 부트 섹터는 부트 프로그램으로 운영체제를 메모리에 로드
MBR
이 가지고 있는 정보
- 부팅 관련 프로그램
- 파티션 테이블: 파티션의 시작과 끝 주소, 부팅 가능한 파티션인지, 파티션 타입
응용 프로그램은 API를 이용해 운영체제를 이용
shutdown -h now
: 바로 종료rm -rf 이름
: 강제로 지우는것, 복구불가
파일 목록 확인
ls -l
: 기본 파일들만ls -als
: 숨김 파일 포함 모든 파일 리스트ls -als > test
: test 파일에 결과 텍스트로 저장
파일 옮기기
mv 기존파일이름 새로운파일이름
편집기 vi
vi test
: test 파일 편집- 입력모드 :
i
- 명령모드 : esc
- 라인모드 :
:set nu
- 방향 키 : h, j(아래), k(위), l
- 한행지우기 :
dd
- 저장 나가기 :
:wq
- 그냥 나가기 :
:q
- 저장안하고 나가기:
:q!
- &
- /pattern