<운영체제에 대한 이해>
1. 운영체제란?
- 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고, 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임
- 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스로서 동작하는 시스템 소프트웨어의 일종
- 다른 응용프로그램이 유용한 작업을 할 수 있도록 환경을 제공
2. 운영체제의 목적
- 처리능력 향상, 사용가능도 향상, 신뢰도 향상, 반환시간 단축
- 컴퓨터의 하드웨어를 관리하는 것
- 컴퓨터에는 수많은 하드웨어(CPU, 메모리, 디스크, 키보드, 마우스, 모니터, 네트워크 등)가 있으며 이를 잘 관리해주어야 컴퓨터를 효율적으로 사용할 수 있다.
- 사용자에게 편의 제공
<가상머신에 대한 이해>
1. 가상머신의 정의
- 컴퓨팅 환경을 소프트웨어로 구현한 것, 즉 컴퓨터를 에뮬레이션 하는 소프트웨어.(하드웨어를 소프트웨어 적으로 처리해줌)
- VMware Workstation/Player, VirtureBox, ....
- VMware가 좋지만 유료기때문에 한계가 있어
- 가상화는 HOST PC가 가지고 있는 resource를 할당받아서 쓰므로
- 메모리 무제한으로 줄 수 없음
2. HOST OS
- 가상화 소프트웨어가 동작하는 머신(PC)
- 호스트에 설치된 OS
- 실물컴퓨터에 설치된 OS
- 물리머신에 설치된 OS
- HOST에 깔려있는 것 HOST OS
3. Guest OS
- 가상화 소프트웨서 안에서 동작하는 운영체제
- 우분투는 Guest OS 중 하나
4. 동적할당
- GUEST OS안에서 프로그램을 깔아서 하드디스크를 쓰는 용량에 맞춰 늘려갈지, 아니면 미리 크기를 지정해놓고 쓸지 정하는 것. 성능적으로 미묘한 차이가 있긴 하지만 큰 차이는 없음
5. VDI(VirtureBox Disk)
- 하드디스크를 파일 형태로 만들어 논 것
- 이 과정까지 마치면 피씨를 하나 조립한 상태
<네트워크>
- VirtureBox에서 제공해주는 네트워크 카드의 종류를 이해해야함
- 통신이 가능하도록 해주는 기능 뿐만 아니라 네트워크가 연결되는 범위까지를 소프트화 해줌
- 네트워크 카드가 소프트웨어로 제공됨
1) NAT(Network Address Translation)
- 5개의 우분투를 깔았다고 보면 됨
- 내 피씨가 사용하는 네트워크 카드가 있고, 우분투가가지고 있는 네트워크 카드가 있음(소프트웨어적으로 처리)
이걸 NAT이라고 설정하면 호스트 머신이 가진 네트워크를 가지고 새로운 네트워크를 만드는 것
IP번호 앞에 3자리를 보면 다르다는 것을 알 ㅇ수 있어 -> 네트워크 대역이 틀리다.
호스트 머신을 통해 외부로 나갈 수 있음 대신 외부에있는 어떤 피씨에서 들어오기 위해선 fort forwarding이라는것을 해야함
- 이때 호스트 머신이 게이트 역할을 한다.
외부에서 보이는 아이피는 호스트 머신밖에 안보이기 때문에 호스트 머신에서 특정 포트로 들어왔을 떄 이쪽으로 가라고 알려줘야함 -> 이게 fort forwarding이라고 함
- NAT: 게스트끼리 통신을 할 수 없음
2) NAT Network
- 위 그림과 차이 : 가상머신끼리 연결돼있음
- 일반적으로 안에 있는 놈들끼리는 통신이 가능함
- NAT Natwork: 게스트끼리 통신을 할 수 있음
3) Internal Network(내부 네트워크)
- 지들끼리만 통신하고 외부랑 할 수 없는 것
4) Host-Only Adapter(호스트 전용)
5) Bridge Adapter (브릿지)
- 동일하게 되는 것
- IP대역이 동일한 것
- 직접적으로 외부와 통신할 IP가 있기 떄문에 제일 쉽지만 환경에 따라 다름
- 교육장 , 회사 같은 곳에서는 IP가 고정되어있음. --> 브릿지 쓰기 어렵고 NAT같은 것을 써야함
- 우리는 지금부터 NAT네트워크를 쓸것임
<NAT네트워크를 만들어주기 위해서는>
- 10.0.2.0 ~ 24 까지 서브 네트워크가 생김
- NAT Network추가할 때마다 어댑터가 만들어짐
- 기타 -> 만들기 누르면 어댑터가 추가됨 (나중에 이야기 해도 됨)
내가 컴퓨터를 하나 만들어놨어. 내가 사용할 프로그램이 깔려만 있으면 쓸 수 있음. 가상머신을 만든 호스트와 유사한 환경을 가지고 있어야함.
<VM Ware 다운받는 법>
#1 아래 사이트에서 2개의 파일을 다운로드합니다.
https://download.hanbit.co.kr/ubuntu/18.04/
VMware-player-15.0.3-12422535.exe
#2 VMware-player-15.0.3-12422535.exe 을 실행해서 설치를 진행합니다. (기본 설정 상태로 설치 진행)
#3 Ubuntu18.04_Server.exe 을 실행해서 압축해제합니다. (압축 해제할 폴더는 중복되지 않게 설정)
#4 시작 메뉴에서 VMware Workstation 15 Player 를 실행합니다.
#5 만들어 놓은 가상 머신 이미지를 불러와서 실행
#6 #3에서 압축해제한 디렉터리에 server.vmx 파일을 선택
#7 교재의 저자가 만들어서 배포한 가상머신을 실행
#8 우분투 실행을 확인
VirtualBox 시작 시 오류가 나는 경우
#1 가상화 여부 확인
작업관리자(Ctrl+Alt+Del)
#2 Windows 기능 켜기/끄기 설정 확인/변경
#3 CMOS 가상화 설정(활성화)
리눅스 커널 소스 확인
https://github.com/torvalds/linux
VirtualBox 스냅샷 기능
#1 터미널에서 abc.txt 파일을 생성
#2 새로운 파일을 생성한 상태를 저장
#3 새로운 파일을 추가
#4 #2 상태로 되돌아 가고 싶은 경우
#5 #3번 상태로 이동(복원)
#6 실수로 시스템 파일을 삭제 후 리부팅
#7 부팅이 되지 않는 것을 확인
#8 스냅샷을 이용해서 복구
VirtualBox 확장 기능 이용
#1 장치 > 게시트 확장 CD 이미지 삽입
#2 재시동 후 윈도우를 확대, 축소했을 때 해상도가 변경되는 것을 확인
#3 호스트와 게스트 간 클립보드 공유를 설정
#3-1 장치 > 클립보드 공유 > 양방향을 선택 후 리부팅
#3-2 호스트와 게스트 간 Copy & Paste 동작 여부를 확인
#4 호스트와 게스트 간 공유 폴더 설정
https://gist.github.com/estorgio/0c76e29c0439e683caca694f338d4003
#4-1 호스트 머신에 공유에 사용할 디렉터리를 생성
#4-2 root 사용자로 로그인 후 게스트 머신에 공유에 사용할 디렉터리를 생성
사용자 머신이름
~~~~~~ ~~~~~~
ubuntu@server:~$ sudo su
root@server:/home/ubuntu# cd
root@server:~# mkdir /ShareFolder
# cd ⇐ 루트 사용자가 cd 명령어를 실행
$ cd ⇐ 일반 사용자가 cd 명령어를 실행
#4-3 장치 > 공유 폴더 > 공유 폴더 설정을 설정
#4-4 설정
폴더 경로 : 호스트 머신에서 사용할 공유 폴더 경로
폴더 이름 : 폴더를 구분하기 위한 이름
읽기 전용 : 게스트 운영체제에서 읽기 용도로만 사용 (선택하지 않으면 읽고 쓸 수 있음)
자동 마운트 : 게스트 운영체제가 실행될 때 자동으로 공유가 되도록 설정
마운트 지정 : 게스트 머신에서 사용할 공유 폴더 경로 (/ShareFolder)
#4-5 파일 공유를 확인
포트 포워딩을 이용한 내부 네트워크 이용
#1 FireFox 브라우저를 실행해서 네이버로 접속되는 것을 확인
#2 우분투에 nginx 서버를 설치
ubuntu@server:~$ sudo apt-get update
[sudo] ubuntu의 암호: ubuntu
받기:1 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]
기존:2 http://kr.archive.ubuntu.com/ubuntu bionic InRelease
받기:3 http://kr.archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]
받기:4 http://security.ubuntu.com/ubuntu bionic-security/main amd64 DEP-11 Metadata [48.9 kB]
받기:5 http://kr.archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]
받기:6 http://security.ubuntu.com/ubuntu bionic-security/universe amd64 DEP-11 Metadata [56.0 kB]
받기:7 http://security.ubuntu.com/ubuntu bionic-security/universe DEP-11 64x64 Icons [109 kB]
받기:8 http://kr.archive.ubuntu.com/ubuntu bionic
:
ubuntu@server:~$ sudo apt-get install -y nginx
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다
상태 정보를 읽는 중입니다... 완료
다음의 추가 패키지가 설치될 것입니다 :
libnginx-mod-http-geoip libnginx-mod-http-image-filter
libnginx-mod-http-xslt-filter libnginx-mod-mail libnginx-mod-stream
nginx-common nginx-core
제안하는 패키지:
fcgiwrap nginx-doc
다음 새 패키지를 설치할 것입니다:
libnginx-mod-http-geoip libnginx-mod-http-image-filter
:
ubuntu@server:~$ sudo service nginx restart
ubuntu@server:~$ sudo service nginx status
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: en
Active: active (running) since Fri 2020-09-04 15:43:21 KST; 8s ago
Docs: man:nginx(8)
Process: 3448 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 -
Process: 3450 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code
Process: 3449 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process
Main PID: 3451 (nginx)
Tasks: 2 (limit: 2328)
CGroup: /system.slice/nginx.service
├─3451 nginx: master process /usr/sbin/nginx -g daemon on; master_pro
└─3452 nginx: worker process
9월 04 15:43:21 server systemd[1]: Stopped A high performance web server and a
:
#3 우분투 가상머신의 IP를 확인
ubuntu@server:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:96:b2:75 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.4/24 brd 10.0.2.255 scope global dynamic noprefixroute enp0s3
valid_lft 525sec preferred_lft 525sec
inet6 fe80::2e79:698a:dba3:9968/64 scope link noprefixroute
valid_lft forever preferred_lft forever
#4 우분투에서 nginx로 접속
http://localhost
http://127.0.0.1
http://10.0.2.4
#5 호스트 머신에서 우분투 머신의 IP로 nginx에 접속되는지 확인
#6 호스트 머신의 IP 주소를 확인
Microsoft Windows [Version 10.0.18363.753]
(c) 2019 Microsoft Corporation. All rights reserved.
C:\Users\myanj> ipconfig
Windows IP 구성
이더넷 어댑터 이더넷: ⇐ 랜카드 = NIC(Network Interface Controller)
~~~~~~ ⇒ LAN 영역에서 사용하는 통신기술 중 하나
LAN 영역에서 사용하는 기술 중 사실상 표준(De Factor Standard) 방식
연결별 DNS 접미사. . . . :
링크-로컬 IPv6 주소 . . . . : fe80::467:328a:16f3:43f1%6
IPv4 주소 . . . . . . . . . : 192.168.0.218 ⇐ 32비트로 구성된 주소 체계 (232 개의 주소를 표현)
~~ 0.0.0.0~255.255.255.255
서브넷 마스크 . . . . . . . : 255.255.255.0
기본 게이트웨이 . . . . . . : 192.168.0.1 ⇐ 게이트웨이 → SW 측면 / 라우터 → HW 측명
각기 다른 네트워크ID를 사용하는 LAN 영역을 연결해주는 기능
이더넷 어댑터 VirtualBox Host-Only Network: 스위칭(switching) ⇒ LAN 영역에서 내부 통신을 수행 (MAC 주소)
연결별 DNS 접미사. . . . :
링크-로컬 IPv6 주소 . . . . : fe80::d9df:db0e:379f:7e13%41
IPv4 주소 . . . . . . . . . : 192.168.56.1
서브넷 마스크 . . . . . . . : 255.255.255.0
기본 게이트웨이 . . . . . . :
무선 LAN 어댑터 Wi-Fi:
미디어 상태 . . . . . . . . : 미디어 연결 끊김
연결별 DNS 접미사. . . . :
IP(Internet Protocol) 주소
인터넷 공간에서 자기 PC가 사용하는 고유한 식별자를 의미
서브넷 마스크(subnet mask)
IP 주소에서 네트워크 ID와 호스트 ID를 구분하는 방법
IPv4 주소 . . . . . . . . . : 192.168. 0.218
서브넷 마스크 . . . . . . . : 255.255.255.0
~~~~~~~~~~~ ~~~
192.168.0 218
네트워크ID 호스트ID
#7 NatNetwork 수정
호스트 IP : 호스트 머신에서 사용하는 IP 주소
호스트 포트 : 호스트 머신에서 포트 포워딩에 사용할 포트 번호
게스트 IP : 게스트 머신(우분트)에서 사용하고 있는 IP 주소
게스트 포트 : 게스트 머신에서 사용하고 있는 서비스 포트
#8 호스트 머신에서 접속 확인
http://192.168.0.218:8888
우분투 서버, 우분투 데스크탑, 쿠분투 설치를 꼭 해 보세요. (106페이지)
Ubuntu Desktop 설치 (교재 62~67 페이지 참조)
https://myanjini.tistory.com/entry/Ubuntu-Desktop-%EC%84%A4%EC%B9%98
Ubuntu Desktop 초기 설정 (교재 68~77 페이지 참조)
https://myanjini.tistory.com/entry/Ubuntu-Desktop-%EC%B4%88%EA%B8%B0-%EC%84%A4%EC%A0%95
Ubuntu Server 설치 (교재 80~85 페이지 참조)
https://myanjini.tistory.com/entry/Ubuntu-Server-%EC%84%A4%EC%B9%98
Ubuntu Server 초기 설정 (교재 86~91 페이지 참조)
https://myanjini.tistory.com/entry/Ubuntu-Server-%EC%B4%88%EA%B8%B0-%EC%84%A4%EC%A0%95
vi 에디터 사용법을 연습해 보세요. (121 ~ 128 페이지)
<이론수업>
GNU 프로젝트
1) 대표적인 리눅스 배포판
- 핵심이 되는 소스코드에 쉽게 쓸 수 있는 다양한 응용프로그램과 유저 인터페이스들을 제공해주는것
- 우분투, fedora, kubuntu, debian 등등,,
2) GNU 프로젝트의 목표와 FSF
- 모두가 공유할 수 있는 소프트웨어를 만드는 것이 목표
- 1985년 스톨먼은 GNU 프로젝트에서 제작한 소프트웨어를 지원하면서 누구든 소프트웨어를 자유롭게 사용할 숭 ㅣㅆ도록 FSF설립(Free Software Foundation)
3) GPL(General Public License)
리눅스의 탄생
1)유닉스
- 리눅스가 탄생하기 이전 운영체제
- 지금도 많이 사용되는 운영체제 중 하나이지만 높은 비용 지불 필요
2) 리눅스
- 뮤료 유닉스 개념
- 유닉스와 거의 동일한 운영체제이면서 무료, 어떤 면에서는 유닉스보다 뛰어남
3) 커널
- 하드웨어를 제어해줌
- 리누스 토르발스가 1991년에 리눅스 커널 0.01 버전을 작성
- 1992년에 0.02버전을 내놓으면서 인터넷에 소스코드를 공개, 이것이 리눅스의 시초
- 통산적인 리눅스는 토르발스가 만든 커널에 컴파일러, 쉘(사용자가 제어할 수 있는..), 기타 프로그램이 조합된 배포판
- 배포판은 전 세계적으로 수백 가지가 넘지만 모두 토르발스가 제작한 커널을 사용하며 대표적인 것이 우분투 리눅스
4) 리눅스 배포판의 구성
사진첨부 예정
5) 커널의 구성
- 안정버전 : 이미 검증된 개발 완료 코드로 구성
- 메인라인버전 : 토르발스가 개발중인 버전, 안정 버전이 나오기 전에 추가된 기능을 미리 접하고 싶을 떄 사용
- 프리패치 버전 : 안정 버전이 나오기 전에 추가된 기능을 미리 접하고 싶을 때 사용
6) 커널 버전 업그레이드
7) 데비안 리눅스
- 유명한 리눅스 배포판 중 하나이며 1993년에 이언머독이 창시한 데비안 프로젝트에서 제작
- 패키지의 설치와 업그레이드가 상당히 단군하고 apt프로그램을 이용하여 소프트웨어 설피나 업데이트가 자동으로 진행됨
8) 우분투 리눅스
- 데비안 리눅스를 기초로 유니티 데스크톱 환경을 사용하는 리눅스 배포판
- 첫 버전을 출시한 이후 계속 업그레이드 됨, 인기 리눅스 배포판 중 하나
- 기본적으로 우분투 데스크톱과 우분투 서버를 배포
- 쿠분투, 우분투 킬린, 루분투, 주분투 등 다양한 배포판 개발, 이를 통틀어 '우분투 플레이버스(Ubuntu flavours)'라고 부름
- 우분트 데스크탑(GUI) , 우분투 서버(CLI)
9) 우분투 리눅스 버전 주기
- 일반 버전은 약 6개월 마다, LTS(장기5년)버전은 2년마다 새로운 버전 발표
10) 최소 권장사항
11) 가상머신의 개념
- PC 1대 만으로 여러대의 PC를 운영하는 것처럼 만드는 방법
- 실습에서 사용할 환경 안내
: PC 1대에서 리눅스 3대를 구동(리눅스 서버, 서버(B), 리눅스 클라이언트)
12) 가상머신 소프트웨어
- 컴퓨터에 설치된 운영체제(호스트OS)안에 가상의 컴퓨터를 만들고 이 가상의 컴퓨터 안네 또 다른 운영체제(게스트OS)를 설치 운영할 수 있도록 제작된 소프트웨어
VM이라고 되어있는게 가상 라우터
이더넷?이 네트워크 카드...?
<스냅샷 기능>
해서는 안될 뭔가를 했을 때
현재상태의 스냅샷을 따로 뜨는 이유는 ? 중요한 작업을 할 때마다
현재상태가 문제가 있는 상태일 때도 스냅샷을 찍는 경우는? 에러난 원인을 찾기위해서!!!!
스냅샷 자체를 자주 남겨야함
우분투 설치하면 일단 스냅샷 냄겨놔(원본상태)
이더넷 어댑터:
NIC(Network Interface Controller)를 나타냄 (랜카드)
이더넷이란 뭘 뜻할까? 기술 표준 (랜 영역에서 사용하는 통신기술 중 하나)
그럼 랜은 뭘까?
이더넷 어댑터 이더넷
어댑터 : 랜카드 (NIC = LAN 카드)
IPV4 주소 : 버전4 (32비트로 구성된 주소 체계)
IP : 인터넷 공간에서 자기PC가 사용하는 고유한 식별자를 의미
서브넷 마스크 : IP주소에서 네트워크ID와 호스트ID를 구분하는 방법
게이트웨이(소프트웨어 측면에서의 명명) : 나가는 구멍, 라우터(하드웨어 측면에서의 명명)
'리눅스(Linux)' 카테고리의 다른 글
우분투 네트워크간 접속, 포트포워딩 (0) | 2020.10.07 |
---|---|
[리눅스] 사용자 및 그룹관리 & 파일 소유권 & 프로세스 & 패키지 관리 & 쉘스크립트 (0) | 2020.09.08 |
[리눅스] SSH 접속, 포트포워딩, mount, umount, 고정IP로 변경, genisoimage (0) | 2020.09.07 |
꿀팁 정보 (0) | 2020.09.06 |
9/3 (목) 실습 환경 구성 (0) | 2020.09.06 |