커널
Posts
228 posts[리눅스][커널] 커널 커맨드 라인 파싱 확인 @parse_one() 함수 분석
부트로더는 커널을 RAM에 로딩하고 실행을 시키는 역할 뿐 아니라 커널에게 어떤 아규먼트를 전달할 수 있습니다. 이를 커맨드 라인이라고 하며 proc 파일 시스템에서 커맨드 라인을 출력할 수 있는 인터페이스를 지원합니다. 커널 커맨드 라인은 왜 쓸까?리눅스 커널을 지원하는 부트로더의 예로 uboot, LK(Little Kernel) EDK를 들 수 있습니다.혹은 SoC(퀄컴, 인텔, 엔비디아)에서 구현한 자체 부트로더를 써서 커널을 램에 로딩할 수 있습니다. 이렇게 리눅스 커널을 RAM에 로딩하는 부트로더 종류는 언급한 이유는 어떤 부트로더를 적용해도 반드시 커널 커맨드 라인을 지원해야 한다는 사실을 말하고 싶어서입니다. 그러면 커널 커맨드 라인을 쓰는 이유는 무엇일까요?다시 반복하지만 커널 커맨드 라
[SW] 리눅스 커널은 왜 알아야 할까? 코드 몽키가 되어야 하나?
많은 사람들이 리눅스 커널, 리눅스 커널하는데 왜 리눅스 커널을 잘 알아야 할까?이번에는 리눅스 커널을 왜 공부해야 하는지 알아보자. 문제 해결 능력리눅스 커널을 알아야 하는 이유는 정말 간단하다. 디바이스 드라이버 담당자로써 문제 해결 능력을 키울 수 있기 때문이다. 처음 임베디드 임베디드 리눅스 개발자로 일을 시작하면 보통 어떤 개발 업무를 맡을까?대부분 드라이버를 맡는 경우가 많다. 예를 들어 스토리지, 네트워크, 모뎀 등등 디바이스 종류는 무궁무진하다. 그런데 디바이스 드라이버 코드는 누구나 작성할 수 있다. 리눅스 커널에 얼마나 많은 디바이스 드라이버 예제 코드가 많은가? 예제 코드를 활용해서 해당 디바이스에 대한 데이터 시트만 있으면 그리 어렵지 않게 드라이버를 구현할 수 있다. 그럼 리
[라즈베리파이] 프로세스: do_exit() 함수 분석
do_exit() 함수로 커널이 프로세스를 종료 시키는 세부 동작 못지 않게 프로세스가 종료되는 흐름을 파악하는 것이 중요합니다. 그 이유는 무엇일까요? 유저 어플리케이션 프로세스나 커널 프로세스가 예외 상황에서 의도하지 않게 종료해서 문제가 발생하는 경우가 있습니다. 이런 문제를 만났을 때 커널 어느 함수부터 분석을 해야할 지 결정할 수 있습니다. 이번에는 do_exit() 함수가 어떻게 실행되는지 알아봅시다. - exit() 시스템 콜 실행유저 어플리케이션 프로세스가 자신을 종료하려면 리눅스 저수준 함수로 exit() 함수를 호출합니다. 이 때 시스템 콜을 발생시킨 다음 sys_group_exit() 시스템콜 핸들러를 실행합니다. - 다른 프로세스가 프로세스 종료 시그널을 전달했을 경우프로세스
[라즈베리파이] 프로세스 생성: _do_fork() copy_process() 함수 분석
이전 시간까지 유저 프로세스와 커널 프로세스가 어떤 흐름으로 생성되는지 살펴봤습니다.둘 다 _do_fork() 함수를 호출한다는 사실을 알 수 있습니다. 프로세스 생성 시 공통으로 실행하는 _do_fork() 함수 코드를 분석하면서 커널이 어떻게 프로세스를 생성하는지 살펴봅니다. _do_fork() 함수_do_fork() 함수을 분석하기 앞서 이 함수 동작을 분류해봅시다. 1단계: 프로세스 생성copy_process() 함수를 호출해서 프로세스를 생성합니다. 프로세스를 생성하는 세부 동작을 파악하려면 copy_process() 함수를 분석할 필요가 있습니다. 2단계: 생성한 프로세스 실행 요청copy_process() 함수를 호출해서 프로세스 생성을 마쳤으면 wake_up_new_task() 함수를

![[Spoiler] 점프 신작 '공주님 고문 시간입니다' 원작자에 '우공못' 작가 그림. '시간정지용사' 또다른 플레이어? '다음에 오는 만화 대상' 운영 잡지 폐간](https://img.zoomtrend.com/2026/06/07/1780881297-ECA090ED948426-28EC95A0EB8B88EBA980EC8B9CEAB7B8EB8490.jpeg)
