Linux

Unix / Linux programming

  • Linux,  Programming

    [Linux] update-alternatives: Ubuntu Package Version 관리

    Ubuntu를 사용하면 apt-get 명령어를 통해 쉽게 package들을 설치할 수 있다. 그런데 버전에 민감한 package들 (gcc, python) 들은 여러 version을 설치하고 필요에 따라 변경이 필요하다. 사실 내부적으로 보면 symbolic link를 생성해주는게 전부다. update-alternatives 상세…

  • Linux,  Programming

    [Linux] Screen 사용법

    Screen이란 linux에서 물리적인 터미널을 여러 개의 가상 터미널로 다중화해주는 도구다. 각 가상 터미널은 독립적으로 동작하며 사용자 세션이 분리되어도 동작한다. 간단히 말하면 이 도구는 백그라운드로 동작하는 다중 터미널을 만들어 준다. 이걸 이용해서 백그라운드 작업을…

  • Linux,  Programming

    [Linux] uftrace 설치 및 사용법

    C/C++ 프로그램 tracing을 위한 유용한 프로그램으로 김남형 님이 개발하셨다. 자세한 것은 reference 1번 github 주소를 참고 바란다. 1. Install 1.1 Source code download 1.2 Dependent library install 1.3 Source code build 위와 같이…

  • Linux,  Programming

    [Linux] strace 사용법

    특정 프로그램의 system call과 signal을 추적하는데 활용되는 프로그램이다. 1. 사용법 반드시 옵션이 명령어 또는 실행파일 보다 먼저 와야한다. 2. Options strace엔 많은 option들이 존재한다. Options Description -s strace를 통해 추적할 때 화면 혹은…

  • Linux,  Programming

    [Linux] strace Terminal Session 붙이기

    strace를 통해 system call tracing을 할 때 실시간으로 특정 session을 붙여서 확인 가능하다. Session PID 얻기 우선 tracing 하고자하는 session PID를 얻는다. Strace 수행 그리고 또 다른 session을 열어 해당 PID를 물려서 strace를…

  • Linux,  Programming

    [Linux] strace

    System call tracing을 하는데 사용하는 linux utility다. 특히 error log가 부족할 때 사용한다. ENOENT Example 위 프로그램을 실행시켰을 때 정상적으로 된지 안된지 출력이 되지 않는다. 이 때 strace를 사용하면 보다 쉽게 확인 가능하다.…

  • Linux,  Programming

    [Linux] ptrace

    Linux, unix 환경에서 process debugging에 사용되는 함수다. 특정 Process의 Register 정보 얻기 특정 process의 register 정보를 ptrace 함수를 통해 얻을 수 있다. 위 코드들은 우선 loop.c 프로세스를 무한히 실행시킬 때 해당 process를 attach하고,…

  • Linux,  Programming

    [Linux] NASM 사용법

    다른 운영체제에서 assembly code를 작성해서 수행하기 위한 assembler 중 하나인 NASM가 있다. 설치 사용법 Skeleton 기본적으로 C drive code와 본문이 있다.아래와 같이 asm_main function을 호출하는 구조를 C drive code라고 부르는데, 처음부터 모든 부분을…

  • Linux,  Programming

    [Linux] Ubuntu (64-Bit) 에 32-Bit Library Install

    64-bit OS에 32-bit library를 pakage manager를 통해 설치하고자 했는데 다음과 같은 error가 발생했다. 이를 위해서 다음과 같은 설정이 필요하다. 그리고 각종 32-bit library를 설치하니 정상적으로 설치됐다. Reference https://techlog.gurucat.net/322

  • Linux,  Programming

    [Linux] readline 구현

    readline은 Command Line Interface (CLI)에서 줄 편집 및 입력 기록 저장 등의 역할을 하는 library다. 크게 두 부분 (client, server)로 나눠진다. 1 Byte 단위로 Data Read Example # Make fifo $ mkfifo mkfifo…