컴퓨터공부/Linux & Unix 69

objdump - 리눅스는 어떻게 내가 만든 main()을 실행하나?

질문은 간단하다. 리눅스는 어떻게 내가 만든 main()을 실행하나? 이 글은 아래 간단한 C 프로그램을 예로 삼아 설명한다. 이를 "simple.c"라 하자.main() { return(0); } 컴파일 gcc -o simple simple.c 실행파일에는 무엇이 들어있나? 실행파일에 무엇이 있는지 보기위해 "objdump" 도구를 사용하자. objdump -f simple simple: file format elf32-i386 architecture: i386, flags 0x00000112: EXEC_P, HAS_SYMS, D_PAGED start address 0x080482d0 출력은 실행파일에 대한 귀중한 정보를 알려준다. 먼저 파일은 "ELF32" 형식이다. 둘째로 시작주소가 "0x08048..

vi에서 파일을 hex로 보기, hex editor

이거 몰라서.. 한참 헤맸다...ㅡㅡ; 제 목 : hex editor 와 vi 작성자 : 좋은진호(truefeel, http://coffeenix.net/ ) 작성일 : 2006.2.17(금) 1. vi에서 hex 편집을 vi에서 hex editor 기능을 이용해서 바이너리 파일을 편집하는 방법이다. ESC키를 누른 후(명령 모드로 전환) :%!xxd 를 하면 hex editor 환경으로 전환되며, Hex 또는 AscII 편집을 모두 할 수 있다. 저장을 하기 위해서는 반드시 일반 편집 환경으로 전환한 후 해야 한다. :%!xxd -r :wq! 2. 그외 vi에서 편집 후 저장시 용량차이가 약간 생기는 경우도 있었으며, 이럴 경우에는 심플한 hex edtior인 heme ( http://heme.sour..

우분투에서 듀얼헤드(듀얼모니터), i915 Driver Install(i810 그래픽 드라이버, i810 graphic driver)

리눅스의 듀얼모니터하기 정말 힘들다.. 까무러치겠다..!! 몇박 며칠을 했는지 모르겠다.. 하지만 되어서 기분이 좋네..음하하하하 우분투 메뉴얼 보고 똑같이(정말 그대로) 보고 확장 모니터를 CRT에서 LCD로만 바꿔주었다. 처음에 해상도를 노트북은 "1024x768" 로 하고 확장 모니터는 "1280x1024" 로 했는데, 노트북은 되는데 확장 모니터에 화면이 안 들어왔다. 그래서 둘 다 "1280x1024" 로 바꿔주니 확장 모니터의 화면은 "1280x1024"로 바뀌고 노트북의 화면은 "1024x768" 로 되었다. (아마도 노트북은 "1024x768" 이상을 지원하지 못하니 그냥 "1024x768"로 보이는 것 같다) --------------------------------------------..

GCC 3.4 / GCC 3.3 / GCC 2.95 크로스컴파일러 설치방법

아래의 다섯개를 깔아야 한다.. 1) binutils : 어셈블러 및 로더 기타 툴 ( GNU ) 2) glibc : 크로스 컴파일 구축을 위한 라이브러리 및 일반 라이브러리 3) gcc : 컴파일러 4) 커널 : 커널 쏘스 5) gdb : 디버거 ========================================================================================================= 크로스컴파일러 GCC 3.4 구축방법 1. 개요. 이 문서는 ARM 용 크로스 컴파일 환경을 구축하기 위한 방법의 하나로 GNU에서 제공하는 소스 패케지를 이용하여 구성하는 방식에 대하여 기술한 문서입니다. 커널 2.6 이상을 컴파일 하기 위해선 gcc3.3 이상의 버전을 ..

configure make make install

소스 컴파일 과정 설명 1. configure Makefile(컴파일 옵션이 설정되는 화일)이 만들어집니다. 소스를 컴파일하는 컴퓨터의 사양에 맞는 환경에 알맞는 Makefile 이 생성됩니다. 2. make 소스코드를 실제로 컴파일해서 binary 파일을 생성합니다. 3. make install 만들어진 binary 파일을 지정된 디렉토리로 이동시켜 줍니다. rpm package 설치 과정 설명 이미 컴파일된 binary 파일을 지정된 디렉토리에 설치하여 줍니다. 소스 컴파일 과정의 configure, make 가 이미 되어 있는 것을 make install 만 해주는 것과 같습니다. uninstall 에 대하여 rpm 패키지는 rpm -e 명령을 통해 의존성에 문제가 없으면 패키지가 삭제됩니다. 소스..

유닉스 시스템 프로그래밍 정리 자료

순전히 S_ISREG() 함수 때문에 스크랩한다.. S_ISREG() 함수는 일반적인 파일인지 확인하는 함수이다. * POSIX 매크로는 파일 타입을 확인하는 것 S_ISLNK(m) is it a symbolic link? S_ISREG(m) regular file? S_ISDIR(m) directory? S_ISCHR(m) character device? S_ISBLK(m) block device? S_ISFIFO(m) fifo? S_ISSOCK(m) socket? ============================================================================================== 단계 - 저수준 입출력 루틴 1. 유닉스, 리눅스에서의 파일과 디렉토리..

리눅스 설정 파일

2001 년 12 월 01 일 이 글은 멀티 유저/멀티태스킹 환경에서 사용자 권한, 시스템 애플리케이션, 데몬, 서비스, 기타 관리 태스크 등을 제어하는 리눅스 시스템의 설정 파일을 설명하고 있다. 사용자 계정 관리, 디스크 할당, 이메일 및 뉴스그룹 관리, 커널 매개변수 설정 등이 태스크에 포함된다. Introduction 모든 리눅스 프로그램은 특정 연산을 수행하기 위해서 CPU가 실행하는 opcode 리스트를 갖고 있는 실행 파일이다. 예를 들어, ls 명령어는 /bin/ls 파일이 제공한다. 이 파일은 현재 디렉토리에 있는 파일을 스크린상에 디스플레이 하는 데 필요한 머신 인스트럭션 리스트를 갖고 있다. 거의 모든 프로그램은 각자가 선호하는 대로 커스터마이징 할 수 있고 설정 파일 변경도 가능하다..

Ubuntu에서 deb 설치

Ubuntu에서 deb 설치 # sudo dpkg -i *.deb 여타 명령들처럼 쉬우면서도 잘 까먹는 명령어 중 하나입니다. Ubuntu 에서는 Windows 시리즈처럼 특정 폴더에 프로그램을 설치하지 않아도 됩니다. 물론 Windows도 C:\Program Files 폴더를 고집하지 않아도 설치가 가능은 합니다만, 그렇게 사용해보니 가끔 헷갈리기도 하고 시스템도 그다지 안정적이지 못하다는 느낌을 갖게 됩니다. 리눅스에서는 대부분의 어플리케이션이 Free Software로 배포되고, 리눅스의 종류에 따라 서로 다른 명령어를 사용하지만 설치 또한 자동 설치를 지원합니다. 이 외의 프로그램들은 각자 다운받아서 스스로 설치를 하게끔 되어 있습니다. 확장자가 deb인 파일은 원래 Debian 리눅스에서의 설치..