본문 바로가기

경제27

임베디드기사 실기 20부작 7편 - module_init(), register_chrdev(), request_region으로 이해하는 Kernel Module 초기화 임베디드기사 실기 20부작 7편module_init(), register_chrdev(), request_region으로 이해하는 Kernel Module 초기화앞선 연재에서는 Linux Device Driver가 사용자 프로그램과 하드웨어 사이에서 어떤 역할을 하는지 살펴보았습니다. 이번에는 그 Driver가 실제로 Kernel 안에 들어갈 때 어떤 순서로 준비되고, 어떤 자원을 확보하며, 종료할 때 어떻게 정리되는지를 하나의 흐름으로 묶어 보겠습니다.임베디드기사 실기에서는 함수 이름 하나만 외우는 것보다 ‘모듈 로드 → Driver 등록 → 자원 확보 → 사용 → 해제’ 흐름을 이해하는 것이 훨씬 중요합니다.■ 1. Kernel Module이란 무엇인가?Linux Kernel은 모든 기능을 하나의 거.. 2026. 9. 16.
임베디드기사 실기 20부작 6편 ## Linux Device Driver와 사용자 프로그램은 어떻게 연결되는가? 임베디드기사 실기 20부작 6편Linux Device Driver와 사용자 프로그램은 어떻게 연결되는가?임베디드 리눅스를 공부하다 보면 어느 순간 아주 중요한 질문을 만나게 됩니다. “사용자 프로그램은 실제 하드웨어를 어떻게 움직이는가?” 입니다. C 프로그램에서 단순히 open(), read(), write()를 호출했을 뿐인데 GPIO가 켜지고, UART가 송신되고, SPI 센서의 값이 읽히는 이유는 무엇일까요?그 사이에는 Linux Device Driver가 있습니다. 이번 편에서는 사용자 프로그램과 하드웨어 사이를 연결하는 구조를 한 번에 이해할 수 있도록 정리합니다.1. Linux에서는 왜 사용자 프로그램이 하드웨어에 직접 접근하지 못할까?Linux는 시스템 안정성과 보호를 위해 실행 영역을 크.. 2026. 9. 15.
임베디드기사 실기 20부작 5편 ## Kconfig, defconfig, .config의 관계 — Linux Kernel 설정은 어떻게 만들어지는가? 임베디드기사 실기 20부작 5편Kconfig, defconfig, .config의 관계 — Linux Kernel 설정은 어떻게 만들어지는가?이번 편에서는 Linux Kernel을 빌드하기 전에 반드시 거치게 되는 설정 체계를 정리합니다. 이름이 비슷한 Kconfig, defconfig, .config는 실기시험에서 흐름도·빈칸·단답형으로 출제하기 좋은 주제입니다.1. 왜 Kernel을 빌드하기 전에 ‘설정’이 필요한가?Linux Kernel은 하나의 고정된 프로그램이 아닙니다. 어떤 시스템에서는 Ethernet이 필요하고, 다른 시스템에서는 Wi‑Fi만 필요할 수 있습니다. 어떤 보드는 EXT4 파일시스템을 사용하지만, 어떤 임베디드 장비는 Flash 기반의 전용 파일시스템을 사용합니다. CPU Arc.. 2026. 9. 15.
임베디드기사 실기 20부작 4편 Linux Kernel은 무엇을 관리하는가? 임베디드기사 실기 20부작 4편Linux Kernel은 무엇을 관리하는가?프로세스 · 메모리 · 파일시스템 · 네트워크 · 디바이스 드라이버를 하나의 그림으로 이해하기이번 편에서 꼭 잡아야 할 핵심앞선 2편과 3편에서는 전원이 들어온 뒤 Startup Code가 실행 환경을 만들고, Bootloader가 커널 이미지를 메모리에 적재한 뒤 커널로 제어권을 넘기는 과정을 살펴보았습니다. 이제부터는 그 다음 단계입니다. 커널이 실행되기 시작하면 도대체 무엇을 관리할까요?이번 편에서는 통합 학습교재의 핵심 분류인 프로세스 관리, 메모리 관리, 파일시스템 관리, 네트워크 관리, 디바이스 드라이버 관리를 중심으로 Linux Kernel의 역할을 한 장의 구조처럼 연결해 보겠습니다. 임베디드기사 실기에서는 각 항목이.. 2026. 9. 14.
임베디드기사 실기 20부작 3편 Bootloader와 Linux 부팅 과정 임베디드기사 실기 20부작 3편Bootloader와 Linux 부팅 과정지난 2편에서는 전원 인가 직후 가장 먼저 실행되는 Startup Code와 Reset Handler를 살펴보았습니다. 이번 3편에서는 그 다음 단계인 Bootloader가 무엇을 하는지, 그리고 Linux Kernel이 어떻게 실행 단계까지 넘어가는지를 하나의 흐름으로 정리합니다.임베디드 시스템의 부팅은 단순히 전원을 켜고 OS가 뜨는 과정이 아닙니다. CPU가 Reset Vector에서 시작하여 최소 실행환경을 만들고, DRAM을 사용할 수 있도록 준비하고, 저장장치에 있는 Kernel Image를 RAM으로 옮긴 뒤, 필요한 부팅 정보를 전달하고, 마지막으로 Kernel Entry Point로 제어권을 넘기는 연속된 단계입니다... 2026. 9. 14.
임베디드기사 실기 20부작 2편 Startup Code와 부팅의 시작 임베디드기사 실기 20부작 2편Startup Code와 부팅의 시작임베디드 시스템에 전원을 넣으면 우리가 작성한 main() 함수가 곧바로 실행될 것 같지만 실제로는 그렇지 않습니다. CPU는 먼저 정해진 리셋 위치에서 시작하고, 어셈블리 기반의 초기화 코드를 거쳐 스택과 메모리, 클럭, C 런타임 환경을 준비한 뒤에야 main()이나 다음 단계의 Bootloader로 넘어갑니다.이번 편의 핵심 질문전원이 들어온 직후 CPU는 어디서 시작하는가?왜 startup.s 같은 어셈블리 코드가 필요한가?.data와 .bss는 왜 초기화해야 하는가?Startup Code와 Bootloader는 어떻게 다른가?1. 전원 인가 직후 가장 먼저 실행되는 것은 무엇일까?시스템에 전원이 인가되거나 Reset이 발생하면 C.. 2026. 9. 14.