VMware, 우분투?
일단 소켓은 나중에 알아보도록하고 소켓 프로그래밍을 공부하기위해 VMware, Ubunto를 설치해보자.
VMware을 알아보기전에 앞의 대문자 VM인 가상머신(Virtual Machine)을 먼저 알아야하는데,
현재 컴퓨터는 컴퓨터 한 대당 1개의 운영체제를 사용함으로써 다른 컴퓨터나 운영체제가 필요하면 새로운 운영체제가 설치되어있는 컴퓨터를 구해야한다. 하지만, 여러 운영체제가 필요한 사람은 여러 대의 컴퓨터가 필요하단 얘긴데 그것들을 들고 다니기도, 그걸 살 돈도 낭비가 될 것이다.
이를 해결해주는 것이 나온것이 가상머신인데, 가상머신은 서버 등의 소프트웨어의 재현을 만들어내는 가상화를 통해 물리적 하드웨어의 제한 없이 서버를 독립적으로 접근하고 사용할 수 있도록 해준다.
이때 가상화와 클라우드 컴퓨팅을 전문으로하는 기업 중 하나가 VMware이다.
Ubunto(우분투)는 데스크톱에서 리눅스를 쉽게 사용할 수 있게 만든 리눅스 배포판이다.
소켓 프로그래밍을 공부하면서 내 컴퓨터에는 윈도우, 가상머신에는 리눅스를 기반으로 공부할예정인데 이 말은 VMware 가상 머신에 리눅스를 설치한다는 뜻이다. 이때 리눅스라는 운영체제를 우분투라는 배포판을 사용하는 것이라고 보면된다.
Ubunto 설치
우분투는 가장 많이 사용하는 리눅스배포판으로, 무료로 다운받을 수 있다.
매 6개월마다 새로운 판이 공개되는데, 서버가 안정적인 장기지원판(LTS)은 2년마다 출시된다.
따라서 취향껏 다운받아주자.
https://ubuntu.com/download/desktop
VMware 설치
VMware를 통해 내 컴퓨터에 또다른 운영체제를 설치할 수 있는데, 이것도 무료로 다운받을 수 있다.
https://www.vmware.com/products/workstation-player/workstation-player-evaluation.html
설치과정
설치하고 실행하면 Player 창이 뜰것이다.
Create a New Virtual Machine을 클릭해서 새로운 가상 머신을 만들어보자.
다음으로 넘어가서 생성해주면 Player에 우분투 64-bit가 생겼을것이다.
Edit virtual machine settings 를 클릭해서 가상머신을 세팅해주자.
우분투 이미지 파일을 설정했으면 세팅이 완료되었다. 이제 Play virtual machine을 클릭해서 실행해주자!
아직 설치할 것이 남았는데, 아래의 과정을 그대로 따라주면된다.
설치하다가 운영체제가 없다고 뜨면서 이런 화면이 뜰 수도 있는데, 디스크를 지우고 우분투를 설치해주면된다.
(이때 디스크를 지운다는 말은 가상 머신의 디스크에 해당되는 말이니 걱정안해도 될듯하다)
설치가 완료됬다면 다시 에딧가상머신 세팅에서 우분투 이미지파일 세팅을 Auto detect로 바꿔준다.
메인 화면에서 컨트롤 + 알트 + T를 누르면 터미널 창이 나온다.
터미널창에서 기본 세팅을 진행하도록 하자.
이때 코드작성은 C로 할꺼라서 gcc도 같이 설치해준다.
sudo apt-get update
sudo apt-get upgrade
sudo apt install gcc
다음 기본 세팅으로 nanorc 파일에 들어가서 해당 주석을 제거해준다.
nano /etc/nanorc
25번째 줄에 set autoindent
69번째 줄에 linenumbers 라인넘버즈
159번째 줄에 tabsize 8 -> 3
(줄 번호는 쉬프트 + 알트 + 3 을 통해 없애거나 다시 숫자를 생기게 할 수도 있다)
이제 개발 소스들을 저장할 디렉터리(폴더)를 만들어보자.
현재 디렉터리에서 Work 디렉터리 생성,
Work 디렉터리 안에서 Socket 디렉터리를 생성해준다.
이제 VMware에서 리눅스 운영체제의 개발을 할 수 있는 개발환경이 구축되었다.
다음 포스팅에서는 소켓에 대해서 알아보고, 서버를 구축하여 그 서버에 접근한다음에 printf를 출력하는 것을 알아보도록 하자.
'개발자과정준비 > TCP IP Socket Programming' 카테고리의 다른 글
[Socket 프로그래밍] 4. TCP 기반 서버/클라이언트 1 (0) | 2021.06.17 |
---|---|
[Socket 프로그래밍] 3. 주소체계와 데이터 정렬 (0) | 2021.06.16 |
[Socket 프로그래밍] 2. 소켓의 타입과 프로토콜의 설정 (0) | 2021.06.15 |
[Socket 프로그래밍] 1. 네트워크 프로그래밍과 소켓의 이해 (0) | 2021.06.14 |
[VMware 16.0] 가상머신에서 복사 붙여넣기 안될때 해결방법 (0) | 2021.06.13 |