일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- ListTile
- 개발자
- dart
- 명령어
- 리눅스
- Code Generation
- 리버팟
- 파이썬
- ExpansionTile
- command
- 도서
- 프로그래밍
- 유데미 코리아
- 코딩
- flutter
- 플러터
- freezeD
- vscode
- python
- copyWIth
- 가상환경
- 책
- riverpod
- 다트
- linux
- 유데미 러닝크루
- 개발
- 디자인패턴
- 맥
- 유데미
- Today
- Total
승상의 코딩 블로그
가상환경 설정 시 Virtualization(가상화)와 Emulation(에뮬레이션) 차이 본문
회사 리눅스 PC는 보안상 인터넷 연결이 되지 않는다.
회사 PC 로 리눅스 패키지를 옮길려고 하는데 무엇을 고려해야할까?
고려해야하는 사항 중 하나는 CPU 의 구조이다. 패키지가 정상 설치될려면 CPU 구조에 맞는 패키지를 가져와야한다.
설치환경과 동일한 시스템을 구축 한 뒤 다운받아 설치된 파일을 옮기는것이 가장 심플하다.
그러나 회사 리눅스 PC의 CPU는 AMD64 구조를 사용하고 나의 개인 맥북은 ARM64 계열을 사용한다.
나처럼 다운로드 환경과 실행 환경이 다른 상황에서는,
다운로드 환경에 "실행 환경의 CPU 를 모방하는 가상환경"을 만들어서 "패키지 매니저를 사용"해서 다운받아 옮겨야한다.
* 참고. 패키지를 인터넷에서 그냥 직접 다운 받아가면 안되는가?
1. 패키지의 Dependency 가 있을 경우에는 패키지 매니저를 활용해야한다.
2. 직접 다운 받아서 실제로 정상적으로 되는지 확인해봐야한다.
3. 리눅스에서는 패키지 매니저를 통한 CPU 플랫폼별로 설치가 어렵다.
맥에서는 UTM 을 사용해서 가상환경을 설정할 수 있다.
가상환경을 설정을 시작할 때, 2가지 옵션(Virtualize 와 Emulate)이 나온다.
이 두가지 옵션의 의미를 알아야 원하는 CPU 구조 환경을 설정할 수 있다.
- Virtualize (Virtualization : 가상화)
가상화는 하나의 PC(물리적 자원)를 여러 가상환경으로 분할하여 서로 다른 시스템처럼 작동하게 할 수 있다. 그러므로, 하드웨어 자원을 효율적으로 사용할 수 있다.
그래서 빠르지만 native CPU 구조 (즉, 같은 CPU 구조) 에서만 동작한다. (Faster, but can only run the native CPU architecture.) - Emulate (Emulation : 에뮬레이션)
에뮬레이션은 하드웨어를 모방하여 다른 플랫폼(ex. cpu구조) 의 소프트웨어를 실행할 수 있다.
CPU 구조가 다르면 프로그램을 해석하는 방식의 차이가 있다. 그러므로, 이를 해석할 수 있도록 번역하는 추가적인 작업을 해야한다.
그래서 느리지만 다른 CPU 구조에서 실행할 수 있다. (Slower, but can run other CPU architecture)
리눅스나 맥의 경우 "uname -m" 을 입력하면 CPU 구조를 간단히 확인할 수 있다.
설치하는 환경의 CPU 구조가 어떤지 비교해서 설치를 진행하보자.
* 옵션 설정 이후의 설치는 아래 포스팅을 참고하길 바란다.
2022.09.18 - [Linux (리눅스)] - 맥(Mac)을 통한 리눅스(Linux) 명령어 공부2 - 맥에 Ubuntu 가상머신 설치
'Linux (리눅스)' 카테고리의 다른 글
[Linux] netstat 네트워크 상태 모니터링 (0) | 2024.12.02 |
---|---|
[Linux] nc 네트워크 도구 (0) | 2024.12.02 |
[Linux] 초기 root 계정 비밀번호 변경하는 방법 (2) | 2024.09.19 |
[Linux] - 출력 재지정 (0) | 2024.09.19 |
파일에 데이터를 저장하는 입출력 재지정(I/O redirection) - '>' (0) | 2023.09.16 |