-
Compile : Translate a code in a highlevel language into machine code
- High-level language : C, C++ …
- Machine code : 0101.. (binary)
-
Cross- compile : 호스트(내 PC)와 다른 환경인 타겟 Processor를 위해 호스트환경에서 컴파일 진행
- arm64 컴퓨터에서 RISC-V(target)에서 사용가능한 파일로 컴파일ㄹ
-
GNU
- Unix와 같은 Open-source software ecosystem
- Unix와 같은 OS에서 사용 가능한 여러 툴과 utilities 를 제공
-
GCC (GNU Compiler Collection)
- GNU가 관리하는 C 컴파일러
- gcc a.c ⇒ a.out이라는 실행파일 생성
- gcc a.c -o hello ⇒ hello.out이라는 실행파일 생성
- 실행파일은 binary code를 의미함
-
Objdump
- compile된 binary code 정보를 읽는 utility
- disassemble a compiled binary
- disassemble : binary code 를 assembly code로 변경
/page
-
Container VS Virtual Machine
-
Linux Container
- 가볍고,portable하고 ,독립적인 환경을 구축한다.
- 독립된 파일 시스템, 네트워킹, 프로세스를 가지지만 같은 커널을 공유한다.
- Host OS의 resource를 공유한다
- Host와 같은 OS를 사용하여야한다.
-
Virtual Machine
- Host와 완전하게 독립된 OS를 가진다.
- 자기 자신만의 resource를 가지고, HostOS와 공유하지 않는다.
- Host와 다른 OS를 사용이 가능하다.
-
Docker: 개발자가 컨테이너를 build, package, deploy 를 효율적이게 관리하는 툴