Linking 링킹의 역할 Library 연결 (포함X) Address mapping (Embedded 에서는 mapping 까지 고려해야 함) 링킹의 종류 Static Linking 리눅스는 Static Library 를 사용 (lib.a) Linker 가 library 를 통채로 넣는 것 (Embedded or RTOS 등에서 사용) Dynamic Linking 리눅스는 Shared Library 를 사용 (lib.so / shared object) dynamic linking 목적 메모리 낭비를 방지 실행 파일을 만들 때, 링크할 라이브러리 중 일부만 사용한다면 모두 포함해서 컴파일하는 것은 낭비 컴파일할 때는 전체를 넣는 것이 아닌 Linking 할 Library 의 정보만 추가해준다 (direc..
GNU 오픈 개발도구 활용 기법 C 실행파일의 빌드 절차 * 빌드 에러가 발생하면 아래 과정들을 하나씩 확인해서 어떤 문제인지 확인하는데 사용할 수도 있다!! cpp (c preprocessing, c 전처리) #include 등 실제 c 문법이 아닌 부분을 바꿔줌 결과물: .i (전처) 중간확인 방법 gcc -E : 전처리까지만 진행하고 결과 출력 gcc -E > : 전처리까지만 진행하고 에 저장 cc1 (c compiler) C 코드를 assembly 코드로 바꿔줌 결과물: .s 중간확인 방법 gcc -S : 컴파일까지만 진행하고 .s 파일 생성 (전처리는 진행하나 결과는 저장하지 않음) as (assemble) binary를 object 파일을 만듦 (아직 실행할 수는 없음) Assembly lan..
Shell shell 사용 Section 번호 8영역 설명 1 실행 가능한 프로그램 또는 쉘 명렁어 2 시스템 콜 (System Calls) 3 라이브러리 콜 (Libaries Calls) 4 특수 파일 (Specail files) 5 파일 형식과 규칙 (File format & conventions) 6 게임 (Games) 7 개요, 규칙 및 기타 8 슈퍼 유저 및 시스템 관리 명령 9 커널 루팅 (Kernel routines) shell 종류 shell 의 종류 특징 프롬프트 bash Bourne Again shell 최초로 개발된 shell 인 Boure shell 의 변종 리눅스에서 가장 많이 사용되는 IEEE POSIX 호환이면 Boure shell과 호환되는 shell 로 GNU 프로젝트에 의..
운영체제 (Operating System)이란? 시스템 HW + SW (운영체제 + 모든 어플리케이션) 운영체제 시스템 하드웨어를 관리할 뿐 아니라 응용 소프트웨어를 실행하기 위해 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어 입출력과 메모리 할당과 같은 하드웨어 기능의 경우 운영체제는 응용 프로그램과 컴퓨터 하드웨어 사이의 중재 역할을 햄 운영체제의 구성요소 Kernal 사용자 인터페이스 및 시스템 필수 프로그램 기본적인 파일 및 시스템 유틸리티 응용 프로그램 실행을 위한 라이브러리 시스템 설정 파일들 OS 선택 Ubuntu: Embedded System 에 좋음, 무료 CentOS: 무료 RHEL(Red Hat Enterprise Linux): 유료 기본 환경 설정 가상 머..