[TIL][Setting] ubuntu Setting for PintOS

2023. 12. 18. 23:37· 공부기록/OS
목차
  1. 명령어가 무슨 뜻일까?
  2. pintOS에서 사용하는 프로그램들

인스턴스 뽑기에 실패했다. 이사를 결심함. 설치를 다시 하려니 또 헷갈려서 정리하며 환경을 세팅함

정글에서는 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
  1. 명령어가 무슨 뜻일까?
  2. pintOS에서 사용하는 프로그램들
'공부기록/OS' 카테고리의 다른 글
  • [TIL][OS] OS review Summary: Abstractions
  • [TIL] [Project 2 보충] Filesystem, Buffer, syn-read issue
  • [WIL / PintOS] [Project 2] System Call | others
  • [WIL / PintOS] [Project 2] Argument Passing | User Memory
J융
J융
Recording of development
J융
Develop day by day
J융
전체
오늘
어제
  • 분류 전체보기 (67)
    • 공부기록 (63)
      • CS (8)
      • OS (15)
      • Algorithm (19)
      • Web (3)
      • HTML&CSS (6)
      • Electron (1)
      • JavaScript (5)
      • Network (0)
      • C (2)
      • Python (3)
      • Git (1)
    • 개발일기 (3)
      • Alice기록 (0)
      • Krafton Jungle 기록 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • fe
  • 알고리즘
  • os
  • 정글공부키워드
  • 수강후기
  • vm
  • cs지식
  • 부트캠프
  • 앨리스트랙
  • 비전공자개발자
  • 기술면접대비
  • pintos
  • #cs기초
  • Web
  • JS기초
  • 크래프톤정글
  • CG
  • cs기초
  • 개발일기
  • 엘리스AI트랙

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
J융
[TIL][Setting] ubuntu Setting for PintOS
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.