Machineboy空
(참고) VM(virtual machine)와 IDE(Intergrated Development Environment) 본문
(참고) VM(virtual machine)와 IDE(Intergrated Development Environment)
안녕도라 2024. 1. 11. 17:10그동안 Window 기반으로 Visual Studio를 사용하다가
Mac으로 바꾸고 VS Code로 개발 환경 세팅하느라 애를 먹었다.
* IDE(Integrated Development and Learning Environment, 통합개발환경)
인텔리센스 등을 활용해 자동완성을 시키기도 하고
텍스트 에디터, 컴파일러, 테스트, 디버거까지 전반적 개발을 진행할 수 있는 소프트웨어 프로그램.
Microsoft의 visual studio, vs code
Apple의 Xcode,
JetBrain의 IntelliJ 등 다양한 IDE가 존재하고 개발 특성에 맞는 IDE를 사용하면 된다.
(IDE까진 아니지만 텍스트 에디터 Sublime Text 등)
* VM(Virtual Machine)
c#을 실행하기 위해서는 .NET에 포함된 CLR(Common Language Runtime)
java를 실행하기 위해서는 JVM (Java Virtual Machine)
c++을 실행하기 위해서는 clang, LLVM(Low level Virtual machine)기반 C/C++/Objective C 오픈소스 컴파일러 깔아줘야 했다.
대체 VM이 무엇이냐!
VM을 거쳐서 각 언어로 작성된 소스 코드가 CPU가 인식할 수 있는 기계어로 컴파일 된다.
* VM(가상머신) : 자체 CPU, 메모리, 네트워크 인터페이스 및 스토리지를 갖추고 가상 컴퓨터 시스템으로 작동하는 가상 환경
* OS(운영체제)
- 프로그램이 올바르게 실행될 수 있게 메모리를 할당
- CPU 관리
- 입출력장치 및 보조기억장치 관리
즉 컴퓨터의 실행을 전반적으로 관리하는 우두머리 같은 소프트 웨어.
VM은 OS에 종속받지 않고,
MacOS이든, window든 리눅스든 CPU가 이해할 수 있는 언어로 실행할 수 있게 하는 가상의 컴퓨터이다.
즉, VM을 사용하면 macOS노트북에 리눅스 배포판을 설치한 경우처럼
단일 컴퓨터에서 다른 여러 운영체제를 동시에 실행할 수 있다.
아직 정확히 이해되는 개념은 아니다만,
두루뭉술하게 틀은 잡은 듯 하다.
'Computer > CS' 카테고리의 다른 글
프로세스와 스레드 ② 프로세스 상태와 계층 구조 (fork, exec) (0) | 2024.01.12 |
---|---|
프로세스와 스레드 ① 프로세스 개요 - 프로세스 제어블록(PCB), 문맥 교환, 정적할당/ 동적할당 (0) | 2024.01.12 |
운영체제 ② - 커널(kernel) - 이중 모드, 시스템 호출 / 운영체제의 핵심 서비스 (0) | 2024.01.11 |
운영체제 ① 운영체제 알아야 하는 이유 (0) | 2024.01.11 |
(참고) ATmega128 GPIO 레지스터 직접 조작하며 입출력해보기 (0) | 2024.01.11 |