안드로이드 브로드캐스트 리시버: 등록, 전송 및 수신 메커니즘 분석
안드로이드 브로드캐스트 리시버: 등록, 전송 및 수신 메커니즘 분석
안드로이드 운영체제에서 BroadcastReceiver는 시스템 전반에 걸쳐 발생하는 이벤트나 다른 애플리케이션이 보내는 메시지에 반응하는 핵심 컴포넌트입니다. 이 글에서는 브로드캐스트 리시버가 시스템에 어떻게 등록되고, 브로드캐스트 메시지가 전송되며, 최종적으로 리시버에서 메시지를 수신하 ...
9월 9일 22:00에 게시됨
차량용 인포테인먼트 시스템의 통합 협업 아키텍처: OmniBinder 기반 다중 서비스 통신
하나의 차량 내 인포테인먼트 시스템이 여러 개의 독립된 프로세스, 복수의 디스플레이 유닛, 다양한 SoC 칩에서 구동되며, 서로 다른 팀이 병렬로 개발을 진행한다면 — 어떻게 이 모든 구성 요소가 하나의 유기적인 시스템처럼 동작할 수 있을까요?
1. 안전이 우선인 임베디드 환경의 요구사항
차량용 계기판은 단순한 소비자 전자기기가 아닙니다. 운전자 ...
8월 27일 15:52에 게시됨
리눅스 프로세스 간 통신(IPC) 이해
1. 파이프
파이프는 프로세스 간 통신(IPC) 메커니즘으로, 프로세스들 사이에서 데이터를 전달하는 데 사용됩니다. 본질적으로 운영체제 커널이 관리하는 메모리 버퍼이며, 파일 디스크립터를 통해 데이터를 읽고 씁니다. 파이프의 핵심은 메모리 버퍼이지만, 운영체제는 파이프를 파일처럼 `read` 및 `write`와 같은 파일 작업 인터페이스로 다룰 수 있도록 구현합니 ...
8월 6일 01:46에 게시됨
리눅스 시그널의 우선순위와 비동기 신호 안전성 이해
시그널 우선순위의 개념
리눅스 환경에서 시그널은 소프트웨어적인 인터럽트로 취급됩니다. 하드웨어 인터럽트와 마찬가지로 시그널에도 처리 우선순위가 존재하며, 여러 시그널이 동시에 대기 중(Pending)일 때 어떤 시그널을 먼저 처리할지 결정하는 규칙이 있습니다.
실시간 시그널(Real-time Signals): 동일한 시그널 값이 여러 개 대기 중일 경우, 전송된 순서 ...
7월 30일 09:48에 게시됨
D-Bus 시스템에서 busctl 명령어의 고급 활용법
리눅스 환경에서 시스템 서비스나 데스크톱 애플리케이션, 임베디드 장치(예: OpenBMC)를 다뤄봤다면 D-Bus에 대해 들어본 적이 있을 것이다. 이는 프로세스 간 통신(IPC)을 가능하게 하는 메시지 버스 시스템으로, 서로 다른 프로그램들이 메시지를 주고받고 함수를 호출할 수 있도록 해준다. 일반적으로 우리는 sdbusplus와 같은 C++ 라이브러리를 통해 D-Bus와 상호작용 ...
5월 27일 10:39에 게시됨