프로젝트 배경
1) 문제점 • 애플리케이션(사용자 공간)이 하드웨어(커널 공간)에 직접 접근하여 제어하는 것은 보안상 위험하며, 복잡하고 표준화되지 않은 방법이 필요합니다. • 리눅스 운영체제 환경에서 사용자 애플리케이션이 커널 내의 문자 장치 드라이버와 상호작용하고, 장치를 효율적으로 제어하기 위한 체계적인 방법론에 대한 이해와 구현 경험이 부족할 수 있습니다. • 하드웨어의 복잡한 저수준 제어 로직을 애플리케이션
프로젝트 성과
리눅스 문자 장치 드라이버 및 제어 시스템 구현
리눅스 커널 환경에서 문자 장치 드라이버를 성공적으로 개발하고, 애플리케이션(사용자 공간)에서 표준 시스템 콜 함수를 통해 해당 드라이버에 접근하여 가상의 하드웨어를 제어하는 시스템을 구축했습니다.
커널 모듈 생명 주기 및 관리 기술 습득
make를 이용한 커널 모듈(.ko) 컴파일부터 커널 적재, 장치 등록 및 초기화, 그리고 사용 후 안전하게 모듈을 해제하고 장치를 종료하는 전 과정을 직접 구현하여 커널 모듈 관리 기술을 체득했습니다.
사용자-커널 공간 간 통신 인터페이스 구축
애플리케이션이 장치 파일을 통해 커널 내 디바이스 드라이버에 접근하고, 프로세스 ID나 데이터 입출력 등 문자 장치의 다양한 상태 및 데이터를 제어할 수 있는 효율적인 통신 인터페이스를 성공적으로 구현했습니다.
핵심 기능
진행 단계
개발 환경 설정 및 드라이버/애플리케이션 소스 작성
2017.03.
리눅스 환경에서 모듈 디렉토리를 생성하고, 문자 장치 드라이버(D/D)와 이를 제어할 애플리케이션(APP)의 소스 코드 및 Makefile을 작성합니다.
프로젝트 상세
1) 포트폴리오 소개 • 서비스 카테고리: 시스템 소프트웨어, 임베디드 시스템, 운영체제 커널 제어 • 메인 타깃: 시스템 개발자, 임베디드 엔지니어, 커널 프로그래머 • 간략한 소개: 리눅스 운영체제 환경에서 문자(Character) 장치 드라이버를 개발하고, 애플리케이션 레벨에서 해당 장치 드라이버에 접근하여 하드웨어를 제어하는 시스템 소프트웨어 개발 프로젝트입니다. 2) 작업 범위 • 개발 참여






