initial commit

This commit is contained in:
Bitdori (Admin) 2026-08-29 22:09:51 +09:00
commit 9ca2767d48
259 changed files with 21528 additions and 0 deletions

578
blog/2023-02-08-linux-03.md Normal file
View file

@ -0,0 +1,578 @@
---
title: "리눅스 사용 - 가상머신"
description: "리눅스 커널이 탑재된 환경에서 실 사용감을 익혀본다."
image: "/assets/blog/03-linux-03/Hyperviseur.svg"
authors: [bitdori]
---
- https://sourceforge.net/projects/qbittorrent/files/latest/download 또는
https://www.fosshub.com/qBittorrent.html 에서 [qBittorrent][qBittorrent] 다운로드 -
설치
- https://cdimage.ubuntu.com/xubuntu/releases/jammy/release/ 또는
https://ftp.kaist.ac.kr/ubuntu-cdimage/xubuntu/releases/jammy/release/
에서 [Xubuntu][Xubuntu] 토렌트 다운로드
![xubuntu-torrent](/assets/blog/03-linux-03/xubuntu-torrent.png)
다운로드 한 _.torrent_ 파일을 더블클릭하여 iso 파일 다운로드
![xubuntu-downloading](/assets/blog/03-linux-03/xubuntu-downloading.png)
Xubuntu를 다운로드 하는 동안 https://www.virtualbox.org/wiki/Downloads 접속
![virtualbox-org](/assets/blog/03-linux-03/virtualbox-org.png)
_Windows hosts_ 를 클릭하면 다운로드가 진행되지만 이번에는 [curl][curl]로
다운로드를 해 보기 위해 주소를 복사하기만 한다.
- Cygwin 실행 - `cd` 로 다운로드 할 경로로 이동
- `curl -O` 까지 입력한 뒤 우클릭 - Paste를 하여 복사해 둔 VirtualBox 주소 붙여넣기
- 실행
![curl-O](/assets/blog/03-linux-03/curl-O.png)
![curl-downloading](/assets/blog/03-linux-03/curl-downloading.png)
다운로드가 끝나면 VirtualBox 설치
![vbox-inst-1](/assets/blog/03-linux-03/vbox-inst-1.png)
![vbox-inst-2](/assets/blog/03-linux-03/vbox-inst-2.png)
![vbox-inst-3](/assets/blog/03-linux-03/vbox-inst-3.png)
![vbox-inst-4](/assets/blog/03-linux-03/vbox-inst-4.png)
![vbox-inst-5](/assets/blog/03-linux-03/vbox-inst-5.png)
qBittorrent에서 Progress가 100%이면서 상태가 Seeding이면 Xubuntu 다운로드가
끝난 것이다.
항목을 우클릭해서 다운로드 대상 폴더를 확인
![xubuntu-downloaded](/assets/blog/03-linux-03/xubuntu-downloaded.png)
VirtualBox 실행 - New
![vbox-new](/assets/blog/03-linux-03/vbox-new.png)
이름란에 `xubuntu` 입력 - ISO 이미지에 토렌트로 받았던 이미지를 선택
`Skip Unattended Installation` 체크
![vbox-create](/assets/blog/03-linux-03/vbox-create.png)
프로세서는 초록색 범위 내에서 선택
![vbox-create-hardware](/assets/blog/03-linux-03/vbox-create-hardware.png)
시스템 전체에서 남는 공간 중 xubuntu 가상머신에 할당할 크기 지정 - Next - Finish
![vbox-create-harddisk](/assets/blog/03-linux-03/vbox-create-harddisk.png)
설정
![vbox-settings](/assets/blog/03-linux-03/vbox-settings.png)
디스플레이에서 비디오 메모리 용량을 초록색 범위 내에서 할당
3D 가속 활성화 체크
![vbox-settings-display](/assets/blog/03-linux-03/vbox-settings-display.png)
시작
![vbox-start](/assets/blog/03-linux-03/vbox-start.png)
![vbox-starting](/assets/blog/03-linux-03/vbox-starting.png)
VirtualBox 내부에 마우스 포인터가 갇히는 경우 _오른쪽 Ctrl_ 키를 누르면
빠져나올 수 있다.
설치 클릭
![vbox-hostkey](/assets/blog/03-linux-03/vbox-hostkey.png)
키보드 레이아웃은 English (US) 선택
![xubuntu-inst-kbd](/assets/blog/03-linux-03/xubuntu-inst-kbd.png)
[서드파티][서드파티] 소프트웨어 설치 체크 - 계속
![xubuntu-inst-thirdparty](/assets/blog/03-linux-03/xubuntu-inst-thirdparty.png)
지금 설치 - 계속 - 변경사항을 디스크에 쓰기 창에서 계속
![xubuntu-instnow](/assets/blog/03-linux-03/xubuntu-instnow.png)
![xubuntu-inst-write-disk](/assets/blog/03-linux-03/xubuntu-inst-write-disk.png)
시간대 선택
![xubuntu-inst-tz](/assets/blog/03-linux-03/xubuntu-inst-tz.png)
사용자명 `xubuntu`
패스워드는 보안상 쉽게 탈취되지 않도록 짓는 것이 원칙이지만 가상머신 내에서
테스트용도로 사용하기 때문에 편한대로 간결하게 지어도 괜찮을 것이다.
![xubuntu-inst-adduser](/assets/blog/03-linux-03/xubuntu-inst-adduser.png)
설치가 끝날 때 까지 대기
![xubuntu-installing](/assets/blog/03-linux-03/xubuntu-installing.png)
---
### 설치 중 참고사항
유명 소프트웨어 중에 [LTS][LTS]라는 릴리스 모델을 채택하고 있는 프로젝트가
여럿 있는데 우분투는 2년에 한 번씩 짝수해 4월마다 LTS 버전을 출시하고 있다.
https://en.wikipedia.org/wiki/Ubuntu_version_history#Table_of_versions
각 버전마다 별명이 있으며 2022년 4월에 출시한 22.04 버전은 jammy라는 [코드네임][코드네임]이
붙어있다.
Xubuntu는 ubuntu에 [xfce][xfce]를 탑재한 [리눅스 배포판][리눅스 배포판]이다.
기본 우분투의 [Nautilus][Nautilus] 파일탐색기는 일부 외장 디스크 unmount시
[spindle][spindle] parking 시퀀스가 올바르게 작동하지 않는 문제가 있지만
Xubuntu의 파일탐색기에서는 해당 문제가 일어나지 않는다.
[하이퍼바이저][하이퍼바이저] 성능만 따지면 VirtualBox보다 [QEMU][QEMU]가 더 빠르긴 하지만
리눅스에서 설치하는 [virt-manager][virt-manager]가 함께 있어야 편리하게 쓸 수 있기 때문에
본 자습서에서는 VirtualBox를 사용한다.
QEMU는 호스트와 [아키텍처][아키텍처]가 일치하지 않는 [프로세서][프로세서]도 가상화 할
수 있기 때문에 해당 내용에 관심이 있다면 관련 자료를 알아보는 것도 좋다.
{/* DMA */}
Cygwin으로도 리눅스의 여러 기능을 사용할 수 있지만 가상머신에 운영체제 전체를 설치하면
- Cygwin에서 rm으로 실수로 파일을 삭제하는 등 시스템에 영향을 줄 수 있는 여지가
가상머신 내부에서는 없기 때문에 가상머신 내부에서 완전히 망가지더라도
해당 이미지 외부로 아무 영향을 주지 않는다.
- X [디스플레이 서버][디스플레이 서버] 구동
- [패키지 매니저][패키지 매니저] 탑재
- [컨테이너][컨테이너] 구동
- [RAID][RAID] 구성
- [부트로더][부트로더] 설정
- 리눅스 심볼릭 링크
- [sysctl][sysctl] 등으로 커널 조작
등을 사용할 수 있다.
[WSLg][WSLg] 또는 [VcXsrv][VcXsrv]로 리눅스 그래픽 환경을 구동할 수 있지만
Windowing system이 서로 달라서 네이티브 리눅스 환경과 재현도 차이가 날 수 있다.
---
Xubuntu 설치가 끝나면 재시작
![xubuntu-inst-complete](/assets/blog/03-linux-03/xubuntu-inst-complete.png)
만약 재시작 화면이 끝나지 않고 멈춰 있다면 가상머신을 강제로 리셋하면 된다.
![xubuntu-reset-1](/assets/blog/03-linux-03/xubuntu-reset-1.png)
![xubuntu-reset-2](/assets/blog/03-linux-03/xubuntu-reset-2.png)
![xubuntu-boot-1](/assets/blog/03-linux-03/xubuntu-boot-1.png)
![xubuntu-boot-2](/assets/blog/03-linux-03/xubuntu-boot-2.png)
부팅이 끝나면 [세션 관리자][세션 관리자]가 뜬다.
![xfce4-session](/assets/blog/03-linux-03/xfce4-session.png)
- 우상단 전원 아이콘 클릭 - Shut Down...
![shutdown](/assets/blog/03-linux-03/shutdown.png)
---
다시 시스템을 시작한다.
![vbox-start](/assets/blog/03-linux-03/vbox-start.png)
사용 언어와 관련된 필요 패키지를 자동으로 감지해서 띄워주면 그대로 설치하면 된다.
![lang-1](/assets/blog/03-linux-03/lang-1.png)
![lang-2](/assets/blog/03-linux-03/lang-2.png)
패스워드란에는 운영체제 설치 단계에서 입력했던 패스워드를 입력한다.
![lang-3-passwd](/assets/blog/03-linux-03/lang-3-passwd.png)
![lang-4-inst](/assets/blog/03-linux-03/lang-4-inst.png)
![lang-5-applying](/assets/blog/03-linux-03/lang-5-applying.png)
소프트웨어 업데이트 알림에 대해서도 그대로 설치를 진행한다.
![upd-1](/assets/blog/03-linux-03/upd-1.png)
![upd-2-passwd](/assets/blog/03-linux-03/upd-2-passwd.png)
![upd-3-inst](/assets/blog/03-linux-03/upd-3-inst.png)
![upd-4-unpacking](/assets/blog/03-linux-03/upd-4-unpacking.png)
설치 후 시스템 재시작
![upd-reboot](/assets/blog/03-linux-03/upd-reboot.png)
---
상단 작업표시줄 우클릭 - _Panel_ - _Add New Items..._
![xf-taskbar-1-newitems](/assets/blog/03-linux-03/xf-taskbar-1-newitems.png)
Launcher - _Add_
![xf-taskbar-2-launcher](/assets/blog/03-linux-03/xf-taskbar-2-launcher.png)
우상단 ! 아이콘 클릭 - _Delete finished notifications_ 클릭해서 VirtualBox 알림 정리
![vbox-delnoti](/assets/blog/03-linux-03/vbox-delnoti.png)
새로 생긴 빈 Launcher 아이콘 우클릭 - _Properties_
![xf-taskbar-3-launcher-props](/assets/blog/03-linux-03/xf-taskbar-3-launcher-props.png)
_Add a new empty item_
![xf-taskbar-4-new-empty-item](/assets/blog/03-linux-03/xf-taskbar-4-new-empty-item.png)
Name란에 _[xterm][xterm]_ 이라고 작성하면 다 쓰기 전에 _Create Launcher XTerm_ 이 펼쳐진다.
클릭 - _Create_
![xf-taskbar-5-xterm](/assets/blog/03-linux-03/xf-taskbar-5-xterm.png)
_Close_
![xf-taskbar-6](/assets/blog/03-linux-03/xf-taskbar-6.png)
xterm 실행
![xterm](/assets/blog/03-linux-03/xterm.png)
- `sudo apt purge apport* whoopsie*` 실행하여 설치된 패키지 제거
- `y` 입력 - 엔터
- `sudo apt autoremove` 실행하여 사용하지 않는 패키지 제거
![apt-purge](/assets/blog/03-linux-03/apt-purge.png)
![apt-autoremove](/assets/blog/03-linux-03/apt-autoremove.png)
[whiskermenu][whiskermenu] - Settings Manager - IBus Preferences
![ibus-setup](/assets/blog/03-linux-03/ibus-setup.png)
Input Method - Add
![ibus-inputmethod-add](/assets/blog/03-linux-03/ibus-inputmethod-add.png)
More... - Korean 검색 - Korean 클릭 - Hangul 선택 - Add
![ibus-more](/assets/blog/03-linux-03/ibus-more.png)
![ibus-hangul](/assets/blog/03-linux-03/ibus-hangul.png)
기존에 있었던 Input Method인 English 선택 - Remove
![ibus-remove-en](/assets/blog/03-linux-03/ibus-remove-en.png)
Close
![ibus-hangul-finished](/assets/blog/03-linux-03/ibus-hangul-finished.png)
whiskermenu - Log Out... - restart
![logout](/assets/blog/03-linux-03/logout.png)
![restart](/assets/blog/03-linux-03/restart.png)
시스템 재시작 후 한글 입력 테스트
![ibus-hangul-test](/assets/blog/03-linux-03/ibus-hangul-test.png)
### [Guest Additions][Guest Additions] 설치
![guest-insert](/assets/blog/03-linux-03/guest-insert.png)
이미지 삽입 후 잠시 기다리면 `/media/xubuntu/VBox_GAs_major.minor.patch` 경로에
[마운트][마운트] 된 내용이 나온다.
![guest-mounted](/assets/blog/03-linux-03/guest-mounted.png)
xterm에서 해당 경로로 이동 -> `./autorun.sh` -> 패스워드 입력
![guest-autorun](/assets/blog/03-linux-03/guest-autorun.png)
근데 바로 설치를 진행할 수 없다.
_sudo apt install [gcc][gcc] [make][make] [perl][perl]_ 로 [의존성][의존성] 패키지
설치를 한 뒤 다시 시도
![guest-dep](/assets/blog/03-linux-03/guest-dep.png)
![guest-inst-gcc-make-perl](/assets/blog/03-linux-03/guest-inst-gcc-make-perl.png)
의존성 패키지 설치가 끝난 뒤 다시 `./autorun.sh` 실행
![guest-autorun-done](/assets/blog/03-linux-03/guest-autorun-done.png)
autorun.sh 절차가 끝나면 `sudo /sbin/rcvboxadd quicksetup all` 실행 후
시스템 재시작
![guest-rcvboxadd](/assets/blog/03-linux-03/guest-rcvboxadd.png)
해상도 제한이 완화되었다.
![vbox-resolution](/assets/blog/03-linux-03/vbox-resolution.png)
### xterm 설정
`.Xresources` 라는 파일명으로 다음 내용을 저장해 놓는다.
```
XTerm.termName: xterm-256color
XTerm*utf8: 1
XTerm*utf8Title: true
XTerm.vt100.locale: true
XTerm.vt100.foreground: white
XTerm.vt100.background: black
*background: rgb:00/00/00
*foreground: rgb:ff/ff/ff
*color0: rgb:00/00/00
*color1: rgb:d3/62/65
*color2: rgb:ae/ce/91
*color3: rgb:e7/e1/8c
*color4: rgb:7a/7a/b0
*color5: rgb:96/3c/59
*color6: rgb:41/81/79
*color7: rgb:be/be/be
*color8: rgb:66/66/66
*color9: rgb:ef/81/71
*color10: rgb:e5/f7/79
*color11: rgb:ff/f7/96
*color12: rgb:41/86/be
*color13: rgb:ef/9e/be
*color14: rgb:71/be/be
*color15: rgb:ff/ff/ff
XTerm.vt100.faceName: Roboto Mono
XTerm.vt100.faceNameDoublesize: Noto Sans Mono CJK KR
XTerm.vt100.faceSize: 12
! disable bold font faces, instead make text light blue.
XTerm.vt100.colorBDMode: true
XTerm.vt100.colorBD: rgb:82/a4/d3
! disable underlined text, instead make it white.
XTerm.vt100.colorULMode: true
XTerm.vt100.colorUL: rgb:e4/e4/e4
XTerm.vt100.metaSendsEscape: true
XTerm*eightBitInput: false
XTerm.vt100.backarrowKey: false
XTerm.ttyModes: erase ^?
Xft.antialias: true
Xft.hinting: true
Xft.rgba: rgb
Xft.autohint: false
Xft.hintstyle: hintslight
Xft.lcdfilter: lcddefault
Xft.embolden: true
XTerm*selectToClipboard: true
xterm*dynamiccolors: true
*VT100*colorMode: on
*VT100*dynamicColors: on
XTerm.vt100.translations: #override \n\
Ctrl <Key> minus: smaller-vt-font() \n\
Ctrl <Key> plus: larger-vt-font() \n\
Ctrl <Key> 0: set-vt-font(d)
XTerm*charClass: 33:48,36-47:48,58-59:48,61:48,63-64:48,95:48,126:48
! Only select text
xterm*highlightSelection: true
! Remove trailing spaces
xterm*trimSelection: true
!If you want your terminal to scroll down anytime you press a key, use this setting:
XTerm*ScrollKey: true
! Do not scroll when there is new input e.g. tail -f /var/syslog
!xterm*scrollTtyOutput: false
XTerm*fullscreen: never
XTerm.vt100.scrollBar: true
xterm*rightScrollBar: true
!XTerm.vt100.scrollbar.width: 8
XTerm*cursorBlink: false
```
가상머신 종료 후 Settings - Network - Adapter 2 탭에서
Attached to: _[Host-only Adapter][Host-only Adapter]_ 선택 - OK - 가상머신 구동
![vbox-adapter](/assets/blog/03-linux-03/vbox-adapter.png)
xterm 실행 - `ip addr` 를 실행해서 방금 추가한 어댑터의 주소를 확인한다.
보통 _enp0s8_ 인터페이스에 `192.168.56.101` 로 할당 받는다.
![xubuntu-ip](/assets/blog/03-linux-03/xubuntu-ip.png)
- `apt search openssh` 로 검색
- `sudo apt install openssh-server` 로 [openssh][openssh] 서버 설치
- `systemctl status sshd` 로 [데몬][데몬] 구동 상태 확인
![apt-inst-sshd](/assets/blog/03-linux-03/apt-inst-sshd.png)
![sys-stat-sshd](/assets/blog/03-linux-03/sys-stat-sshd.png)
Cygwin에서 [scp][scp]로 위에서 저장한 `.Xresources` 파일을 가상머신에 복사해 보도록 한다.
- `scp .Xresources xubuntu@192.168.56.101:~` 실행
![scp](/assets/blog/03-linux-03/scp.png)
복사가 끝나면 가상머신의 xterm에서 `xrdb ~/.Xresources` 를 실행해서 적용
![xrdb](/assets/blog/03-linux-03/xrdb.png)
새 터미널을 시작해서 적용 여부 확인
![xrdb-applied](/assets/blog/03-linux-03/xrdb-applied.png)
현재 .Xresources의 설정에서는 font size는 _Ctrl_ 를 숫자0과 백스페이스 사이에 있는 -기호 또는 +기호를 눌러서 줄이거나 키울 수 있다.
https://invisible-island.net/xterm/manpage/xterm.html
https://stuff.mit.edu/afs/sipb/project/doc/ixresources/xres.html
https://wiki.debian.org/Xresources
xterm 대신 다른 터미널을 쓰려면 _Ctrl Alt t_ 를 눌러서 [xfce4-terminal][xfce4-terminal]
을 실행하면 된다.
![xfce4-terminal](/assets/blog/03-linux-03/xfce4-terminal.png)
또는 리눅스 내부에서 터미널을 쓰는 대신 Cygwin으로 [ssh][ssh] 접속을 할 수도 있다.
- _scp_ 명령과 비슷한 방식으로 `ssh xubuntu@192.168.56.101` 실행
- 패스워드 입력
- `exit` 로 종료
![ssh](/assets/blog/03-linux-03/ssh.png)
---
`ip addr` 은 [iproute2][iproute2]에 포함된 커맨드 중 하나로써 리눅스에서는 [`ifconfig`][`ifconfig`]
대신 사용하는 커맨드이다.
_ifconfig_ 은 [net-tools][net-tools] 프로젝트에 포함된 커맨드인데 [BSD][BSD]에서는
계속 _ifconfig_ 을 기본으로 설정해 놓고 있다.
_Host-only Adapter_ 는 처음에 VirtualBox를 설치할 때 같이 설치되었다.
![/assets/blog/03-linux-03/vbox-inst-2.png](/assets/blog/03-linux-03/vbox-inst-2.png)
![vbox-host](/assets/blog/03-linux-03/vbox-host.png)
### [Advanced Package Tool][Advanced Package Tool]
상단에서 `sudo apt purge apport* whoopsie*` 라는 명령으로 apt를 처음 사용해 보았는데
apt는 [데비안][데비안] 계열에서 채택하고 있는 패키지 매니저이다.
Microsoft의 운영체제에서는 2012년 Windows 8이 나오기 전까지는 주로 [exe][exe]나
[msi][msi]를 확보해서 [프로그램 추가/제거][프로그램 추가/제거]를 수행했는데
이런 방식으로 소프트웨어를 배포하면 [DLL 지옥][DLL 지옥]이라고도 하는
구성요소 손망실 문제가 발생하기 쉽다.
이런 문제로 인해 소프트웨어 배포 및 관리를 체계적으로 수행하는 패키지 매니저가
개발되기 시작했고 APT 외에도 [레드햇][레드햇] 계열에서 사용하는 [yum][yum]과
[dnf][dnf], 아치 계열에서 사용하는 [pacman][pacman] 정도가 널리 알려져 있다.
패키지 매니저가 수행하는 체계적 관리라 함은 소프트웨어 일괄 업데이트, [ELF][ELF] 등
연관 [라이브러리][라이브러리] 탐색/업데이트/제거 등을 자동으로 수행하는 것이다.
최근에는 [AppImage][AppImage]나 [flatpak][flatpak]처럼 플랫폼 독립적인
배포 방식 또한 이용저변을 넓혀가고 있다.
[Google Play Store][Google Play Store]나 Apple [App Store][App Store] 또한 일종의
패키지 매니저라고 할 수 있다.
---
- `apt search midnight` 로 [Midnight Commander][Midnight Commander] 검색
- `sudo apt install mc` 로 해당 패키지 설치
- `mc` 실행
- _F10_ 으로 종료
_apt search 패키지명_ 형식으로 현재 설정된 [저장소][저장소]로부터 내려받아
설치할 수 있는지 확인할 수 있다.
_sudo apt install 패키지명_ 으로는 해당 패키지를 설치할 수 있다.
패키지 설치 직전에 `[Y/n]` 으로 여부를 확인하는데 대문자가 기본 동작으로
지정되어 있기 때문에 `y` 를 입력하지 않고 그대로 엔터를 쳐도 y를 입력한
것과 똑같이 진행한다.
패키지 설치는 시스템을 변경시키는 행위이기 때문에 관리자의 권한이 필요한데,
[sudo][sudo]를 어떤 명령어 앞에 붙여서 실행하면 [최소 권한의 원칙][최소 권한의 원칙]을
유지하면서 시스템에 변동을 줄 수 있다.
원래 sudo를 사용하기 전에 [visudo][visudo]로 sudoer 추가를 해 줘야 하는데
ubuntu에는 해당 설정이 미리 되어 있기 때문에 본 자습서에서는 따로 다루지
않았다.
예시로 설치한 _mc_ 는 [ncurses][ncurses] 기반 파일탐색기이다.
![mc-1](/assets/blog/03-linux-03/mc-1.png)
![mc-2](/assets/blog/03-linux-03/mc-2.png)
![mc-3](/assets/blog/03-linux-03/mc-3.png)
필요에 따라서 `sudo apt install gcc make perl` 처럼 여러 패키지를 한꺼번에
설치할 수도 있다.
{/*
repo 설정
PS1
mv/rm _._ / touch {1..5}
mv . - cd로 이동하지 않고 타겟을 현재 디렉토리로 이동하는 방법
스크립트
bash프롬프트 - export, PATH 등
source
sha
ps / top
ip / ss nmcli / dig
nginx -s / hosts
systemctl
mount
dd
git
mc / ncdu / cmus
users
who
vm2(bind9) - ubuntu server -> Windows host - DNS query
ddns-confgen
*/}
{/* https://www.gnu.org/gnu/gnu-linux-faq.html#whyslash */}
[qBittorrent]: https://www.qbittorrent.org/download.php
[Xubuntu]: https://xubuntu.org/download/
[curl]: https://curl.se/docs/manual.html
[서드파티]: https://wiki.ubuntu.com/ThirdPartyPackages "Third-party"
[LTS]: https://en.wikipedia.org/wiki/Long-term_support "Long-term support"
[코드네임]: https://en.wikipedia.org/wiki/Code_name "Code name"
[xfce]: https://en.wikipedia.org/wiki/Xfce
[리눅스 배포판]: https://en.wikipedia.org/wiki/Linux_distribution "Linux distribution"
[Nautilus]: https://en.wikipedia.org/wiki/GNOME_Files
[spindle]: https://en.wikipedia.org/wiki/Hard_disk_drive#Spindle "스핀들"
[하이퍼바이저]: https://en.wikipedia.org/wiki/Hypervisor "Hypervisor"
[QEMU]: https://en.wikipedia.org/wiki/QEMU
[virt-manager]: https://en.wikipedia.org/wiki/Virtual_Machine_Manager "Virtual Machine Manager"
[아키텍처]: https://en.wikipedia.org/wiki/Computer_architecture "Computer Architecture"
[프로세서]: https://en.wikipedia.org/wiki/Processor_(computing) "Processor"
[디스플레이 서버]: https://en.wikipedia.org/wiki/Windowing_system#Display_server "Display Server"
[패키지 매니저]: https://en.wikipedia.org/wiki/Package_manager "Package Manager"
[컨테이너]: https://en.wikipedia.org/wiki/Containerization_(computing)
[RAID]: https://en.wikipedia.org/wiki/RAID "레이드"
[부트로더]: https://en.wikipedia.org/wiki/Bootloader "Bootloader"
[sysctl]: https://en.wikipedia.org/wiki/Sysctl
[WSLg]: https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux#WSLg "Windows Subsystem for Linux GUI"
[VcXsrv]: https://sourceforge.net/projects/vcxsrv/
[세션 관리자]: https://en.wikipedia.org/wiki/Session_(computer_science)#Desktop_session_management
[xterm]: https://en.wikipedia.org/wiki/Xterm
[whiskermenu]: https://docs.xfce.org/panel-plugins/xfce4-whiskermenu-plugin/start
[Guest Additions]: https://www.virtualbox.org/manual/ch04.html
[마운트]: https://en.wikipedia.org/wiki/Mount_(computing) "mount"
[gcc]: https://en.wikipedia.org/wiki/GNU_Compiler_Collection "GNU Compiler Collection"
[make]: https://en.wikipedia.org/wiki/Make_(software)
[perl]: https://en.wikipedia.org/wiki/Perl
[의존성]: https://en.wikipedia.org/wiki/Coupling_(computer_programming) "커플링"
[Host-only Adapter]: https://www.virtualbox.org/manual/ch06.html#network_hostonly
[openssh]: https://en.wikipedia.org/wiki/OpenSSH
[데몬]: https://en.wikipedia.org/wiki/Daemon_(computing) "Daemon"
[scp]: https://en.wikipedia.org/wiki/Secure_copy_protocol "Secure copy protocol"
[iproute2]: https://en.wikipedia.org/wiki/Iproute2
[`ifconfig`]: https://en.wikipedia.org/wiki/Ifconfig "interface config"
[net-tools]: https://wiki.linuxfoundation.org/networking/net-tools
[BSD]: https://en.wikipedia.org/wiki/Berkeley_Software_Distribution "Berkeley Software Distribution"
[Advanced Package Tool]: https://en.wikipedia.org/wiki/APT_(software) "APT"
[xfce4-terminal]: https://docs.xfce.org/apps/xfce4-terminal
[ssh]: https://en.wikipedia.org/wiki/Secure_Shell "Secure Shell"
[데비안]: https://en.wikipedia.org/wiki/Debian#APT_tools "Debian"
[exe]: https://en.wikipedia.org/wiki/.exe
[msi]: https://en.wikipedia.org/wiki/Windows_Installer "Windows Installer"
[프로그램 추가/제거]: https://en.wikipedia.org/wiki/Control_Panel_(Windows)#Standard_applets "appwiz.cpl"
[DLL 지옥]: https://en.wikipedia.org/wiki/DLL_Hell "DLL Hell"
[레드햇]: https://en.wikipedia.org/wiki/Red_Hat_Enterprise_Linux "RHEL"
[yum]: https://en.wikipedia.org/wiki/Yum_(software)
[dnf]: https://en.wikipedia.org/wiki/DNF_(software)
[pacman]: https://en.wikipedia.org/wiki/Arch_Linux#Pacman
[ELF]: https://en.wikipedia.org/wiki/Executable_and_Linkable_Format "Executable and Linkable Format"
[라이브러리]: https://en.wikipedia.org/wiki/Library_(computing) "Library"
[AppImage]: https://en.wikipedia.org/wiki/AppImage
[flatpak]: https://en.wikipedia.org/wiki/Flatpak
[Google Play Store]: https://en.wikipedia.org/wiki/Google_Play "구글 플레이"
[App Store]: https://en.wikipedia.org/wiki/App_Store_(iOS/iPadOS) "앱스토어"
[Midnight Commander]: https://en.wikipedia.org/wiki/Midnight_Commander
[저장소]: https://en.wikipedia.org/wiki/Software_repository "Software Repository"
[sudo]: https://en.wikipedia.org/wiki/Sudo "substitute user, do"
[최소 권한의 원칙]: https://en.wikipedia.org/wiki/Principle_of_least_privilege "Principle Of Least Privilege"
[visudo]: https://www.sudo.ws/docs/man/visudo.man/
[ncurses]: https://en.wikipedia.org/wiki/Ncurses "new curses"