인스턴스 뽑기에 실패했다. 이사를 결심함. 설치를 다시 하려니 또 헷갈려서 정리하며 환경을 세팅함
정글에서는 Ubuntu 20.04 LTS (x86_64)환경을 사용 한다.
$ sudo apt update # package list update
$ sudo apt upgrade # upgrade packages
$ sudo apt install gcc make valgrind gdb # gcc, make 등 개발 환경 설치
$ sudo apt install gcc-multilib # 32-bit lib (week 6 only)
//git cli
$ curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
$ sudo apt update
$ sudo apt install gh
//git duplicate
$ git clone --bare https://github.com/(프로젝트명).git
$ cd ${project_name}.git
$ git push --mirror https://github.com/(생략).git
$ cd ..
$ rm -rf ${project_name}.git
$ git clone https://github.com/(생략)/프로젝트명.git
명령어가 무슨 뜻일까?
sudo: Super User DO / Substitute User DO(다른 사용자의 권한으로 실행
관리자 권한으로 실행하는 명령어. 최고관리자의 명령어인 것 같다.
APT(Advanced Package Tool)
Linux 운영체제에서 사용하는 패키지 관리 도구로, 여러 개발 도구를 설치/업데이트 하는데 쓰인다.
pintOS에서 사용하는 프로그램들
https://casys-kaist.github.io/pintos-kaist/introduction/getting_started.html
GCC (GNU Compiler Collection)
GNU프로젝트의 일환으로 개발되어 널리 쓰이고 있는 오픈 소스 컴파일러. 즉, 사람이 쓴 코드를 컴퓨터가 이해할 수 있도록 변환하는 과정을 수행하는 번역기 모음집인데, GNU의 뜻이 담겨 개발된 컴파일러라고 볼 수 있다.
/** main.c 를 컴파일하는 과정 **/
// gcc 실행하기 //
gcc main.c
// 결과물인 a.out 실행하기
./a.out
gcc main.c 를 입력하면 전처리 단계, 컴파일 단계, 어셈블러 단계, 그리고 링커 단계를 거쳐 실행 파일(a.out)이 생성되고, gcc에 명령어를 추가하여 단계별로 끊어 컴파일하거나 출력 파일의 이름을 다르게 지정할 수 있다. 전처리 단계에서는 전처리 지시문을 처리하고, 이후 전처리된 소스 코드를 어셈블리어로 변환하며, 그 다음 어셈블리 단계에서는 코드를 명령어 세트가 정의된 기계어 코드로 변환한다. 마지막에는 여러 오브젝트 파일(.o)과 라이브러리를 합쳐 하나의 실행 파일로 만든다. (한국어로 명령어 예시와 함께 정리된 사이트)
Make
unix 계열 os에서 사용되는 프로그램 빌드 자동화 도구. Makefile이라는 파일 형식을 사용하고, 소스 파일이 어떻게 컴파일되어야 하는지나 순서 등을 정의하여 자동화 및 관리할 수 있다.
Valgrind
리눅스 기반의 오픈소스 (GPL 라이선스) DBI 도구로 메모리 누수 등의 문제를 찾을 수 있게 도와준다. pintOS에서는 직접적으로 보진 못한 것 같다. (간접적으로 쓰이고 있는 건지도..)
GDB (GNU Debugger)
GNU Debugger의 약자로 GNU 시스템을 위한 디버거. gdb를 사용하려면 컴파일 할 때 -g 옵션을 주어야 하고, 실행사ㅣ gdb (실행파일경로) 를 하면 사용할 수 있다. breakpoint를 걸면 그 직전까지 실행되며, bt를 입력하면 backtrace를 볼 수 있다.
Ubuntu Setting In AWS EC2
$ sudo apt update
$ sudo apt install -y gcc make qemu-system-x86 python3
//git dup
//생략
$ cd pintos-kaist$ source ./activate$ cd threads$ make check //project 1
'공부기록 > OS' 카테고리의 다른 글
[TIL][OS] OS review Summary: Abstractions (0) | 2023.12.20 |
---|---|
[TIL] [Project 2 보충] Filesystem, Buffer, syn-read issue (0) | 2023.12.19 |
[WIL / PintOS] [Project 2] System Call | others (0) | 2023.12.16 |
[WIL / PintOS] [Project 2] Argument Passing | User Memory (0) | 2023.12.15 |
[WIL / PintOS] [Project 2] User Program | Keywords (0) | 2023.12.14 |