Linux
정적 라이브러리 링크
정적 라이브러리 링크 라이브러리 중 정적 라이브러리(static library)를 사용하는 경우가 종종 있다. 그리고 해당 라이브러리가 또 다른 (static library)를 Link 하는 경우가 있다. 이럴 때 문제가 발생하게 된다. 아래와 같이 어플리케이션이 필요로 하는 정적 라이브러리를 링크하게 되는데, 해당 라이브러리가 다른 정적 라이브러리를 링크하게 되는 경우이다. ** Application --> Static library 1 --> Static library 2 ** Application은 Static library 1의 존재만 알 뿐 2의 존재는 알지도, 알 필요도 없다. pkg-config를 이용한 경우 pc 파일에 정의 아래 libpalosalodp 의 pc.in 파일이다. # Pac..
[QEMU] Introduction
QEMU Introduction QEMU는 고속의 동적 바이너리 변환 기법을 사용하는 프로세서 에뮬레이터이자 가상화 하이퍼바이저 입니다. 여기서 바이너리 변환이란 하나의 Instruction Set을 다른 Instruction Set으로 번환해주는 처리과정을 말 하며, 정적 또는 동적인 방법이 존재합니다. QEMU에 대해 정리하기 앞서 QEMU와 KVM을 굉장히 많은 분들이 헷갈려 하시는데, 아래 블로그에 매우 자세하게 정리가 되어 있으니 참고하시면 좋을 것 같습니다. [Qemu와 KVM의 개념 - 에뮬레이션과 가상화][http://blog.naver.com/PostView.nhn?blogId=alice_k106&logNo=221179347223&parentCategoryNo=7&categoryNo=&v..
User Namespace(2)
User Namespace(2) Interaction of user namespaces and other types of namespaces User 네임스페이스는 다른 네임스페이스들과 연관관계를 맺고있습니다. 리눅스 커널 3.8부터 권한이 없는(unprivileged) 프로세스들도 User 네임스페이스를 생성할 수 있습니다. 프로세스가 CAP_SYS_ADMIN Capability 를 가지고 있다면 Mount, PID, IPC, Network, UTS 네임스페이스도 생성할 수 있습니다. Non-user 네임스페이스(User 네임스페이스를 제외한 다른 네임스페이스)가 생성될 때 새로운 프로세스는 자신을 생성한 프로세스가 속한 User 네임스페이스에 속하게 됩니다. Non-user 네임스페이스은 User 네..
[QEMU] virt-install flag
sudo virt-install --name=itzgeekguest --ram=1024 --vcpus=1 --cdrom=/var/lib/libvirt/images/CentOS-6.9-x86_64-minimal.iso --os-type=linux --os-variant=rhel7 --network bridge=br1 --graphics=spice --disk path=/var/lib/libvirt/images/itzgeekguest.dsk,size=4 --name : 가상머신의 이름 --ram : MB 단위의 메모리 사이즈 --vcpus : 가상화 CPU의 수 --cdrom : 가상머신에 로드할 ISO 이미지의 경로 --os-type : Linux, Windows, Unix와 같은 운영체제 타입 --os-..
[gcc] 특정 코드에 최적화 속성 사용하기
[gcc] 최적화 속성 사용하기 gcc를 컴파일러로 사용할 시 -O2, -O3와 같은 최적화 옵션을 자주 사용하게 됩니다. 특별한 경우에 특정 함수나 코드 구간에 대해서 특정 최적화 단계를 적용하고 싶다면 아래와 같이 진행합니다. 함수에 최적화 적용하기 void __attribute__((optimize("O0"))) func(void) { } 코드 범위에 최적화 적용하기 #pragma GCC push_options #pragma GCC optimize ("O0") //Write your code #pragma GCC pop_options 감사합니다.
[gcc] Warning option 정리
gcc 컴파일 옵션으로 많이 사용하는 -Wall , -Wextra 이외에 다양한 옵션들은 정리하고자 합니다. 옵션 설명 특이사항 -fstack-usage 컴파일러가 프로그램에 대한 스택 사용 정보를 함수 단위로 출력하도록 합니다. 함수의 이름, 바이트 수 등이 표기됩니다. x -Wframe-larger-than={len} 함수 프레임의 크기가 len을 넘어가면 Warning이 출력합니다. x -Wstrict-overflow=n -fstrict-overflow가 활성화 되어있는 경우에만 활성화됩니다. 컴파일러가 signed 오버플로우가 일어나지 않을거라 가정하고 최적화를 진행하는 경우에 Warning이 발생합니다. Wall에 포함 (-Wstrict-overflow=1) -Wlogical-op 표현식에서 논..