System Programming

    Linux Device Driver 기초 #2 System Call 추가하기

    Linux Device Driver 기초 #2 System Call 추가하기

    운영체제의 구성: user mode와 kernel mode운영체제는 하드웨어 자원을 효율적으로 관리하고 자원에 대한 인터페이스를 제공한다. 그렇기 때문에 운영체제는 하드웨어와 어플리케이션 사이에서 동작한다. 다음은 운영체제의 기본적인 구성이다.커널은 하드웨어 자원 직접 관리하고 어플리케이션은 시스템 콜을 통해 커널에 자원을 요청한다.어플리케이션은 보통 user mode에서 동작하며 시스템 자원에 접근할 수 있는 권한이 제한되어있다. 시스템 자원에 접근할 때 어플리케이션은 시스템 콜을 통해 kernel mode로 전환된다. kernel mode에서 운영체제는 요청된 자원을 처리하고 다시 user mode로 돌아 간다.  운영체제에서 커널 모드와 사용자 모드는 시스템의 안전성을 보장하고 자원을 효율적으로 관..

    Linux Device Driver 기초 #1 Linux Build System

    Linux Device Driver 기초 #1 Linux Build System

    Linux 개발 환경 이해 컴파일러: C/C++ 같은 소스 코드를 타겟 아키텍처에 맞는 바이너리로 변환링커: 여러 개의 오브젝트 파일을 하나의 실행 파일로 결합어셈블러: 어셈블리 코드를 기계어로 변환라이브러리: 프로그램 실행 시 필요한 기본 함수들을 제공 리눅스를 빌드하는 과정은 간단하게 다음과 같다.1. buildroot를 사용하여 rootfs을 빌드한다.2. linux kernel 최신 코드를 다운받아 빌드한다.3. 이 두가지를 사용하여 qemu에서 가상의 머신을 부팅한다. Rootfs 빌드Buildroot는 임베디드 리눅스 시스템을 위한 경량화된 루트 파일 시스템(root filesystem), 커널 및 부트로더를 쉽게 빌드할 수 있는 도구이다.# Git 설치 (필요한 경우)sudo apt-get ..

    KVM 가상화 환경 구성

    KVM 가상화 환경 구성

    커널 기반 가상 머신(KVM)은 물리적 Linux 시스템에 설치하여 가상 머신을 생성할 수 있는 소프트웨어 기능이다. 가상 머신은 물리적 시스템과 CPU 사이클, 네트워크 대역폭 및 메모리와 같은 리소스를 공유한다. KVM은 Linux에서 가상 머신에 대한 네이티브 지원을 제공하는 Linux 운영 체제 구성 요소이다.  KVM 설치 사전 환경 구성Lab SetupManufacturer: eSlim KoreaOperating System: CentOS Linux 7 (Core)processor-version: Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHzKernel: Linux 3.10.0-1160.el7.x86_64 사전 환경 체크1. Processor 가상화 지원 활성화 확..