1.OS구성
-제어 프로그램
+)감시 프로그램(Supervisor)
:각종 프로그램의 실행과 처리에 관여.
+) 작업관리 프로그램(Job Management)
: 시스템 스케쥴링 및 자원의 할당을 담당
+)데이터 관리 프로그램(Data Management)
:입출력 데이터 관리 및 수정 그리고 유지보수 기능 제공
-처리 프로그램
+)통신 관리 프로그램(Communication Management)
:CPU와 주변 장치간의 신호교환 원할 통제 및 외부 통신 회선과 통신 제어
+) 언어 번역 프로그램: 저급언어>고급언어(기계어)[컴파일,링커]
+) 서비스 프로그램: 컴퓨터 시스템을 효율적으로 사용하도록 지원
+)문제 프로그램: 특정 업무 및 해결
기능
1) 자원 관리 기능
2) 프로세스 관리 기능
3) 기억장치 관리 기능
4) 입출력 장치 관리 기능
5) 파일 관리 기능
2.Kernel
: os의 핵심이 되는 컴퓨터 프로그램의 하나로 모든 시스템 통제
: 보안, 자원관리, 디바이스 인터페이스 추상화 등을 수행
3.Shell
-종류
+)그래픽 기반 GUI
우리에게 친숙한 windows shell이고 리눅스계열 운영체제들이
단독 동작이 아닌 Xorg와 함께 사용
+)텍스트 기반 CLI
sh와 편의 기능인 bash이 있고 csh, fish,zsh등 다양한 셀을 설치하 여 사용이 가능하고 입맛대로 편의기능 선택 및 꾸미기 가능
ex) 터미널 에뮬레이터
-셸 스크립트
터미널 과 터미널 에뮬레이터
-터미널 :입출력만 담당하는 CRT모니터와 키보드로 구성된 기기(과거 정의)
-터미널 에뮬레이터: 그래픽 화녀경에서 터미널을 모사함
6.시스템 콜(System call)
:프로세스가 커널에게 요청을 전달하는 기능
ex)
kill - 프로세스 제어
mkdir - 폴더 생성
read - 파일 읽기
7.환경 변수(environment variable)
:셸에서 단어 앞에 $가 붙은 것으로 프로세스 단위로 사용하는 변수
8.패키지 관리자(package manager)
:새로운 프로그램 설치 혹은 기존 프로그램 업데이트 편하게 해주는 도구
:프로그램과 라이브러리를 패키지 단위로 설치 및 관리
-apt -get: 공인 저장소에서 패키지를 가져다 설치 혹은 제거
10.사용자 그룹
:쉽게 묶어서 관리하는 개념.
12.하드웨어
1)연산장치
+)CPU: 연산 세트를 나타낸다 허나 공정과정이 너무 빡세서 기타 등등의 경제적 물리적인 이유로 단점이 있습니다.
+)GPU: CPU의 문제점을 보완한 그래픽 연산으로 CPU보다 명령어는 훨씬 적지만, 코어 수를 훨씬 늘리는 방법으로 다차원 행렬 연산.
+)TPU
+)ASIC
+)FPGA
2)저장장치
-주 저장장치
+RAM): 비싸고 휘발성입니다.
-보조 저장장치(가격이 저렴하고 비휘발성)
+HDD
+SSD
3) 딥러닝과 저장장치
GPU-->연산이 빨라짐-->속도에 병목지점(제한된 용량이 전체의 용량을 줄게 만드는 현상) 발생 BY(GPU/CPU 처리 속도가 아님)
SSO 변경 혹은 여러개의 스레드를 통해서 RAM메모리 증가->데이터 읽기 시간감소시키기!!
4)클라우드와 가상화
+)클라우드 컴퓨팅
:물리적인 서버를 여러 개의 가상 서버로 쪼갬.
+)가상화
:이처럼 하나의 컴퓨터를 쪼개어 여러 대의 컴퓨터가 있는 것처럼 사용
host:가상화에서 실제 물리적인 서버
guest: 호스트에서돌아가는 가상 서버
-가상머신(Virtual Machine)가상화 : 게스트 자체에 os 돌아감
-컨테이너(Container)가상화: 커널의 기능만 공유할 뿐 간섭X
5)도커(Docker)
:컨테이너 가상화를 손쉽게 제공하는 프로그램.
:독립된 작업 환경을 구분하는데 사용
echo: 뒤이어 입력한 내용 출력
pwd: 현재 내가 위치한 디렉토리 위치 출력
cd: 내가 있는 현재의 위치로 이동
ps:현재 터미널과 관련된 프로세스 목록 출력
ps -e:현재 실행중인 프로세스 확인
ps -ef:모든 터미널에서 현재 실행중인 프로세스 목록 및 부가정보 출력
:누구의 권한(UID),파일경로 등등 알 수 있다.
grep:특정 문자열만 포함한 라인만 선택해서 출력/
정규식을 활용해 텍스트 검색
sudo: 이어지는 명령을 최고 권리자 권한으로 실행
find:파일을 찾습니다.
kill: PID에 해당하는 프로세스에 해당하는 시그널 보냄
which: 명령어의 전체 경로 출력
bash:해당 명령어를 실행한 셸
export:셸 변수나 함수를 현재 환경으로 보냄
env:현재 설정된 환경변수 모두 출력
chmod:대상 파일의 권한 변경
less:텍스트 파일의 내용을 자유롭게 조회하고 검색
head: 텍스트 파일의 앞 몇 줄만 출력
tail: 텍스트 파일의 마지막 몇 줄만 출력
cut:텍스트를 구분자에 따라 나눈다
uniq:텍스트 중 중복값들을 제거
wc: 텍스트를 단어,줄,문자등 단위로 셉니다
comm: 텍스트 파일을 비교합니다
zcat: 압축된 텍스트 파일을 출력
sed: 정규식을 활용해 텍스트 변형
awk:텍스트 스캔하고 변형
ln:파일에 대한 링크 생성
touch: 파일 저근 및 수정 시간 변경
tar: 하나의 아카이브 파일로 통합 후 압축
mount:새로운 저장장치를 파일시스템으로 추가
ssh:원격으로 셸에 접속
tmux: 여러 개의 셀 세션 관리 및 유지
watch: 이어지는 명령을 주기적 실행
curl:주어진 URL과 통신
wget: 네트워크를 통해 파일 다운로드
scp:SSH를 통해 원격 파일 전송
ls: 현재 디렉토리 내의 파일 및 폴더 출력
ls --all 실행 시
~ :홈 디렉토리 / .:현재 폴더(숨긴파일 ㅎ) / ..:상위 폴더
ls -l: 각 파일의 자세한 정보 출력
ls -h: 파일 크기를 사람이 볼 수 있는 단위로 표시
ls -t: 파일 수정시간 순으로 정렬해서 출력
ls -r: 정렬 순서를 뒤집어서 출력.
-Crtl+Shift+C, Ctrl+Shift+V : 복사붙여넣기
-위 아래 화살표를 통해 실행 명령 재입력
-history명령:기존 실행 명령 표시./ 셸 명령어 이력 출력
+!번호 : 번호를 참고하여 해당 번호의 명령 다시 실행
-Crtl+A, Crtl+E 를 통해 명령어의 앞,뒤로 커서 이동
-Clear명령어 또는 Crtl+L : 깨끗이 지우기
-Ctrl+z: 프로세스 중지
-fg:다시 재개
-Ctrl+C 또는 Esc 누른 후 :q!입력 후 엔테 :vi편집기 종료
:명령어의 결과를 파일에 저장
: 명령어의 결과가 기존 파일 뒤에 추가