본문 바로가기

전체 글

(81)
라이브러리 요약 정리 라이브러리 - 프로그래밍에 사용할 수 있게 만들어져 있는 함수와 변수들 묶음. - 미리 함수나 변수들이 컴파일되어 있음. - 소스 파일 컴파일 과정 중 링크만 하면 사용가능. 정적 라이브러리 - lib.a (ex)libc.a : 표준 C 정적 라이브러리). - 컴파일 과정에서 라이브러리내에 *.o 파일들이 실행 파일에 링크되어 삽입 됨. - 단점 : 1. 각각의 실행 파일에 *.o 파일들이 중복하여 링크되어 있기 때문에 하드디스크 공간 낭비. 2. 실행될 때 메모리 공간 낭비. ex ) a.c 소스파일 libc.a(표준 C 정적 라이브러리) 컴파일 하여 a 라는 실행 파일 만들어 짐 b.c 소스파일 libc.a(표준 C 정적 라이브러리) 컴파일 하여 b 라는 실행 파일 만들어 짐. 1. a, b 실행 파..
컴파일&링킹 요약 정리 ==== 개요 ==== * 소스 구현 후 실행 파일이 만들어지기까지의 전반적인 흐름을 소개. ==== 전체 흐름 ==== * bash$ gcc -o test test.c 이와 같은 명령어를 실행 하면 실제 동작은 다음과 같다. test.c->|전처리기|->test.i->|C컴파일러|->test.s->|어셈블러|->test.o->|링커|->test * 위와 같이 4단계를 거쳐서 최종 실행 파일을 생성한다. ==== 세부 사항 ==== - 전처리기 * cpp0 이라는 프로그램이 수행 * 역할 - 헤더파일 삽입 & 매크로 치환 및 적용 * *.i 파일 생성 - C 컴파일러 * cc1 이라는 프로그램이 수행 * 어휘분석->구문분석->의미분석->중간언어생성->최적화->목적코드생성 - 어휘분석 : 스캐너에 의해 *..
프로세스 와 메모리의 관계에 관해 내가 생각하는 프로세스의 정의 - OS에 의해 프로그램이 메모리에 적재되면 이것을 가리켜 프로세스라고 한다. - 프로그램 : 소스 구현 후 컴파일 & 링킹 과정을 거쳐서 생성된 바이너리 프로세서의 메모리 관계 - 각 OS는 프로세스 매니저를 가지고 있고 프로세스 매니저는 다음을 포함한다. - 1. 프로세스 관리 유닛 - 2. 메모리 관리 유닛 - 3. pathname 관리 유닛 (이건 추후 공부를 해야할 듯) 메모리 관리 유닛 - 메모리 관리 유닛은 메모리를 페이지 단위로 관리 한다. - 페이지 단위 : 4Kb (4096 bytes) - 코드를 위한 read-only page - 데이타 & 스택을 위한 read-write page
MAC OS X (10.5.X) Leopard 에서 root 권한 얻기 아직 조사를 더 해봐야 알겠지만 현재 내가 알기로는 osX(leopard)에서는 root 계정 자체가 숨겨져 있다. 그래서 현재 자신이 설정한 계정에서 root 계정으로 로긴 해야한다. 쉘에서 아래와 같이 명령어를 입력하면 root 계정의 password를 물어본다. $ sudo passwd root (root 의 암호를 변경 하겠다. 는 의미 ) 이 때 자신이 원하는 password를 입력하면 쉘에서 root 계정을 이용할 수 있게 된다. 혹시 이 글을 보시는 분이 계시다면 제 잘못을 지적도 해주시고 많은 가르침을 더 주세요.^^
EZ_X5_4_크로스컴파일러관련 맥북을 이용한 크로스컴파일러 환경구축 중이다. 크로스 컴파일러란 (cross compiler)? - x86혹은 sparc등의 CPU를 가진 host 컴퓨터를 이용하여 arm 혹은 avr 에서 실행되는 바이너리를 만들어주는 것이 크로스 컴파일러 이다. 네이티브 컴파일러란 (native compiler)? - x86시스템에서 x86에서 실행되는 바이너리를 만들어주는 것이 네이티브 컴파일러 이다. 아직 내 지식이 부족해서 그런지 intel OSX기반의 arm 크로스 컴파일러 환경 구축하기가 힘들다. 거기다가 내가 가지고 있는 임베디드 보드 (EZ-X5)에는 리눅스가 설치되어 있다. 어서 크로스컴파일러 환경을 구축하여 저것을 가지고 놀아야 할텐데... 이번 주말이 기회다.ㅋㅋ 이번 주말에 한번 뽕을 뽑아보자...
EZ_X5_3_이미지관련 falinux.co.kr홈페이지를 통해서 커널이미지 파일과 램디스크 이미지 파일을 받았다. 문제는 그 이미지 파일을 어떻게 EZ_X5에 전송하느냐 하는 것이었다. 현재 나는 맥 초보 유저로써 맥북의 사용도 지금 한창 배우고 있는 중이다. 결론부터 말하자면 하루 종일 삽질 했다. ... EZ_X5에 파일을 전송하기 위해서 zmodem 프로토콜을 사용해야한다. 문제는 현재 내가 사용하는 맥북에서 제공되는 기본 터미널에서는 파일 전송을 못하는 것 같다. (아직 맥 초보 유저로써 터미널이 사용이 미숙하여 모를수도 있다.) 그리하여 하루종일 어떻게 파일을 올릴까 삽질 하던중... www.apple.com으로 가서 zoc라는 터미널 어플을 설치 하였다. zoc터미널을 이용하여 커널이미지와 램디스크 이미지를 전송하였다.
EZ_X5_2_메모리관련 이지보드의 메모리 구성은 아래와 같다 ROM - 64 Mbytes NAND Flash - 512 Kbytes Boot Flash RAM - 64 Mbytes SDRAM ROM (Read Only Memory) 이란? - 기억된 정보를 단지 읽어낼 수만 읽는 메모리로서, 전원이 꺼져도 기억된 정보는 지워지지 않음 - 정보가 날아가 버리지 않기 때문에 비휘발성 메모리 (Non-VolatileMemofy)라고 함 ROM의 종류 - 1. PROM (Programmable Read Only Memory) - 1회에 한해서 PROM라이터를 이용하여 새로운 내용을 기록할 수 있는 롬 - 2. EPROM (Erasable PROM) - 필요할 때 기억된 내용을 지우고 다른 내용을 기록할 수 있는 롬 - 지우는 방법에 ..
VIM_사용기_1 VIM이란? - vi 호환 텍스트 편집기 vim에 대한 글은 사용기 형식으로 글을 적도록 한다. 요즘 vim의 단축키를 외우는 재미가 쏠쏠하다. 마우스 없이 키보드만으로 텍스트를 빠르고 섬세하게 편집한다는 느낌은... 아직 초보 이지만 고수 프로그래머가 된 듯한 느낌을 갖게 한다...ㅋㅋ 오늘 vim에 대해 보다 나은 환경을 위해 환경 설정 파일을 만들었다. vim은 .vimrc 라는 파일을 읽어서 에디터 환경을 설정한다. 현재 나는 Debian을 사용하고 있으며 salee 라는 계정을 사용중이다. 그리하여 /home/salee/ 안에 .vimrc 라는 파일을 생성하였다. 내가 사용중인 vim 환경 설정은 아래와 같다. set tabstop=2 "탭 간격을 2칸으로 지정 ( 큰 따옴표는 vi에서 주석 역..

반응형