2024/10/11 3

커널과 모듈의 개념

커널(kernel)과 모듈(Module)을 간단히 파악해보면 커널이란? 커널이란 운영체제(Operating System)에서 가장 핵심적인 역할인 자원 (메모리, 프로세서등)을 관리하며 시스템이 원활히 돌아갈 수 있도록 제어해 준다. 현재 우리가 리눅스(OS)라고 하는것도 실제적으론 리눅스란 운영체제의 커널 이름을 말하는것인데 이것이 확장된 의미로 사용되어 현재의 '리눅스'란 OS를 지칭하게도 된것이다. 그러므로 Linux = kernel이란 등식이 성립한다. 초창기의 커널은 지원할 하드웨어가 그리 많지 않아서 커널에 하드웨어를 지원하는 코드를 모두 넣어 뒀다. 이후 운영체제가 무거워 지자 하드웨어를 제어하는 코드 중에서 필요할 때만 가끔식 사용하는 코드를 커널에 넣지 않고 별도로 보관했다가 필요할때 호..

Linux Module Programming

Kernel module?모듈은 사용자의 혹은 커널의 요구로 읽혀지거나 아니면 없어지는 코드들로 이루어진 프로그램의 어떤 한 조각을 의미한다.커널은 하나의 큰 모듈들의 집합이라고 볼 수 있다.모듈들을 통해서 필요할때 더 추가, 혹은 제거를 통해서 커널을 재컴파일 혹은 재가동하지 않고도 커널의 기능을 확장하거나 축소시킬 수 있다.lsmod insmod rmmodlsmod를 통해서 현재 커널에 있는 모듈들의 정보를 확인할 수 있다.이때 lsmod는 /proc/modules를 읽고나서 좀 더 예쁘게 바꿔준다.insmod를 통해서 커널에 모듈을 적재할 수 있다.rmmod를 통해서 커널에 적재된 모듈을 제거할 수 있다.Hello World/** hello-1.c - The simplest kernel module..

안드로이드/라즈베리 파이 부팅 실패를 100% 해결하는 디버깅 패치

안드로이드 / 라즈베리파이 부팅 실패를 100% 해결하는 디버깅 패치    0.  Overview 많은 개발자들은 '브링업'이란 개발 업무를 맡고 있습니다. 이 과정에서 다음과 같은 어려움을 많이 겪습니다.​* 보드 브링업을 하다 보니 컴퓨터의 시작 화면까지 보이지 않는다.* 부팅 과정에서 출력하는 화면이 계속 출력된다.​이런 이슈를 겪은 적이 있나요? 보통 이런 상황을 겪으면 굉장히 답답하고 짜증이 납니다. 그 이유는 무엇일까요?​* 뭔가 문제가 생겨서 부팅이 안되는 상황인데 그 원인을 파악하기 어렵기 때문입니다. ​달리 말씀을 드리면 정확히 어디에 문제가 생겨서 부팅이 안되는지 알 수 없기 때문입니다. 이번 포스팅에서는 이런 상황에서 사용하면 아주 유용한 커널 패치를 소개합니다.​   1.  아이디어..