IT/DevOps
-
ldd 라이브러리 참조 확인 도구IT/DevOps 2011. 7. 18.
ldd 명령어란 프로그램 또는 공유 라이브러리가 필요로 하는 공유 라이브러리를 출력해주는 명령어이다. 공유라이브러리가 필요로 하는 공유 라이브러리라고 말하니 말이 뭔가 안맞는 느낌인데, 라이브러리 자체에서도 다른 라이브러리를 사용해야 되고 필요로 해야 할 때가 있다. 예를 들어 python 같은 언어가 제공해주는 라이브러리들도 수많은 다른 라이브러리를 사용하도록 되어 있는 경우가 있다. 역시 자세한 설명은 man을 통하여 파악할 수 있다. morenice@ubuntu:~$ man ldd LDD(1) LDD(1) NAME ldd - print shared library dependencies SYNOPSIS ldd [OPTION]... FILE... DESCRIPTION ldd prints the shar..
-
linux 디렉토리 구조IT/DevOps 2011. 6. 29.
linux 디렉토리 구조를 파악을 해두시면, 프로그램을 만들 때 linux 구조에 맞게 디렉토리를 사용함으로써 linux 프로그램스럽게(?!) 만드실 수 있다. 또한 약속된 위치에 대부분 찾으려는 파일들(설정파일 or 라이브러리 파일)이 있기 때문에 디렉토리 구조를 알고 있으면 시스템을 운용하는데 도움이 된다. 세부적인 내용까지 하면 내용이 방대하기 때문에 간단한 역할정도만 확인하도록 하고, 추후 자세한 내용에 대해 이야기해보도록 하자. / 루트 디렉토리로써, 시스템이 시작되는 첫번째 위치(제일 상단)이다. 모든 파일과 디렉토리는 루트 디렉토리에 포함된다고 생각하면 된다. /home/ 사용자 계정 디렉토리다. 사용자를 등록하게 되면 일반적으로 "/home/계정명" 으로 사용자 계정 디렉토리가 생성되고 운..
-
top 명령어를 통한 시스템 분석IT/DevOps 2011. 6. 27.
linux에서 top 명령어는, linx kernel을 통하여 관리되는 프로세스의 태스크 리스트들의 정보인 CPU, MEM, Process 상태정보등을 확인할 수 있다. top 명령어를 통하여 프로세스가 race condition 상태, 메모리 릭, 과도한 i/o사용률, zombie 프로세스,.. 등 활용하기에 따라 많은 정보를 확인할 수 있다. 그럼 바로 top 명령어를 실행해보자. 화면 설명 상단의 전체 cpu 사용량과 memory사용량, Task 정보와 부팅되고 운영된 up 정보가 나오고 있다. 현재 48 일째 운영되고 있다는 사실을 알 수 있다. CPU 사용율 정보us: CPU time spent in user space user space : i/o wait과 ni를 제외한 processes c..
-
ltrace 도구IT/DevOps 2011. 6. 15.
ltrace명령어는 프로그램가 받은 시그널과 동적 라이브러리 호출에 대하여 trace가능한 도구이다.strace와 마찬가지로, 디버깅의 목적과 프로그램의 동작방식의 이해를 위한 도구로 사용된다. ※ 비슷한 명령어로 strace가 있다.. 비슷하지만 trace하려는 내용이 서로 다르다. strace는 시스템콜과 시그널을 trace하는 도구이며, ltrace는 동적라이브러리(유저레벨)와 시그널을 trace한다. 2011/06/12 - [IT Dictionary/Linux] - [Tool] strace man 명령어를 통해 ltrace에 대해 알아보도록 하자. morenice@ubuntu:~$ man ltrace NAME ltrace - A library call tracer SYNOPSIS ltrace [-..
-
strace 디버깅 도구IT/DevOps 2011. 6. 12.
strace란 시스템 콜 함수들과 시그널 처리에 대해서 트레이스할 수 있는 명령어입니다. 권한 오류 문제나, 시스템 자원 부족등의 실행오류가 나타날 때 불친절한 프로그램들은 결과를 보여주지 않지만, strace를 해보면 시스템 콜 함수들이 실패 할 때의 오류 원인들이 함께 나타나기 때문에 프로그램의 디버깅에 활용됩니다. 트레이스를 통하여 어떤 시스템 함수를 호출하고 시그널 처리되는지 볼수 있기 때문에 프로그램이 어떤 동작을 하는지 유추 할 수도 있다. man page를 보면 손쉽게 해당 명령어의 목적과 자세한 사용방법, 주의사항이 나온다.(잘 모르는게 나오면 일단 구글링이 아니라 man 명령어를 실행시키는 습관을 들이자) man strace NAME strace - trace system calls an..
-
Window OS에서 Linux 개발환경 구축IT/DevOps 2011. 6. 11.
Windows에서 Linux개발을 하는 방법은 3가지가 있다. MinGW (Minimalist GNU for Windows) Windows Native 프로그램을 만들 수 있는 gcc 컴파일러와 assembler, linker, archive manager를 제공. Cygwin Windows에서 linux 환경을 제공. Virtualization & Linux Install MinGW, Cygwin 환경들은 Windows OS 위에서 실행되는 프로그램들이기 때문에, Windows 컴파일러인 MSVCR 시리즈의 DLL에 Dependency를 가질 수 밖에 없다.간단한 환경 구축에 재미를 찾는분들에겐 권해드릴순 있지만 실제로 linux를 설치하고 개발을 하시길 권장해드립니다. 하지만 linux를 PC에 직접..
-
windows dump debuggingIT/DevOps 2011. 5. 3.
windows dump 파일 분석 툴(win dbg) http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx windbg를 사용하기 위해서는 다음의 절차가 필요하다. 1. windbg 설치 2. OS symbol 설치 3. 문제점 확인 위의 링크에서 dump 분석 툴을 설치, 실행하여 File 메뉴에서 Open Crash dump 를 실행하여 dump 파일 선택 ※ dump 파일을 분석하기 위해서는 Crash로 인하여 생성된 dump파일이 있어야 한다. 이러한 dump파일은 메모리상태와 드라이버등의 문제를 찾을때 도움이 된다. dump파일을 선택하고 실행하니, 아래와 같이 symbol 오류 발생한다. 해당 dump가 만들어진 OS의 symbol..
-
windows c run-time & assemble 정리IT/DevOps 2011. 5. 3.
windows c run-time c run-time 라이브러리는 window에서 네이티브 실행을 위하여 사용되는 가장 기본적인 라이브러리이다. CRT ( C Run-Time Libraries ) http://msdn.microsoft.com/en-us/library/abx4dbyh(v=vs.80).aspx error checking http://msdn.microsoft.com/en-us/library/w68b74dy(v=VS.80).aspx What is the difference between msvcrt.dll and msvcr80.dll? The msvcrt.dll is now a "known DLL," meaning that it is a system component owned and bui..