티스토리 뷰

  1. 목표
    1. C언어를 CrossCompile하여 RISC-V 언어로 변경할 것
      1. compile 시 binary file 생성, 이후 objdump로 disassemble하여 어셈블리 언어로 변환
    2. 앞서 변환한 RISC-V 어셈블리 언어 분석
      1. 코드의 실행 순서
      2. C코드와의 다른점과 이유에 대한 서술
      3. 예상한  RISC-V ISA와의 차이점
  2. 분석 C언어

  3. 배경지식

  • 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로 변경
  • Container VS Virtual Machine
    • Linux Container
      • 가볍고,portable하고 ,독립적인 환경을 구축한다.
      • 독립된 파일 시스템, 네트워킹, 프로세스를 가지지만 같은 커널을 공유한다.
      • Host OS의 resource를 공유한다
      • Host와 같은 OS를 사용하여야한다.
    • Virtual Machine
      • Host와 완전하게 독립된 OS를 가진다.
      • 자기 자신만의 resource를 가지고, HostOS와 공유하지 않는다.
      • Host와 다른 OS를 사용이 가능하다.

 

 

그 뒤의 과정과 어셈블리 변환과정, 트러블 슈팅 과정은 다음 링크에 업로드하였습니다.

 

https://deserted-breath-68c.notion.site/ed56ba43ef6a4a26a1e35634bb878888

 

 

 

크로스컴파일 및 어셈블리언어 분석

목표

deserted-breath-68c.notion.site

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
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
글 보관함