새싹 인공지능 응용sw 개발자 양성 교육 프로그램 김기희 강사님 수업 정리 글입니다.
목차
운영체제는 MAPPER 판안에서 운영하는 컴퓨터 핵심 프로그램을 운영체제라고 한다.
운영체제의 핵심은 커널(kernel)이라고 한다.
하드웨어, 소프트웨어 2개로 나뉠 수 있다.
하드웨어는 물리적 장치, 소프트웨어는 컴퓨터 C드라이브. D드라이브
하나의 장치를 논리적 방법으로 2가지로 나눈 것이다.
프로그램을 작동시키기위해 메모리에 올려야 한다. CPU는 메모리하고만 논다. 메모리에 올리기 위해서 할당해야 한다. 할당해야 하는 메모리 공간에 프로그램코드를 올린다.
프로토콜은 통신규약임. 전송매체와는 다른 것
방화벽은 패킷을 일일이 검증한다.
프로그램, 소프트웨어 이런 것들을 마치 실제 존재하는 것 처럼 환경을 구성해 주는 가상 프로그램
virtual box을 이용하게 되면 실제 컴퓨터 안에 가상컴퓨터를 만들 수 있다.
실제컴퓨터(노트북)는 hostpc라고 한다.
실제 컴퓨터에 설치되는 가상컴퓨터를 guestpc라고 한다.
하나의 hostpc안에 여러개의 guestpc를 둘 수 있다.
전세계가 다 연결되어 있는 인터넷을 wan이라고 한다.
한 기업에 근거리 통신망을 lan이라고 한다. lan안에 hostpc가 있다.
근거리 통신망을 빠져나가려면 gateway가 필요하다.
들어올 때는 rauter가 맞이한다.
NAT
hostpc와 인터넷은 무조건 연결된다.
NAT는 외부에 있는 guestpc와 연결이 안 된다.
guest인터넷과 연결이 된다.
guestpc가 외부로 나갈 때는 hostpc의 rem카드를 갈아타고 나갈 수 있다.
hostpc가 내부의 guestpc와 연결하려면 포트포워딩(port forwarding)이 필요하다.
NAT Network
NAT은 guestpc간에 통신 불가
NAT Network는 guestpc간에 통신 가능
NAT Network은 언제든지 인터넷과 연결가능
Host Only Adapter
hostpc와 guestpc 서로간에만 연락가능하다.
guestpc에서 외부로 통신할 수 있는 방법은 없다.
hostpc와 guestpc 통신을 위해 존재하는 adapter이기 때문이다.
Adapter Bridge
hostpc와 guestpc 둘 다 인터넷 가능하지만 외부에서 들어올 수 없다.
Internal Network
외부 전용
guestpc간에 연결만 가능
hostpc 연결 불가능
guestpc가 인터넷도 해야 하고 guestpc 서로 연결이 되어야 하고
hostpc와 guestpc 연결이 되려면 NAT 또는 NAT Network를 써야한다.
하지만 NAT 또는 NAT Network은 포트포워딩(port forwarding)이 필요해서 번거로움
hostpc가 drive?에 접속하기 위해서 Host Only Adapter과 혼합해서 사용한다.
shell은 로그인을 하면 획득하게 된다. 그 결과로 콘솔이 주어진다. 로그인을 하고 나면 shell을 받는다. 사용자가 입력한 명령을 해석해서 머신이 실행시킬 수 있도록 한다.
cd = 디렉토리
shell이 운영체제를 형성하기 위해서 생성된 변수를 환경변수라고 한다.
환경변수 = 시스템을 운영하고 관리하기 위해 매크로화 시킨 값
ex) HELLO=’hello’ : 앞은 변수 뒤는 값
echo $HELLO → 참조할 때
echo $PATH → 자동으로 생성된 환경변수
SSH(Secure SHell)은 네트워크의 다른 컴퓨터에 로그인 할 수 있으며 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해주는 프로그램이다.
$= 통화 # = 해쉬, 관리자라는 뜻
명령 [옵션][대상]
리눅스 시스템은 쉘 프롬프트를 통해 명령을 입력하고 실행하게 된다.
ex) ls = 파일 및 디렉토리의 목록을 출력
리눅스의 디렉토리 구성은 비슷한 종류의 데이터를 묶고 각 그룹 간의 경계를 명확히 하는 역할
리눅스의 디렉토리는 루트(/)로부터 하나의 디렉토리가 여러 개의 파일 또는 디렉토리를 토함하는 트리구조의 형식으로 구성
root = 폴더구성최상위
1. 계정: 관리자 계정
2. 파일시스템: 최상의 디렉토리 - 네임주소. url → ip로 바꿔줌
www.naver.com는 com이라는 도매에 등록이 되어 있다. com도 최상위 도메인. 최상위 도메인을 관리하는 것도root다. 알고리즘 무슨트리, 최상위에도 루트가 있다. 자바에 클래스 상속관계를 봤을 때 최상위에 object가 있다. 모든 객체 유형은 object가 될 수 있다.
/etc = 환경설정을 모아놓은 디렉토리.
/proc = process, 시스템 관련된 정보들도 저장.
시스템 종료 및 재부팅
shutdown 옵션 시간 [메세지]
맨페이지 = 도움말(manual)
man [섹션번호] 명령
디렉토리 및 파일의 목록을 출력하는 명령은 ls이다.
1. 절대적인 위치지정
최상위 디렉토리인 루트(/)로부터의 경로를 지정하는 방법
반드시 /로 시작하는 경로이다.
2. 상대적인 위치지정
현재 디렉토리로부터의 경로를 지정하는 방법
/가 아닌 디렉토리로부터 시작된다.
ls = 현재 디렉토리
ls. = 현재 디렉토리
.. = 상위 디렉토리
(., .., ~) 으로시작하지 않으면 상대경로
경로뒤에 /붙이면 shell 무조건 디렉토리이다.
파일 및 디렉토리의 삭제
rm [옵션] 삭제대상
디렉토리의 생성
mkdir [옵션] 디렉토리명
디렉토리의 삭제
rmdir [옵션] 디렉토리경로
파일생성
touch 파일명
inode: 블록상의 위치
lvm: 하나의 장치처럼 디스크를 묶는 것이 아니라 파티션을 모음.
논리적 파티션 = 디스크 장치의 파일 데이터 기록을 위해 영역을 만들어야 한다. 경계선을 파티션이라고 하고 파일시스템=fs, 디스크에 어떻게 저장할 것인지. 이런 기법을 가지고 있다. 이렇게 저장된 구현된 시스템을 파일시스템이라고 한다.
레이드: 속도 100 하드디스크를 직렬로 묶으면 속도는 그대로지만 용량은 2배로 늘어난다.
2개를 병렬로 묶으면 용량은 그대로지만 속도는 2배가 된다.
swap: 가상메모리공간
terminal= 단말장치 - 데이터를 입력한다, 명령을 입력한다. 이 입력된 데이터를 리눅스시스템이 처리하고 모니터를 통해 보여준다. 단말장치는 모니터와 키보드가 쌍을 이룬다. 처리는 머신에서 처리하고 그 결과를 보여줄 뿐이다. 정확한 용어는 표준입력장치, 표준출력장치
로그인을하게되면 가상 터미널이 생긴다. 물리적인 장치를 의미. 터미널을 통해 작업할 수 있는 공간을 얻을 수 있다. 콘손이 얻어지면 우리가 명령을 입력하고 실행할 수 있다. 데이터를 입력, 명령 입력가능. 머신이 처리하고 출력가능하다. 커서가 껌벅껌뻑하는 이유는 명령을 기다리고 있다. → prompt = 커맨드 프롬포트