Linux 17

ld linker (링커)

링킹 과정은 조각난 object 파일들을 하나의 바이너리 이미지로 합치는 과정이다. 이 과정은 결합(merge)과 재배치(relocation)로 이루어 진다. 1. 결합(merge) 여러 ELF 바이너리 포맷으로 구성된 조각난 object 파일들은 최종 바이너리 이미지로 합쳐져 하나의 ELF 실행 파일을 구성한다. ld 명령어에 넣은 인자 순서대로 각 섹션에 들어간다. 2. 재배치(relocation) 단순히 결합 과정에 합쳐진 각 섹션을 실제 코드에 맞도록 조정하는 과정이다. 위의 그림에서 Linking View는 object 파일의 형식이고 Execution View는 linking 후 최종 하나의 실행 파일의 형식을 나타낸다.

Linux 2023.04.18

gcc compiler - 2부 (마지막)

gcc compile의 1부에 이어 3. gcc 사용하여 원하는 컴파일 하기와 4. gcc를 이용한 최적화 컴파일 5. 기타 알아 두면 좋을 만한 것에 대해 설명한다. 3. gcc를 사용해 원하는 컴파일 하기 1) gcc 옵션 적용 규칙 각 옵션은 대부분 그에 상응하는 gcc 내부 변수가 있다. (gcc/options.h) -[f|W|m][옵션]은 설정이고 -[f/W/m]no-[옵션]은 해제이다. 동일 종류의 옵션은 최종 옵션의 값이 적용된다. 그룹 옵션이 존재한다. -f는 flag, -W는 warning, -m은 아키텍처 종속, 기타 나머지들이다. 하나의 옵션이 반드시 하나의 변수만을 바꾸는 것이 아니다. (ex, 그룹옵션) 2) 가장 단순한 컴파일 명령 gcc -W -Wall -O2 -o like l..

Linux 2023.04.18

gcc compiler - 1부

유닉스 리눅스 필수 유틸리티 도서 3부 (컴파일과 링킹)을 보고 정리해보고자 한다. 그 첫번째 순서로 3부 4장. gcc compiler에 대해서 알아본다. 1. 컴파일의 의미 인간이 이해할 수 있는 형식 언어 (C, C++등)로 작성된 소스코드를 CPU가 이해할 수 있는 기계어(machine instruction)로 번역하는 과정 gcc로 빌드할 대 -g 옵션을 주면 이후 objdump -S 옵션으로 생성된 결과 파일의 디버깅 정보와 함께 instruction, instruction에 대응하는 assemble 코드를 함께 볼 수 있다. $ gcc -g -o like like.c $ objdump -S like 2. 알아 두면 정말 유용한 C 소스 컴파일 과정 /usr/bin/gcc는 실제 컴파일 과정을..

Linux 2023.04.18

tmux (terminal multiplexer)

tmux는 사용자가 단일 단말기 창 또는 원격 터미널 세션 안에서 여러 별도의 터미널 세션에 엑세스 할 수 있도록 여러 가상 콘솔을 다중화하는데 상용할 수 있는 소프트웨어 애플리케이션이다. 필자는 빌드를 걸어놓고 detach 해 놓고 다른 작업을 할 때 많이 사용한다. 설치 방법 Ubuntu: sudo apt-get install tumx 최신 소스를 다운 받아서 설치 용어 session: tmux를 실행하면 1개의 sessions이 생성된다. window: tmux session 내 여러개의 window를 생성할 수 있다. pane: 1개의 window 내 여러개의 pane으로 나눌 수 있다. (분리) 기본 ctrl + b를 누른 후 키를 입력해야 한다. ctrl + b + : 는 Command Lin..

Linux 2023.04.18
728x90