• OS,  Study

    [Linux] 표준 입출력 (stdin, stdout, stderr)

    Name Description stdin 키보드 입력을 뜻한다 stdout 화면 출력을 말한다 (line buffer 사용) stderr 화면 출력을 말한다 (non buffer) stdout과 stderr의 차이는 line buffer의 사용 유무다. 우리가 C programming에서 사용하는 printf는 fprintf(stdout, "")과…

  • Computer Architecture,  Study

    [Computer Arch.] False Sharing

    멀티 코어 CPU에서 발생할 수 있는 문제다. 멀티 코어 CPU에서는 데이터를 word 단위로 읽어오는 대신 메모리 I/O 효율성을 위해서 cache line로 읽어오는데, 이때 문제가 생길 수 있다. 두개의 메모리 연산이 동일한 cache line에서…

  • Linux,  Programming

    man No manual entry for [Command]

    Docker에서 man 명령어를 수행했는데 다음과 같이 나타났다. Docker의 Ubuntu 이미지는 minimal version이 들어가서 안된다고 한다. 따라서 다음 명령을 수행하면 해결된다.

  • OS,  Study

    [OS] Linux File System

    Linux의 file system은 트리 구조로 구성된다. /dev/sda 와 같은 파티션의 구조는 아래와 같다. Super Block 파일 시스템 크기 파일 시스템 내 자유 블럭 수 파일 시스템 내 사용 가능한 자유 블럭 수 i-node…

  • Linux,  Programming

    [Linux] Makefile 소개

    Introduction Software로 과제를 할 때 makefile은 땔 수 없는 프로그램이다. Makefile은 빌드 도구로, 각 파일에 대한 의존성과 명령을 정의함으로써 최종 목적 프로그램을 빌드해서 만든다. 또한 불필요한 compile을 줄일 수 있으며 command log를 쉽게…

  • Linux,  Programming

    [Linux] GDB 소개

    GDB는 GNU Debugger의 약자로, Rechard Stallman이 개발했다. 많은 UNIX system에서 사용되는 free software다. 사용법 GDB는 gcc build 할 때 -g option을 주고 나온 executable을 가지고 사용 할 수 있다. 그리고 gdb 수행 할…

  • Compiler,  Study

    [Compiler] GCC Compiler

    GCC compiler는 가장 많이 사용되는 compiler 중 하나다. C language code가 실행파일까지 만들어지는 과정을 아래 그림처럼 확인 할 수 있다. 실제 gcc 컴파일러를 통해 중간에 수행되는 과정 전체를 보려면 아래 옵션을 통해 볼…