<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Hawk&apos;s Blog</title><description>C++, 시스템 프로그래밍, 임베디드 개발에 대한 기술 블로그</description><link>https://hawk90.dev/</link><language>ko</language><item><title>UEFI Secure Boot 인증서 만료 — 2011→2023 CA 롤오버와 PQC 대비</title><link>https://hawk90.dev/blog/embedded/bootloader/chapter37-secureboot-cert-rollover/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bootloader/chapter37-secureboot-cert-rollover/</guid><description>2026년 6월부터 시작되는 Microsoft Secure Boot 2011 인증서 만료 — PK·KEK·db·dbx 계층, 2023 CA 체인과 Option ROM CA 분리, 임베디드 기기 영향, 그리고 post-quantum 서명으로의 길.</description><pubDate>Fri, 19 Jun 2026 09:04:00 GMT</pubDate><category>embedded</category><category>bootloader</category><category>secure-boot</category><category>uefi</category><category>post-quantum</category></item><item><title>부트 시 메모리 토폴로지 결정 — DDR + CXL.mem 통합 인식</title><link>https://hawk90.dev/blog/embedded/bootloader/chapter36-boot-memory-topology/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bootloader/chapter36-boot-memory-topology/</guid><description>부트로더가 DDR DIMM·CXL.mem·HBM을 하나의 메모리 토폴로지로 통합하는 흐름 — SRAT·HMAT·SLIT 생성과 NUMA 노드 매핑.</description><pubDate>Fri, 19 Jun 2026 09:03:00 GMT</pubDate><category>embedded</category><category>bootloader</category><category>memory-topology</category><category>srat</category><category>hmat</category><category>numa</category><category>cxl-mem</category><category>tiered-memory</category></item><item><title>EFI·UEFI에서 CXL 초기화 — CEDT 생성과 HDM Decoder 사전 설정</title><link>https://hawk90.dev/blog/embedded/bootloader/chapter35-uefi-cxl-init/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bootloader/chapter35-uefi-cxl-init/</guid><description>EDK II 기반 UEFI에서 CXL 디바이스 초기화 — CEDT(CXL Early Discovery Table) 생성, HDM Decoder 사전 설정, ACPI handoff.</description><pubDate>Fri, 19 Jun 2026 09:02:00 GMT</pubDate><category>embedded</category><category>bootloader</category><category>uefi</category><category>edk2</category><category>cxl</category><category>cedt</category><category>acpi</category><category>hdm-decoder</category></item><item><title>U-Boot PCIe Enumeration — 부트로더가 디바이스를 찾는 흐름 분석</title><link>https://hawk90.dev/blog/embedded/bootloader/chapter34-pcie-enumeration/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bootloader/chapter34-pcie-enumeration/</guid><description>U-Boot PCIe 열거 과정 — Root Complex 초기화·Config Space scan·BAR sizing·resource 할당, CXL DVSEC 인식까지.</description><pubDate>Fri, 19 Jun 2026 09:01:00 GMT</pubDate><category>embedded</category><category>bootloader</category><category>u-boot</category><category>pcie</category><category>enumeration</category><category>cxl</category><category>root-complex</category></item><item><title>CXL Fabric Postmortem — 분산 디바이스·Multi-Host Pool 장애 추적</title><link>https://hawk90.dev/blog/tools/debugging/postmortem/chapter06-cxl-fabric-postmortem/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/postmortem/chapter06-cxl-fabric-postmortem/</guid><description>CXL 2.0/3.x fabric에서 multi-host pooled 디바이스 fail 분석 — Fabric Manager log·LD 상태·cross-host correlation.</description><pubDate>Thu, 18 Jun 2026 09:08:00 GMT</pubDate><category>cxl</category><category>fabric</category><category>postmortem</category><category>multi-host</category><category>pooling</category><category>fabric-manager</category></item><item><title>CXL 디바이스 Core Dump 분석 — Device State·Kernel Log·NUMA 토폴로지</title><link>https://hawk90.dev/blog/tools/debugging/postmortem/chapter05-cxl-device-postmortem/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/postmortem/chapter05-cxl-device-postmortem/</guid><description>CXL 디바이스가 fail한 후 vmcore에서 region·decoder 상태, mailbox 오류 로그, NUMA 토폴로지를 복원하는 분석 흐름.</description><pubDate>Thu, 18 Jun 2026 09:07:00 GMT</pubDate><category>cxl</category><category>postmortem</category><category>core-dump</category><category>drgn</category><category>vmcore</category></item><item><title>Tiered Memory 진단 — DAMON·DAMOS·Promotion/Demotion 디버깅</title><link>https://hawk90.dev/blog/tools/debugging/memory/chapter07-tiered-memory-diagnostics/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/memory/chapter07-tiered-memory-diagnostics/</guid><description>DDR + CXL.mem 계층화 환경에서 DAMON·DAMOS 동작 분석 — page promotion/demotion 추적, hot/cold 분류 디버깅.</description><pubDate>Thu, 18 Jun 2026 09:06:00 GMT</pubDate><category>tiered-memory</category><category>damon</category><category>damos</category><category>cxl</category><category>promotion</category><category>demotion</category></item><item><title>CXL 메모리 진단 — RAS·Poison List·Media Error 추적</title><link>https://hawk90.dev/blog/tools/debugging/memory/chapter06-cxl-memory-diagnostics/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/memory/chapter06-cxl-memory-diagnostics/</guid><description>CXL.mem 디바이스 메모리 상태 진단 — cxl-cli·poison list·event log로 RAS 이벤트 추적, NUMA node별 사용량 분석.</description><pubDate>Thu, 18 Jun 2026 09:05:00 GMT</pubDate><category>cxl</category><category>memory-diagnostics</category><category>ras</category><category>poison</category><category>numa</category><category>cxl-cli</category></item><item><title>drivers/cxl 코드 분석 — 진입점부터 sysfs까지</title><link>https://hawk90.dev/blog/tools/debugging/kernel/chapter09-drivers-cxl-walkthrough/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/kernel/chapter09-drivers-cxl-walkthrough/</guid><description>Linux kernel drivers/cxl/ 디렉터리 — 모듈별 entry point·핵심 자료구조·sysfs interface 코드 워크스루.</description><pubDate>Thu, 18 Jun 2026 09:04:00 GMT</pubDate><category>cxl</category><category>kernel-source</category><category>drivers</category><category>sysfs</category><category>cxl-core</category><category>code-walkthrough</category></item><item><title>Linux CXL 드라이버 분석 — cxl_pci·cxl_core·region·DAX</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part11-17-linux-cxl-driver/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part11-17-linux-cxl-driver/</guid><description>CXL 디바이스가 메모리로 안 올라올 때 모듈 체인·sysfs·mailbox 중 어디서 끊겼는지 좁혀 가는 절차.</description><pubDate>Thu, 18 Jun 2026 09:03:00 GMT</pubDate><category>recipes</category><category>linux</category><category>cxl</category><category>kernel-driver</category><category>dax</category><category>sysfs</category></item><item><title>CXL 커널 드라이버 디버깅 — ftrace·bpftrace·drgn 활용</title><link>https://hawk90.dev/blog/tools/debugging/kernel/chapter08-cxl-driver-debug/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/kernel/chapter08-cxl-driver-debug/</guid><description>Linux drivers/cxl/ 서브시스템 디버깅 — ftrace로 probe 흐름 추적, bpftrace로 mailbox 명령 캡처, drgn으로 커널 상태 검사.</description><pubDate>Thu, 18 Jun 2026 09:03:00 GMT</pubDate><category>cxl</category><category>kernel-debugging</category><category>ftrace</category><category>bpftrace</category><category>drgn</category><category>cxl-core</category></item><item><title>QEMU CXL Type 3 디바이스 에뮬레이션 — 노트북에서 CXL 개발 환경 구축</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part11-16-qemu-cxl-emulation/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part11-16-qemu-cxl-emulation/</guid><description>QEMU로 CXL Type 3 개발 환경을 세우는 레시피 — 한 번에 붙여넣는 실행 명령, 부팅 후 검증 순서, 처음 세울 때 걸리는 함정.</description><pubDate>Thu, 18 Jun 2026 09:02:00 GMT</pubDate><category>recipes</category><category>cxl</category><category>qemu</category><category>emulation</category><category>virtualization</category><category>type-3</category></item><item><title>CXL 디바이스 트러블슈팅 — RAS 이벤트·Poison List·Media Error 추적</title><link>https://hawk90.dev/blog/tools/debugging/embedded/chapter09-cxl-device-troubleshoot/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/embedded/chapter09-cxl-device-troubleshoot/</guid><description>CXL 디바이스의 RAS(Reliability·Availability·Serviceability) 이벤트와 poison list·media error를 추적하는 진단 흐름.</description><pubDate>Thu, 18 Jun 2026 09:02:00 GMT</pubDate><category>cxl</category><category>ras</category><category>poison</category><category>media-error</category><category>debugging</category><category>mailbox</category></item><item><title>PCIe → CXL 진화 — 같은 PHY 위 cache-coherent 프로토콜 추가</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part11-15-pcie-to-cxl/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part11-15-pcie-to-cxl/</guid><description>PCIe 5.0/6.0 PHY 위에서 CXL이 어떻게 cache coherency를 얹는지 — Flex Bus, 세 프로토콜 다중화, Type 1/2/3 디바이스 구분.</description><pubDate>Thu, 18 Jun 2026 09:01:00 GMT</pubDate><category>recipes</category><category>pcie</category><category>cxl</category><category>flex-bus</category><category>cache-coherency</category><category>interconnect</category></item><item><title>CXL Link Training 디버깅 — LTSSM 상태와 Protocol Analyzer 활용</title><link>https://hawk90.dev/blog/tools/debugging/embedded/chapter08-cxl-link-debug/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/embedded/chapter08-cxl-link-debug/</guid><description>CXL 링크가 안 올라올 때 LTSSM 상태 분석, Protocol Analyzer 캡처, lspci·cxl-cli·dmesg 진단 흐름.</description><pubDate>Thu, 18 Jun 2026 09:01:00 GMT</pubDate><category>cxl</category><category>link-training</category><category>ltssm</category><category>protocol-analyzer</category><category>debugging</category></item><item><title>CXL TEE 확장 — Trusted Execution을 메모리 디바이스까지</title><link>https://hawk90.dev/blog/embedded/embedded-security/chapter13-cxl-tee/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-security/chapter13-cxl-tee/</guid><description>PCI-SIG TDISP·CXL TSP·Linux PCI TSM — Confidential Computing이 메모리 디바이스·가속기로 확장되는 표준 흐름.</description><pubDate>Wed, 17 Jun 2026 09:03:00 GMT</pubDate><category>cxl</category><category>tdisp</category><category>confidential-computing</category><category>arm-cca</category><category>sev-tio</category><category>tvm</category></item><item><title>SPDM과 CMA 인증 흐름 — 디바이스 신원과 펌웨어 측정 검증</title><link>https://hawk90.dev/blog/embedded/embedded-security/chapter12-spdm-cma/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-security/chapter12-spdm-cma/</guid><description>SPDM(Security Protocol and Data Model) 메시지 흐름, CMA(Component Measurement and Authentication) — PCIe·CXL 디바이스 신원 확인과 firmware integrity 검증.</description><pubDate>Wed, 17 Jun 2026 09:02:00 GMT</pubDate><category>spdm</category><category>cma</category><category>attestation</category><category>pcie-security</category><category>cxl-security</category><category>dice</category></item><item><title>PCIe·CXL IDE 분석 — 링크 무결성과 데이터 암호화</title><link>https://hawk90.dev/blog/embedded/embedded-security/chapter11-pcie-cxl-ide/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-security/chapter11-pcie-cxl-ide/</guid><description>PCIe·CXL IDE (Integrity and Data Encryption) — 링크 sniff·MITM 위협, AES-GCM 암호화, Selective vs Link IDE, CXL_IDE_KM 키 관리, Containment·Skid 모드.</description><pubDate>Wed, 17 Jun 2026 09:01:00 GMT</pubDate><category>cxl</category><category>pcie</category><category>ide</category><category>integrity</category><category>encryption</category><category>aes-gcm</category><category>link-security</category></item><item><title>실전 사례 — CXL.mem 추가로 LLM inference KV cache 처리량 회복</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part6-05-case-cxl-llm-kv-cache/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part6-05-case-cxl-llm-kv-cache/</guid><description>70B 모델 KV cache가 HBM 한계를 넘어 throughput이 무너졌을 때, CXL.mem 256 GB pool 추가로 회복한 실전 케이스.</description><pubDate>Tue, 16 Jun 2026 09:03:00 GMT</pubDate><category>cxl</category><category>llm-inference</category><category>kv-cache</category><category>hbm</category><category>tiered-memory</category><category>case-study</category></item><item><title>CXL 성능 프로파일링 도구 — cxl-cli·DAMON·perf-mem 활용</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part5-11-cxl-profiling-tools/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part5-11-cxl-profiling-tools/</guid><description>CXL.mem 환경 성능 도구 — cxl-cli 토폴로지·DAMON page activity·perf-mem로 보는 CXL 트래픽·numastat 통계.</description><pubDate>Tue, 16 Jun 2026 09:02:00 GMT</pubDate><category>cxl</category><category>cxl-cli</category><category>damon</category><category>perf-mem</category><category>numastat</category><category>profiling</category></item><item><title>CXL.mem 지연·대역폭 실측 — Direct·Switch·Pooled 토폴로지 비교</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part3-12-cxl-mem-latency/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part3-12-cxl-mem-latency/</guid><description>CXL.mem 토폴로지 세 가지의 구조, 실제 CXL 디바이스 실측(MICRO 2023), mlc·STREAM·DAMON으로 직접 재는 방법.</description><pubDate>Tue, 16 Jun 2026 09:01:00 GMT</pubDate><category>cxl</category><category>cxl-mem</category><category>latency</category><category>bandwidth</category><category>numa</category><category>mlc</category><category>stream</category></item><item><title>메모리 풀링과 데이터센터 토폴로지 — 용량을 서버 밖에서 빌리는 일</title><link>https://hawk90.dev/blog/embedded/hardware/hbm/chapter12-cxl-pooling-fabric/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/hbm/chapter12-cxl-pooling-fabric/</guid><description>on-package HBM의 용량 상한 밖을 CXL 풀이 맡는 방식 — 빌린 용량의 지연 값, hot/cold 구분이라는 전제, 서버당 고정 구성에서 풀 조달로의 전환.</description><pubDate>Mon, 15 Jun 2026 09:04:00 GMT</pubDate><category>cxl</category><category>memory-pooling</category><category>fabric</category><category>datacenter</category><category>gfam</category></item><item><title>CXL Type 1·2·3 디바이스 분류 — 이 중 무엇이 나에게 메모리인가</title><link>https://hawk90.dev/blog/embedded/hardware/hbm/chapter11-cxl-device-types/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/hbm/chapter11-cxl-device-types/</guid><description>CXL 세 유형을 메모리 계층 관점에서 다시 읽습니다. 어떤 유형이 호스트 용량을 늘려 주고, 어떤 유형이 늘려 주지 않는지, NUMA와 대역폭에서 무엇이 달라지는지.</description><pubDate>Mon, 15 Jun 2026 09:03:00 GMT</pubDate><category>cxl</category><category>cxl-type</category><category>accelerator</category><category>memory-expander</category></item><item><title>CXL.mem 프로토콜 분해 — 왕복 횟수가 만드는 지연, 링크가 만드는 대역폭</title><link>https://hawk90.dev/blog/embedded/hardware/hbm/chapter10-cxl-mem-protocol/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/hbm/chapter10-cxl-mem-protocol/</guid><description>Ch 9의 지연·대역폭 수치가 왜 그렇게 나오는지 — 왕복 횟수로 본 지연 예산, 링크에 묶인 대역폭, credit 고갈이 만드는 throughput 절벽, interleave granularity의 유불리.</description><pubDate>Mon, 15 Jun 2026 09:02:00 GMT</pubDate><category>cxl</category><category>cxl-mem</category><category>hdm-decoder</category><category>cache-coherency</category></item><item><title>CXL.mem 분석 — HBM·GDDR·DDR 다음의 메모리 계층</title><link>https://hawk90.dev/blog/embedded/hardware/hbm/chapter09-cxl-mem/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/hbm/chapter09-cxl-mem/</guid><description>CXL.mem이 메모리 계층에 끼어드는 자리 — on-package HBM과 DRAM DIMM 사이의 새 tier.</description><pubDate>Mon, 15 Jun 2026 09:01:00 GMT</pubDate><category>cxl</category><category>memory-tiering</category><category>hbm</category><category>ddr</category><category>ndp</category></item><item><title>absl::PeriodicSampler — 적응형 샘플링·jitter 회피</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part16-03-periodic-sampler/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part16-03-periodic-sampler/</guid><description>absl::profiling_internal::PeriodicSampler — sampling rate를 동적으로 조정, geometric distribution으로 jitter 회피. 메모리 할당 추적·profiling 인프라의 기반.</description><pubDate>Sat, 13 Jun 2026 09:14:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>sampling</category><category>profiling</category><category>performance</category></item><item><title>absl::ComputeCrc32c — 하드웨어 가속 체크섬</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part16-02-crc32c/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part16-02-crc32c/</guid><description>absl::ComputeCrc32c — SSE4.2 CRC32, ARM CRC 명령어로 가속된 CRC32C 구현. iSCSI·Btrfs·protobuf에서 표준화된 무결성 검사.</description><pubDate>Sat, 13 Jun 2026 09:13:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>crc32c</category><category>hardware</category><category>checksum</category></item><item><title>absl::GetStackTrace와 Symbolize — crash 시 readable stack</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part16-01-stacktrace-symbolize/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part16-01-stacktrace-symbolize/</guid><description>absl::GetStackTrace로 PC 배열을 받고 absl::Symbolize로 함수 이름·파일·라인으로 변환. signal handler 안에서도 동작하는 async-safe API.</description><pubDate>Sat, 13 Jun 2026 09:12:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>stack-trace</category><category>symbolize</category><category>debugging</category></item><item><title>absl::Cord vs std::string — 선택 기준과 메모리 프로파일</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part15-03-cord-vs-string/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part15-03-cord-vs-string/</guid><description>absl::Cord와 std::string 중 무엇을 쓸지 판단하는 기준 — 크기·mutation 패턴·공유 빈도·메모리 프로파일 비교.</description><pubDate>Sat, 13 Jun 2026 09:11:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>cord</category><category>std-string</category><category>memory</category></item><item><title>absl::from_chars·SimpleAtoi — 빠른 숫자 변환</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part15-02-charconv/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part15-02-charconv/</guid><description>absl::SimpleAtoi / SimpleAtof / from_chars — locale-free, exception-free, sscanf 대비 10~50배. std::charconv와의 관계.</description><pubDate>Sat, 13 Jun 2026 09:10:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>charconv</category><category>parsing</category><category>performance</category></item><item><title>absl::Cord — 분산 시스템용 대용량 문자열</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part15-01-cord/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part15-01-cord/</guid><description>absl::Cord — tree 구조로 표현되는 immutable-ish 문자열. zero-copy concat, shared substring, Google 내부 RPC payload의 기본 표현.</description><pubDate>Sat, 13 Jun 2026 09:09:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>cord</category><category>strings</category><category>zero-copy</category></item><item><title>absl::bind_front와 Overload — 함수 객체 보조 도구</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part14-04-bind-front-overload/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part14-04-bind-front-overload/</guid><description>absl::bind_front — std::bind의 후속, 정적 분석 친화. absl::Overload — variant visitor 작성을 줄이는 도우미.</description><pubDate>Sat, 13 Jun 2026 09:08:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>bind-front</category><category>overload</category><category>variant</category></item><item><title>absl::function_ref와 any_invocable — 함수 객체 전달의 두 축</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part14-03-function-ref-any-invocable/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part14-03-function-ref-any-invocable/</guid><description>absl::FunctionRef는 non-owning callable view, absl::AnyInvocable는 std::function 대체 movable owner. 둘의 차이와 선택 기준.</description><pubDate>Sat, 13 Jun 2026 09:07:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>function-ref</category><category>any-invocable</category><category>std-function</category></item><item><title>Abseil algorithm container 확장 — c_sort·c_find_if·c_count_if</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part14-02-algorithm-container-ext/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part14-02-algorithm-container-ext/</guid><description>absl::c_* algorithm wrapper — container 전체를 받아 begin/end 자동 처리, STL algorithm의 한 줄 boilerplate를 제거.</description><pubDate>Sat, 13 Jun 2026 09:06:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>algorithm</category><category>container</category><category>ranges</category></item><item><title>absl::Cleanup — 함수 종료 시 실행 보장</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part14-01-cleanup/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part14-01-cleanup/</guid><description>absl::Cleanup — lambda 기반 RAII scope guard. 임시 객체로도 동작하는 ergonomic API, folly::ScopeGuard와의 비교.</description><pubDate>Sat, 13 Jun 2026 09:05:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>cleanup</category><category>raii</category><category>scope-guard</category></item><item><title>std → absl 마이그레이션 전략</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part13-03-std-to-absl-migration/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part13-03-std-to-absl-migration/</guid><description>기존 std 기반 코드베이스에 Abseil을 도입하는 단계적 전략 — ABI 격리, 점진적 치환, 마이그레이션 도구.</description><pubDate>Sat, 13 Jun 2026 09:04:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>migration</category><category>std</category><category>refactoring</category></item><item><title>Abseil 자주 보는 anti-pattern</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part13-02-anti-patterns/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part13-02-anti-patterns/</guid><description>code review에서 반복적으로 지적하는 Abseil 오용 사례 — string_view dangling, mutex annotation 누락, StatusOr 무시, 잘못된 hash 등.</description><pubDate>Sat, 13 Jun 2026 09:03:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>anti-pattern</category><category>code-review</category><category>mistakes</category></item><item><title>Google 스타일의 Abseil 사용 패턴</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part13-01-google-style-patterns/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part13-01-google-style-patterns/</guid><description>Part 13-01: Google이 사내에서 Abseil을 어떻게 쓰는지 — code review에서 자주 보는 권장 패턴.</description><pubDate>Sat, 13 Jun 2026 09:02:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>code-review</category><category>google-style</category><category>best-practices</category></item><item><title>Abseil Flag introspection·validation</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part12-03-flag-introspection/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part12-03-flag-introspection/</guid><description>Flag validator, custom type AbslParseFlag/AbslUnparseFlag, introspection API — flag 정확성과 동적 조회.</description><pubDate>Sat, 13 Jun 2026 09:01:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>flags</category><category>validation</category><category>introspection</category></item><item><title>Abseil ParseCommandLine 동작</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part12-02-parse-command-line/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part12-02-parse-command-line/</guid><description>absl::ParseCommandLine — argv를 flag로 분리하고 positional 인자를 돌려주는 단일 진입점.</description><pubDate>Sat, 13 Jun 2026 09:00:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>flags</category><category>parsing</category><category>command-line</category></item><item><title>ABSL_FLAG 정의 분석</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part12-01-absl-flag-define/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part12-01-absl-flag-define/</guid><description>ABSL_FLAG — gflags의 후속이자 Abseil 표준 command-line flag. type-safe definition과 GetFlag/SetFlag 접근.</description><pubDate>Fri, 12 Jun 2026 09:15:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>flags</category><category>command-line</category><category>definition</category></item><item><title>Abseil Stack trace·failure_signal_handler</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part11-04-stack-trace-handler/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part11-04-stack-trace-handler/</guid><description>absl::Symbolize, GetStackTrace, InstallFailureSignalHandler — crash 시점에 stack을 찍어 남기는 진단 인프라.</description><pubDate>Fri, 12 Jun 2026 09:14:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>log</category><category>stack-trace</category><category>signal</category></item><item><title>Abseil LogEntry·structured logging</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part11-03-log-entry-structured/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part11-03-log-entry-structured/</guid><description>absl::LogEntry — 한 로그 항목의 메타데이터(severity, timestamp, source location, message). 구조화 로깅의 기반.</description><pubDate>Fri, 12 Jun 2026 09:13:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>log</category><category>structured</category><category>entry</category></item><item><title>Abseil LogSink 분석</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part11-02-log-sink/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part11-02-log-sink/</guid><description>absl::LogSink — 출력 destination 커스터마이징. 파일·syslog·원격 collector·테스트 캡처.</description><pubDate>Fri, 12 Jun 2026 09:12:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>log</category><category>sink</category><category>customization</category></item><item><title>Abseil LOG·VLOG·CHECK 분석</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part11-01-log-vlog-check/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part11-01-log-vlog-check/</guid><description>Abseil logging 기본 매크로 — severity, verbose level, fatal check. glog의 후속이자 Google 표준.</description><pubDate>Fri, 12 Jun 2026 09:11:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>log</category><category>check</category><category>vlog</category></item><item><title>Abseil Custom hashable 구현</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part10-03-custom-hashable/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part10-03-custom-hashable/</guid><description>실전 사용자 타입을 hashable로 만들기 — value class, enum, pair, raw 바이트 등 흔한 패턴 정리.</description><pubDate>Fri, 12 Jun 2026 09:10:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>hash</category><category>custom</category><category>user-type</category></item><item><title>Abseil HashState chaining</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part10-02-hash-state-chaining/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part10-02-hash-state-chaining/</guid><description>H::combine의 진짜 동작 — HashState로 필드를 chain해 한 번에 좋은 분포를 얻는 방법.</description><pubDate>Fri, 12 Jun 2026 09:09:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>hash</category><category>composition</category><category>state</category></item><item><title>Abseil AbslHashValue 분석</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part10-01-abseil-hash-value/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part10-01-abseil-hash-value/</guid><description>AbslHashValue — std::hash 특수화 대신 ADL 기반 friend 함수로 hash를 정의하는 Abseil의 방식.</description><pubDate>Fri, 12 Jun 2026 09:08:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>hash</category><category>adl</category><category>customization</category></item><item><title>Abseil utility — apply·in_place</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part9-08-utility/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part9-08-utility/</guid><description>absl::apply, in_place_t, integer_sequence — std 미도착 또는 가독성 보강 헬퍼 모음.</description><pubDate>Fri, 12 Jun 2026 09:07:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>utility</category><category>apply</category><category>in-place</category></item><item><title>absl::compare — three-way 비교</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part9-07-compare/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part9-07-compare/</guid><description>absl::weak_ordering, strong_ordering, partial_ordering — C++20 spaceship의 polyfill과 비교 helper.</description><pubDate>Fri, 12 Jun 2026 09:06:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>utility</category><category>compare</category><category>three-way</category></item><item><title>absl::any 분석</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part9-06-any/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part9-06-any/</guid><description>absl::any — 임의 타입을 담는 type-erased 컨테이너. variant와 언제 어떻게 다른가.</description><pubDate>Fri, 12 Jun 2026 09:05:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>types</category><category>any</category><category>type-erasure</category></item><item><title>absl::span 분석</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part9-05-span/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part9-05-span/</guid><description>absl::Span — 연속 메모리의 non-owning view. std::span의 친척이자 더 일찍 도착한 polyfill.</description><pubDate>Fri, 12 Jun 2026 09:04:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>types</category><category>span</category><category>range</category></item><item><title>absl::variant 분석</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part9-04-variant/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part9-04-variant/</guid><description>absl::variant — std::variant의 polyfill. 타입-안전 union과 visitor 패턴.</description><pubDate>Fri, 12 Jun 2026 09:03:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>types</category><category>variant</category><category>visitor</category></item><item><title>absl::optional vs std::optional</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part9-03-optional/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part9-03-optional/</guid><description>absl::optional — std::optional이 도착하기 전 시기의 polyfill. 지금은 std::optional의 alias로 동작.</description><pubDate>Fri, 12 Jun 2026 09:02:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>types</category><category>optional</category><category>std-compatible</category></item><item><title>absl::bits — popcount·countl_zero</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part9-02-bits/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part9-02-bits/</guid><description>absl::popcount, countl_zero, countr_zero — C++20 &lt;bit&gt;의 polyfill. SwissTable·해시·정수 압축의 핵심 primitive.</description><pubDate>Fri, 12 Jun 2026 09:01:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>numeric</category><category>bits</category><category>popcount</category></item><item><title>absl::int128·uint128 분석</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part9-01-int128/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part9-01-int128/</guid><description>absl::int128, uint128 — 64비트로 부족한 곳을 메우는 128비트 정수. 컴파일러 builtin과 emulation 양쪽을 가린 ABI.</description><pubDate>Fri, 12 Jun 2026 09:00:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>numeric</category><category>int128</category><category>integer</category></item><item><title>Abseil Random Seeding·Entropy</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part8-04-seeding-entropy/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part8-04-seeding-entropy/</guid><description>BitGen 시드 관리 — OS entropy, SeedSeq, 결정적 재현성. 그리고 보안 한계.</description><pubDate>Thu, 11 Jun 2026 09:15:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>random</category><category>seed</category><category>entropy</category></item><item><title>Abseil Mocking Random — 테스트 결정성</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part8-03-mocking-random/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part8-03-mocking-random/</guid><description>MockingBitGen — 분포 호출의 결과값을 결정적으로 강제. flaky random 테스트를 끝낸다.</description><pubDate>Thu, 11 Jun 2026 09:14:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>random</category><category>mock</category><category>testing</category></item><item><title>Abseil Random Distributions — Uniform·Exponential</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part8-02-distributions/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part8-02-distributions/</guid><description>absl::Uniform, Gaussian, Exponential, Poisson 등 — std::*_distribution의 클래스 객체를 함수 호출로 평탄화.</description><pubDate>Thu, 11 Jun 2026 09:13:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>random</category><category>distribution</category><category>statistics</category></item><item><title>absl::BitGen — 모던 난수 생성기</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part8-01-bit-gen/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part8-01-bit-gen/</guid><description>absl::BitGen — std::mt19937 + std::uniform_int_distribution의 길고 verbose한 조합을 단일 호출로 압축한 random engine.</description><pubDate>Thu, 11 Jun 2026 09:12:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>random</category><category>bitgen</category><category>prng</category></item><item><title>absl::Time mocking — 테스트 친화 시간</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part7-05-time-mocking/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part7-05-time-mocking/</guid><description>테스트에서 절대 시간을 통제하기 — clock 주입 패턴과 absl::Now() 대체 전략.</description><pubDate>Thu, 11 Jun 2026 09:11:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>time</category><category>testing</category><category>mocking</category></item><item><title>absl::time_zone 분석</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part7-04-time-zone/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part7-04-time-zone/</guid><description>absl::TimeZone — IANA TZ database 위에 얹은 안전한 변환 layer. UTC가 아닌 시각을 다루는 모든 코드가 거쳐야 할 관문.</description><pubDate>Thu, 11 Jun 2026 09:10:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>time</category><category>timezone</category><category>iana</category></item><item><title>absl::CivilTime 분석</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part7-03-civil-time/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part7-03-civil-time/</guid><description>absl::CivilDay와 가족들 — 시간대 없는 달력 산술. 윤년·월말을 직접 처리할 필요가 없게 한다.</description><pubDate>Thu, 11 Jun 2026 09:09:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>time</category><category>civiltime</category><category>calendar</category></item><item><title>absl::Time Format·Parse</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part7-02-format-parse/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part7-02-format-parse/</guid><description>FormatTime, ParseTime — Abseil이 strftime/RFC3339를 한 함수로 흡수하는 방법.</description><pubDate>Thu, 11 Jun 2026 09:08:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>time</category><category>format</category><category>parse</category></item><item><title>absl::Time·Duration 분석 — 단단한 type</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part7-01-time-duration-overview/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part7-01-time-duration-overview/</guid><description>absl::Time과 absl::Duration — std::chrono의 위에 한 겹을 더 씌워 단위 혼동과 부호 오류를 컴파일러가 잡아내게 만든 layer.</description><pubDate>Thu, 11 Jun 2026 09:07:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>time</category><category>duration</category><category>type-safety</category></item><item><title>absl::Mutex annotations — clang thread-safety로 race를 컴파일 타임에</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part6-05-mutex-annotations/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part6-05-mutex-annotations/</guid><description>Part 6-05: ABSL_GUARDED_BY, ABSL_LOCKS_EXCLUDED, ABSL_EXCLUSIVE_LOCKS_REQUIRED — clang -Wthread-safety와 결합해 lock 누락을 정적 검출.</description><pubDate>Thu, 11 Jun 2026 09:06:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>sync</category><category>annotations</category><category>thread-safety</category></item><item><title>absl::BlockingCounter·Barrier — 다중 thread 조율</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part6-04-blocking-counter-barrier/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part6-04-blocking-counter-barrier/</guid><description>Part 6-04: absl::BlockingCounter와 absl::Barrier — N개 작업 완료 대기, N개 thread 동기 합류, fanout-fanin 패턴.</description><pubDate>Thu, 11 Jun 2026 09:05:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>sync</category><category>barrier</category><category>counter</category></item><item><title>absl::Notification — once-only signal</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part6-03-notification/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part6-03-notification/</guid><description>Part 6-03: absl::Notification — 한 번만 발생하는 이벤트를 위한 가벼운 signal primitive. atomic flag보다 안전, condition variable보다 단순.</description><pubDate>Thu, 11 Jun 2026 09:04:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>sync</category><category>notification</category><category>signaling</category></item><item><title>absl::Mutex Conditional Critical Section — Await로 cv 없애기</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part6-02-conditional-critical-section/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part6-02-conditional-critical-section/</guid><description>Part 6-02: Mutex::Await로 함수형 condition을 정의해 condition_variable, notify, spurious wakeup 관용구를 모두 제거.</description><pubDate>Thu, 11 Jun 2026 09:03:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>sync</category><category>condition</category><category>mutex</category></item><item><title>absl::Mutex — reader-writer·fairness·deadlock 검출</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part6-01-mutex/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part6-01-mutex/</guid><description>Part 6-01: absl::Mutex — std::mutex/shared_mutex 통합, contention profiler, deadlock 검출, fairness 정책.</description><pubDate>Thu, 11 Jun 2026 09:02:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>sync</category><category>mutex</category><category>threading</category></item><item><title>Abseil Swiss Table internals — control byte·SIMD probing</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part5-07-swiss-table-internals/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part5-07-swiss-table-internals/</guid><description>Part 5-07: Swiss Table 내부 — H1/H2 해시 분할, control byte 그룹, SSE2/SSE3/NEON SIMD probing, tombstone 처리.</description><pubDate>Thu, 11 Jun 2026 09:01:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>swiss-table</category><category>simd</category><category>internals</category></item><item><title>absl::InlinedVector — small buffer optimization</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part5-06-inlined-vector/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part5-06-inlined-vector/</guid><description>Part 5-06: absl::InlinedVector — std::vector + 작으면 stack, 커지면 heap. SBO 패턴의 표준 도구.</description><pubDate>Thu, 11 Jun 2026 09:00:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>container</category><category>inlined-vector</category><category>sbo</category></item><item><title>absl::FixedArray — 런타임 크기 stack 배열</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part5-05-fixed-array/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part5-05-fixed-array/</guid><description>Part 5-05: absl::FixedArray — 런타임 결정 크기지만 작으면 stack, 크면 heap. VLA의 안전한 대체.</description><pubDate>Wed, 10 Jun 2026 09:15:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>container</category><category>fixed-array</category><category>stack</category></item><item><title>absl::btree_map — sorted·cache-friendly B-tree</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part5-04-btree-map/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part5-04-btree-map/</guid><description>Part 5-04: absl::btree_map — std::map(red-black tree)의 B-tree 대체, cache locality와 메모리 효율, sorted 컨테이너의 새 기준.</description><pubDate>Wed, 10 Jun 2026 09:14:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>container</category><category>btree</category><category>sorted</category></item><item><title>absl::node_hash_map — stable pointer가 필요할 때</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part5-03-node-hash-map/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part5-03-node-hash-map/</guid><description>Part 5-03: absl::node_hash_map — flat_hash_map의 노드 기반 변형, value pointer 안정성 보장, std::unordered_map 마이그레이션 경로.</description><pubDate>Wed, 10 Jun 2026 09:13:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>container</category><category>hash-map</category><category>stability</category></item><item><title>absl::flat_hash_set — set 버전 Swiss Table</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part5-02-flat-hash-set/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part5-02-flat-hash-set/</guid><description>Part 5-02: absl::flat_hash_set — flat_hash_map의 set 대응, value-as-key 구조, dedup/membership 워크로드 패턴.</description><pubDate>Wed, 10 Jun 2026 09:12:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>container</category><category>hash-set</category><category>swiss-table</category></item><item><title>absl::flat_hash_map — Swiss Table 기반 hash map</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part5-01-flat-hash-map/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part5-01-flat-hash-map/</guid><description>Part 5-01: absl::flat_hash_map — Swiss Table 채택 배경, std::unordered_map 대비 cache locality와 성능, pointer/iterator 안정성 트레이드오프.</description><pubDate>Wed, 10 Jun 2026 09:11:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>container</category><category>hash-map</category><category>swiss-table</category></item><item><title>Abseil Escape — CEscape·HexEscape·Base64</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part4-08-escaping-base64/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part4-08-escaping-base64/</guid><description>Part 4-08: absl::CEscape / CHexEscape / Base64Escape / WebSafeBase64Escape — 안전한 문자열 이스케이프와 base64 인코딩의 모든 변형.</description><pubDate>Wed, 10 Jun 2026 09:10:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>strings</category><category>escape</category><category>base64</category></item><item><title>Abseil ASCII 함수 — locale-free 분류·대소문자 변환</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part4-07-ascii-functions/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part4-07-ascii-functions/</guid><description>Part 4-07: absl::ascii_* — locale 독립 ASCII 분류, AsciiStrToLower / AsciiStrToUpper / StripAsciiWhitespace.</description><pubDate>Wed, 10 Jun 2026 09:09:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>strings</category><category>ascii</category><category>locale</category></item><item><title>absl::StrFormat — type-safe printf·FormatSpec</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part4-06-str-format/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part4-06-str-format/</guid><description>Part 4-06: absl::StrFormat — printf 호환 syntax의 type-safe 포맷팅, FormatSpec 컴파일 타임 검증, FormatUntyped.</description><pubDate>Wed, 10 Jun 2026 09:08:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>strings</category><category>strformat</category><category>format</category></item><item><title>absl::StrJoin — 컨테이너 결합과 Formatter</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part4-05-str-join/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part4-05-str-join/</guid><description>Part 4-05: absl::StrJoin — 임의 컨테이너를 구분자로 합치기, Formatter 커스터마이즈, PairFormatter / DereferenceFormatter.</description><pubDate>Wed, 10 Jun 2026 09:07:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>strings</category><category>strjoin</category><category>container</category></item><item><title>absl::StrSplit — Delimiter·Predicate·컨테이너 변환</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part4-04-str-split/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part4-04-str-split/</guid><description>Part 4-04: absl::StrSplit — Delimiter 추상화, ByChar/ByString/ByAnyChar/ByLength, predicate 필터링, 임의 컨테이너 자동 변환.</description><pubDate>Wed, 10 Jun 2026 09:06:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>strings</category><category>strsplit</category><category>iterator</category></item><item><title>absl::StrCat — 가변 인자 문자열 연결과 AlphaNum</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part4-03-str-cat/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part4-03-str-cat/</guid><description>Part 4-03: absl::StrCat — variadic 문자열 연결, AlphaNum 어댑터, operator+ / ostringstream과의 성능 차이.</description><pubDate>Wed, 10 Jun 2026 09:05:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>strings</category><category>strcat</category><category>performance</category></item><item><title>absl::string_view 함정 — dangling·c_str·임시 객체</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part4-02-string-view-pitfalls/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part4-02-string-view-pitfalls/</guid><description>Part 4-02: string_view를 실전에서 잘못 쓰는 패턴 — dangling reference, c_str 변환 비용, 임시 std::string 바인딩.</description><pubDate>Wed, 10 Jun 2026 09:04:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>string-view</category><category>pitfalls</category><category>code-review</category></item><item><title>absl::string_view — non-owning 문자열 참조</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part4-01-string-view/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part4-01-string-view/</guid><description>Part 4-01: absl::string_view — 복사 없는 문자열 전달, lifetime 책임, std::string_view와의 관계.</description><pubDate>Wed, 10 Jun 2026 09:03:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>string-view</category><category>strings</category><category>performance</category></item><item><title>absl::Status ↔ exception 변환 패턴</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part3-05-status-exception-conversion/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part3-05-status-exception-conversion/</guid><description>Part 3-05: Status와 exception/std::error_code/gRPC status 사이 변환 — 라이브러리 경계에서의 안전한 처리.</description><pubDate>Wed, 10 Jun 2026 09:02:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>status</category><category>exception</category><category>error-code</category><category>grpc</category><category>interop</category></item><item><title>absl::Status payload — 구조화된 에러 컨텍스트</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part3-04-status-payload/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part3-04-status-payload/</guid><description>Part 3-04: Status payload — URL-based key로 구조화된 컨텍스트를 첨부, gRPC error_details와 연동.</description><pubDate>Wed, 10 Jun 2026 09:01:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>status</category><category>payload</category><category>debugging</category><category>grpc</category></item><item><title>absl status_macros — ASSIGN_OR_RETURN·RETURN_IF_ERROR</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part3-03-status-macros/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part3-03-status-macros/</guid><description>Part 3-03: RETURN_IF_ERROR와 ASSIGN_OR_RETURN — 에러 전파를 한 줄로. 매크로 expansion 분석과 안전한 사용법.</description><pubDate>Wed, 10 Jun 2026 09:00:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>status</category><category>macros</category><category>error-handling</category></item><item><title>absl::StatusOr&lt;T&gt; — 값 또는 에러</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part3-02-status-or/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part3-02-status-or/</guid><description>Part 3-02: absl::StatusOr&lt;T&gt; — 값과 에러를 한 type에 묶는 패턴, 내부 메모리 레이아웃, monadic 스타일.</description><pubDate>Tue, 09 Jun 2026 09:15:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>statusor</category><category>error-handling</category><category>monadic</category></item><item><title>absl::Status — exception-free error handling</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part3-01-status/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part3-01-status/</guid><description>Part 3-01: absl::Status — Google이 exception 없이 production C++ 에러를 다루는 방법. canonical error code, payload, 내부 표현.</description><pubDate>Tue, 09 Jun 2026 09:14:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>status</category><category>error-handling</category><category>no-exception</category></item><item><title>Abseil thread_annotations — clang TSA 통합</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part2-08-thread-annotations/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part2-08-thread-annotations/</guid><description>Part 2-08: ABSL_GUARDED_BY, ABSL_LOCKS_EXCLUDED — clang의 thread safety analysis로 mutex 사용을 컴파일 시점에 검증.</description><pubDate>Tue, 09 Jun 2026 09:13:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>thread-safety</category><category>clang</category><category>annotations</category><category>mutex</category></item><item><title>Abseil raw_logging — heap-free 로깅</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part2-07-raw-logging/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part2-07-raw-logging/</guid><description>Part 2-07: raw_logging — heap, exception, mutex 없이 동작하는 로깅. signal handler, ASan early init, OOM 경로.</description><pubDate>Tue, 09 Jun 2026 09:12:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>raw-logging</category><category>signal-handler</category><category>no-dependency</category><category>base</category></item><item><title>Abseil Memory utilities 분석</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part2-06-memory-utilities/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part2-06-memory-utilities/</guid><description>Part 2-06: absl::memory — make_unique polyfill, allocator_traits, RawPtr, uninitialized helpers.</description><pubDate>Tue, 09 Jun 2026 09:11:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>memory</category><category>smart-pointer</category><category>allocator</category><category>base</category></item><item><title>Abseil Conformance·Policy 분석</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part2-05-conformance-policy/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part2-05-conformance-policy/</guid><description>Part 2-05: Abseil의 platform conformance 정책 — 지원 컴파일러, 표준 버전, deprecated_if_unavailable.</description><pubDate>Tue, 09 Jun 2026 09:10:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>conformance</category><category>policy</category><category>base</category><category>platform</category></item><item><title>Abseil type_traits — negation·conjunction·void_t</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part2-04-type-traits/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part2-04-type-traits/</guid><description>Part 2-04: absl::negation, absl::conjunction, absl::void_t — C++17 type_traits의 C++14 polyfill과 SFINAE 활용.</description><pubDate>Tue, 09 Jun 2026 09:09:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>type-traits</category><category>sfinae</category><category>meta-programming</category></item><item><title>absl::LogSeverity — 로그 레벨 타입</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part2-03-log-severity/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part2-03-log-severity/</guid><description>Part 2-03: absl::LogSeverity — INFO/WARNING/ERROR/FATAL 4단계, NormalizeLogSeverity, 외부 시스템 연동.</description><pubDate>Tue, 09 Jun 2026 09:08:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>log</category><category>severity</category><category>base</category></item><item><title>Abseil ABSL_PREDICT_TRUE/FALSE — branch hint</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part2-02-predict-branch-hint/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part2-02-predict-branch-hint/</guid><description>Part 2-02: ABSL_PREDICT_TRUE/FALSE — 분기 예측 힌트의 실제 효과, 코드 레이아웃 영향.</description><pubDate>Tue, 09 Jun 2026 09:07:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>branch-prediction</category><category>performance</category><category>base</category></item><item><title>Abseil 매크로 — ABSL_HAVE_*·ABSL_ATTRIBUTE_*</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part2-01-abseil-macros/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part2-01-abseil-macros/</guid><description>Part 2-01: feature detection과 attribute 매크로 — 컴파일러·플랫폼 차이를 흡수하는 Abseil의 기반.</description><pubDate>Tue, 09 Jun 2026 09:06:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>macros</category><category>portability</category><category>base</category><category>attributes</category></item><item><title>Abseil Versioning과 ABI 호환성 정책</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part1-05-versioning-abi/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part1-05-versioning-abi/</guid><description>Part 1-05: Abseil의 versioning 정책 — inline namespace, ABI 호환 범위, prebuilt 사용 시 함정.</description><pubDate>Tue, 09 Jun 2026 09:05:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>versioning</category><category>abi</category><category>compatibility</category><category>inline-namespace</category></item><item><title>Abseil LTS vs HEAD 릴리스 모델 분석</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part1-04-lts-vs-head-release/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part1-04-lts-vs-head-release/</guid><description>Part 1-04: LTS vs HEAD — Abseil의 두 가지 릴리스 모델, breaking change 정책, 마이그레이션 비용.</description><pubDate>Tue, 09 Jun 2026 09:04:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>release</category><category>lts</category><category>versioning</category></item><item><title>Abseil 빌드와 의존성 — Bazel vs CMake</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part1-03-build-dependency-bazel/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part1-03-build-dependency-bazel/</guid><description>Part 1-03: Abseil 빌드 — Bazel(WORKSPACE/MODULE) vs CMake(FetchContent), vcpkg/Conan 패키지 매니저.</description><pubDate>Tue, 09 Jun 2026 09:03:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>build</category><category>bazel</category><category>cmake</category><category>vcpkg</category><category>conan</category></item><item><title>Abseil 설계 철학 — std 호환과 추가 기능의 균형</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part1-02-design-philosophy/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part1-02-design-philosophy/</guid><description>Part 1-02: Abseil 설계 철학 — std 호환, ABI 안정성 정책, Live at Head 모델.</description><pubDate>Tue, 09 Jun 2026 09:02:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>design</category><category>philosophy</category><category>std</category></item><item><title>Abseil 개요 — Google이 std를 보완한 이유</title><link>https://hawk90.dev/blog/programming/code-review/abseil/part1-01-overview/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/part1-01-overview/</guid><description>Part 1-01: Abseil 개요 — Google이 std의 한계를 보완하기 위해 만든 industrial-grade C++ 라이브러리.</description><pubDate>Tue, 09 Jun 2026 09:01:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>google</category><category>library</category><category>overview</category></item><item><title>Abseil Code Review — Google production-grade C++ 라이브러리 분석</title><link>https://hawk90.dev/blog/programming/code-review/abseil/00-preface/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/abseil/00-preface/</guid><description>Google이 만든 Abseil C++ 라이브러리를 code review의 시선으로 읽는다. std를 보완하는 industrial-grade 도구의 설계 의도와 사용 패턴을 13 Parts 68편으로 살펴본다.</description><pubDate>Tue, 09 Jun 2026 09:00:00 GMT</pubDate><category>cpp</category><category>abseil</category><category>google</category><category>library</category><category>code-review</category><category>overview</category></item><item><title>fbcode 패턴 모음 — folly 사용의 실전</title><link>https://hawk90.dev/blog/programming/code-review/folly/part21-02-fbcode-patterns/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part21-02-fbcode-patterns/</guid><description>Meta fbcode 코드 리뷰에서 반복적으로 등장하는 folly 사용 패턴 — overview + 시리즈 마무리.</description><pubDate>Mon, 08 Jun 2026 09:16:00 GMT</pubDate><category>cpp</category><category>folly</category><category>patterns</category><category>fbcode</category><category>summary</category></item><item><title>folly::observer — hot config의 atomic refresh</title><link>https://hawk90.dev/blog/programming/code-review/folly/part21-01-observer/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part21-01-observer/</guid><description>folly::observer — read mostly 값의 atomic refresh, hot config·feature flag·LB weight 같은 패턴의 표준.</description><pubDate>Mon, 08 Jun 2026 09:15:00 GMT</pubDate><category>cpp</category><category>folly</category><category>observer</category><category>config</category><category>atomic</category></item><item><title>folly::CancellationToken — 코루틴·Future 취소 전파</title><link>https://hawk90.dev/blog/programming/code-review/folly/part20-04-cancellation-token/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part20-04-cancellation-token/</guid><description>CancellationSource/Token의 전파 모델 — coroutine·Future·callback 트리에서 협력적 취소.</description><pubDate>Mon, 08 Jun 2026 09:14:00 GMT</pubDate><category>cpp</category><category>folly</category><category>cancellation</category><category>coro</category><category>future</category></item><item><title>folly::AsyncIO — io_uring·Linux AIO</title><link>https://hawk90.dev/blog/programming/code-review/folly/part20-03-async-io/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part20-03-async-io/</guid><description>folly::AsyncIO와 IoUringBackend — kernel async disk I/O, callback과 coroutine 통합.</description><pubDate>Mon, 08 Jun 2026 09:13:00 GMT</pubDate><category>cpp</category><category>folly</category><category>async-io</category><category>io_uring</category><category>linux</category></item><item><title>folly::io::Compression — zstd·lz4·snappy wrapper</title><link>https://hawk90.dev/blog/programming/code-review/folly/part20-02-compression/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part20-02-compression/</guid><description>folly::io::Codec — IOBuf 기반 통합 compression API. zstd/lz4/snappy를 같은 인터페이스로.</description><pubDate>Mon, 08 Jun 2026 09:12:00 GMT</pubDate><category>cpp</category><category>folly</category><category>compression</category><category>zstd</category><category>lz4</category><category>snappy</category></item><item><title>folly::RecordIO — append-only 로그 파일 포맷</title><link>https://hawk90.dev/blog/programming/code-review/folly/part20-01-record-io/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part20-01-record-io/</guid><description>RecordIO의 frame 포맷, checksum, mid-file 복구 — append-only log 파일의 표준 패턴.</description><pubDate>Mon, 08 Jun 2026 09:11:00 GMT</pubDate><category>cpp</category><category>folly</category><category>recordio</category><category>log</category><category>file-format</category></item><item><title>folly::DynamicConverter — dynamic ↔ struct</title><link>https://hawk90.dev/blog/programming/code-review/folly/part19-03-dynamic-converter/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part19-03-dynamic-converter/</guid><description>DynamicConverter의 역할 — folly::dynamic과 user struct 사이 boilerplate 없는 양방향 변환.</description><pubDate>Mon, 08 Jun 2026 09:10:00 GMT</pubDate><category>cpp</category><category>folly</category><category>dynamic</category><category>converter</category><category>json</category></item><item><title>folly::demangle — typeid 디망글링</title><link>https://hawk90.dev/blog/programming/code-review/folly/part19-02-demangle/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part19-02-demangle/</guid><description>folly::demangle의 역할 — C++ mangled name을 읽기 쉬운 형식으로, crash log와 typeid 출력에 필수.</description><pubDate>Mon, 08 Jun 2026 09:09:00 GMT</pubDate><category>cpp</category><category>folly</category><category>demangle</category><category>debug</category><category>typeid</category></item><item><title>folly::format — legacy formatter 분석</title><link>https://hawk90.dev/blog/programming/code-review/folly/part19-01-format-legacy/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part19-01-format-legacy/</guid><description>folly::format의 historical 위치, fmt와의 관계, std::format으로의 마이그레이션 경로.</description><pubDate>Mon, 08 Jun 2026 09:08:00 GMT</pubDate><category>cpp</category><category>folly</category><category>format</category><category>legacy</category><category>migration</category></item><item><title>folly::MicroSpinLock — 가장 좁은 spin lock</title><link>https://hawk90.dev/blog/programming/code-review/folly/part18-04-micro-spin-lock/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part18-04-micro-spin-lock/</guid><description>MicroSpinLock의 1-byte 표현, sleep 없는 순수 spin — 짧은 critical section 전용.</description><pubDate>Mon, 08 Jun 2026 09:07:00 GMT</pubDate><category>cpp</category><category>folly</category><category>spinlock</category><category>microspinlock</category></item><item><title>folly::MicroLock — 1-byte 락</title><link>https://hawk90.dev/blog/programming/code-review/folly/part18-03-micro-lock/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part18-03-micro-lock/</guid><description>MicroLock의 1-byte 표현 — futex 기반 lock으로 std::mutex(40+ byte)의 메모리 비용 회피.</description><pubDate>Mon, 08 Jun 2026 09:06:00 GMT</pubDate><category>cpp</category><category>folly</category><category>microlock</category><category>lock</category><category>memory</category></item><item><title>folly::Indestructible — global lifetime 패턴</title><link>https://hawk90.dev/blog/programming/code-review/folly/part18-02-indestructible/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part18-02-indestructible/</guid><description>Indestructible&lt;T&gt;의 동기 — Meyers singleton의 static deinitialization 함정과 그 회피.</description><pubDate>Mon, 08 Jun 2026 09:05:00 GMT</pubDate><category>cpp</category><category>folly</category><category>indestructible</category><category>singleton</category><category>lifetime</category></item><item><title>folly::Init — main() 부트스트랩</title><link>https://hawk90.dev/blog/programming/code-review/folly/part18-01-init/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part18-01-init/</guid><description>folly::Init의 역할 — gflags 파싱, signal handler, glog 설정, exit handler 통합.</description><pubDate>Mon, 08 Jun 2026 09:04:00 GMT</pubDate><category>cpp</category><category>folly</category><category>init</category><category>bootstrap</category></item><item><title>folly SpookyHashV2 — fast non-crypto hash</title><link>https://hawk90.dev/blog/programming/code-review/folly/part17-04-spooky-hash/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part17-04-spooky-hash/</guid><description>SpookyHashV2의 ARX (Add/Rotate/Xor) 기반 빠른 hash — F14의 hasher 기본 후보.</description><pubDate>Mon, 08 Jun 2026 09:03:00 GMT</pubDate><category>cpp</category><category>folly</category><category>hash</category><category>spookyhash</category></item><item><title>folly Fingerprint64·128 — 분산 hash</title><link>https://hawk90.dev/blog/programming/code-review/folly/part17-03-hash-fingerprint/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part17-03-hash-fingerprint/</guid><description>Fingerprint의 polynomial Rabin-Karp 기반 hash — sharding, dedup, content addressing.</description><pubDate>Mon, 08 Jun 2026 09:02:00 GMT</pubDate><category>cpp</category><category>folly</category><category>hash</category><category>fingerprint</category><category>sharding</category></item><item><title>folly::Uri — URL 파서</title><link>https://hawk90.dev/blog/programming/code-review/folly/part17-02-uri/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part17-02-uri/</guid><description>Uri의 RFC 3986 파싱, query string 추출, scheme/host/path 분해 — 표준에 없는 빈자리.</description><pubDate>Mon, 08 Jun 2026 09:01:00 GMT</pubDate><category>cpp</category><category>folly</category><category>uri</category><category>url</category><category>parser</category></item><item><title>folly::Range — 일반 iterator pair</title><link>https://hawk90.dev/blog/programming/code-review/folly/part17-01-range/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part17-01-range/</guid><description>Range&lt;Iter&gt;의 설계, StringPiece의 일반화, std::span / std::string_view와의 관계.</description><pubDate>Mon, 08 Jun 2026 09:00:00 GMT</pubDate><category>cpp</category><category>folly</category><category>range</category><category>span</category><category>string-view</category></item><item><title>folly::Try vs Expected 선택 기준</title><link>https://hawk90.dev/blog/programming/code-review/folly/part16-03-try-vs-expected/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part16-03-try-vs-expected/</guid><description>언제 Try, 언제 Expected — 비동기 결과 슬롯과 도메인 오류 표현의 명확한 분리.</description><pubDate>Sun, 07 Jun 2026 09:17:00 GMT</pubDate><category>cpp</category><category>folly</category><category>try</category><category>expected</category><category>design</category></item><item><title>folly::Try — Future 결과 wrapper</title><link>https://hawk90.dev/blog/programming/code-review/folly/part16-02-try/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part16-02-try/</guid><description>Try&lt;T&gt;의 세 상태 (value/exception/empty), Future 내부에서의 역할, exception_wrapper와의 관계.</description><pubDate>Sun, 07 Jun 2026 09:16:00 GMT</pubDate><category>cpp</category><category>folly</category><category>try</category><category>future</category><category>error-handling</category></item><item><title>folly::Expected — 결과 또는 오류</title><link>https://hawk90.dev/blog/programming/code-review/folly/part16-01-expected/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part16-01-expected/</guid><description>Expected&lt;T, E&gt;의 monadic API, std::expected와의 차이, absl::StatusOr와의 비교 — 예외 없는 에러 표현.</description><pubDate>Sun, 07 Jun 2026 09:15:00 GMT</pubDate><category>cpp</category><category>folly</category><category>expected</category><category>error-handling</category></item><item><title>folly::coro::Baton·Mutex — 코루틴-aware 동기화</title><link>https://hawk90.dev/blog/programming/code-review/folly/part15-05-coro-baton-mutex/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part15-05-coro-baton-mutex/</guid><description>coro::Baton과 coro::Mutex — thread를 block하지 않고 코루틴만 suspend하는 동기화 프리미티브.</description><pubDate>Sun, 07 Jun 2026 09:14:00 GMT</pubDate><category>cpp</category><category>folly</category><category>coro</category><category>baton</category><category>mutex</category></item><item><title>folly coro blockingWait·collectAll — 동기 경계와 fan-in</title><link>https://hawk90.dev/blog/programming/code-review/folly/part15-04-coro-blocking-wait/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part15-04-coro-blocking-wait/</guid><description>blockingWait, collectAll, collectAllRange — sync 경계 연결과 병렬 합성, deadlock 회피 규칙.</description><pubDate>Sun, 07 Jun 2026 09:13:00 GMT</pubDate><category>cpp</category><category>folly</category><category>coro</category><category>blockingwait</category><category>collect</category></item><item><title>folly::coro::AsyncGenerator — 비동기 스트림</title><link>https://hawk90.dev/blog/programming/code-review/folly/part15-03-coro-async-generator/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part15-03-coro-async-generator/</guid><description>AsyncGenerator&lt;T&gt;의 pull-based 모델, co_yield, for co_await — 비동기 iterator의 표준 후보 패턴.</description><pubDate>Sun, 07 Jun 2026 09:12:00 GMT</pubDate><category>cpp</category><category>folly</category><category>coro</category><category>generator</category><category>stream</category></item><item><title>folly::coro::Task — lazy single-shot 코루틴</title><link>https://hawk90.dev/blog/programming/code-review/folly/part15-02-coro-task/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part15-02-coro-task/</guid><description>Task&lt;T&gt;의 lazy start, executor 바인딩, scheduleOn, 값/예외 전파 — production async의 기본 단위.</description><pubDate>Sun, 07 Jun 2026 09:11:00 GMT</pubDate><category>cpp</category><category>folly</category><category>coro</category><category>task</category><category>async</category></item><item><title>folly::coro 개요 — production C++20 코루틴 어댑터</title><link>https://hawk90.dev/blog/programming/code-review/folly/part15-01-coro-overview/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part15-01-coro-overview/</guid><description>folly::coro의 위치 — std 코루틴 위에 Task/AsyncGenerator/Mutex를 쌓아 production async를 가능하게 한 이유.</description><pubDate>Sun, 07 Jun 2026 09:10:00 GMT</pubDate><category>cpp</category><category>folly</category><category>coro</category><category>coroutines</category><category>async</category></item><item><title>folly vs std 선택 기준 분석</title><link>https://hawk90.dev/blog/programming/code-review/folly/part14-03-std-vs-folly-choice/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part14-03-std-vs-folly-choice/</guid><description>Part 14-03: std/abseil/folly 선택 의사결정 가이드 — production scale, throughput, latency profile에 따른 분기.</description><pubDate>Sun, 07 Jun 2026 09:09:00 GMT</pubDate><category>cpp</category><category>folly</category><category>std</category><category>decision</category><category>comparison</category></item><item><title>folly anti-patterns — 잘못 쓰면 std보다 느림</title><link>https://hawk90.dev/blog/programming/code-review/folly/part14-02-folly-anti-patterns/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part14-02-folly-anti-patterns/</guid><description>Part 14-02: Folly 오용 패턴 정리 — SemiFuture without via, fbstring small case, F14 잘못된 default, 등.</description><pubDate>Sun, 07 Jun 2026 09:08:00 GMT</pubDate><category>cpp</category><category>folly</category><category>anti-pattern</category><category>performance</category><category>mistakes</category></item><item><title>folly Meta 스타일 code review 패턴</title><link>https://hawk90.dev/blog/programming/code-review/folly/part14-01-meta-style-review/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part14-01-meta-style-review/</guid><description>Part 14-01: Meta(Facebook) 사내 code review 문화 — performance-first lens.</description><pubDate>Sun, 07 Jun 2026 09:07:00 GMT</pubDate><category>cpp</category><category>folly</category><category>code-review</category><category>meta</category><category>performance</category><category>best-practices</category></item><item><title>folly::Lazy — 지연 초기화 wrapper</title><link>https://hawk90.dev/blog/programming/code-review/folly/part13-05-lazy/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part13-05-lazy/</guid><description>Part 13-05: folly::Lazy — once_flag/call_once 패턴을 type level로. 무거운 객체의 첫 사용까지 초기화 연기.</description><pubDate>Sun, 07 Jun 2026 09:06:00 GMT</pubDate><category>cpp</category><category>folly</category><category>lazy</category><category>init</category><category>utility</category></item><item><title>folly::Function vs std::function</title><link>https://hawk90.dev/blog/programming/code-review/folly/part13-04-folly-function/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part13-04-folly-function/</guid><description>Part 13-04: folly::Function — move-only callable. unique_ptr capture, const-correctness, exec policy를 갖춘 std::function 대체.</description><pubDate>Sun, 07 Jun 2026 09:05:00 GMT</pubDate><category>cpp</category><category>folly</category><category>function</category><category>callable</category><category>move-only</category></item><item><title>folly::Optional vs std::optional</title><link>https://hawk90.dev/blog/programming/code-review/folly/part13-03-folly-optional/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part13-03-folly-optional/</guid><description>Part 13-03: folly::Optional — std::optional와의 차이, 역사적 배경, monadic op과 std 호환.</description><pubDate>Sun, 07 Jun 2026 09:04:00 GMT</pubDate><category>cpp</category><category>folly</category><category>optional</category><category>types</category><category>std-compatible</category></item><item><title>folly::ScopeGuard·SCOPE_EXIT — RAII cleanup</title><link>https://hawk90.dev/blog/programming/code-review/folly/part13-02-scope-guard/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part13-02-scope-guard/</guid><description>Part 13-02: ScopeGuard / SCOPE_EXIT — RAII로 cleanup 보장. C에서 넘어온 코드 정리에 강력하다.</description><pubDate>Sun, 07 Jun 2026 09:03:00 GMT</pubDate><category>cpp</category><category>folly</category><category>scope-guard</category><category>raii</category><category>cleanup</category></item><item><title>folly::ExceptionWrapper — type-erased exception holder</title><link>https://hawk90.dev/blog/programming/code-review/folly/part13-01-exception-wrapper/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part13-01-exception-wrapper/</guid><description>Part 13-01: ExceptionWrapper — exception을 throw 없이 옮기는 holder. async 콜백·thread 경계에서 핵심.</description><pubDate>Sun, 07 Jun 2026 09:02:00 GMT</pubDate><category>cpp</category><category>folly</category><category>exception</category><category>wrapper</category><category>utility</category></item><item><title>folly::Singleton try_get·try_get_fast — TLS-cached 접근</title><link>https://hawk90.dev/blog/programming/code-review/folly/part12-03-try-get-fast/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part12-03-try-get-fast/</guid><description>Part 12-03: try_get vs try_get_fast — TLS 캐시로 hot-path singleton 접근을 nanosecond 수준으로.</description><pubDate>Sun, 07 Jun 2026 09:01:00 GMT</pubDate><category>cpp</category><category>folly</category><category>singleton</category><category>performance</category><category>access</category></item><item><title>folly::SingletonVault 분석 — 등록·소멸·의존성</title><link>https://hawk90.dev/blog/programming/code-review/folly/part12-02-singleton-vault/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part12-02-singleton-vault/</guid><description>Part 12-02: SingletonVault — 모든 singleton의 통합 관리. 등록 순서, 의존성 그래프, eager/lazy 전략.</description><pubDate>Sun, 07 Jun 2026 09:00:00 GMT</pubDate><category>cpp</category><category>folly</category><category>singleton</category><category>vault</category><category>lifetime</category></item><item><title>folly::Singleton vs Meyers/static — 왜 Folly의 Singleton인가</title><link>https://hawk90.dev/blog/programming/code-review/folly/part12-01-singleton-vs-meyers/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part12-01-singleton-vs-meyers/</guid><description>Part 12-01: Meyers singleton과 static 변수의 한계 — destruction order, fork safety, dependency 관리.</description><pubDate>Sat, 06 Jun 2026 09:17:00 GMT</pubDate><category>cpp</category><category>folly</category><category>singleton</category><category>meyers</category><category>lifetime</category></item><item><title>folly dynamic Visitor pattern — type별 분기</title><link>https://hawk90.dev/blog/programming/code-review/folly/part11-04-dynamic-visitor/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part11-04-dynamic-visitor/</guid><description>Part 11-04: dynamic을 type별로 처리하는 visitor 패턴. std::visit-like helper로 switch boilerplate를 줄인다.</description><pubDate>Sat, 06 Jun 2026 09:16:00 GMT</pubDate><category>cpp</category><category>folly</category><category>dynamic</category><category>visitor</category><category>pattern</category></item><item><title>folly dynamic ↔ struct — manual marshaling</title><link>https://hawk90.dev/blog/programming/code-review/folly/part11-03-dynamic-struct/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part11-03-dynamic-struct/</guid><description>Part 11-03: dynamic을 strongly-typed struct로. type safety boundary를 어디에 그을지, marshaling 패턴 비교.</description><pubDate>Sat, 06 Jun 2026 09:15:00 GMT</pubDate><category>cpp</category><category>folly</category><category>dynamic</category><category>struct</category><category>conversion</category></item><item><title>folly JSON conversion — toJson·parseJson</title><link>https://hawk90.dev/blog/programming/code-review/folly/part11-02-json-conversion/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part11-02-json-conversion/</guid><description>Part 11-02: toJson / parseJson — folly::dynamic ↔ JSON 문자열. parse 옵션, 성능, schema-less 처리.</description><pubDate>Sat, 06 Jun 2026 09:14:00 GMT</pubDate><category>cpp</category><category>folly</category><category>dynamic</category><category>json</category><category>parsing</category></item><item><title>folly::dynamic — JSON-like dynamic type 분석</title><link>https://hawk90.dev/blog/programming/code-review/folly/part11-01-dynamic/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part11-01-dynamic/</guid><description>Part 11-01: folly::dynamic — JSON-like 동적 타입. std::any와 무엇이 다른지, 왜 Meta는 별도 타입을 만들었는지.</description><pubDate>Sat, 06 Jun 2026 09:13:00 GMT</pubDate><category>cpp</category><category>folly</category><category>dynamic</category><category>json</category><category>type</category></item><item><title>folly::fibers::Channel — Go-like channel</title><link>https://hawk90.dev/blog/programming/code-review/folly/part10-04-fibers-channel/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part10-04-fibers-channel/</guid><description>Part 10-04: fibers::Channel — fiber 간 producer/consumer 채널. Go의 channel과 비슷한 sync 점.</description><pubDate>Sat, 06 Jun 2026 09:12:00 GMT</pubDate><category>cpp</category><category>folly</category><category>fibers</category><category>channel</category><category>async</category></item><item><title>folly::UnboundedQueue — 동적 크기 lock-free</title><link>https://hawk90.dev/blog/programming/code-review/folly/part10-03-unbounded-queue/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part10-03-unbounded-queue/</guid><description>Part 10-03: UnboundedQueue — linked segment 기반 동적 크기 lock-free 큐. SPSC 모드에선 거의 무비용으로 성장한다.</description><pubDate>Sat, 06 Jun 2026 09:11:00 GMT</pubDate><category>cpp</category><category>folly</category><category>queue</category><category>unbounded</category><category>lock-free</category></item><item><title>folly::MPMCQueue — multi-producer multi-consumer</title><link>https://hawk90.dev/blog/programming/code-review/folly/part10-02-mpmc-queue/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part10-02-mpmc-queue/</guid><description>Part 10-02: MPMCQueue — ticket 기반 lock-free 큐. CAS 없이 여러 producer/consumer를 안전하게 처리한다.</description><pubDate>Sat, 06 Jun 2026 09:10:00 GMT</pubDate><category>cpp</category><category>folly</category><category>queue</category><category>mpmc</category><category>lock-free</category></item><item><title>folly::ProducerConsumerQueue — SPSC 큐 분석</title><link>https://hawk90.dev/blog/programming/code-review/folly/part10-01-producer-consumer-queue/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part10-01-producer-consumer-queue/</guid><description>Part 10-01: ProducerConsumerQueue — SPSC lock-free ring buffer. cache line padding, acquire/release만으로 RTT을 줄이는 패턴.</description><pubDate>Sat, 06 Jun 2026 09:09:00 GMT</pubDate><category>cpp</category><category>folly</category><category>queue</category><category>spsc</category><category>lock-free</category></item><item><title>folly::PicoSpinLock — 1-byte spinlock</title><link>https://hawk90.dev/blog/programming/code-review/folly/part9-05-pico-spin-lock/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part9-05-pico-spin-lock/</guid><description>PicoSpinLock — integer type의 한 bit을 lock으로 사용. 객체 안에 lock을 끼워 넣어 메모리 절약.</description><pubDate>Sat, 06 Jun 2026 09:08:00 GMT</pubDate><category>cpp</category><category>folly</category><category>sync</category><category>spinlock</category><category>memory</category></item><item><title>folly::RWSpinLock 분석</title><link>https://hawk90.dev/blog/programming/code-review/folly/part9-04-rw-spin-lock/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part9-04-rw-spin-lock/</guid><description>folly::RWSpinLock — spin-only reader-writer lock, 매우 짧은 critical section에 SharedMutex보다 빠르다.</description><pubDate>Sat, 06 Jun 2026 09:07:00 GMT</pubDate><category>cpp</category><category>folly</category><category>sync</category><category>spinlock</category><category>rwlock</category></item><item><title>folly::Baton — one-shot wait 동기화</title><link>https://hawk90.dev/blog/programming/code-review/folly/part9-03-baton/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part9-03-baton/</guid><description>folly::Baton — 한 번 post, 한 번 wait의 경량 signal primitive. condition variable보다 가볍다.</description><pubDate>Sat, 06 Jun 2026 09:06:00 GMT</pubDate><category>cpp</category><category>folly</category><category>sync</category><category>baton</category><category>futex</category></item><item><title>folly::SharedMutex 분석</title><link>https://hawk90.dev/blog/programming/code-review/folly/part9-02-shared-mutex/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part9-02-shared-mutex/</guid><description>folly::SharedMutex — std::shared_mutex보다 작고 빠른 reader-writer lock, fairness 정책 선택.</description><pubDate>Sat, 06 Jun 2026 09:05:00 GMT</pubDate><category>cpp</category><category>folly</category><category>sync</category><category>shared-mutex</category><category>rwlock</category></item><item><title>folly::Synchronized — lock wrapper 패턴</title><link>https://hawk90.dev/blog/programming/code-review/folly/part9-01-synchronized/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part9-01-synchronized/</guid><description>folly::Synchronized&lt;T&gt; — 데이터와 lock을 한 객체에 묶어 잠금 누락을 컴파일 타임에 막는다.</description><pubDate>Sat, 06 Jun 2026 09:04:00 GMT</pubDate><category>cpp</category><category>folly</category><category>sync</category><category>synchronized</category><category>raii</category></item><item><title>folly::EvictingCacheMap — LRU 구현 분석</title><link>https://hawk90.dev/blog/programming/code-review/folly/part8-05-evicting-cache-map/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part8-05-evicting-cache-map/</guid><description>EvictingCacheMap — 고정 size 한도와 LRU eviction policy를 결합한 single-thread cache.</description><pubDate>Sat, 06 Jun 2026 09:03:00 GMT</pubDate><category>cpp</category><category>folly</category><category>container</category><category>lru</category><category>cache</category></item><item><title>folly::ConcurrentHashMap — sharded 동시 해시 맵</title><link>https://hawk90.dev/blog/programming/code-review/folly/part8-04-concurrent-hash-map/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part8-04-concurrent-hash-map/</guid><description>ConcurrentHashMap — sharded buckets + Hazard Pointer로 erase 포함 full thread-safe hash map.</description><pubDate>Sat, 06 Jun 2026 09:02:00 GMT</pubDate><category>cpp</category><category>folly</category><category>container</category><category>concurrent</category><category>sharded</category></item><item><title>folly::AtomicHashMap — lock-free read 분석</title><link>https://hawk90.dev/blog/programming/code-review/folly/part8-03-atomic-hash-map/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part8-03-atomic-hash-map/</guid><description>AtomicHashMap — lock-free read, append-only insert, 큰 read-heavy 워크로드용 hash map.</description><pubDate>Sat, 06 Jun 2026 09:01:00 GMT</pubDate><category>cpp</category><category>folly</category><category>container</category><category>atomic-hashmap</category><category>lock-free</category></item><item><title>folly::FixedString — compile-time string</title><link>https://hawk90.dev/blog/programming/code-review/folly/part8-02-fixed-string/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part8-02-fixed-string/</guid><description>FixedString — fixed capacity, fully constexpr 문자열 type. compile-time concat과 hash가 가능.</description><pubDate>Sat, 06 Jun 2026 09:00:00 GMT</pubDate><category>cpp</category><category>folly</category><category>container</category><category>fixedstring</category><category>constexpr</category></item><item><title>folly::small_vector — inline storage 분석</title><link>https://hawk90.dev/blog/programming/code-review/folly/part8-01-small-vector/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part8-01-small-vector/</guid><description>small_vector — N개까지 inline 저장, overflow는 heap, std::vector 호환 인터페이스.</description><pubDate>Fri, 05 Jun 2026 09:17:00 GMT</pubDate><category>cpp</category><category>folly</category><category>container</category><category>smallvector</category><category>sbo</category></item><item><title>folly F14 internals — SIMD probing 메커니즘</title><link>https://hawk90.dev/blog/programming/code-review/folly/part7-05-f14-internals/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part7-05-f14-internals/</guid><description>F14 chunk 구조와 SIMD probing — SSE2/AVX/NEON dispatch, H1/H2 hash split, 14-slot 선택 이유.</description><pubDate>Fri, 05 Jun 2026 09:16:00 GMT</pubDate><category>cpp</category><category>folly</category><category>f14</category><category>simd</category><category>internals</category></item><item><title>folly::F14FastMap — auto-select 동작</title><link>https://hawk90.dev/blog/programming/code-review/folly/part7-04-f14-fast-map/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part7-04-f14-fast-map/</guid><description>F14FastMap — key/value 크기로 ValueMap과 VectorMap 중 자동 선택, 사용자 trade-off 제거.</description><pubDate>Fri, 05 Jun 2026 09:15:00 GMT</pubDate><category>cpp</category><category>folly</category><category>f14</category><category>fast-map</category><category>auto</category></item><item><title>folly::F14VectorMap — cache-friendly iteration</title><link>https://hawk90.dev/blog/programming/code-review/folly/part7-03-f14-vector-map/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part7-03-f14-vector-map/</guid><description>F14VectorMap — value를 contiguous vector에 두고 chunk에는 index만, 순회 cache-friendly.</description><pubDate>Fri, 05 Jun 2026 09:14:00 GMT</pubDate><category>cpp</category><category>folly</category><category>f14</category><category>vector-map</category><category>cache</category></item><item><title>folly::F14NodeMap — stable pointer가 필요할 때</title><link>https://hawk90.dev/blog/programming/code-review/folly/part7-02-f14-node-map/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part7-02-f14-node-map/</guid><description>F14NodeMap — value를 별도 heap node에 두어 pointer/reference 안정성을 보장하는 F14 변형.</description><pubDate>Fri, 05 Jun 2026 09:13:00 GMT</pubDate><category>cpp</category><category>folly</category><category>f14</category><category>node-map</category><category>stability</category></item><item><title>folly::F14ValueMap vs std::unordered_map</title><link>https://hawk90.dev/blog/programming/code-review/folly/part7-01-f14-value-map/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part7-01-f14-value-map/</guid><description>F14ValueMap의 in-place value 저장과 std::unordered_map node-based의 차이, 성능과 reference 안정성.</description><pubDate>Fri, 05 Jun 2026 09:12:00 GMT</pubDate><category>cpp</category><category>folly</category><category>f14</category><category>hash-map</category><category>simd</category></item><item><title>folly Conv 성능 비교 — sprintf·stringstream 대비</title><link>https://hawk90.dev/blog/programming/code-review/folly/part6-03-conv-performance/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part6-03-conv-performance/</guid><description>folly::to의 성능 — lookup table itoa, SWAR atoi, sprintf/iostream과의 5-10배 차이.</description><pubDate>Fri, 05 Jun 2026 09:11:00 GMT</pubDate><category>cpp</category><category>folly</category><category>conv</category><category>performance</category><category>benchmark</category></item><item><title>folly Conv Customization — 사용자 타입 지원</title><link>https://hawk90.dev/blog/programming/code-review/folly/part6-02-conv-customization/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part6-02-conv-customization/</guid><description>folly::to에 사용자 타입을 hook하기 — parseTo, toAppend ADL 확장.</description><pubDate>Fri, 05 Jun 2026 09:10:00 GMT</pubDate><category>cpp</category><category>folly</category><category>conv</category><category>customization</category><category>user-type</category></item><item><title>folly::to·tryTo — text↔num 변환 분석</title><link>https://hawk90.dev/blog/programming/code-review/folly/part6-01-to-try-to/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part6-01-to-try-to/</guid><description>folly::to의 throw-on-error 변환, tryTo의 Expected 반환, 양방향 string/number 처리.</description><pubDate>Fri, 05 Jun 2026 09:09:00 GMT</pubDate><category>cpp</category><category>folly</category><category>conv</category><category>to</category><category>conversion</category></item><item><title>folly Join·Split utilities — 문자열 분해와 결합</title><link>https://hawk90.dev/blog/programming/code-review/folly/part5-04-join-split/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part5-04-join-split/</guid><description>folly::join과 folly::split의 구현, StringPiece 기반 zero-copy split, absl::StrSplit 비교.</description><pubDate>Fri, 05 Jun 2026 09:08:00 GMT</pubDate><category>cpp</category><category>folly</category><category>strings</category><category>join</category><category>split</category></item><item><title>folly::StringPiece — string_view 호환 분석</title><link>https://hawk90.dev/blog/programming/code-review/folly/part5-03-string-piece/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part5-03-string-piece/</guid><description>StringPiece의 역사적 배경, std::string_view와의 호환 layer, Range&lt;const char*&gt;로서의 일반화.</description><pubDate>Fri, 05 Jun 2026 09:07:00 GMT</pubDate><category>cpp</category><category>folly</category><category>stringpiece</category><category>string-view</category><category>strings</category></item><item><title>folly의 fmt::format 통합 — 모던 포맷팅 채택</title><link>https://hawk90.dev/blog/programming/code-review/folly/part5-02-fmt-format-integration/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part5-02-fmt-format-integration/</guid><description>Folly가 fmt 라이브러리를 채택한 이유, formatter customization, sformat/format 차이.</description><pubDate>Fri, 05 Jun 2026 09:06:00 GMT</pubDate><category>cpp</category><category>folly</category><category>fmt</category><category>format</category><category>strings</category></item><item><title>folly::FBString 분석 — SSO + COW 구현</title><link>https://hawk90.dev/blog/programming/code-review/folly/part5-01-fbstring/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part5-01-fbstring/</guid><description>FBString의 23-byte SSO와 Copy-on-Write, jemalloc 친화 레이아웃 — std::string 대체로서의 설계 결정.</description><pubDate>Fri, 05 Jun 2026 09:05:00 GMT</pubDate><category>cpp</category><category>folly</category><category>fbstring</category><category>sso</category><category>cow</category></item><item><title>folly::IOBuf shared semantics — clone·unshare·takeOwnership</title><link>https://hawk90.dev/blog/programming/code-review/folly/part4-05-iobuf-shared-semantics/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part4-05-iobuf-shared-semantics/</guid><description>IOBuf의 ref-count는 buffer share를 표현한다. clone/unshare/takeOwnership의 의미를 정확히 이해해야 zero-copy가 안전하다.</description><pubDate>Fri, 05 Jun 2026 09:04:00 GMT</pubDate><category>cpp</category><category>folly</category><category>iobuf</category><category>shared</category><category>semantics</category></item><item><title>folly Zero-copy 패턴 — IOBuf로 ScatterGather I/O 표현</title><link>https://hawk90.dev/blog/programming/code-review/folly/part4-04-zero-copy-patterns/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part4-04-zero-copy-patterns/</guid><description>IOBuf chain을 직접 writev/readv에 넘기고, splice/sendfile과 결합해 zero-copy 송수신 파이프라인을 구성한다.</description><pubDate>Fri, 05 Jun 2026 09:03:00 GMT</pubDate><category>cpp</category><category>folly</category><category>iobuf</category><category>zero-copy</category><category>network</category></item><item><title>folly::io::Cursor·RWCursor — chain 위의 stream</title><link>https://hawk90.dev/blog/programming/code-review/folly/part4-03-cursor/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part4-03-cursor/</guid><description>Cursor는 IOBuf chain을 단일 stream처럼 읽고 쓰는 추상화. endian-safe primitive read와 chain 자동 순회를 제공한다.</description><pubDate>Fri, 05 Jun 2026 09:02:00 GMT</pubDate><category>cpp</category><category>folly</category><category>iobuf</category><category>cursor</category><category>stream</category></item><item><title>folly::IOBufQueue — chain의 push/pull 추상화</title><link>https://hawk90.dev/blog/programming/code-review/folly/part4-02-iobuf-queue/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part4-02-iobuf-queue/</guid><description>IOBufQueue는 IOBuf chain의 append/prepend/split을 효율적으로 관리한다. streaming codec과 framing layer의 표준 도구다.</description><pubDate>Fri, 05 Jun 2026 09:01:00 GMT</pubDate><category>cpp</category><category>folly</category><category>iobuf</category><category>queue</category><category>buffer</category></item><item><title>folly::IOBuf 분석 — zero-copy buffer chain의 기본 단위</title><link>https://hawk90.dev/blog/programming/code-review/folly/part4-01-iobuf/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part4-01-iobuf/</guid><description>IOBuf는 ref-counted byte buffer chain. network 코드의 zero-copy 패턴을 표현하는 Folly의 핵심 자료구조다.</description><pubDate>Fri, 05 Jun 2026 09:00:00 GMT</pubDate><category>cpp</category><category>folly</category><category>iobuf</category><category>zero-copy</category><category>buffer</category></item><item><title>folly::EventBase 분석 — libevent 이벤트 루프의 핵심</title><link>https://hawk90.dev/blog/programming/code-review/folly/part3-05-event-base/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part3-05-event-base/</guid><description>EventBase는 libevent의 event_base를 wrap한 단일 thread event loop. file descriptor, timer, cross-thread message를 한 번에 처리한다.</description><pubDate>Thu, 04 Jun 2026 09:17:00 GMT</pubDate><category>cpp</category><category>folly</category><category>executor</category><category>eventbase</category><category>libevent</category></item><item><title>folly::ManualExecutor — 결정적 테스트를 위한 수동 진행</title><link>https://hawk90.dev/blog/programming/code-review/folly/part3-04-manual-executor/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part3-04-manual-executor/</guid><description>ManualExecutor는 schedule된 task를 자동 실행하지 않고 run()/drive() 호출 시점에만 진행한다. 비동기 코드의 단위 테스트에 결정성을 부여한다.</description><pubDate>Thu, 04 Jun 2026 09:16:00 GMT</pubDate><category>cpp</category><category>folly</category><category>executor</category><category>manual</category><category>testing</category></item><item><title>folly::IOThreadPoolExecutor — libevent 기반 I/O pool</title><link>https://hawk90.dev/blog/programming/code-review/folly/part3-03-io-thread-pool-executor/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part3-03-io-thread-pool-executor/</guid><description>IOThreadPoolExecutor는 각 worker thread에 EventBase를 두어 libevent 기반 I/O와 timer를 처리한다.</description><pubDate>Thu, 04 Jun 2026 09:15:00 GMT</pubDate><category>cpp</category><category>folly</category><category>executor</category><category>io</category><category>libevent</category></item><item><title>folly::CPUThreadPoolExecutor — CPU-bound 작업의 표준 thread pool</title><link>https://hawk90.dev/blog/programming/code-review/folly/part3-02-cpu-thread-pool-executor/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part3-02-cpu-thread-pool-executor/</guid><description>CPUThreadPoolExecutor는 CPU 집약 작업을 위한 thread pool. priority queue, blocking queue, thread factory를 조합한다.</description><pubDate>Thu, 04 Jun 2026 09:14:00 GMT</pubDate><category>cpp</category><category>folly</category><category>executor</category><category>threadpool</category><category>cpu</category></item><item><title>folly::InlineExecutor — 호출자 thread에서 즉시 실행</title><link>https://hawk90.dev/blog/programming/code-review/folly/part3-01-inline-executor/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part3-01-inline-executor/</guid><description>InlineExecutor는 add()의 caller thread에서 callback을 그 자리에서 실행한다. 테스트와 단축 경로에 적합하지만 production hot path에는 위험하다.</description><pubDate>Thu, 04 Jun 2026 09:13:00 GMT</pubDate><category>cpp</category><category>folly</category><category>executor</category><category>inline</category><category>async</category></item><item><title>folly::fibers 분석 — M:N stackful coroutine</title><link>https://hawk90.dev/blog/programming/code-review/folly/part2-07-fibers/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part2-07-fibers/</guid><description>Folly fibers는 boost.context 기반 stackful coroutine. 동기 코드처럼 쓰고 비동기로 동작하는 M:N 모델.</description><pubDate>Thu, 04 Jun 2026 09:12:00 GMT</pubDate><category>cpp</category><category>folly</category><category>fibers</category><category>coroutine</category><category>async</category></item><item><title>folly::Future retry·window·via — 제어 흐름 조합자</title><link>https://hawk90.dev/blog/programming/code-review/folly/part2-06-retry-window-via/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part2-06-retry-window-via/</guid><description>Future 조립의 제어 흐름 — 재시도, 동시성 윈도, executor 전환.</description><pubDate>Thu, 04 Jun 2026 09:11:00 GMT</pubDate><category>cpp</category><category>folly</category><category>future</category><category>retry</category><category>control</category></item><item><title>folly::collect·collectAll·collectAny — fan-in 패턴 분석</title><link>https://hawk90.dev/blog/programming/code-review/folly/part2-05-collect/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part2-05-collect/</guid><description>여러 SemiFuture를 모으는 세 가지 의미 — 모두 성공, 모두 완료, 하나만 완료.</description><pubDate>Thu, 04 Jun 2026 09:10:00 GMT</pubDate><category>cpp</category><category>folly</category><category>future</category><category>collect</category><category>parallel</category></item><item><title>folly::Future thenValue·thenError·thenTry — continuation 체인 분석</title><link>https://hawk90.dev/blog/programming/code-review/folly/part2-04-then-value-error/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part2-04-then-value-error/</guid><description>Future continuation API의 세 변형 — 정상값, 예외, 통합 처리. .then은 deprecated.</description><pubDate>Thu, 04 Jun 2026 09:09:00 GMT</pubDate><category>cpp</category><category>folly</category><category>future</category><category>continuation</category><category>error</category></item><item><title>folly::SemiFuture vs Future — executor binding의 명시화</title><link>https://hawk90.dev/blog/programming/code-review/folly/part2-03-semi-future-vs-future/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part2-03-semi-future-vs-future/</guid><description>SemiFuture는 executor에 바인딩되지 않은 상태, Future는 바인딩 완료 상태. 이 구분이 라이브러리 API의 안전성을 만든다.</description><pubDate>Thu, 04 Jun 2026 09:08:00 GMT</pubDate><category>cpp</category><category>folly</category><category>semifuture</category><category>executor</category><category>async</category></item><item><title>folly::Promise·makeFuture — Future를 만드는 두 길</title><link>https://hawk90.dev/blog/programming/code-review/folly/part2-02-promise-make-future/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part2-02-promise-make-future/</guid><description>folly::Promise로 비동기 완료를 표현하고, makeFuture/makeSemiFuture로 이미 결정된 값을 Future 인터페이스에 올린다.</description><pubDate>Thu, 04 Jun 2026 09:07:00 GMT</pubDate><category>cpp</category><category>folly</category><category>future</category><category>promise</category><category>async</category></item><item><title>folly::Future 분석 — std::future의 한계를 넘는 composable async</title><link>https://hawk90.dev/blog/programming/code-review/folly/part2-01-future-overview/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part2-01-future-overview/</guid><description>folly::Future가 std::future의 어떤 한계를 해결하는가 — continuation, executor binding, exception 전파.</description><pubDate>Thu, 04 Jun 2026 09:06:00 GMT</pubDate><category>cpp</category><category>folly</category><category>future</category><category>async</category><category>overview</category></item><item><title>Folly production validation 문화 — peta-scale에서 단련된 코드</title><link>https://hawk90.dev/blog/programming/code-review/folly/part1-05-production-validation/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part1-05-production-validation/</guid><description>Folly 컴포넌트가 Meta production scale에서 어떻게 검증되는가 — 외부 사용자가 신뢰해도 되는 부분과 주의할 부분.</description><pubDate>Thu, 04 Jun 2026 09:05:00 GMT</pubDate><category>cpp</category><category>folly</category><category>production</category><category>validation</category><category>culture</category></item><item><title>Folly API stability 정책 — 어떤 보장도 없다는 솔직함</title><link>https://hawk90.dev/blog/programming/code-review/folly/part1-04-api-stability/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part1-04-api-stability/</guid><description>Folly의 API/ABI 안정성 정책 — Meta의 입장과 외부 사용자가 따라야 할 전략.</description><pubDate>Thu, 04 Jun 2026 09:04:00 GMT</pubDate><category>cpp</category><category>folly</category><category>api</category><category>stability</category><category>versioning</category></item><item><title>Folly 빌드와 fbcode 환경 — monorepo의 그림자</title><link>https://hawk90.dev/blog/programming/code-review/folly/part1-03-build-fbcode/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part1-03-build-fbcode/</guid><description>Folly의 빌드 구조 — Meta 내부 fbcode/Buck, OSS는 CMake. 외부 빌드에서 마주치는 함정.</description><pubDate>Thu, 04 Jun 2026 09:03:00 GMT</pubDate><category>cpp</category><category>folly</category><category>build</category><category>fbcode</category><category>monorepo</category><category>cmake</category></item><item><title>Folly vs Abseil 철학 비교 — performance-first vs std-compatible</title><link>https://hawk90.dev/blog/programming/code-review/folly/part1-02-folly-vs-abseil-philosophy/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part1-02-folly-vs-abseil-philosophy/</guid><description>두 라이브러리의 설계 결정을 항목별로 비교 — 예외, 의존성, async 모델, ABI 정책.</description><pubDate>Thu, 04 Jun 2026 09:02:00 GMT</pubDate><category>cpp</category><category>folly</category><category>abseil</category><category>philosophy</category><category>comparison</category></item><item><title>Folly 개요 — Meta가 production에서 검증한 utility 모음 분석</title><link>https://hawk90.dev/blog/programming/code-review/folly/part1-01-overview/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/part1-01-overview/</guid><description>Folly의 출발점, 구성, std/Abseil과의 차별점 — Meta production에서 단련된 high-performance C++ 라이브러리.</description><pubDate>Thu, 04 Jun 2026 09:01:00 GMT</pubDate><category>cpp</category><category>folly</category><category>meta</category><category>facebook</category><category>library</category><category>overview</category></item><item><title>Folly Code Review — Meta의 production-grade C++ 라이브러리 코드 분석</title><link>https://hawk90.dev/blog/programming/code-review/folly/00-preface/</link><guid isPermaLink="true">https://hawk90.dev/blog/programming/code-review/folly/00-preface/</guid><description>Meta(Facebook)가 production에서 검증한 Folly C++ 라이브러리를 code review의 시선으로 읽는다. performance-first 철학과 fbcode 환경의 산물을 14 Parts 63편으로 살펴본다.</description><pubDate>Thu, 04 Jun 2026 09:00:00 GMT</pubDate><category>cpp</category><category>folly</category><category>meta</category><category>facebook</category><category>library</category><category>code-review</category><category>overview</category></item><item><title>실전 Makefile 예제 — C/C++ 프로젝트용 기본 골격</title><link>https://hawk90.dev/blog/tools/build/gnu-make/chapter07-practical/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/build/gnu-make/chapter07-practical/</guid><description>기본 C/C++부터 라이브러리, 크로스 컴파일, 테스트 통합까지 — 실제 프로젝트에 그대로 쓰는 Makefile 패턴.</description><pubDate>Wed, 03 Jun 2026 09:07:00 GMT</pubDate><category>make</category><category>build</category><category>practical</category></item><item><title>Make 조건문과 include — ifeq·ifdef·include·-include</title><link>https://hawk90.dev/blog/tools/build/gnu-make/chapter06-conditionals/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/build/gnu-make/chapter06-conditionals/</guid><description>파싱 시점 조건 분기, Makefile 분할, 그리고 -MMD -MP로 헤더 의존성을 자동 추적하는 표준 패턴.</description><pubDate>Wed, 03 Jun 2026 09:06:00 GMT</pubDate><category>make</category><category>build</category><category>conditional</category></item><item><title>Make 함수 분석 — wildcard·patsubst·foreach·shell</title><link>https://hawk90.dev/blog/tools/build/gnu-make/chapter05-functions/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/build/gnu-make/chapter05-functions/</guid><description>내장 함수로 텍스트·파일·조건을 다루기 — wildcard / patsubst / filter / shell / foreach / call / eval.</description><pubDate>Wed, 03 Jun 2026 09:05:00 GMT</pubDate><category>make</category><category>build</category><category>functions</category></item><item><title>Make 패턴 규칙과 암시적 규칙 — % 매칭 동작</title><link>https://hawk90.dev/blog/tools/build/gnu-make/chapter04-pattern-rules/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/build/gnu-make/chapter04-pattern-rules/</guid><description>% 한 글자로 100개의 규칙을 줄이는 패턴 규칙, Make 내장 암시적 규칙, 그리고 둘의 충돌·우선순위.</description><pubDate>Wed, 03 Jun 2026 09:04:00 GMT</pubDate><category>make</category><category>build</category><category>pattern</category></item><item><title>Make 변수와 자동 변수 — $@·$&lt;·$^·재귀 vs 단순 할당</title><link>https://hawk90.dev/blog/tools/build/gnu-make/chapter03-variables/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/build/gnu-make/chapter03-variables/</guid><description>Make 변수의 두 가지 확장 방식, 자동 변수, 우선순위 — 같은 코드가 미묘하게 다르게 도는 9할의 원인.</description><pubDate>Wed, 03 Jun 2026 09:03:00 GMT</pubDate><category>make</category><category>build</category><category>variables</category></item><item><title>Make 규칙 분석 — 타겟·의존성·레시피의 평가</title><link>https://hawk90.dev/blog/tools/build/gnu-make/chapter02-rules/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/build/gnu-make/chapter02-rules/</guid><description>Makefile 규칙의 구성 요소와 동작 방식 — 다중 타겟, order-only, 레시피 접두사, 이중 콜론까지.</description><pubDate>Wed, 03 Jun 2026 09:02:00 GMT</pubDate><category>make</category><category>build</category><category>rules</category></item><item><title>GNU Make 소개와 첫 Makefile — 설치부터 첫 빌드까지</title><link>https://hawk90.dev/blog/tools/build/gnu-make/chapter01-intro/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/build/gnu-make/chapter01-intro/</guid><description>GNU Make의 역할, 설치 방법, 첫 Makefile 작성과 실행.</description><pubDate>Wed, 03 Jun 2026 09:01:00 GMT</pubDate><category>make</category><category>build</category></item><item><title>Modern CMake 고급 — BUILD/INSTALL_INTERFACE·Presets·cmake -E</title><link>https://hawk90.dev/blog/tools/build/cmake/chapter09-modern-advanced/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/build/cmake/chapter09-modern-advanced/</guid><description>Modern CMake의 고급 도구 모음 — 자주 안 보이지만 실무에서 결정적인 기능들.</description><pubDate>Tue, 02 Jun 2026 09:09:00 GMT</pubDate><category>cmake</category><category>build</category><category>cpp</category><category>advanced</category><category>presets</category></item><item><title>Modern CMake 베스트 프랙티스 — target_* 중심 설계</title><link>https://hawk90.dev/blog/tools/build/cmake/chapter08-best-practices/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/build/cmake/chapter08-best-practices/</guid><description>타겟 중심 접근법, 피해야 할 안티패턴, 대규모 프로젝트 구성 전략.</description><pubDate>Tue, 02 Jun 2026 09:08:00 GMT</pubDate><category>cmake</category><category>build</category><category>cpp</category><category>best-practices</category></item><item><title>CMake 설치와 패키징 — install·EXPORT·CPack</title><link>https://hawk90.dev/blog/tools/build/cmake/chapter07-install/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/build/cmake/chapter07-install/</guid><description>install 명령으로 빌드 결과물 배포, CPack으로 플랫폼별 패키지 생성.</description><pubDate>Tue, 02 Jun 2026 09:07:00 GMT</pubDate><category>cmake</category><category>build</category><category>cpp</category><category>install</category><category>cpack</category></item><item><title>CMake 테스트와 CTest — add_test·테스트 fixture·리포트</title><link>https://hawk90.dev/blog/tools/build/cmake/chapter06-testing/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/build/cmake/chapter06-testing/</guid><description>CMake 테스트 프레임워크 CTest와 Google Test, Catch2 연동 방법.</description><pubDate>Tue, 02 Jun 2026 09:06:00 GMT</pubDate><category>cmake</category><category>build</category><category>cpp</category><category>testing</category><category>ctest</category></item><item><title>CMake find_package와 외부 의존성 — Module·Config·FetchContent</title><link>https://hawk90.dev/blog/tools/build/cmake/chapter05-find-package/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/build/cmake/chapter05-find-package/</guid><description>외부 라이브러리 탐색, FetchContent, 그리고 의존성 관리.</description><pubDate>Tue, 02 Jun 2026 09:05:00 GMT</pubDate><category>cmake</category><category>build</category><category>cpp</category><category>dependencies</category></item><item><title>CMake 옵션과 캐시 변수 — option·set·cache type 분석</title><link>https://hawk90.dev/blog/tools/build/cmake/chapter04-options/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/build/cmake/chapter04-options/</guid><description>사용자 설정 가능한 빌드 옵션과 CMake 캐시 시스템.</description><pubDate>Tue, 02 Jun 2026 09:04:00 GMT</pubDate><category>cmake</category><category>build</category><category>cpp</category><category>options</category><category>cache</category></item><item><title>CMake 타겟과 라이브러리 — INTERFACE·PUBLIC·PRIVATE 전파</title><link>https://hawk90.dev/blog/tools/build/cmake/chapter03-targets/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/build/cmake/chapter03-targets/</guid><description>Modern CMake의 핵심: 타겟 중심 접근법과 라이브러리 생성.</description><pubDate>Tue, 02 Jun 2026 09:03:00 GMT</pubDate><category>cmake</category><category>build</category><category>cpp</category><category>library</category><category>target</category></item><item><title>CMake 언어 분석 — 변수·조건문·함수의 동작</title><link>https://hawk90.dev/blog/tools/build/cmake/chapter02-language/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/build/cmake/chapter02-language/</guid><description>CMake 스크립트의 기본 문법: 변수, 리스트, 조건문, 반복문, 함수.</description><pubDate>Tue, 02 Jun 2026 09:02:00 GMT</pubDate><category>cmake</category><category>build</category><category>cpp</category><category>syntax</category></item><item><title>CMake 소개와 첫 프로젝트 — 설치부터 빌드까지</title><link>https://hawk90.dev/blog/tools/build/cmake/chapter01-intro/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/build/cmake/chapter01-intro/</guid><description>왜 메타 빌드 시스템이 필요한가, CMake가 그 자리에서 무엇을 하는가, 그리고 5줄 짜리 첫 프로젝트.</description><pubDate>Tue, 02 Jun 2026 09:01:00 GMT</pubDate><category>cmake</category><category>build</category><category>cpp</category></item><item><title>포스트모템 자동화 — debuginfod·Minidump 파이프라인</title><link>https://hawk90.dev/blog/tools/debugging/postmortem/chapter04-debuginfod-minidump-automation/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/postmortem/chapter04-debuginfod-minidump-automation/</guid><description>build-id로 자동 debuginfo 매칭, Breakpad/crashpad minidump, CI 자동 사후 분석.</description><pubDate>Mon, 01 Jun 2026 09:04:00 GMT</pubDate><category>debuginfod</category><category>minidump</category><category>breakpad</category><category>sentry</category><category>automation</category><category>postmortem</category></item><item><title>GDB로 Core 분석 — backtrace·info threads·py 활용</title><link>https://hawk90.dev/blog/tools/debugging/postmortem/chapter03-gdb-core-analysis/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/postmortem/chapter03-gdb-core-analysis/</guid><description>core 열기, siginfo 해독, 콜스택 분석, 변수 검사, 자주 만나는 패턴.</description><pubDate>Mon, 01 Jun 2026 09:03:00 GMT</pubDate><category>gdb</category><category>core-dump</category><category>postmortem</category><category>siginfo</category></item><item><title>ELF Core 파일 포맷 분해 — NT_PRSTATUS·NT_PRPSINFO·NT_FILE</title><link>https://hawk90.dev/blog/tools/debugging/postmortem/chapter02-elf-core-format/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/postmortem/chapter02-elf-core-format/</guid><description>core dump의 내부 구조. PT_NOTE/PT_LOAD, NT_PRSTATUS, NT_FILE, NT_AUXV.</description><pubDate>Mon, 01 Jun 2026 09:02:00 GMT</pubDate><category>core-dump</category><category>elf</category><category>nt-prstatus</category><category>postmortem</category></item><item><title>Core Dump 생성 메커니즘 — kernel의 dump path 분석</title><link>https://hawk90.dev/blog/tools/debugging/postmortem/chapter01-core-generation/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/postmortem/chapter01-core-generation/</guid><description>Linux core dump가 어떻게 만들어지나. ulimit, core_pattern, dumpable, systemd-coredump.</description><pubDate>Mon, 01 Jun 2026 09:01:00 GMT</pubDate><category>core-dump</category><category>linux</category><category>ulimit</category><category>systemd</category></item><item><title>운영 메모리 누수 진단 — long-running 프로세스의 진단 전략</title><link>https://hawk90.dev/blog/tools/debugging/memory/chapter05-prod-leak-diagnosis/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/memory/chapter05-prod-leak-diagnosis/</guid><description>장기 실행 서비스의 누수 추적. /proc 모니터링, cgroup memory.max, OOM 회피.</description><pubDate>Sun, 31 May 2026 09:05:00 GMT</pubDate><category>memory</category><category>leak</category><category>production</category><category>cgroup</category><category>oom</category></item><item><title>glibc 메모리 도구 — mtrace·mcheck·MALLOC_CHECK_</title><link>https://hawk90.dev/blog/tools/debugging/memory/chapter04-glibc-tools/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/memory/chapter04-glibc-tools/</guid><description>별 라이브러리 없이 glibc 만으로 메모리 디버깅. mtrace, mcheck, MALLOC_CHECK_.</description><pubDate>Sun, 31 May 2026 09:04:00 GMT</pubDate><category>memory</category><category>glibc</category><category>mtrace</category><category>mcheck</category><category>malloc-check</category></item><item><title>jemalloc·tcmalloc Profiling — 운영 allocator의 진단 기능</title><link>https://hawk90.dev/blog/tools/debugging/memory/chapter03-jemalloc-tcmalloc/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/memory/chapter03-jemalloc-tcmalloc/</guid><description>표준 glibc malloc 대체 + 내장 profiler. pprof로 시각화.</description><pubDate>Sun, 31 May 2026 09:03:00 GMT</pubDate><category>memory</category><category>jemalloc</category><category>tcmalloc</category><category>malloc</category><category>pprof</category></item><item><title>heaptrack 분석 — 가벼운 heap profiler 활용</title><link>https://hawk90.dev/blog/tools/debugging/memory/chapter02-heaptrack/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/memory/chapter02-heaptrack/</guid><description>Valgrind보다 빠른 heap profiler. KDE 출신, 운영 환경에도 적용 가능.</description><pubDate>Sun, 31 May 2026 09:02:00 GMT</pubDate><category>memory</category><category>heaptrack</category><category>profiler</category><category>kde</category></item><item><title>리눅스 메모리 회계 — RSS·VSS·PSS·smaps 해석</title><link>https://hawk90.dev/blog/tools/debugging/memory/chapter01-memory-accounting/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/memory/chapter01-memory-accounting/</guid><description>프로세스 메모리의 실제 정체. VSS vs RSS vs PSS, /proc/[pid]/{status,smaps}.</description><pubDate>Sun, 31 May 2026 09:01:00 GMT</pubDate><category>memory</category><category>linux</category><category>rss</category><category>pss</category><category>smaps</category></item><item><title>Python faulthandler·tracemalloc·objgraph — 죽음과 누수 진단</title><link>https://hawk90.dev/blog/tools/debugging/python/chapter05-faulthandler-tracemalloc/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/python/chapter05-faulthandler-tracemalloc/</guid><description>세그폴트 트레이스백, 메모리 할당 추적, 객체 그래프 시각화.</description><pubDate>Sat, 30 May 2026 09:05:00 GMT</pubDate><category>python</category><category>debugging</category><category>faulthandler</category><category>tracemalloc</category><category>objgraph</category></item><item><title>py-spy 운영 분석 — 코드 수정 없이 프로세스 검사</title><link>https://hawk90.dev/blog/tools/debugging/python/chapter04-py-spy/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/python/chapter04-py-spy/</guid><description>py-spy로 콜스택 dump, 샘플링 프로파일링, flamegraph, 외부 attach.</description><pubDate>Sat, 30 May 2026 09:04:00 GMT</pubDate><category>python</category><category>debugging</category><category>py-spy</category><category>profiling</category></item><item><title>asyncio 디버깅 — 짧은 콜스택과 slow callback 추적</title><link>https://hawk90.dev/blog/tools/debugging/python/chapter03-asyncio/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/python/chapter03-asyncio/</guid><description>코루틴 콜스택 추적, asyncio debug=True, slow callback, race condition.</description><pubDate>Sat, 30 May 2026 09:03:00 GMT</pubDate><category>python</category><category>debugging</category><category>asyncio</category></item><item><title>debugpy 활용 — VSCode·PyCharm·원격 attach 통합</title><link>https://hawk90.dev/blog/tools/debugging/python/chapter02-debugpy-ide/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/python/chapter02-debugpy-ide/</guid><description>debugpy로 IDE 디버깅, 원격 프로세스 attach, justMyCode, 멀티프로세스.</description><pubDate>Sat, 30 May 2026 09:02:00 GMT</pubDate><category>python</category><category>debugging</category><category>debugpy</category><category>vscode</category></item><item><title>pdb 기본 사용법과 breakpoint() 빌트인 — 스크립트 디버깅</title><link>https://hawk90.dev/blog/tools/debugging/python/chapter01-pdb-basics/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/python/chapter01-pdb-basics/</guid><description>표준 라이브러리 pdb. breakpoint(), 핵심 명령, ipdb, postmortem.</description><pubDate>Sat, 30 May 2026 09:01:00 GMT</pubDate><category>python</category><category>debugging</category><category>pdb</category></item><item><title>Sanitizer를 CMake와 CI에 통합 — Multi-config 빌드 전략</title><link>https://hawk90.dev/blog/tools/debugging/sanitizers/chapter05-cmake-ci/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/sanitizers/chapter05-cmake-ci/</guid><description>Sanitizer 빌드를 프로젝트에 자연스럽게 통합 — CMake 옵션, GitHub Actions, GitLab CI 실전 예시.</description><pubDate>Fri, 29 May 2026 09:05:00 GMT</pubDate><category>Sanitizer</category><category>CMake</category><category>CI</category><category>github-actions</category><category>GitLab</category><category>Debugging</category></item><item><title>TSan으로 데이터 레이스 디버깅 — Happens-before 추적</title><link>https://hawk90.dev/blog/tools/debugging/sanitizers/chapter04-tsan/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/sanitizers/chapter04-tsan/</guid><description>ThreadSanitizer로 멀티스레드 버그 추적 — happens-before 모델, false positive, atomic·mutex 통합.</description><pubDate>Fri, 29 May 2026 09:04:00 GMT</pubDate><category>Sanitizer</category><category>TSan</category><category>ThreadSanitizer</category><category>Concurrency</category><category>DataRace</category><category>C</category><category>cpp</category></item><item><title>LSan 누수 분석 — Stop-the-world Leak Detection 메커니즘</title><link>https://hawk90.dev/blog/tools/debugging/sanitizers/chapter03-lsan-leaks/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/sanitizers/chapter03-lsan-leaks/</guid><description>LeakSanitizer로 메모리 누수 추적 — 보고서 해석, suppression, 일회성·반복 분석 패턴.</description><pubDate>Fri, 29 May 2026 09:03:00 GMT</pubDate><category>Sanitizer</category><category>LSan</category><category>MemoryLeak</category><category>Debugging</category><category>C</category><category>cpp</category></item><item><title>ASan과 UBSan 실전 설정 — 컴파일 옵션과 런타임 동작</title><link>https://hawk90.dev/blog/tools/debugging/sanitizers/chapter02-asan-ubsan/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/sanitizers/chapter02-asan-ubsan/</guid><description>황금 조합 -fsanitize=address,undefined를 실제로 켜고 운영하는 자세한 방법 — 옵션, 환경 변수, suppression, 흔한 오탐.</description><pubDate>Fri, 29 May 2026 09:02:00 GMT</pubDate><category>Sanitizer</category><category>ASan</category><category>UBSan</category><category>Debugging</category><category>C</category><category>cpp</category></item><item><title>Sanitizer 종류 비교 — ASan·UBSan·LSan·TSan·MSan</title><link>https://hawk90.dev/blog/tools/debugging/sanitizers/chapter01-intro/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/sanitizers/chapter01-intro/</guid><description>C/C++ 런타임 검사 도구 Sanitizer 계열의 역할, 종류별 선택, 실무 도입 순서.</description><pubDate>Fri, 29 May 2026 09:01:00 GMT</pubDate><category>Sanitizer</category><category>ASan</category><category>UBSan</category><category>TSan</category><category>LSan</category><category>MSan</category><category>Debugging</category><category>C</category><category>cpp</category></item><item><title>Valgrind Suppression과 실무 운용 — 노이즈 제거와 CI 통합</title><link>https://hawk90.dev/blog/tools/debugging/valgrind/chapter05-suppressions/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/valgrind/chapter05-suppressions/</guid><description>Valgrind suppression 문법, 외부 라이브러리 우회, Sanitizer와의 분담, CI 통합 실전.</description><pubDate>Thu, 28 May 2026 09:05:00 GMT</pubDate><category>Valgrind</category><category>Suppression</category><category>CI</category><category>Debugging</category><category>C</category><category>cpp</category></item><item><title>Valgrind Helgrind와 DRD — 멀티스레드 레이스 진단</title><link>https://hawk90.dev/blog/tools/debugging/valgrind/chapter04-helgrind-drd/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/valgrind/chapter04-helgrind-drd/</guid><description>Valgrind의 두 동시성 분석 도구 비교 — Helgrind의 락 추적과 DRD의 vector clock, 언제 무엇을.</description><pubDate>Thu, 28 May 2026 09:04:00 GMT</pubDate><category>Valgrind</category><category>Helgrind</category><category>DRD</category><category>Concurrency</category><category>DataRace</category><category>Debugging</category><category>C</category><category>cpp</category></item><item><title>Valgrind Leak Report 분석 — definitely·indirectly·possibly·still reachable</title><link>https://hawk90.dev/blog/tools/debugging/valgrind/chapter03-leak-report/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/valgrind/chapter03-leak-report/</guid><description>Memcheck의 네 가지 누수 분류 — definitely/indirectly/possibly/still reachable — 정확한 의미와 우선순위.</description><pubDate>Thu, 28 May 2026 09:03:00 GMT</pubDate><category>Valgrind</category><category>Memcheck</category><category>MemoryLeak</category><category>Debugging</category><category>C</category><category>cpp</category></item><item><title>Valgrind Memcheck 실전 — 메모리 오류 탐지 워크플로</title><link>https://hawk90.dev/blog/tools/debugging/valgrind/chapter02-memcheck/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/valgrind/chapter02-memcheck/</guid><description>Memcheck의 모든 핵심 옵션 — leak-check, track-origins, error-limit, 그리고 비용 vs 정확도 트레이드오프.</description><pubDate>Thu, 28 May 2026 09:02:00 GMT</pubDate><category>Valgrind</category><category>Memcheck</category><category>Debugging</category><category>C</category><category>cpp</category></item><item><title>Valgrind 도구 개요 — Memcheck·Helgrind·DRD 비교</title><link>https://hawk90.dev/blog/tools/debugging/valgrind/chapter01-intro/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/valgrind/chapter01-intro/</guid><description>Sanitizer 시대에도 Valgrind가 살아남은 이유, 세 핵심 도구의 역할, 도입 자리.</description><pubDate>Thu, 28 May 2026 09:01:00 GMT</pubDate><category>Valgrind</category><category>Memcheck</category><category>Helgrind</category><category>DRD</category><category>Debugging</category><category>C</category><category>cpp</category></item><item><title>GDB 프런트엔드 비교 — TUI·cgdb·dashboard·gef·IDE</title><link>https://hawk90.dev/blog/tools/debugging/gdb-extension/chapter06-frontends/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/gdb-extension/chapter06-frontends/</guid><description>터미널부터 IDE까지. 내장 TUI, cgdb, gdb-dashboard, gef/pwndbg, VSCode, nvim-dap, Cortex-Debug 비교.</description><pubDate>Wed, 27 May 2026 09:06:00 GMT</pubDate><category>gdb</category><category>tui</category><category>cgdb</category><category>gef</category><category>vscode</category><category>neovim</category><category>frontend</category></item><item><title>GDB MI와 DAP 프로토콜 — IDE 통합 인터페이스 분석</title><link>https://hawk90.dev/blog/tools/debugging/gdb-extension/chapter05-mi-dap-protocol/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/gdb-extension/chapter05-mi-dap-protocol/</guid><description>IDE ↔ 디버거 표준 — GDB/MI와 Debug Adapter Protocol의 정체.</description><pubDate>Wed, 27 May 2026 09:05:00 GMT</pubDate><category>gdb</category><category>mi</category><category>dap</category><category>ide</category><category>protocol</category></item><item><title>GDB FrameDecorator·Unwinder — 콜스택 가공과 JIT 지원</title><link>https://hawk90.dev/blog/tools/debugging/gdb-extension/chapter04-frame-unwinder/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/gdb-extension/chapter04-frame-unwinder/</guid><description>Frame filter, FrameDecorator로 콜스택 변형, custom unwinder로 JIT 코드 추적.</description><pubDate>Wed, 27 May 2026 09:04:00 GMT</pubDate><category>gdb</category><category>python</category><category>frame</category><category>unwinder</category><category>jit</category></item><item><title>GDB Pretty-Printer 심화 — STL·커스텀 타입 시각화</title><link>https://hawk90.dev/blog/tools/debugging/gdb-extension/chapter03-pretty-printers/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/gdb-extension/chapter03-pretty-printers/</guid><description>to_string / children / display_hint, MI 출력, auto-load, libstdc++ printer 분석.</description><pubDate>Wed, 27 May 2026 09:03:00 GMT</pubDate><category>gdb</category><category>python</category><category>pretty-printer</category><category>stl</category></item><item><title>GDB 커스텀 명령·Convenience Function·Event 훅·Breakpoint</title><link>https://hawk90.dev/blog/tools/debugging/gdb-extension/chapter02-commands-events/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/gdb-extension/chapter02-commands-events/</guid><description>사용자 정의 명령, $name(...) 함수, stop hook, 자동 BP 액션 패턴.</description><pubDate>Wed, 27 May 2026 09:02:00 GMT</pubDate><category>gdb</category><category>python</category><category>command</category><category>event</category><category>breakpoint</category></item><item><title>GDB Python API 입문 — Value·Type·Frame 객체 활용</title><link>https://hawk90.dev/blog/tools/debugging/gdb-extension/chapter01-python-api-basics/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/gdb-extension/chapter01-python-api-basics/</guid><description>GDB Python 인터프리터, 핵심 객체(Value/Type/Frame/Symbol), 디버기 데이터 조작.</description><pubDate>Wed, 27 May 2026 09:01:00 GMT</pubDate><category>gdb</category><category>python</category><category>api</category></item><item><title>RTOS-aware 디버깅과 트러블슈팅 — Task·Queue·Stack 분석</title><link>https://hawk90.dev/blog/tools/debugging/embedded/chapter07-rtos-troubleshooting/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/embedded/chapter07-rtos-troubleshooting/</guid><description>FreeRTOS/Zephyr task 콜스택, Hardfault 분석, MPU, 신호 무결성, 보안 lock 해제.</description><pubDate>Tue, 26 May 2026 09:07:00 GMT</pubDate><category>rtos</category><category>freertos</category><category>zephyr</category><category>hardfault</category><category>mpu</category><category>troubleshooting</category><category>embedded</category></item><item><title>임베디드 Trace 비교 — RTT·ITM·SWO·ETM·Semihosting 선택</title><link>https://hawk90.dev/blog/tools/debugging/embedded/chapter06-trace/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/embedded/chapter06-trace/</guid><description>printf 없이 펌웨어 로그·trace 빼내기. 다섯 가지 방법 비교 + 코드 예제.</description><pubDate>Tue, 26 May 2026 09:06:00 GMT</pubDate><category>rtt</category><category>itm</category><category>swo</category><category>etm</category><category>semihosting</category><category>trace</category><category>embedded</category></item><item><title>ELF와 MAP 파일 분석 — 베어메탈 메모리 레이아웃 추적</title><link>https://hawk90.dev/blog/tools/debugging/embedded/chapter05-elf-map/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/embedded/chapter05-elf-map/</guid><description>ELF의 LMA/VMA, 링커 스크립트, MAP 파일로 메모리 진단, startup 코드의 정체.</description><pubDate>Tue, 26 May 2026 09:05:00 GMT</pubDate><category>elf</category><category>map</category><category>linker</category><category>embedded</category><category>bare-metal</category></item><item><title>J-Link 도구 체인 분석 — JLinkExe·RTT·GDB Server 활용</title><link>https://hawk90.dev/blog/tools/debugging/embedded/chapter04-jlink/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/embedded/chapter04-jlink/</guid><description>JLinkGDBServer, JLinkExe, J-Run, J-Trace, Unlimited Flash BP, RTT, Ozone.</description><pubDate>Tue, 26 May 2026 09:04:00 GMT</pubDate><category>jlink</category><category>segger</category><category>embedded</category><category>rtt</category></item><item><title>OpenOCD 심화 분석 — Configuration·Adapter·Target 통합</title><link>https://hawk90.dev/blog/tools/debugging/embedded/chapter03-openocd/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/embedded/chapter03-openocd/</guid><description>TCL 인터프리터, target/interface 설정, flash driver, custom 명령, multi-core.</description><pubDate>Tue, 26 May 2026 09:03:00 GMT</pubDate><category>openocd</category><category>embedded</category><category>tcl</category><category>flash</category></item><item><title>JTAG·SWD·CoreSight 분석 — ARM 디버그 인터페이스 비교</title><link>https://hawk90.dev/blog/tools/debugging/embedded/chapter02-jtag-swd-coresight/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/embedded/chapter02-jtag-swd-coresight/</guid><description>TAP 상태 머신, SWD 패킷, ARM CoreSight (DAP/FPB/DWT/ITM/ETM) 회로 구조.</description><pubDate>Tue, 26 May 2026 09:02:00 GMT</pubDate><category>jtag</category><category>swd</category><category>coresight</category><category>arm</category><category>embedded</category></item><item><title>GDB Remote Serial Protocol 분석 — 디버거-타겟 통신 메커니즘</title><link>https://hawk90.dev/blog/tools/debugging/embedded/chapter01-rsp-protocol/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/embedded/chapter01-rsp-protocol/</guid><description>GDB가 원격 스텁과 주고받는 ASCII 패킷의 모든 것. 패킷 형식, qSupported 협상, vCont, 멀티 패킷, RLE.</description><pubDate>Tue, 26 May 2026 09:01:00 GMT</pubDate><category>gdb</category><category>rsp</category><category>embedded</category><category>protocol</category></item><item><title>Kernel Panic·Oops 메시지 해석 — Decoder Ring 만들기</title><link>https://hawk90.dev/blog/tools/debugging/kernel/chapter07-panic-oops/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/kernel/chapter07-panic-oops/</guid><description>dmesg 한 줄로 정확한 위치 찾기. RIP, Call Trace, BUG, Tainted 디코딩.</description><pubDate>Mon, 25 May 2026 09:07:00 GMT</pubDate><category>kernel</category><category>panic</category><category>oops</category><category>dmesg</category><category>addr2line</category></item><item><title>crash와 drgn 분석 — vmcore에서 커널 상태 복원하기</title><link>https://hawk90.dev/blog/tools/debugging/kernel/chapter06-crash-drgn/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/kernel/chapter06-crash-drgn/</guid><description>kdump로 만든 vmcore를 사후 분석. crash 명령, drgn Python API, 실전 흐름.</description><pubDate>Mon, 25 May 2026 09:06:00 GMT</pubDate><category>kernel</category><category>crash</category><category>drgn</category><category>vmcore</category><category>kdump</category></item><item><title>kdb·kgdb 인터랙티브 커널 디버깅 — Source-level Step·Breakpoint</title><link>https://hawk90.dev/blog/tools/debugging/kernel/chapter05-kdb-kgdb/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/kernel/chapter05-kdb-kgdb/</guid><description>별 머신 또는 시리얼로 커널을 step-debug. kgdb 셋업, gdb 연결, 실전 흐름.</description><pubDate>Mon, 25 May 2026 09:05:00 GMT</pubDate><category>kernel</category><category>kgdb</category><category>kdb</category><category>serial</category><category>vm-debug</category></item><item><title>eBPF·bpftrace로 커널 디버깅 — 동적 관측의 신세대</title><link>https://hawk90.dev/blog/tools/debugging/kernel/chapter04-ebpf-kernel/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/kernel/chapter04-ebpf-kernel/</guid><description>kprobe/uprobe/tracepoint 위에 표현력 있는 trace 언어. bpftrace 원-라이너부터 BCC까지.</description><pubDate>Mon, 25 May 2026 09:04:00 GMT</pubDate><category>kernel</category><category>ebpf</category><category>bpftrace</category><category>kprobe</category><category>bcc</category></item><item><title>ftrace와 tracepoints 활용 — 커널 함수 호출 트레이싱</title><link>https://hawk90.dev/blog/tools/debugging/kernel/chapter03-ftrace-tracepoints/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/kernel/chapter03-ftrace-tracepoints/</guid><description>함수 단위 trace, 이벤트 trace, 정적 tracepoint, function graph.</description><pubDate>Mon, 25 May 2026 09:03:00 GMT</pubDate><category>kernel</category><category>ftrace</category><category>tracepoint</category><category>tracing</category></item><item><title>printk·dmesg·dynamic_debug 분석 — 커널 로그 추적</title><link>https://hawk90.dev/blog/tools/debugging/kernel/chapter02-printk-dmesg/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/kernel/chapter02-printk-dmesg/</guid><description>커널 로깅의 모든 것. log level, ring buffer, ratelimit, 런타임 토글.</description><pubDate>Mon, 25 May 2026 09:02:00 GMT</pubDate><category>kernel</category><category>printk</category><category>dmesg</category><category>dynamic-debug</category></item><item><title>리눅스 커널 디버깅 개론 — User/Kernel 경계와 도구 선택</title><link>https://hawk90.dev/blog/tools/debugging/kernel/chapter01-user-kernel-boundary/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/kernel/chapter01-user-kernel-boundary/</guid><description>user-space와 kernel-space 디버깅의 차이. /proc, kallsyms, kernel debug info.</description><pubDate>Mon, 25 May 2026 09:01:00 GMT</pubDate><category>kernel</category><category>linux</category><category>debugging</category><category>proc</category></item><item><title>DWARF 디버그 정보 — 디버거가 변수와 라인을 찾는 방식</title><link>https://hawk90.dev/blog/tools/debugging/gdb-lldb/chapter12-dwarf/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/gdb-lldb/chapter12-dwarf/</guid><description>DWARF 표준, DIE / abbrev / line / location, expression VM, CFI, split-DWARF.</description><pubDate>Sun, 24 May 2026 09:12:00 GMT</pubDate><category>gdb</category><category>lldb</category><category>DWARF</category><category>ELF</category><category>debug-info</category></item><item><title>GDB·LLDB 실전 팁 — STL·최적화 코드·시간 역행 디버깅</title><link>https://hawk90.dev/blog/tools/debugging/gdb-lldb/chapter11-practical-tips/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/gdb-lldb/chapter11-practical-tips/</guid><description>STL pretty-printers, -O2 디버깅, .gdbinit 추천, rr time-travel. 시리즈 마무리.</description><pubDate>Sun, 24 May 2026 09:11:00 GMT</pubDate><category>gdb</category><category>STL</category><category>Optimization</category><category>rr</category></item><item><title>GDB·LLDB TUI와 프런트엔드 — gdb-dashboard·gef·pwndbg·VS Code</title><link>https://hawk90.dev/blog/tools/debugging/gdb-lldb/chapter10-tui-frontends/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/gdb-lldb/chapter10-tui-frontends/</guid><description>TUI 모드, cgdb, gdb-dashboard, gef/pwndbg, VSCode, nvim-dap, DAP 프로토콜.</description><pubDate>Sun, 24 May 2026 09:10:00 GMT</pubDate><category>gdb</category><category>TUI</category><category>Frontend</category><category>DAP</category></item><item><title>GDB·LLDB Python 스크립팅 — Pretty-Printer·Custom Command</title><link>https://hawk90.dev/blog/tools/debugging/gdb-lldb/chapter09-python-scripting/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/gdb-lldb/chapter09-python-scripting/</guid><description>GDB / LLDB Python API. pretty-printer 작성, 커스텀 명령, 자동화, MI.</description><pubDate>Sun, 24 May 2026 09:09:00 GMT</pubDate><category>gdb</category><category>lldb</category><category>Python</category><category>Scripting</category></item><item><title>GDB 원격 디버깅 — gdbserver·OpenOCD·J-Link 통합</title><link>https://hawk90.dev/blog/tools/debugging/gdb-lldb/chapter08-remote-debugging/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/gdb-lldb/chapter08-remote-debugging/</guid><description>다른 머신·MCU를 GDB로. RSP, gdbserver, OpenOCD, J-Link, JTAG/SWD, ARM CoreSight.</description><pubDate>Sun, 24 May 2026 09:08:00 GMT</pubDate><category>gdb</category><category>remote-debug</category><category>gdbserver</category><category>OpenOCD</category><category>JTAG</category><category>ARM</category></item><item><title>Core Dump 분석 기법 — gcore·coredumpctl·디버거 활용</title><link>https://hawk90.dev/blog/tools/debugging/gdb-lldb/chapter07-core-dump/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/gdb-lldb/chapter07-core-dump/</guid><description>ulimit / core_pattern. gdb -c. ELF core 포맷, NT_PRSTATUS, systemd-coredump.</description><pubDate>Sun, 24 May 2026 09:07:00 GMT</pubDate><category>gdb</category><category>core-dump</category><category>Crash</category><category>ELF</category></item><item><title>멀티스레드·멀티프로세스 디버깅 — Non-Stop·Scheduler-Locking·Fork</title><link>https://hawk90.dev/blog/tools/debugging/gdb-lldb/chapter06-multithread-multiprocess/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/gdb-lldb/chapter06-multithread-multiprocess/</guid><description>thread / process apply. scheduler-locking. follow-fork. rr 시간 역행 디버깅.</description><pubDate>Sun, 24 May 2026 09:06:00 GMT</pubDate><category>gdb</category><category>Multithread</category><category>Multiprocess</category></item><item><title>Breakpoint와 Watchpoint 분석 — Conditional·Hardware·Catchpoint</title><link>https://hawk90.dev/blog/tools/debugging/gdb-lldb/chapter05-breakpoints-watchpoints/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/gdb-lldb/chapter05-breakpoints-watchpoints/</guid><description>조건부 break, watchpoint(변수 변경 추적), catchpoint, hardware vs software.</description><pubDate>Sun, 24 May 2026 09:05:00 GMT</pubDate><category>gdb</category><category>lldb</category><category>Breakpoint</category><category>Watchpoint</category></item><item><title>GDB·LLDB Backtrace와 프레임 이동 — Call Stack 분석</title><link>https://hawk90.dev/blog/tools/debugging/gdb-lldb/chapter04-backtrace-frames/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/gdb-lldb/chapter04-backtrace-frames/</guid><description>bt·frame·up·down — 호출 스택 분석, 프레임 안 변수 조사, 인라인 함수 처리.</description><pubDate>Sun, 24 May 2026 09:04:00 GMT</pubDate><category>gdb</category><category>lldb</category><category>Backtrace</category><category>Stack</category></item><item><title>디버거로 상태 들여다보기 — 변수·메모리·레지스터·STL 추적</title><link>https://hawk90.dev/blog/tools/debugging/gdb-lldb/chapter03-inspecting-state/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/gdb-lldb/chapter03-inspecting-state/</guid><description>print 만으로 부족한 자리들 — x/memory examine, ptype, STL 컨테이너, pretty printer.</description><pubDate>Sun, 24 May 2026 09:03:00 GMT</pubDate><category>gdb</category><category>lldb</category><category>Memory</category><category>Inspection</category><category>STL</category></item><item><title>GDB·LLDB 기본 명령 — break·step·next·print 동작 비교</title><link>https://hawk90.dev/blog/tools/debugging/gdb-lldb/chapter02-basic-commands/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/gdb-lldb/chapter02-basic-commands/</guid><description>디버거에서 매일 쓰는 핵심 명령 10가지 — 정확한 의미와 자주 쓰는 변형.</description><pubDate>Sun, 24 May 2026 09:02:00 GMT</pubDate><category>gdb</category><category>lldb</category><category>Debugging</category><category>BasicCommands</category></item><item><title>GDB vs LLDB 분석 — 두 디버거의 설치·차이·선택 기준</title><link>https://hawk90.dev/blog/tools/debugging/gdb-lldb/chapter01-intro-and-install/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/gdb-lldb/chapter01-intro-and-install/</guid><description>네이티브 디버거의 메커니즘, gdb·lldb 차이, 설치, 첫 세션.</description><pubDate>Sun, 24 May 2026 09:01:00 GMT</pubDate><category>gdb</category><category>lldb</category><category>Setup</category></item><item><title>DWARF 도구 생태계 — split-DWARF·dwz·debuginfod·pyelftools</title><link>https://hawk90.dev/blog/tools/debugging/dwarf-elf/chapter06-split-dwarf-tools/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/dwarf-elf/chapter06-split-dwarf-tools/</guid><description>큰 디버그 정보 다루기. 분리·압축·네트워크 다운로드·자체 도구 작성.</description><pubDate>Sat, 23 May 2026 09:06:00 GMT</pubDate><category>dwarf</category><category>split-dwarf</category><category>dwz</category><category>debuginfod</category><category>pyelftools</category><category>tools</category></item><item><title>DWARF Call Frame Information — .debug_frame과 .eh_frame 분해</title><link>https://hawk90.dev/blog/tools/debugging/dwarf-elf/chapter05-cfi-eh-frame/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/dwarf-elf/chapter05-cfi-eh-frame/</guid><description>콜스택 풀기의 정체. CIE/FDE, CFA, register rule, .eh_frame_hdr 이진 탐색.</description><pubDate>Sat, 23 May 2026 09:05:00 GMT</pubDate><category>dwarf</category><category>cfi</category><category>unwinding</category><category>eh_frame</category><category>exception</category></item><item><title>DWARF .debug_loc 분석 — Variable Location Expression VM</title><link>https://hawk90.dev/blog/tools/debugging/dwarf-elf/chapter04-debug-loc/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/dwarf-elf/chapter04-debug-loc/</guid><description>변수가 어디 있는지의 표현. 스택 머신 opcode, location list, DW_OP_entry_value.</description><pubDate>Sat, 23 May 2026 09:04:00 GMT</pubDate><category>dwarf</category><category>debug-loc</category><category>expression-vm</category><category>optimization</category></item><item><title>DWARF .debug_line 분석 — Source-to-PC 매핑 바이트코드 VM</title><link>https://hawk90.dev/blog/tools/debugging/dwarf-elf/chapter03-debug-line/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/dwarf-elf/chapter03-debug-line/</guid><description>DWARF 줄 정보의 정체. 상태 머신, 표준/확장 opcode, file table, addr2line의 내부.</description><pubDate>Sat, 23 May 2026 09:03:00 GMT</pubDate><category>dwarf</category><category>debug-line</category><category>state-machine</category><category>addr2line</category></item><item><title>DWARF 디버그 정보 분해 — DIE 트리와 .debug_abbrev</title><link>https://hawk90.dev/blog/tools/debugging/dwarf-elf/chapter02-dwarf-overview/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/dwarf-elf/chapter02-dwarf-overview/</guid><description>DWARF의 정체. DIE/abbrev 인코딩, 컴파일 유닛, TAG/AT/FORM 카탈로그.</description><pubDate>Sat, 23 May 2026 09:02:00 GMT</pubDate><category>dwarf</category><category>debug-info</category><category>elf</category></item><item><title>ELF 포맷 분해 — Section·Segment·Symbol Table 구조 추적</title><link>https://hawk90.dev/blog/tools/debugging/dwarf-elf/chapter01-elf-overview/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/debugging/dwarf-elf/chapter01-elf-overview/</guid><description>ELF 헤더, Program Header / Section Header, dynamic linking, build-id.</description><pubDate>Sat, 23 May 2026 09:01:00 GMT</pubDate><category>elf</category><category>binary</category><category>linker</category></item><item><title>ARM64 Secondary Core Bring-up — PSCI CPU_ON 호출부터 EL1 진입까지</title><link>https://hawk90.dev/blog/embedded/bootloader/chapter33-smp-secondary-cpu-bringup/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bootloader/chapter33-smp-secondary-cpu-bringup/</guid><description>ARM64 secondary CPU 깨우기 — spin-table 옛 방식과 PSCI CPU_ON 표준 방식, secondary_startup 어셈블리, percpu 초기화, hotplug 흐름.</description><pubDate>Fri, 22 May 2026 09:33:00 GMT</pubDate><category>embedded</category><category>bootloader</category><category>smp</category><category>psci</category><category>arm64</category><category>kernel</category><category>hotplug</category></item><item><title>PSCI와 SMCCC ABI — ARM 표준 SMC 호출 규약 분석</title><link>https://hawk90.dev/blog/embedded/bootloader/chapter32-psci-smccc/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bootloader/chapter32-psci-smccc/</guid><description>SMCCC 호출 규약과 PSCI v1.1 ABI — function ID 구조, fast vs yielding, CPU_ON·CPU_SUSPEND, Linux PSCI driver.</description><pubDate>Fri, 22 May 2026 09:32:00 GMT</pubDate><category>embedded</category><category>bootloader</category><category>psci</category><category>smccc</category><category>arm</category><category>tf-a</category><category>kernel</category></item><item><title>TF-A BL31 EL3 Runtime 분석 — PSCI·SDEI·RAS dispatcher 추적</title><link>https://hawk90.dev/blog/embedded/bootloader/chapter31-tfa-bl31-runtime/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bootloader/chapter31-tfa-bl31-runtime/</guid><description>TF-A BL31의 EL3 runtime service 구조 — runtime_svc 등록 모델, vector entry, PSCI·SDEI·RAS dispatcher, SMC call latency.</description><pubDate>Fri, 22 May 2026 09:31:00 GMT</pubDate><category>embedded</category><category>bootloader</category><category>tf-a</category><category>bl31</category><category>el3</category><category>psci</category><category>sdei</category><category>ras</category><category>smccc</category><category>arm</category></item><item><title>End-to-End Driver + RTL Co-simulation — 실전 통합 흐름</title><link>https://hawk90.dev/blog/tools/emulation/driver-cosim/chapter08-end-to-end/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/emulation/driver-cosim/chapter08-end-to-end/</guid><description>Verilator + DPI-C + Linux driver — 통합 cosim flow.</description><pubDate>Fri, 22 May 2026 09:08:00 GMT</pubDate><category>cosim</category><category>end-to-end</category><category>verilator</category><category>driver-integration</category><category>ci</category></item><item><title>UVM C Reference Model 통합 — DUT와 황금 모델 비교 검증</title><link>https://hawk90.dev/blog/tools/emulation/driver-cosim/chapter07-uvm-c-model/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/emulation/driver-cosim/chapter07-uvm-c-model/</guid><description>UVM testbench의 reference model을 C로 — driver와 공유.</description><pubDate>Fri, 22 May 2026 09:07:00 GMT</pubDate><category>uvm</category><category>reference-model</category><category>dpi-c</category><category>scoreboard</category><category>single-source</category></item><item><title>C로 구현하는 Bus Functional Model — Driver 검증용 BFM 설계</title><link>https://hawk90.dev/blog/tools/emulation/driver-cosim/chapter06-bfm/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/emulation/driver-cosim/chapter06-bfm/</guid><description>Driver와 RTL 사이의 protocol-aware adapter.</description><pubDate>Fri, 22 May 2026 09:06:00 GMT</pubDate><category>bfm</category><category>axi</category><category>pcie</category><category>protocol-checker</category><category>ahb</category></item><item><title>SystemC TLM 분석 — Transaction-Level Modeling으로 빠른 검증</title><link>https://hawk90.dev/blog/tools/emulation/driver-cosim/chapter05-systemc-tlm/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/emulation/driver-cosim/chapter05-systemc-tlm/</guid><description>Cycle-accurate 너머 — high-speed virtual platform.</description><pubDate>Fri, 22 May 2026 09:05:00 GMT</pubDate><category>systemc</category><category>tlm</category><category>virtual-platform</category><category>abstraction</category><category>vp</category></item><item><title>CocoTB 분석 — Python으로 작성하는 RTL Testbench</title><link>https://hawk90.dev/blog/tools/emulation/driver-cosim/chapter04-cocotb/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/emulation/driver-cosim/chapter04-cocotb/</guid><description>Python coroutine으로 RTL testbench — productivity gain.</description><pubDate>Fri, 22 May 2026 09:04:00 GMT</pubDate><category>cocotb</category><category>python</category><category>testbench</category><category>vpi</category><category>pytest</category></item><item><title>Verilator 분석 — Open Source SystemVerilog Simulator</title><link>https://hawk90.dev/blog/tools/emulation/driver-cosim/chapter03-verilator/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/emulation/driver-cosim/chapter03-verilator/</guid><description>RTL → C++ — driver code와 link되는 가장 빠른 simulator.</description><pubDate>Fri, 22 May 2026 09:03:00 GMT</pubDate><category>verilator</category><category>simulator</category><category>open-source</category><category>c-plus-plus</category><category>cosim</category></item><item><title>SystemVerilog DPI-C 기초 — C와 RTL을 잇는 표준 인터페이스</title><link>https://hawk90.dev/blog/tools/emulation/driver-cosim/chapter02-dpi-c-basics/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/emulation/driver-cosim/chapter02-dpi-c-basics/</guid><description>Import·export·data type — SV와 C 사이의 다리.</description><pubDate>Fri, 22 May 2026 09:02:00 GMT</pubDate><category>dpi-c</category><category>systemverilog</category><category>import-dpi</category><category>export-dpi</category><category>ffi</category></item><item><title>Pre-Silicon Driver Verification — RTL Co-simulation이 푸는 문제</title><link>https://hawk90.dev/blog/tools/emulation/driver-cosim/chapter01-why-cosim/</link><guid isPermaLink="true">https://hawk90.dev/blog/tools/emulation/driver-cosim/chapter01-why-cosim/</guid><description>Silicon 없이 driver 검증 — co-simulation의 의미.</description><pubDate>Fri, 22 May 2026 09:01:00 GMT</pubDate><category>cosim</category><category>dpi-c</category><category>pre-silicon</category><category>verification</category><category>npu</category></item><item><title>임베디드 보안 개발 라이프사이클 — Secure SDLC 적용</title><link>https://hawk90.dev/blog/embedded/embedded-security/chapter10-sdlc/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-security/chapter10-sdlc/</guid><description>Microsoft SDL, threat modeling, SBOM, supply chain, 사고 대응. 시리즈 마무리.</description><pubDate>Thu, 21 May 2026 09:10:00 GMT</pubDate><category>SDLC</category><category>SDL</category><category>SBOM</category><category>threat-modeling</category><category>supply-chain</category></item><item><title>펌웨어 분석과 리버싱 — Binwalk·Ghidra·radare2 활용</title><link>https://hawk90.dev/blog/embedded/embedded-security/chapter09-firmware-analysis/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-security/chapter09-firmware-analysis/</guid><description>JTAG / SPI flash dump / binwalk / Ghidra / radare2. 펌웨어 정적·동적 분석.</description><pubDate>Thu, 21 May 2026 09:09:00 GMT</pubDate><category>Firmware</category><category>reverse-engineering</category><category>Ghidra</category><category>binwalk</category><category>JTAG</category></item><item><title>IoT 보안 표준 비교 — ETSI EN 303 645·IEC 62443·NIST 8259·EU CRA</title><link>https://hawk90.dev/blog/embedded/embedded-security/chapter08-iot-standards/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-security/chapter08-iot-standards/</guid><description>IoT 소비자·산업·자동차 보안 표준. 한국 KISA·KICS 포함.</description><pubDate>Thu, 21 May 2026 09:08:00 GMT</pubDate><category>IoT</category><category>ETSI</category><category>iec-62443</category><category>NIST</category><category>CRA</category><category>Standards</category></item><item><title>임베디드 Side-channel 공격 — Power·Timing·EM 분석</title><link>https://hawk90.dev/blog/embedded/embedded-security/chapter07-side-channel/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-security/chapter07-side-channel/</guid><description>DPA / SPA / EM / fault injection. constant-time, masking, hiding 방어.</description><pubDate>Thu, 21 May 2026 09:07:00 GMT</pubDate><category>Side-channel</category><category>power-analysis</category><category>timing-attack</category><category>fault-injection</category><category>ChipWhisperer</category></item><item><title>OTA Update 보안 — 서명·Rollback 방지·롤백 카운터</title><link>https://hawk90.dev/blog/embedded/embedded-security/chapter06-ota-update/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-security/chapter06-ota-update/</guid><description>안전한 펌웨어 업데이트. A/B 슬롯, delta update, 서명 검증, rollback 방지.</description><pubDate>Thu, 21 May 2026 09:06:00 GMT</pubDate><category>OTA</category><category>firmware-update</category><category>Rollback</category><category>MCUboot</category><category>Mender</category></item><item><title>TEE 비교 분석 — OP-TEE·ARM CCA·SGX</title><link>https://hawk90.dev/blog/embedded/embedded-security/chapter05-tee/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-security/chapter05-tee/</guid><description>Trusted Execution Environment. OP-TEE, TA, GlobalPlatform API.</description><pubDate>Thu, 21 May 2026 09:05:00 GMT</pubDate><category>TEE</category><category>OP-TEE</category><category>GlobalPlatform</category></item><item><title>ARM TrustZone 분석 — Cortex-A·Cortex-M 격리 메커니즘</title><link>https://hawk90.dev/blog/embedded/embedded-security/chapter04-trustzone/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-security/chapter04-trustzone/</guid><description>ARM TrustZone — Secure / Non-Secure World 분리. SMC, NSC.</description><pubDate>Thu, 21 May 2026 09:04:00 GMT</pubDate><category>TrustZone</category><category>ARM</category><category>secure-world</category></item><item><title>MCU Crypto HW Accelerator 분석 — AES·SHA·ECC 가속기</title><link>https://hawk90.dev/blog/embedded/embedded-security/chapter03-mcu-crypto/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-security/chapter03-mcu-crypto/</guid><description>MCU 내장 crypto 엔진. 소프트웨어 vs 하드웨어. constant-time.</description><pubDate>Thu, 21 May 2026 09:03:00 GMT</pubDate><category>Crypto</category><category>AES</category><category>ECC</category><category>MCU</category></item><item><title>Secure Boot 분석 — 부트 체인 서명 검증과 RoT 구축</title><link>https://hawk90.dev/blog/embedded/embedded-security/chapter02-secure-boot/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-security/chapter02-secure-boot/</guid><description>ROM → bootloader → kernel → app. 각 단계 서명 검증. Root of Trust.</description><pubDate>Thu, 21 May 2026 09:02:00 GMT</pubDate><category>secure-boot</category><category>root-of-trust</category><category>Cryptography</category></item><item><title>임베디드 보안 위협 모델 — STRIDE·DFD·자산 식별 흐름</title><link>https://hawk90.dev/blog/embedded/embedded-security/chapter01-threat-model/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-security/chapter01-threat-model/</guid><description>STRIDE / DREAD. 임베디드 특수 — 물리 접근 / 자원 제약.</description><pubDate>Thu, 21 May 2026 09:01:00 GMT</pubDate><category>embedded-security</category><category>threat-model</category><category>STRIDE</category></item><item><title>ESP32-C3 전력 관리 — Modem·Light·Deep Sleep와 Wake 소스</title><link>https://hawk90.dev/blog/embedded/riscv/esp32-c3-mastering/chapter12-power-management/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/riscv/esp32-c3-mastering/chapter12-power-management/</guid><description>5단계 power mode, RTC 도메인 활용, ULP 코프로세서 미지원 — C3는 RTC GPIO만.</description><pubDate>Wed, 20 May 2026 09:12:00 GMT</pubDate><category>power</category><category>sleep</category><category>low-power</category><category>rtc</category><category>esp32-c3</category></item><item><title>ESP32-C3 보안 분석 — Secure Boot·Flash Encryption·eFuse</title><link>https://hawk90.dev/blog/embedded/riscv/esp32-c3-mastering/chapter11-security/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/riscv/esp32-c3-mastering/chapter11-security/</guid><description>ECDSA 기반 Secure Boot V2, AES-256 Flash Encryption, eFuse 키 보관.</description><pubDate>Wed, 20 May 2026 09:11:00 GMT</pubDate><category>security</category><category>secure-boot</category><category>flash-encryption</category><category>efuse</category><category>esp32-c3</category></item><item><title>ESP32-C3 위 FreeRTOS — 단일 코어 RTOS 활용 전략</title><link>https://hawk90.dev/blog/embedded/riscv/esp32-c3-mastering/chapter10-freertos/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/riscv/esp32-c3-mastering/chapter10-freertos/</guid><description>ESP-IDF의 modified FreeRTOS. 우선순위 25 단계, tickless idle, software timer.</description><pubDate>Wed, 20 May 2026 09:10:00 GMT</pubDate><category>freertos</category><category>rtos</category><category>task</category><category>queue</category><category>esp32-c3</category></item><item><title>ESP-IDF 빌드 시스템 분석 — 컴포넌트 구조와 CMake 통합</title><link>https://hawk90.dev/blog/embedded/riscv/esp32-c3-mastering/chapter09-esp-idf-build/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/riscv/esp32-c3-mastering/chapter09-esp-idf-build/</guid><description>CMake 기반 ESP-IDF 빌드. 컴포넌트(component) 모델로 라이브러리 모듈화.</description><pubDate>Wed, 20 May 2026 09:09:00 GMT</pubDate><category>esp-idf</category><category>cmake</category><category>build</category><category>component</category><category>esp32-c3</category></item><item><title>ESP32-C3 BLE 5.0 분석 — GAP·GATT·Coded PHY</title><link>https://hawk90.dev/blog/embedded/riscv/esp32-c3-mastering/chapter08-ble-gap-gatt/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/riscv/esp32-c3-mastering/chapter08-ble-gap-gatt/</guid><description>BLE 5.0 — 2M PHY로 2배 처리량, Coded PHY로 4배 거리. GATT 서버 만들기.</description><pubDate>Wed, 20 May 2026 09:08:00 GMT</pubDate><category>ble</category><category>bluetooth</category><category>gap</category><category>gatt</category><category>esp32-c3</category></item><item><title>ESP32-C3 WiFi 4 스택 — Station·SoftAP·Mesh 구성</title><link>https://hawk90.dev/blog/embedded/riscv/esp32-c3-mastering/chapter07-wifi-stack/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/riscv/esp32-c3-mastering/chapter07-wifi-stack/</guid><description>802.11 b/g/n. ESP-IDF WiFi API, 4가지 모드. WPA2/WPA3 보안.</description><pubDate>Wed, 20 May 2026 09:07:00 GMT</pubDate><category>wifi</category><category>802.11</category><category>esp-idf</category><category>wpa2</category><category>wpa3</category><category>esp32-c3</category></item><item><title>ESP32-C3 ADC와 터치 센서 — 아날로그 입력 처리</title><link>https://hawk90.dev/blog/embedded/riscv/esp32-c3-mastering/chapter06-adc-touch/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/riscv/esp32-c3-mastering/chapter06-adc-touch/</guid><description>12-bit SAR ADC × 2 unit, 정전식 터치 9 채널. 캘리브레이션과 노이즈.</description><pubDate>Wed, 20 May 2026 09:06:00 GMT</pubDate><category>adc</category><category>touch</category><category>analog</category><category>calibration</category><category>esp32-c3</category></item><item><title>ESP32-C3 시리얼 통신 4종 — UART·SPI·I2C·I2S 분석</title><link>https://hawk90.dev/blog/embedded/riscv/esp32-c3-mastering/chapter05-uart-spi-i2c-i2s/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/riscv/esp32-c3-mastering/chapter05-uart-spi-i2c-i2s/</guid><description>주변 디바이스와의 4대 통신. DMA 활용, 인터럽트 vs polling.</description><pubDate>Wed, 20 May 2026 09:05:00 GMT</pubDate><category>uart</category><category>spi</category><category>i2c</category><category>i2s</category><category>dma</category><category>esp32-c3</category></item><item><title>ESP32-C3 디지털 출력 — GPIO·LEDC·MCPWM 세 모드 비교</title><link>https://hawk90.dev/blog/embedded/riscv/esp32-c3-mastering/chapter04-gpio-ledc-pwm/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/riscv/esp32-c3-mastering/chapter04-gpio-ledc-pwm/</guid><description>22개 GPIO, GPIO Matrix로 페리퍼럴 자유 매핑. LEDC PWM, MCPWM (모터 제어).</description><pubDate>Wed, 20 May 2026 09:04:00 GMT</pubDate><category>gpio</category><category>pwm</category><category>ledc</category><category>mcpwm</category><category>esp32-c3</category></item><item><title>ESP32-C3 메모리 맵과 플래시 — SPIFFS·LittleFS 파일시스템 선택</title><link>https://hawk90.dev/blog/embedded/riscv/esp32-c3-mastering/chapter03-memory-flash/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/riscv/esp32-c3-mastering/chapter03-memory-flash/</guid><description>ESP32-C3 메모리 구조 — 400KB SRAM, 4MB SPI flash, MMU. 파일시스템 선택.</description><pubDate>Wed, 20 May 2026 09:03:00 GMT</pubDate><category>memory</category><category>flash</category><category>mmu</category><category>spiffs</category><category>littlefs</category><category>esp32-c3</category></item><item><title>ESP32-C3 RISC-V 코어 분석 — RV32IMC·PMP·인터럽트 컨트롤러</title><link>https://hawk90.dev/blog/embedded/riscv/esp32-c3-mastering/chapter02-riscv-core/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/riscv/esp32-c3-mastering/chapter02-riscv-core/</guid><description>ESP32-C3 코어의 ISA·특권 모델·인터럽트. 32-bit IMC, M-mode only, PMP 16 entries.</description><pubDate>Wed, 20 May 2026 09:02:00 GMT</pubDate><category>risc-v</category><category>isa</category><category>pmp</category><category>interrupt</category><category>esp32-c3</category></item><item><title>ESP32-C3 분석 — Espressif가 Xtensa에서 RISC-V로 갈아탄 이유</title><link>https://hawk90.dev/blog/embedded/riscv/esp32-c3-mastering/chapter01-overview/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/riscv/esp32-c3-mastering/chapter01-overview/</guid><description>Espressif가 Tensilica Xtensa에서 RISC-V로 전환한 첫 SoC. WiFi 4 + BLE 5.0, 32-bit RV32IMC.</description><pubDate>Wed, 20 May 2026 09:01:00 GMT</pubDate><category>esp32-c3</category><category>risc-v</category><category>mcu</category><category>wifi</category><category>ble</category></item><item><title>부트로더 CI 구축 — build matrix와 자동 부팅 테스트</title><link>https://hawk90.dev/blog/embedded/bootloader/chapter30-bootloader-ci/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bootloader/chapter30-bootloader-ci/</guid><description>여러 보드의 U-Boot/TF-A를 PR마다 빌드하고, QEMU·real board에서 boot까지 자동 검증하는 CI 패턴.</description><pubDate>Tue, 19 May 2026 09:30:00 GMT</pubDate><category>embedded</category><category>bootloader</category><category>ci-cd</category><category>qemu</category><category>build-matrix</category></item><item><title>U-Boot Distro Boot — extlinux·boot.scr 표준화 분석</title><link>https://hawk90.dev/blog/embedded/bootloader/chapter29-distro-boot/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bootloader/chapter29-distro-boot/</guid><description>보드별 다른 부트 스크립트를 표준화 — U-Boot Distro Boot, extlinux.conf, boot.scr의 차이와 선택.</description><pubDate>Tue, 19 May 2026 09:29:00 GMT</pubDate><category>embedded</category><category>bootloader</category><category>u-boot</category><category>distro-boot</category><category>extlinux</category></item><item><title>임베디드 Flash Layout 설계 — partition·NAND·eMMC·UBI 비교</title><link>https://hawk90.dev/blog/embedded/bootloader/chapter28-flash-layout/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bootloader/chapter28-flash-layout/</guid><description>양산 firmware의 flash layout 설계 — 부트로더·env·kernel·rootfs·OTA slot의 sizing과 NAND/eMMC/UBI 차이.</description><pubDate>Tue, 19 May 2026 09:28:00 GMT</pubDate><category>embedded</category><category>bootloader</category><category>flash</category><category>nand</category><category>emmc</category><category>ubi</category><category>partition</category></item><item><title>임베디드 Chain of Trust — 다단계 서명 검증의 전체 흐름</title><link>https://hawk90.dev/blog/embedded/bootloader/chapter27-chain-of-trust/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bootloader/chapter27-chain-of-trust/</guid><description>BootROM PK hash → BL2 signed by ROTPK → BL31/BL33 signed by trusted key → kernel signed by FIT key의 chain을 끝까지.</description><pubDate>Tue, 19 May 2026 09:27:00 GMT</pubDate><category>embedded</category><category>bootloader</category><category>secure-boot</category><category>chain-of-trust</category><category>signing</category></item><item><title>DDR Training과 PHY Calibration — 보드별 파라미터 튜닝</title><link>https://hawk90.dev/blog/embedded/bootloader/chapter26-ddr-training/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bootloader/chapter26-ddr-training/</guid><description>DDR4/LPDDR4 controller·PHY가 어떻게 캘리브레이션되는지, 보드별 timing parameter, training 실패 디버깅.</description><pubDate>Tue, 19 May 2026 09:26:00 GMT</pubDate><category>embedded</category><category>bootloader</category><category>ddr</category><category>lpddr</category><category>dram-init</category><category>training</category></item><item><title>ARM Trusted Firmware-A 통합 — BL1·BL2·BL31·BL32·BL33 흐름</title><link>https://hawk90.dev/blog/embedded/bootloader/chapter25-tfa-optee/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bootloader/chapter25-tfa-optee/</guid><description>ARMv8 secure boot의 표준 단계화 — Trusted Firmware-A의 BL1·BL2·BL31과 OP-TEE(BL32)·U-Boot(BL33) 위치.</description><pubDate>Tue, 19 May 2026 09:25:00 GMT</pubDate><category>embedded</category><category>bootloader</category><category>tf-a</category><category>atf</category><category>op-tee</category><category>secure-boot</category><category>armv8</category></item><item><title>SPL·TPL 내부 해부 — 가장 작은 부트 단계의 동작 추적</title><link>https://hawk90.dev/blog/embedded/bootloader/chapter24-spl-deep/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bootloader/chapter24-spl-deep/</guid><description>SPL과 TPL의 정확한 역할, SRAM 안에 들어가는 코드 구조, DDR이 없는 환경에서 어떻게 동작하는가.</description><pubDate>Tue, 19 May 2026 09:24:00 GMT</pubDate><category>embedded</category><category>bootloader</category><category>spl</category><category>tpl</category><category>u-boot</category></item><item><title>SoC BootROM·eFuse·OTP — 부팅의 0단계 분석</title><link>https://hawk90.dev/blog/embedded/bootloader/chapter23-bootrom-efuse-otp/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bootloader/chapter23-bootrom-efuse-otp/</guid><description>전원 인가 직후 mask ROM이 무엇을 하는지, eFuse/OTP에 굳어 들어가는 키와 anti-rollback counter, secure boot의 시작점.</description><pubDate>Tue, 19 May 2026 09:23:00 GMT</pubDate><category>embedded</category><category>bootloader</category><category>bootrom</category><category>efuse</category><category>otp</category><category>secure-boot</category></item><item><title>Buildroot → Yocto 마이그레이션 — 언제·어떻게 옮길까</title><link>https://hawk90.dev/blog/embedded/buildroot/chapter20-yocto-migration/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/buildroot/chapter20-yocto-migration/</guid><description>Buildroot가 한계에 도달하는 신호와 Yocto/OE로 점진 이전하는 패턴, meta-buildroot 같은 hybrid 옵션.</description><pubDate>Tue, 19 May 2026 09:20:00 GMT</pubDate><category>embedded</category><category>buildroot</category><category>yocto</category><category>openembedded</category><category>migration</category></item><item><title>Buildroot CI/CD 구축 — Container Build와 Cache 공유</title><link>https://hawk90.dev/blog/embedded/buildroot/chapter19-cicd/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/buildroot/chapter19-cicd/</guid><description>GitLab/GitHub Actions에서 Buildroot 트리를 컨테이너로 빌드하고 dl·ccache를 팀이 공유하는 패턴.</description><pubDate>Tue, 19 May 2026 09:19:00 GMT</pubDate><category>embedded</category><category>buildroot</category><category>ci-cd</category><category>docker</category><category>gitlab</category></item><item><title>Ch 19: 고급 기능 — Lane Margining·10-bit Tag·TPH·ACS·L0p</title><link>https://hawk90.dev/blog/embedded/hardware/pcie/chapter19-advanced-features/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/pcie/chapter19-advanced-features/</guid><description>코어 동작 너머의 PCIe spec 기능들 — Lane Margining(신호 마진 측정)·10-bit Tag(outstanding 확장)·TPH(캐시 주입 힌트)·ACS(격리)·L0p(부분폭 저전력)을 실무 관점에서 정리합니다.</description><pubDate>Tue, 19 May 2026 09:19:00 GMT</pubDate><category>pcie</category><category>lane-margining</category><category>tph</category><category>acs</category><category>l0p</category><category>advanced</category></item><item><title>Buildroot Security·CVE 추적 — pkg-stats와 Reproducible Builds</title><link>https://hawk90.dev/blog/embedded/buildroot/chapter18-security-cve/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/buildroot/chapter18-security-cve/</guid><description>Buildroot의 CVE 추적·legal info 산출·SBOM·reproducible build로 보안과 컴플라이언스를 관리하는 패턴.</description><pubDate>Tue, 19 May 2026 09:18:00 GMT</pubDate><category>embedded</category><category>buildroot</category><category>security</category><category>cve</category><category>sbom</category><category>reproducible-builds</category></item><item><title>Ch 18: Register Maps — Config Space·Capability 비트 reference</title><link>https://hawk90.dev/blog/embedded/hardware/pcie/chapter18-register-maps/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/pcie/chapter18-register-maps/</guid><description>PCIe register reference — Type 0/1 header·PCIe Cap·AER·MSI·MSI-X·SR-IOV·ACS·LTR의 주요 비트 layout.</description><pubDate>Tue, 19 May 2026 09:18:00 GMT</pubDate><category>pcie</category><category>register-map</category><category>reference</category><category>configuration-space</category><category>bitfield</category></item><item><title>Buildroot SDK 생성·배포 — make sdk와 application 워크플로</title><link>https://hawk90.dev/blog/embedded/buildroot/chapter17-sdk/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/buildroot/chapter17-sdk/</guid><description>Buildroot가 만든 toolchain을 application 개발자에게 SDK로 배포하는 패턴과 relocatable toolchain 한계.</description><pubDate>Tue, 19 May 2026 09:17:00 GMT</pubDate><category>embedded</category><category>buildroot</category><category>sdk</category><category>toolchain</category><category>application</category></item><item><title>Ch 17: Performance — Bandwidth·Latency·Tuning</title><link>https://hawk90.dev/blog/embedded/hardware/pcie/chapter17-performance/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/pcie/chapter17-performance/</guid><description>PCIe 성능 — theoretical vs effective BW·MaxPayload·MaxReadReq·latency breakdown·NUMA·P2P·ASPM 영향·tuning.</description><pubDate>Tue, 19 May 2026 09:17:00 GMT</pubDate><category>pcie</category><category>performance</category><category>bandwidth</category><category>latency</category><category>max-payload</category><category>tuning</category></item><item><title>Buildroot OTA 이미지 업데이트 — RAUC·swupdate 통합</title><link>https://hawk90.dev/blog/embedded/buildroot/chapter16-ota/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/buildroot/chapter16-ota/</guid><description>Buildroot에서 RAUC·swupdate·Mender를 통합해 A/B 부팅·atomic update를 제공하는 패턴. slot 설계, bundle 생성, U-Boot bootcount, 서명·롤백까지.</description><pubDate>Tue, 19 May 2026 09:16:00 GMT</pubDate><category>embedded</category><category>buildroot</category><category>ota</category><category>rauc</category><category>swupdate</category><category>mender</category><category>ab-update</category></item><item><title>Ch 16: Troubleshooting — 실무 시나리오북</title><link>https://hawk90.dev/blog/embedded/hardware/pcie/chapter16-troubleshooting/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/pcie/chapter16-troubleshooting/</guid><description>Device not visible·link training fail·downgrade·CE storm·hang·ACS group·hot-plug·성능 미달·lane reversal·power budget.</description><pubDate>Tue, 19 May 2026 09:16:00 GMT</pubDate><category>pcie</category><category>troubleshooting</category><category>debugging</category><category>scenarios</category></item><item><title>Buildroot post-build·post-image 심화 — rootfs 최종 수정 흐름</title><link>https://hawk90.dev/blog/embedded/buildroot/chapter15-post-build-deep/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/buildroot/chapter15-post-build-deep/</guid><description>post-build·post-image·post-fakeroot 세 hook의 정확한 차이, 환경 변수, BR2_ROOTFS_OVERLAY 한계, system_table.txt로 권한·devnode 다루기, genimage로 SD 이미지 만들기.</description><pubDate>Tue, 19 May 2026 09:15:00 GMT</pubDate><category>embedded</category><category>buildroot</category><category>post-build</category><category>post-image</category><category>genimage</category><category>fakeroot</category></item><item><title>Ch 15: Tools — lspci·setpci·pcimem·protocol analyzer</title><link>https://hawk90.dev/blog/embedded/hardware/pcie/chapter15-tools/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/pcie/chapter15-tools/</guid><description>PCIe 디버깅 도구 — lspci 전체 옵션·setpci raw access·pcimem BAR R/W·protocol analyzer·debugfs.</description><pubDate>Tue, 19 May 2026 09:15:00 GMT</pubDate><category>pcie</category><category>lspci</category><category>setpci</category><category>pcimem</category><category>debug-tools</category></item><item><title>Buildroot 빌드 캐싱 분석 — dl·ccache·per-package</title><link>https://hawk90.dev/blog/embedded/buildroot/chapter14-build-caching/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/buildroot/chapter14-build-caching/</guid><description>Buildroot의 캐싱 계층 — dl/ source 캐시, ccache compile 캐시, BR2_PER_PACKAGE_DIRECTORIES와 sstate가 없는 이유.</description><pubDate>Tue, 19 May 2026 09:14:00 GMT</pubDate><category>embedded</category><category>buildroot</category><category>ccache</category><category>caching</category><category>performance</category></item><item><title>Ch 14: Linux Operations — Hot-plug·AER Recovery·DPC·ARI</title><link>https://hawk90.dev/blog/embedded/hardware/pcie/chapter14-linux-operations/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/pcie/chapter14-linux-operations/</guid><description>PCIe 운영 — pciehp surprise·orderly hot-plug·AER recovery callback chain·DPC integration·ARI 256+ function·EEH.</description><pubDate>Tue, 19 May 2026 09:14:00 GMT</pubDate><category>pcie</category><category>hotplug</category><category>aer-recovery</category><category>dpc</category><category>ari</category><category>linux-operations</category></item><item><title>Buildroot U-Boot 통합 — 빌드·env·fw_env 흐름</title><link>https://hawk90.dev/blog/embedded/buildroot/chapter13-uboot-integration/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/buildroot/chapter13-uboot-integration/</guid><description>Buildroot가 U-Boot를 가져와 빌드·패키징하는 방식과 env·fw_env.config로 런타임에 접근하는 패턴.</description><pubDate>Tue, 19 May 2026 09:13:00 GMT</pubDate><category>embedded</category><category>buildroot</category><category>u-boot</category><category>bootloader</category><category>fw-env</category></item><item><title>Ch 13: Virtualization II — vIOMMU·Scalable IOV·VirtIO·IDE·TDISP</title><link>https://hawk90.dev/blog/embedded/hardware/pcie/chapter13-virtualization-2/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/pcie/chapter13-virtualization-2/</guid><description>Guest 측 vIOMMU·Intel S-IOV·VirtIO·vDPA·live migration·Confidential I/O (IDE·TDISP·CMA-SPDM).</description><pubDate>Tue, 19 May 2026 09:13:00 GMT</pubDate><category>pcie</category><category>viommu</category><category>scalable-iov</category><category>virtio</category><category>ide</category><category>tdisp</category><category>confidential-computing</category></item><item><title>Buildroot 커널 Customize — defconfig fragment와 DTS 통합</title><link>https://hawk90.dev/blog/embedded/buildroot/chapter12-kernel-customize/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/buildroot/chapter12-kernel-customize/</guid><description>Buildroot에서 mainline 커널을 vendor 트리·custom config·in-tree DTS로 customize하는 패턴.</description><pubDate>Tue, 19 May 2026 09:12:00 GMT</pubDate><category>embedded</category><category>buildroot</category><category>linux-kernel</category><category>defconfig</category><category>device-tree</category></item><item><title>Ch 12: Virtualization I — Pass-through·SR-IOV·VFIO·DPDK·SPDK</title><link>https://hawk90.dev/blog/embedded/hardware/pcie/chapter12-virtualization-1/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/pcie/chapter12-virtualization-1/</guid><description>PCIe hardware virtualization — SR-IOV PF/VF·VFIO container/group/device·DPDK·SPDK·ACS·FLR.</description><pubDate>Tue, 19 May 2026 09:12:00 GMT</pubDate><category>pcie</category><category>sr-iov</category><category>vfio</category><category>dpdk</category><category>spdk</category><category>virtualization</category><category>acs</category></item><item><title>Buildroot Toolchain 선택 — Internal vs External 비교</title><link>https://hawk90.dev/blog/embedded/buildroot/chapter11-toolchain/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/buildroot/chapter11-toolchain/</guid><description>Buildroot toolchain 결정 — internal toolchain의 단순함과 external toolchain(Bootlin·Linaro·vendor SDK)의 속도·호환성 트레이드오프.</description><pubDate>Tue, 19 May 2026 09:11:00 GMT</pubDate><category>embedded</category><category>buildroot</category><category>toolchain</category><category>cross-compile</category><category>glibc</category></item><item><title>Ch 11: DMA·IOMMU — Coherent·Streaming·ATS·PRI·PASID·IOMMUFD</title><link>https://hawk90.dev/blog/embedded/hardware/pcie/chapter11-linux-dma/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/pcie/chapter11-linux-dma/</guid><description>Linux DMA API — coherent·streaming·scatter-gather·IOMMU mapping·ATS·PRI·PASID·SVM·IOMMUFD.</description><pubDate>Tue, 19 May 2026 09:11:00 GMT</pubDate><category>pcie</category><category>dma</category><category>iommu</category><category>ats</category><category>pasid</category><category>iommufd</category><category>svm</category></item><item><title>Buildroot 실전 — BeagleBone Black 시스템 처음부터 끝까지</title><link>https://hawk90.dev/blog/embedded/buildroot/chapter10-real-board/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/buildroot/chapter10-real-board/</guid><description>Buildroot로 BeagleBone Black용 완전한 시스템을 구축 — defconfig부터 SD 카드 부팅까지.</description><pubDate>Tue, 19 May 2026 09:10:00 GMT</pubDate><category>embedded</category><category>buildroot</category><category>beaglebone</category><category>practical</category></item><item><title>Ch 10: Linux PCI Basics — Enumeration·Driver Model·sysfs</title><link>https://hawk90.dev/blog/embedded/hardware/pcie/chapter10-linux-basics/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/pcie/chapter10-linux-basics/</guid><description>Linux kernel의 PCIe — boot enumeration·struct pci_dev·driver matching·probe/remove·sysfs entry·ACPI 통합.</description><pubDate>Tue, 19 May 2026 09:10:00 GMT</pubDate><category>pcie</category><category>linux</category><category>driver-model</category><category>sysfs</category><category>enumeration</category></item><item><title>Buildroot 새 패키지 작성 — autotools·cmake·python 통합</title><link>https://hawk90.dev/blog/embedded/buildroot/chapter09-new-package/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/buildroot/chapter09-new-package/</guid><description>Buildroot에 새 패키지를 추가하는 실전 — autotools·cmake·python 세 케이스.</description><pubDate>Tue, 19 May 2026 09:09:00 GMT</pubDate><category>embedded</category><category>buildroot</category><category>package</category><category>autotools</category><category>cmake</category><category>python</category></item><item><title>Ch 9: Physical Layer — LTSSM·Equalization·SerDes</title><link>https://hawk90.dev/blog/embedded/hardware/pcie/chapter09-physical-layer/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/pcie/chapter09-physical-layer/</guid><description>PCIe Physical Layer — LTSSM 11 state·link training timeline·4-phase equalization·TS1/TS2·SKP·encoding 진화.</description><pubDate>Tue, 19 May 2026 09:09:00 GMT</pubDate><category>pcie</category><category>ltssm</category><category>physical-layer</category><category>equalization</category><category>serdes</category><category>pam4</category></item><item><title>Buildroot 출력 파일시스템 — initramfs·squashfs·ext4·cpio 선택</title><link>https://hawk90.dev/blog/embedded/buildroot/chapter08-filesystems/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/buildroot/chapter08-filesystems/</guid><description>Buildroot가 생성하는 파일시스템 형식 비교 — 언제 무엇을, 크기·읽기성능·쓰기 가능성.</description><pubDate>Tue, 19 May 2026 09:08:00 GMT</pubDate><category>embedded</category><category>buildroot</category><category>rootfs</category><category>ext4</category><category>squashfs</category><category>initramfs</category></item><item><title>Ch 8: Data Link Layer — DLLP·ACK/NAK·Flow Control·FLIT Mode</title><link>https://hawk90.dev/blog/embedded/hardware/pcie/chapter08-dllp/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/pcie/chapter08-dllp/</guid><description>PCIe DLL — ACK/NAK·replay buffer·credit-based flow control·LCRC·Gen 6+ FLIT mode.</description><pubDate>Tue, 19 May 2026 09:08:00 GMT</pubDate><category>pcie</category><category>dllp</category><category>ack-nak</category><category>flow-control</category><category>flit-mode</category></item><item><title>Buildroot 보드 Customize — overlay·post-build·post-image 흐름</title><link>https://hawk90.dev/blog/embedded/buildroot/chapter07-board-customize/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/buildroot/chapter07-board-customize/</guid><description>보드별 파일 추가, 빌드 후 처리, 이미지 생성 후 처리 — 세 가지 hook.</description><pubDate>Tue, 19 May 2026 09:07:00 GMT</pubDate><category>embedded</category><category>buildroot</category><category>overlay</category><category>post-build</category><category>post-image</category></item><item><title>Ch 7: Error Handling — Correctable·Uncorrectable·AER·DPC</title><link>https://hawk90.dev/blog/embedded/hardware/pcie/chapter07-error-handling/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/pcie/chapter07-error-handling/</guid><description>PCIe 에러 분류·계층별 처리·AER capability·DPC containment·Linux 복구 callback.</description><pubDate>Tue, 19 May 2026 09:07:00 GMT</pubDate><category>pcie</category><category>error-handling</category><category>aer</category><category>dpc</category><category>flr</category></item><item><title>Buildroot 외부 트리 — BR2_EXTERNAL 구성과 활용</title><link>https://hawk90.dev/blog/embedded/buildroot/chapter06-br2-external/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/buildroot/chapter06-br2-external/</guid><description>회사·팀의 패키지·보드 정의를 Buildroot 본체와 분리하는 BR2_EXTERNAL 메커니즘.</description><pubDate>Tue, 19 May 2026 09:06:00 GMT</pubDate><category>embedded</category><category>buildroot</category><category>br2-external</category><category>layer</category></item><item><title>Ch 6: Power Management — D-state·L-state·ASPM</title><link>https://hawk90.dev/blog/embedded/hardware/pcie/chapter06-power-management/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/pcie/chapter06-power-management/</guid><description>PCIe 전력 관리 — Device D0~D3·Link L0~L3·ASPM·L1 substates·CLKREQ·PME 흐름.</description><pubDate>Tue, 19 May 2026 09:06:00 GMT</pubDate><category>pcie</category><category>power-management</category><category>aspm</category><category>l1-substates</category><category>clkreq</category><category>pme</category></item><item><title>Buildroot 패키지 시스템 분석 — .mk와 Config.in 동작 추적</title><link>https://hawk90.dev/blog/embedded/buildroot/chapter05-package-system/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/buildroot/chapter05-package-system/</guid><description>Buildroot 패키지 작성 규약 — Config.in 옵션 노출과 .mk 빌드 레시피.</description><pubDate>Tue, 19 May 2026 09:05:00 GMT</pubDate><category>embedded</category><category>buildroot</category><category>package</category><category>mk</category><category>config-in</category></item><item><title>Ch 5: Interrupts — INTx·MSI·MSI-X·Interrupt Remapping</title><link>https://hawk90.dev/blog/embedded/hardware/pcie/chapter05-interrupts/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/pcie/chapter05-interrupts/</guid><description>PCIe 인터럽트 메커니즘 3가지 — Legacy INTx·MSI 32 vector·MSI-X 2048 vector·IOMMU Interrupt Remapping.</description><pubDate>Tue, 19 May 2026 09:05:00 GMT</pubDate><category>pcie</category><category>interrupts</category><category>msi</category><category>msi-x</category><category>intx</category><category>interrupt-remapping</category></item><item><title>Buildroot 첫 빌드 — QEMU에서 동작하는 시스템 만들기</title><link>https://hawk90.dev/blog/embedded/buildroot/chapter04-first-build/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/buildroot/chapter04-first-build/</guid><description>qemu_aarch64_virt_defconfig로 첫 시스템을 빌드하고 QEMU에서 부팅하는 전체 흐름.</description><pubDate>Tue, 19 May 2026 09:04:00 GMT</pubDate><category>embedded</category><category>buildroot</category><category>qemu</category><category>first-build</category></item><item><title>Ch 4: BAR &amp; MMIO — Device 자원의 호스트 주소 매핑</title><link>https://hawk90.dev/blog/embedded/hardware/pcie/chapter04-bar-mmio/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/pcie/chapter04-bar-mmio/</guid><description>Base Address Register — Memory·I/O·64-bit·Prefetchable·size 결정·ReBAR·SR-IOV VF BAR.</description><pubDate>Tue, 19 May 2026 09:04:00 GMT</pubDate><category>pcie</category><category>bar</category><category>mmio</category><category>rebar</category><category>sr-iov</category></item><item><title>Buildroot Kconfig 설정 — menuconfig와 defconfig 작성</title><link>https://hawk90.dev/blog/embedded/buildroot/chapter03-kconfig/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/buildroot/chapter03-kconfig/</guid><description>Buildroot의 Kconfig 시스템 — make menuconfig 사용법, defconfig 패턴, 옵션 의존성.</description><pubDate>Tue, 19 May 2026 09:03:00 GMT</pubDate><category>embedded</category><category>buildroot</category><category>kconfig</category><category>defconfig</category></item><item><title>Ch 3: Configuration Space — 4 KB ECAM·Capability Linked List</title><link>https://hawk90.dev/blog/embedded/hardware/pcie/chapter03-config-space/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/pcie/chapter03-config-space/</guid><description>PCIe Configuration Space — 256 byte PCI 영역 + 4 KB Extended·Type 0/1 header·Capability chain·ECAM 메모리 매핑.</description><pubDate>Tue, 19 May 2026 09:03:00 GMT</pubDate><category>pcie</category><category>configuration-space</category><category>ecam</category><category>capability</category><category>dvsec</category></item><item><title>Buildroot 디렉터리 구조 분해 — board·configs·dl·output</title><link>https://hawk90.dev/blog/embedded/buildroot/chapter02-directory-structure/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/buildroot/chapter02-directory-structure/</guid><description>Buildroot 트리 — package, board, configs, fs, output, dl 디렉터리의 역할.</description><pubDate>Tue, 19 May 2026 09:02:00 GMT</pubDate><category>embedded</category><category>buildroot</category><category>directory</category></item><item><title>Ch 2: TLP — Transaction Layer Packet</title><link>https://hawk90.dev/blog/embedded/hardware/pcie/chapter02-tlp/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/pcie/chapter02-tlp/</guid><description>PCIe의 기본 packet인 TLP — 3/4 DW header·5 가족·split transaction·라우팅 3 방식·Producer-Consumer ordering.</description><pubDate>Tue, 19 May 2026 09:02:00 GMT</pubDate><category>pcie</category><category>tlp</category><category>transaction-layer</category><category>split-transaction</category><category>routing</category></item><item><title>Buildroot가 푸는 문제 — Yocto와의 핵심 차이 분석</title><link>https://hawk90.dev/blog/embedded/buildroot/chapter01-problem/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/buildroot/chapter01-problem/</guid><description>Buildroot의 위치 — 임베디드 리눅스 rootfs 빌드 시스템, Yocto와의 트레이드오프.</description><pubDate>Tue, 19 May 2026 09:01:00 GMT</pubDate><category>embedded</category><category>buildroot</category><category>rootfs</category><category>yocto</category><category>embedded-linux</category></item><item><title>Ch 1: PCIe Fundamentals — 계층 구조와 토폴로지</title><link>https://hawk90.dev/blog/embedded/hardware/pcie/chapter01-fundamentals/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/pcie/chapter01-fundamentals/</guid><description>PCIe 아키텍처의 기초 — point-to-point 직렬 링크, 3-Layer 모델, Root Complex·Switch·Endpoint 토폴로지, Gen 1부터 7.0까지의 진화.</description><pubDate>Tue, 19 May 2026 09:01:00 GMT</pubDate><category>pcie</category><category>architecture</category><category>topology</category><category>root-complex</category><category>gen7</category></item><item><title>BSP 유지보수 — 업스트림 기여·커널 버전업·LTS 전략</title><link>https://hawk90.dev/blog/embedded/bsp/chapter21-maintenance/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bsp/chapter21-maintenance/</guid><description>BSP의 장기 유지 — 업스트림 기여로 부담 줄이기, LTS 버전 선택, 커널 버전업 전략.</description><pubDate>Mon, 18 May 2026 09:21:00 GMT</pubDate><category>embedded</category><category>bsp</category><category>upstream</category><category>lts</category><category>maintenance</category></item><item><title>BSP 양산 환경 구축 — CI/CD·재현 가능 빌드·서명</title><link>https://hawk90.dev/blog/embedded/bsp/chapter20-production/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bsp/chapter20-production/</guid><description>BSP를 양산으로 옮기는 단계 — CI 빌드, 재현성, 코드 서명, 키 관리.</description><pubDate>Mon, 18 May 2026 09:20:00 GMT</pubDate><category>embedded</category><category>bsp</category><category>ci-cd</category><category>signing</category><category>production</category></item><item><title>BSP Stability Testing — Stress·Soak·Power Cycle 시나리오</title><link>https://hawk90.dev/blog/embedded/bsp/chapter19-stability-testing/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bsp/chapter19-stability-testing/</guid><description>양산 BSP의 안정성 검증 — stress 도구, 장기간 soak, thermal 사이클, EMC 영향.</description><pubDate>Mon, 18 May 2026 09:19:00 GMT</pubDate><category>embedded</category><category>bsp</category><category>stability</category><category>stress</category><category>soak</category><category>testing</category></item><item><title>BSP OTA와 Field Recovery — A/B 슬롯·롤백·BootCount</title><link>https://hawk90.dev/blog/embedded/bsp/chapter18-ota-recovery/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bsp/chapter18-ota-recovery/</guid><description>현장 배포된 보드의 펌웨어 업데이트와 복구 — RAUC/SWUpdate 통합, recovery 파티션, USB recovery.</description><pubDate>Mon, 18 May 2026 09:18:00 GMT</pubDate><category>embedded</category><category>bsp</category><category>ota</category><category>recovery</category><category>rauc</category><category>swupdate</category></item><item><title>BSP 이미지 패키징 — Flash Layout·Partition·GPT 설계</title><link>https://hawk90.dev/blog/embedded/bsp/chapter17-image-packaging/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bsp/chapter17-image-packaging/</guid><description>최종 이미지 조립 — 파티션 테이블, flash layout, SD/eMMC/UFS 굽기 워크플로.</description><pubDate>Mon, 18 May 2026 09:17:00 GMT</pubDate><category>embedded</category><category>bsp</category><category>image</category><category>partition</category><category>gpt</category></item><item><title>BSP RootFS 통합 — Buildroot·Yocto와 보드별 패키지 묶기</title><link>https://hawk90.dev/blog/embedded/bsp/chapter16-rootfs/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bsp/chapter16-rootfs/</guid><description>BSP에서 rootfs 빌드 시스템 선택과 통합 — Buildroot 외부 트리, Yocto 메타레이어.</description><pubDate>Mon, 18 May 2026 09:16:00 GMT</pubDate><category>embedded</category><category>bsp</category><category>buildroot</category><category>yocto</category><category>rootfs</category></item><item><title>BSP 부트 시간 최적화 — Bootchart·initcall_debug·Parallel Init</title><link>https://hawk90.dev/blog/embedded/bsp/chapter15-boot-time-optimization/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bsp/chapter15-boot-time-optimization/</guid><description>boot에서 application까지 시간을 줄이는 기법 — measurement, Falcon, deferred init, kernel slim.</description><pubDate>Mon, 18 May 2026 09:15:00 GMT</pubDate><category>embedded</category><category>bsp</category><category>boot-time</category><category>optimization</category><category>sub-second</category></item><item><title>BSP Thermal과 Watchdog — Trip Point·Cooling Device·Hardware Reset</title><link>https://hawk90.dev/blog/embedded/bsp/chapter14-thermal-watchdog/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bsp/chapter14-thermal-watchdog/</guid><description>보드 안전 장치를 정리합니다. thermal zone과 trip point, hardware watchdog 통합을 살펴봅니다.</description><pubDate>Mon, 18 May 2026 09:14:00 GMT</pubDate><category>embedded</category><category>bsp</category><category>thermal</category><category>watchdog</category><category>safety</category></item><item><title>BSP Power Management — Suspend/Resume·Runtime PM·Regulator</title><link>https://hawk90.dev/blog/embedded/bsp/chapter13-power-management/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bsp/chapter13-power-management/</guid><description>BSP의 전력 관리 — suspend-to-RAM, runtime PM, regulator framework, CPU idle/freq를 정리합니다.</description><pubDate>Mon, 18 May 2026 09:13:00 GMT</pubDate><category>embedded</category><category>bsp</category><category>power-management</category><category>pm</category><category>runtime-pm</category></item><item><title>BSP 드라이버 추가 — 보드별 Peripheral 통합 흐름</title><link>https://hawk90.dev/blog/embedded/bsp/chapter12-driver-add/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bsp/chapter12-driver-add/</guid><description>BSP에서 새 드라이버 통합 — 기존 드라이버 활용, DT binding 추가, 새 드라이버 작성 결정 기준을 정리합니다.</description><pubDate>Mon, 18 May 2026 09:12:00 GMT</pubDate><category>embedded</category><category>bsp</category><category>driver</category><category>peripheral</category></item><item><title>부트로그 디버깅 — earlyprintk·loglevel·serial 추적</title><link>https://hawk90.dev/blog/embedded/bsp/chapter11-bootlog-debugging/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bsp/chapter11-bootlog-debugging/</guid><description>부트 실패 패턴을 카탈로그로 정리합니다. 시리얼 garbage, hang, panic, late hang의 진단과 대응을 살펴봅니다.</description><pubDate>Mon, 18 May 2026 09:11:00 GMT</pubDate><category>embedded</category><category>bsp</category><category>debugging</category><category>bootlog</category></item><item><title>첫 부팅 추적 — 0%부터 login prompt까지의 단계 분석</title><link>https://hawk90.dev/blog/embedded/bsp/chapter10-first-boot/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bsp/chapter10-first-boot/</guid><description>보드 켜는 순간부터 login prompt까지의 단계별 체크포인트를 정리합니다. 어디서 멈추는지를 미리 알아 둡니다.</description><pubDate>Mon, 18 May 2026 09:10:00 GMT</pubDate><category>embedded</category><category>bsp</category><category>boot</category><category>debugging</category></item><item><title>Multi-core SMP Bring-up — PSCI·Secondary CPU 깨우기</title><link>https://hawk90.dev/blog/embedded/bsp/chapter09-smp-bringup/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bsp/chapter09-smp-bringup/</guid><description>보드의 다른 코어를 깨우는 절차를 정리합니다. PSCI, spin-table, ARM CPU hotplug의 흐름을 살펴봅니다.</description><pubDate>Mon, 18 May 2026 09:09:00 GMT</pubDate><category>embedded</category><category>bsp</category><category>smp</category><category>psci</category><category>multicore</category></item><item><title>Linux 커널 BSP 설정 — defconfig·Kconfig·DT 통합</title><link>https://hawk90.dev/blog/embedded/bsp/chapter08-kernel-config/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bsp/chapter08-kernel-config/</guid><description>BSP에서 커널을 빌드합니다. defconfig 선택과 커스터마이즈, DT 통합, 모듈 vs 빌트인 결정을 정리합니다.</description><pubDate>Mon, 18 May 2026 09:08:00 GMT</pubDate><category>embedded</category><category>bsp</category><category>linux-kernel</category><category>defconfig</category></item><item><title>TF-A·TrustZone 통합 — BL31·secure world·SMC 흐름 적용</title><link>https://hawk90.dev/blog/embedded/bsp/chapter07-tfa-trustzone/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bsp/chapter07-tfa-trustzone/</guid><description>ARM Trusted Firmware-A를 BSP에 통합 — BL31 빌드, U-Boot와 BL33 결합, secure/non-secure 분리.</description><pubDate>Mon, 18 May 2026 09:07:00 GMT</pubDate><category>embedded</category><category>bsp</category><category>tf-a</category><category>trustzone</category><category>security</category></item><item><title>U-Boot 새 보드 포팅 — defconfig·board.c·DTS 작성 흐름</title><link>https://hawk90.dev/blog/embedded/bsp/chapter06-u-boot-porting/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bsp/chapter06-u-boot-porting/</guid><description>BSP 관점에서의 U-Boot 추가 — defconfig·board.c·DT 통합 흐름.</description><pubDate>Mon, 18 May 2026 09:06:00 GMT</pubDate><category>embedded</category><category>bsp</category><category>u-boot</category><category>porting</category></item><item><title>DDR 매개변수 결정 — 보드별 Timing·Training 추출</title><link>https://hawk90.dev/blog/embedded/bsp/chapter05-ddr-params/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bsp/chapter05-ddr-params/</guid><description>DDR controller 설정값이 어디서 오는지 — vendor tool, SPD, 데이터시트 timing 표.</description><pubDate>Mon, 18 May 2026 09:05:00 GMT</pubDate><category>embedded</category><category>bsp</category><category>ddr</category><category>dram</category><category>timing</category></item><item><title>Pin Mux와 Clock Tree 분석 — 보드 부팅의 첫 두 관문</title><link>https://hawk90.dev/blog/embedded/bsp/chapter04-pinmux-clock/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bsp/chapter04-pinmux-clock/</guid><description>보드의 가장 보드-특화된 초기화 — pin 멀티플렉싱과 clock tree 설정.</description><pubDate>Mon, 18 May 2026 09:04:00 GMT</pubDate><category>embedded</category><category>bsp</category><category>pinmux</category><category>clock</category></item><item><title>새 보드 Device Tree 설계 — node·property·phandle 작성 흐름</title><link>https://hawk90.dev/blog/embedded/bsp/chapter03-device-tree-design/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bsp/chapter03-device-tree-design/</guid><description>보드 토폴로지를 DT로 표현 — SoC dtsi 상속, 보드 dts 작성, overlay 활용.</description><pubDate>Mon, 18 May 2026 09:03:00 GMT</pubDate><category>embedded</category><category>bsp</category><category>device-tree</category><category>dts</category></item><item><title>SoC 데이터시트 읽기 — Pin Mux·Clock·Memory Map 파악법</title><link>https://hawk90.dev/blog/embedded/bsp/chapter02-datasheet/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bsp/chapter02-datasheet/</guid><description>Reference Manual에서 BSP에 필요한 정보를 찾는 방법 — clock tree, memory map, pin mux.</description><pubDate>Mon, 18 May 2026 09:02:00 GMT</pubDate><category>embedded</category><category>bsp</category><category>datasheet</category><category>reference-manual</category></item><item><title>BSP의 본질 분해 — 새 보드 부팅을 위한 코드의 자리</title><link>https://hawk90.dev/blog/embedded/bsp/chapter01-what-is-bsp/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bsp/chapter01-what-is-bsp/</guid><description>Board Support Package의 정의·범위·구성요소 — 보드를 부팅 가능한 시스템으로 만드는 모든 것.</description><pubDate>Mon, 18 May 2026 09:01:00 GMT</pubDate><category>embedded</category><category>bsp</category><category>board-support-package</category></item><item><title>Ch 15: RAS·Performance·Compliance — 운용·검증의 마지막 단계</title><link>https://hawk90.dev/blog/embedded/hardware/cxl/chapter15-ras-performance/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/cxl/chapter15-ras-performance/</guid><description>CXL RAS(event log·poison·CVME·viral), spec의 성능 목표, compliance 시험과 ndctl 운용 명령.</description><pubDate>Sat, 16 May 2026 09:15:00 GMT</pubDate><category>cxl</category><category>ras</category><category>compliance</category><category>performance</category><category>cvme</category></item><item><title>Ch 14: Security — IDE·SPDM·TSP·CXL TEE</title><link>https://hawk90.dev/blog/embedded/hardware/cxl/chapter14-security/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/cxl/chapter14-security/</guid><description>SPDM·CXL IDE·CXL_IDE_KM·TSP가 각각 무엇을 지키고 어떻게 맞물리는지.</description><pubDate>Sat, 16 May 2026 09:14:00 GMT</pubDate><category>cxl-security</category><category>ide</category><category>spdm</category><category>tsp</category><category>tdisp</category></item><item><title>Ch 13: Switching·Fabric Manager — 2.0 pooling에서 3.x fabric까지</title><link>https://hawk90.dev/blog/embedded/hardware/cxl/chapter13-switching-fabric/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/cxl/chapter13-switching-fabric/</guid><description>CXL switch의 진화와 Fabric Manager의 역할.</description><pubDate>Sat, 16 May 2026 09:13:00 GMT</pubDate><category>cxl</category><category>switch</category><category>fabric-manager</category><category>mctp</category><category>dcd</category></item><item><title>Ch 12: QEMU CXL 에뮬레이션 — 노트북에서 CXL 개발</title><link>https://hawk90.dev/blog/embedded/hardware/cxl/chapter12-qemu-emulation/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/cxl/chapter12-qemu-emulation/</guid><description>QEMU의 CXL 토폴로지 에뮬레이션과 커널 cxl_test mock으로 드라이버 경로를 돌려 보기.</description><pubDate>Sat, 16 May 2026 09:12:00 GMT</pubDate><category>cxl</category><category>qemu</category><category>emulation</category><category>type-3</category><category>dev-workflow</category></item><item><title>Ch 11: Linux drivers/cxl/ 분석 — Mainline kernel CXL 구현</title><link>https://hawk90.dev/blog/embedded/hardware/cxl/chapter11-linux-driver/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/cxl/chapter11-linux-driver/</guid><description>Linux mainline CXL subsystem의 코드 구조, probe·region·mailbox 경로.</description><pubDate>Sat, 16 May 2026 09:11:00 GMT</pubDate><category>cxl</category><category>linux</category><category>drivers</category><category>sysfs</category><category>hdm-decoder</category></item><item><title>Ch 10: ARB/MUX — 세 프로토콜의 PHY 다중화</title><link>https://hawk90.dev/blog/embedded/hardware/cxl/chapter10-arb-mux/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/cxl/chapter10-arb-mux/</guid><description>같은 PHY에 CXL.io·CXL.cache·CXL.mem을 시분할로 흘리는 layer.</description><pubDate>Sat, 16 May 2026 09:10:00 GMT</pubDate><category>cxl</category><category>arb-mux</category><category>vlsm</category><category>almp</category><category>multiplexing</category></item><item><title>Ch 9: Flit Format — 68B vs 256B vs Latency-Optimized</title><link>https://hawk90.dev/blog/embedded/hardware/cxl/chapter09-flit-format/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/cxl/chapter09-flit-format/</guid><description>68B·Standard 256B·Latency-Optimized 256B flit의 구조와 retry·credit 처리.</description><pubDate>Sat, 16 May 2026 09:09:00 GMT</pubDate><category>cxl</category><category>flit</category><category>68b-flit</category><category>256b-flit</category><category>fec</category></item><item><title>Ch 8: CXL.mem — M2S·S2M·HDM Decoder</title><link>https://hawk90.dev/blog/embedded/hardware/cxl/chapter08-cxl-mem/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/cxl/chapter08-cxl-mem/</guid><description>호스트가 디바이스 메모리를 load/store하는 프로토콜.</description><pubDate>Sat, 16 May 2026 09:08:00 GMT</pubDate><category>cxl-mem</category><category>m2s</category><category>s2m</category><category>hdm-decoder</category><category>interleave</category></item><item><title>NPU·GPU에서의 HBM 활용 — Weight·Activation·KV Cache 배치 분석</title><link>https://hawk90.dev/blog/embedded/hardware/hbm/chapter08-npu-gpu-usage/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/hbm/chapter08-npu-gpu-usage/</guid><description>Weight·activation·KV cache — HBM 자리잡기와 시리즈 마무리.</description><pubDate>Sat, 16 May 2026 09:08:00 GMT</pubDate><category>hbm</category><category>npu</category><category>gpu</category><category>llm-serving</category></item><item><title>Ch 7: CXL.cache — D2H·H2D 흐름과 coherency state</title><link>https://hawk90.dev/blog/embedded/hardware/cxl/chapter07-cxl-cache/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/cxl/chapter07-cxl-cache/</guid><description>디바이스가 호스트 메모리를 캐시하는 프로토콜.</description><pubDate>Sat, 16 May 2026 09:07:00 GMT</pubDate><category>cxl-cache</category><category>d2h</category><category>h2d</category><category>mesi</category><category>snoop</category></item><item><title>HBM 메모리 컨트롤러 분석 — Bank·Row·Column·Address Mapping·Scheduling</title><link>https://hawk90.dev/blog/embedded/hardware/hbm/chapter07-memory-controller/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/hbm/chapter07-memory-controller/</guid><description>Bank·row·column·command — 컨트롤러가 보는 HBM과 scheduling·address mapping.</description><pubDate>Sat, 16 May 2026 09:07:00 GMT</pubDate><category>hbm</category><category>memory-controller</category><category>bank</category><category>scheduling</category></item><item><title>Ch 6: CXL.io — PCIe와의 차이·DOE·DVSEC</title><link>https://hawk90.dev/blog/embedded/hardware/cxl/chapter06-cxl-io/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/cxl/chapter06-cxl-io/</guid><description>CXL.io 프로토콜의 PCIe 호환성과 CXL 고유 확장.</description><pubDate>Sat, 16 May 2026 09:06:00 GMT</pubDate><category>cxl-io</category><category>pcie</category><category>dvsec</category><category>doe</category><category>uio</category></item><item><title>HBM 열 설계와 전력 관리 — Stack 열 부하·Refresh Cost·냉각 솔루션</title><link>https://hawk90.dev/blog/embedded/hardware/hbm/chapter06-thermal-power/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/hbm/chapter06-thermal-power/</guid><description>HBM stack의 전압·열 구조, 온도와 refresh, 냉각 방식과 thermal throttling.</description><pubDate>Sat, 16 May 2026 09:06:00 GMT</pubDate><category>hbm</category><category>thermal</category><category>power</category><category>refresh</category></item><item><title>Ch 5: CXL 4.0의 핵심 새 기능 — 128 GT/s·Bundled Port</title><link>https://hawk90.dev/blog/embedded/hardware/cxl/chapter05-cxl-4-features/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/cxl/chapter05-cxl-4-features/</guid><description>PCIe 7.0 기반 128 GT/s, Bundled Port·Streamlined Port의 동기와 효과.</description><pubDate>Sat, 16 May 2026 09:05:00 GMT</pubDate><category>cxl-4</category><category>pcie-7</category><category>bundled-port</category><category>streamlined-port</category><category>ppr</category></item><item><title>메모리 대역폭 병목 분석 — Theoretical vs Achievable·Roofline·Memory Wall</title><link>https://hawk90.dev/blog/embedded/hardware/hbm/chapter05-bandwidth-bottleneck/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/hbm/chapter05-bandwidth-bottleneck/</guid><description>Theoretical vs achievable — 메모리 대역폭의 실제와 roofline·memory wall.</description><pubDate>Sat, 16 May 2026 09:05:00 GMT</pubDate><category>hbm</category><category>bandwidth</category><category>roofline</category><category>bottleneck</category></item><item><title>Ch 4: Pooling·GFAM·Fabric — Multi-host 메모리 공유</title><link>https://hawk90.dev/blog/embedded/hardware/cxl/chapter04-pooling-gfam/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/cxl/chapter04-pooling-gfam/</guid><description>CXL 2.0 pooling, CXL 3.x fabric, GFAM (Global Fabric Attached Memory).</description><pubDate>Sat, 16 May 2026 09:04:00 GMT</pubDate><category>cxl</category><category>memory-pooling</category><category>gfam</category><category>fabric</category><category>fabric-manager</category></item><item><title>GDDR6·GDDR6X·GDDR7 분석 — PAM 신호로 32 Gbps 도달한 경로</title><link>https://hawk90.dev/blog/embedded/hardware/hbm/chapter04-gddr/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/hbm/chapter04-gddr/</guid><description>고속 그래픽 메모리 — clock·PAM 신호의 진화로 32 Gbps에 도달한 경로.</description><pubDate>Sat, 16 May 2026 09:04:00 GMT</pubDate><category>gddr</category><category>gddr6</category><category>gddr7</category><category>pam3</category></item><item><title>Ch 3: 메모리 일관성 모델 — HDM-DB·HDM-D·Bias·BISnp</title><link>https://hawk90.dev/blog/embedded/hardware/cxl/chapter03-coherency-model/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/cxl/chapter03-coherency-model/</guid><description>Host-managed Device Memory 두 종류와 일관성 메커니즘.</description><pubDate>Sat, 16 May 2026 09:03:00 GMT</pubDate><category>cxl</category><category>coherency</category><category>hdm-db</category><category>hdm-d</category><category>bias</category><category>bisnp</category></item><item><title>HBM2·HBM2E·HBM3·HBM3E 세대 비교 — JEDEC 표준 진화 흐름</title><link>https://hawk90.dev/blog/embedded/hardware/hbm/chapter03-hbm-generations/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/hbm/chapter03-hbm-generations/</guid><description>세대별 bandwidth·capacity·signaling — JEDEC 표준의 진화 흐름.</description><pubDate>Sat, 16 May 2026 09:03:00 GMT</pubDate><category>hbm</category><category>hbm2</category><category>hbm3</category><category>hbm3e</category><category>hbm4</category></item><item><title>Ch 2: System Architecture — Type 1·2·3·MLD·MH-MLD</title><link>https://hawk90.dev/blog/embedded/hardware/cxl/chapter02-system-architecture/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/cxl/chapter02-system-architecture/</guid><description>CXL 디바이스 분류와 multi-LD·multi-head 구조.</description><pubDate>Sat, 16 May 2026 09:02:00 GMT</pubDate><category>cxl</category><category>cxl-type</category><category>mld</category><category>mh-mld</category><category>bundled-port</category></item><item><title>HBM 3D 스택 구조 분해 — TSV·Microbump·Base Die의 역할</title><link>https://hawk90.dev/blog/embedded/hardware/hbm/chapter02-hbm-stack/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/hbm/chapter02-hbm-stack/</guid><description>Base die + DRAM die stack — 3D 메모리의 구성요소와 TSV·microbump의 역할.</description><pubDate>Sat, 16 May 2026 09:02:00 GMT</pubDate><category>hbm</category><category>tsv</category><category>3d-stack</category><category>base-die</category></item><item><title>Ch 1: CXL의 자리와 진화 — 1.1에서 4.0까지</title><link>https://hawk90.dev/blog/embedded/hardware/cxl/chapter01-cxl-position/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/cxl/chapter01-cxl-position/</guid><description>CXL이 푸는 문제, 세대별 진화, 4.0의 핵심 변경 (128 GT/s·Bundled Port).</description><pubDate>Sat, 16 May 2026 09:01:00 GMT</pubDate><category>cxl</category><category>pcie</category><category>memory</category><category>interconnect</category></item><item><title>HBM과 GDDR 분기점 분석 — Bandwidth·Capacity·Cost 트레이드오프</title><link>https://hawk90.dev/blog/embedded/hardware/hbm/chapter01-overview/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/hardware/hbm/chapter01-overview/</guid><description>HBM과 GDDR의 분기점 — bandwidth·capacity·cost의 트레이드오프와 시장 분할.</description><pubDate>Sat, 16 May 2026 09:01:00 GMT</pubDate><category>hbm</category><category>gddr</category><category>memory</category><category>bandwidth</category></item><item><title>산업용 이더넷 프로토콜 비교 — EtherCAT·PROFINET·POWERLINK·TSN 선택</title><link>https://hawk90.dev/blog/embedded/protocols/industrial-ethernet/chapter12-comparison/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/protocols/industrial-ethernet/chapter12-comparison/</guid><description>EtherCAT·PROFINET·EtherNet/IP·POWERLINK·SERCOS III·TSN — 시나리오별 선택 가이드와 한국 산업 현장 적용 사례.</description><pubDate>Wed, 13 May 2026 09:12:00 GMT</pubDate><category>industrial-ethernet</category><category>comparison</category><category>selection-guide</category><category>tsn</category><category>industry-4-0</category></item><item><title>리눅스 실시간 산업 통신 — PREEMPT_RT·EtherCAT Master 운영</title><link>https://hawk90.dev/blog/embedded/protocols/industrial-ethernet/chapter11-linux-realtime/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/protocols/industrial-ethernet/chapter11-linux-realtime/</guid><description>PREEMPT_RT mainline·CPU isolation·NIC tuning·IgH EtherCAT 마스터까지 — Linux 위에서 산업 이더넷을 굴리는 모든 단계.</description><pubDate>Wed, 13 May 2026 09:11:00 GMT</pubDate><category>linux</category><category>preempt-rt</category><category>xenomai</category><category>ethercat-driver</category><category>cyclictest</category><category>isolcpus</category></item><item><title>POWERLINK과 OpenSAFETY 분석 — 산업 안전 통신 프로토콜</title><link>https://hawk90.dev/blog/embedded/protocols/industrial-ethernet/chapter10-powerlink/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/protocols/industrial-ethernet/chapter10-powerlink/</guid><description>B&amp;R발 오픈소스 표준 산업 이더넷·통합 safety layer — slot polling으로 1ms 결정성을 만드는 법.</description><pubDate>Wed, 13 May 2026 09:10:00 GMT</pubDate><category>powerlink</category><category>opensafety</category><category>br-automation</category><category>sil3</category><category>black-channel</category></item><item><title>TSN 스케줄링 메커니즘 — Qbv·Qbu·gPTP 동기화 분석</title><link>https://hawk90.dev/blog/embedded/protocols/industrial-ethernet/chapter09-tsn-scheduling/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/protocols/industrial-ethernet/chapter09-tsn-scheduling/</guid><description>Gate Control List 설계부터 ILP 기반 스케줄 합성·실제 도구·CNC YANG까지.</description><pubDate>Wed, 13 May 2026 09:09:00 GMT</pubDate><category>tsn</category><category>qbv</category><category>qbu</category><category>ptp</category><category>scheduling</category><category>gcl</category><category>ilp</category><category>cnc</category></item><item><title>TSN 표준 분석 — IEEE 802.1 Time-Sensitive Networking 개요</title><link>https://hawk90.dev/blog/embedded/protocols/industrial-ethernet/chapter08-tsn/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/protocols/industrial-ethernet/chapter08-tsn/</guid><description>IEEE 802.1 toolkit — 표준 Ethernet에 결정성을 더하는 9개 표준을 한 자리에.</description><pubDate>Wed, 13 May 2026 09:08:00 GMT</pubDate><category>tsn</category><category>ieee-802-1</category><category>deterministic-ethernet</category><category>gptp</category><category>qbv</category><category>qbu</category><category>qci</category><category>cb</category><category>frer</category><category>qcc</category></item><item><title>PROFINET IO 모델 — Controller·Device·Supervisor 역할 추적</title><link>https://hawk90.dev/blog/embedded/protocols/industrial-ethernet/chapter07-profinet-io/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/protocols/industrial-ethernet/chapter07-profinet-io/</guid><description>PROFINET IO 통신 모델 — AR·CR·DCP·alarm·MRP redundancy까지 한 번에.</description><pubDate>Wed, 13 May 2026 09:07:00 GMT</pubDate><category>profinet</category><category>profinet-io</category><category>dcp</category><category>rpc</category><category>mrp</category></item><item><title>PROFINET 개요 분석 — RT·IRT 클래스와 실시간 등급</title><link>https://hawk90.dev/blog/embedded/protocols/industrial-ethernet/chapter06-profinet/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/protocols/industrial-ethernet/chapter06-profinet/</guid><description>Siemens 표준 산업 이더넷 — RT vs IRT.</description><pubDate>Wed, 13 May 2026 09:06:00 GMT</pubDate><category>profinet</category><category>siemens</category><category>rt</category><category>irt</category></item><item><title>EtherCAT Master 구현 비교 — SOEM·IgH·TwinCAT 분석</title><link>https://hawk90.dev/blog/embedded/protocols/industrial-ethernet/chapter05-ethercat-master/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/protocols/industrial-ethernet/chapter05-ethercat-master/</guid><description>SOEM·IgH·TwinCAT — 오픈소스와 상용 master 구현.</description><pubDate>Wed, 13 May 2026 09:05:00 GMT</pubDate><category>ethercat</category><category>soem</category><category>igh</category><category>twincat</category></item><item><title>EtherCAT 프레임 구조 분석 — Datagram·WKC·Address 모드</title><link>https://hawk90.dev/blog/embedded/protocols/industrial-ethernet/chapter04-ethercat-frame/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/protocols/industrial-ethernet/chapter04-ethercat-frame/</guid><description>EtherCAT frame이 standard Ethernet 위에 어떻게 얹히는가.</description><pubDate>Wed, 13 May 2026 09:04:00 GMT</pubDate><category>ethercat</category><category>frame</category><category>datagram</category><category>wkc</category></item><item><title>EtherCAT 아키텍처 분해 — Processing on the Fly 메커니즘</title><link>https://hawk90.dev/blog/embedded/protocols/industrial-ethernet/chapter03-ethercat-architecture/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/protocols/industrial-ethernet/chapter03-ethercat-architecture/</guid><description>Slave가 프레임을 통과시키면서 읽고 쓴다 — EtherCAT 핵심.</description><pubDate>Wed, 13 May 2026 09:03:00 GMT</pubDate><category>ethercat</category><category>beckhoff</category><category>on-the-fly</category></item><item><title>산업용 통신 실시간 요구사항 — Determinism·Jitter·Cycle Time</title><link>https://hawk90.dev/blog/embedded/protocols/industrial-ethernet/chapter02-realtime-requirements/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/protocols/industrial-ethernet/chapter02-realtime-requirements/</guid><description>Soft·Firm·Hard real-time — 산업 자동화의 시간 등급.</description><pubDate>Wed, 13 May 2026 09:02:00 GMT</pubDate><category>realtime</category><category>jitter</category><category>latency</category><category>cycle-time</category></item><item><title>산업용 이더넷 분석 — 일반 이더넷과 결정성 요구의 차이</title><link>https://hawk90.dev/blog/embedded/protocols/industrial-ethernet/chapter01-overview/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/protocols/industrial-ethernet/chapter01-overview/</guid><description>왜 표준 Ethernet으로 부족한가 — 실시간성·결정성.</description><pubDate>Wed, 13 May 2026 09:01:00 GMT</pubDate><category>industrial-ethernet</category><category>ethercat</category><category>profinet</category><category>tsn</category></item><item><title>부트로더 디버깅 기법 — DEBUG·JTAG·serial·post-mortem 분석</title><link>https://hawk90.dev/blog/embedded/bootloader/chapter22-debugging/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bootloader/chapter22-debugging/</guid><description>부트로더 디버깅 — CONFIG_DEBUG_UART, JTAG, 시리얼 콘솔, panic dump 읽기.</description><pubDate>Sat, 09 May 2026 09:22:00 GMT</pubDate><category>embedded</category><category>bootloader</category><category>u-boot</category><category>debugging</category><category>jtag</category></item><item><title>새 보드 U-Boot 포팅 실전 — defconfig 작성부터 첫 부팅까지</title><link>https://hawk90.dev/blog/embedded/bootloader/chapter21-board-porting/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bootloader/chapter21-board-porting/</guid><description>U-Boot에 새 보드를 추가하는 전체 워크플로 — configs·board·dts·MAINTAINERS.</description><pubDate>Sat, 09 May 2026 09:21:00 GMT</pubDate><category>embedded</category><category>bootloader</category><category>u-boot</category><category>porting</category><category>board</category></item><item><title>임베디드 펌웨어 업데이트 — RAUC vs SWUpdate 비교</title><link>https://hawk90.dev/blog/embedded/bootloader/chapter20-rauc-swupdate/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bootloader/chapter20-rauc-swupdate/</guid><description>U-Boot와 통합되는 펌웨어 업데이트 프레임워크 — RAUC와 SWUpdate의 비교와 적용.</description><pubDate>Sat, 09 May 2026 09:20:00 GMT</pubDate><category>embedded</category><category>bootloader</category><category>u-boot</category><category>rauc</category><category>swupdate</category><category>ota</category></item><item><title>Linux Boot ABI — ARM/ARM64 커널 진입 규약 추적</title><link>https://hawk90.dev/blog/embedded/bootloader/chapter19-kernel-handoff/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bootloader/chapter19-kernel-handoff/</guid><description>부트로더 → 커널 인계 — ARM64·RISC-V·x86 boot ABI, 인자 전달, 레지스터 상태.</description><pubDate>Sat, 09 May 2026 09:19:00 GMT</pubDate><category>embedded</category><category>bootloader</category><category>u-boot</category><category>linux-abi</category><category>kernel</category></item><item><title>U-Boot의 EFI 호환 분석 — bootefi 명령과 EFI loader 동작 원리</title><link>https://hawk90.dev/blog/embedded/bootloader/chapter18-efi-in-uboot/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bootloader/chapter18-efi-in-uboot/</guid><description>U-Boot이 UEFI Boot Services를 노출하는 방식 — bootefi, EBBR, Linux EFI stub과의 연결.</description><pubDate>Sat, 09 May 2026 09:18:00 GMT</pubDate><category>embedded</category><category>bootloader</category><category>u-boot</category><category>efi</category><category>uefi</category><category>ebbr</category></item><item><title>임베디드 A/B 부팅 이중화 — OTA 안전성을 위한 부트 슬롯 설계</title><link>https://hawk90.dev/blog/embedded/bootloader/chapter17-ab-update/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bootloader/chapter17-ab-update/</guid><description>A/B 슬롯 부트 — 양산 시스템의 안전한 펌웨어 업데이트와 자동 fallback.</description><pubDate>Sat, 09 May 2026 09:17:00 GMT</pubDate><category>embedded</category><category>bootloader</category><category>u-boot</category><category>ab-update</category><category>fallback</category></item><item><title>U-Boot Verified Boot — RSA 서명과 public key 임베딩 흐름</title><link>https://hawk90.dev/blog/embedded/bootloader/chapter16-verified-boot/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bootloader/chapter16-verified-boot/</guid><description>U-Boot Verified Boot — FIT 서명, public key를 U-Boot DT에 박는 워크플로.</description><pubDate>Sat, 09 May 2026 09:16:00 GMT</pubDate><category>embedded</category><category>bootloader</category><category>u-boot</category><category>verified-boot</category><category>security</category></item><item><title>FIT image 구조 분석 — multi-image·hash·configuration 추적</title><link>https://hawk90.dev/blog/embedded/bootloader/chapter15-fit-image/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bootloader/chapter15-fit-image/</guid><description>Flattened Image Tree — kernel·DTB·initramfs·overlay를 한 컨테이너로 묶는 포맷.</description><pubDate>Sat, 09 May 2026 09:15:00 GMT</pubDate><category>embedded</category><category>bootloader</category><category>u-boot</category><category>fit</category><category>mkimage</category></item><item><title>Modern U-Boot bootflow / bootmeth — 새 추상화 레이어 분석</title><link>https://hawk90.dev/blog/embedded/bootloader/chapter14-bootflow-bootmeth/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bootloader/chapter14-bootflow-bootmeth/</guid><description>U-Boot의 새로운 부트 모델 — bootflow / bootmeth로 distro_bootcmd 스크립트를 대체.</description><pubDate>Sat, 09 May 2026 09:14:00 GMT</pubDate><category>embedded</category><category>bootloader</category><category>u-boot</category><category>bootflow</category><category>bootmeth</category></item><item><title>U-Boot 환경 변수와 bootcmd — 부팅 시나리오 정의하기</title><link>https://hawk90.dev/blog/embedded/bootloader/chapter13-env-bootcmd/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bootloader/chapter13-env-bootcmd/</guid><description>U-Boot 환경 변수 시스템 — saveenv·bootcmd·bootargs·distro_bootcmd 패턴.</description><pubDate>Sat, 09 May 2026 09:13:00 GMT</pubDate><category>embedded</category><category>bootloader</category><category>u-boot</category><category>env</category><category>bootcmd</category></item><item><title>U-Boot USB 부팅 — fastboot·UMS·USB host 메커니즘</title><link>https://hawk90.dev/blog/embedded/bootloader/chapter12-usb-boot/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bootloader/chapter12-usb-boot/</guid><description>USB를 통한 부팅과 flash — fastboot, USB Mass Storage(UMS), USB host 부팅 흐름.</description><pubDate>Sat, 09 May 2026 09:12:00 GMT</pubDate><category>embedded</category><category>bootloader</category><category>u-boot</category><category>usb</category><category>fastboot</category></item><item><title>임베디드 네트워크 부팅 — TFTP·PXE·BOOTP 시퀀스 분석</title><link>https://hawk90.dev/blog/embedded/bootloader/chapter11-network-boot/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bootloader/chapter11-network-boot/</guid><description>네트워크를 통한 부팅 — DHCP/BOOTP·TFTP·PXE의 단계와 U-Boot 명령.</description><pubDate>Sat, 09 May 2026 09:11:00 GMT</pubDate><category>embedded</category><category>bootloader</category><category>u-boot</category><category>tftp</category><category>pxe</category></item><item><title>임베디드 스토리지 부팅 분석 — MMC·SCSI·NAND·SPI Flash 비교</title><link>https://hawk90.dev/blog/embedded/bootloader/chapter10-storage-boot/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bootloader/chapter10-storage-boot/</guid><description>부트 미디어별 동작 차이 — eMMC, SD, SATA, NAND, SPI NOR/NAND의 부트 모드.</description><pubDate>Sat, 09 May 2026 09:10:00 GMT</pubDate><category>embedded</category><category>bootloader</category><category>u-boot</category><category>storage</category><category>mmc</category><category>nand</category></item><item><title>DDR Controller 프로그래밍과 PHY Training — SPL의 가장 어려운 작업</title><link>https://hawk90.dev/blog/embedded/bootloader/chapter09-dram-init/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bootloader/chapter09-dram-init/</guid><description>DDR controller 초기화 시퀀스 — 레지스터 프로그래밍, training, 보드별 파라미터의 위치.</description><pubDate>Sat, 09 May 2026 09:09:00 GMT</pubDate><category>embedded</category><category>bootloader</category><category>u-boot</category><category>ddr</category><category>dram</category></item><item><title>U-Boot 보드 초기화 시퀀스 — board_init_f와 board_init_r 분리 이유</title><link>https://hawk90.dev/blog/embedded/bootloader/chapter08-board-init/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bootloader/chapter08-board-init/</guid><description>U-Boot 보드 초기화 흐름 — pre-relocation (board_init_f)과 post-relocation (board_init_r).</description><pubDate>Sat, 09 May 2026 09:08:00 GMT</pubDate><category>embedded</category><category>bootloader</category><category>u-boot</category><category>board-init</category></item><item><title>U-Boot Driver Model 내부 — uclass·driver·device 추상화 구조</title><link>https://hawk90.dev/blog/embedded/bootloader/chapter07-driver-model/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bootloader/chapter07-driver-model/</guid><description>U-Boot Driver Model — uclass·driver·udevice 구조와 DT 기반 driver binding.</description><pubDate>Sat, 09 May 2026 09:07:00 GMT</pubDate><category>embedded</category><category>bootloader</category><category>u-boot</category><category>driver-model</category></item><item><title>Device Tree DTB 부트로더 처리 — 로딩 시점과 fixup 메커니즘 추적</title><link>https://hawk90.dev/blog/embedded/bootloader/chapter06-device-tree/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bootloader/chapter06-device-tree/</guid><description>U-Boot가 DTB를 다루는 방식 — control DTB와 OS DTB, fdt 명령, 런타임 fixup.</description><pubDate>Sat, 09 May 2026 09:06:00 GMT</pubDate><category>embedded</category><category>bootloader</category><category>u-boot</category><category>device-tree</category><category>dtb</category></item><item><title>U-Boot Falcon Mode — SPL이 U-Boot Proper 없이 커널 직접 부팅</title><link>https://hawk90.dev/blog/embedded/bootloader/chapter05-falcon-mode/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bootloader/chapter05-falcon-mode/</guid><description>U-Boot Falcon Mode — SPL이 U-Boot Proper를 건너뛰고 커널을 직접 부트. 부트 시간 단축의 핵심.</description><pubDate>Sat, 09 May 2026 09:05:00 GMT</pubDate><category>embedded</category><category>bootloader</category><category>u-boot</category><category>falcon</category><category>boot-time</category></item><item><title>ARM 임베디드 부트 4단계 분해 — BL1·SPL·TPL·U-Boot Proper의 역할</title><link>https://hawk90.dev/blog/embedded/bootloader/chapter04-boot-stages/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bootloader/chapter04-boot-stages/</guid><description>ARM64와 RISC-V의 다단 부트 — BL1·BL2·BL31·BL33, SPL·TPL·U-Boot Proper의 책임 분할.</description><pubDate>Sat, 09 May 2026 09:04:00 GMT</pubDate><category>embedded</category><category>bootloader</category><category>u-boot</category><category>tf-a</category><category>spl</category></item><item><title>U-Boot 빌드 시스템 분석 — Kconfig·Makefile·defconfig 동작 추적</title><link>https://hawk90.dev/blog/embedded/bootloader/chapter03-build-system/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bootloader/chapter03-build-system/</guid><description>U-Boot의 빌드 시스템 — Kconfig 옵션, Makefile 구조, defconfig 패턴, out-of-tree 빌드.</description><pubDate>Sat, 09 May 2026 09:03:00 GMT</pubDate><category>embedded</category><category>bootloader</category><category>u-boot</category><category>kconfig</category><category>build</category></item><item><title>Das U-Boot vs TF-A vs EDK II — 임베디드 부트로더 생태계 비교</title><link>https://hawk90.dev/blog/embedded/bootloader/chapter02-u-boot-position/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bootloader/chapter02-u-boot-position/</guid><description>임베디드 부트로더 생태계 — Das U-Boot, ARM Trusted Firmware, EDK II의 역할 분담.</description><pubDate>Sat, 09 May 2026 09:02:00 GMT</pubDate><category>embedded</category><category>bootloader</category><category>u-boot</category><category>tf-a</category><category>edk2</category></item><item><title>ROM부터 init까지 — 임베디드 부팅 단계의 빈자리 분석</title><link>https://hawk90.dev/blog/embedded/bootloader/chapter01-boot-problem/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/bootloader/chapter01-boot-problem/</guid><description>ROM부터 init까지의 전체 흐름과, 부트로더가 그 사이에서 채우는 자리.</description><pubDate>Sat, 09 May 2026 09:01:00 GMT</pubDate><category>embedded</category><category>bootloader</category><category>u-boot</category><category>boot</category></item><item><title>PREEMPT_RT Linux — Mainline 6.12·Xenomai 4·EVL</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part5-07-preempt-rt-linux/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part5-07-preempt-rt-linux/</guid><description>2024년 9월 Linux 6.12 mainline에 합류한 PREEMPT_RT의 핵심 변경을 정리하고, Xenomai 4·EVL과 함께 RTOS와의 선택 기준을 비교합니다. threaded IRQ·sleeping spinlock·cyclictest까지 한 지도에 모읍니다.</description><pubDate>Fri, 08 May 2026 09:52:00 GMT</pubDate><category>preempt-rt</category><category>linux</category><category>xenomai</category><category>evl</category><category>real-time-linux</category></item><item><title>Apache NuttX 분석 — POSIX·PX4·NASA Ingenuity</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part5-06-nuttx/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part5-06-nuttx/</guid><description>NuttX의 POSIX-compliant 구조를 따라가며 PX4 autopilot과 NASA Ingenuity 화성 헬리콥터 채택 배경을 정리합니다. Flat/Protected/Kernel 빌드, VFS, 네트워크, NSH, micro-ROS 통합까지 한 지도로 모읍니다.</description><pubDate>Fri, 08 May 2026 09:51:00 GMT</pubDate><category>nuttx</category><category>posix</category><category>px4</category><category>ingenuity</category><category>microkernel</category></item><item><title>RTOS 선택 가이드 — Footprint·License·Certification·Ecosystem</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part5-05-selection-guide/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part5-05-selection-guide/</guid><description>FreeRTOS·Zephyr·ThreadX·RT-Thread·NuttX·VxWorks·QNX·INTEGRITY·SafeRTOS·µC/OS·PX5를 한 표에 모아 비교합니다. IoT·자동차·항공·산업·의료·웨어러블·드론별 추천과 결정 기준을 정리합니다.</description><pubDate>Fri, 08 May 2026 09:50:00 GMT</pubDate><category>selection</category><category>comparison</category><category>freertos</category><category>zephyr</category><category>vxworks</category><category>qnx</category><category>integrity</category></item><item><title>RTOS 포팅 가이드 — 새 아키텍처에 옮기는 절차</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part5-04-porting/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part5-04-porting/</guid><description>FreeRTOS와 Zephyr의 port 계층을 따라가며 새 아키텍처에 RTOS를 옮기는 절차를 정리합니다. initial stack frame, context switch assembly, tick source, critical section primitive까지 한 번에 잡습니다.</description><pubDate>Fri, 08 May 2026 09:49:00 GMT</pubDate><category>porting</category><category>architecture</category><category>port-c</category><category>context-switch</category><category>tick</category></item><item><title>RT-Thread 분석 — Object 모델·Components·Smart·Studio</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part5-03-rt-thread/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part5-03-rt-thread/</guid><description>RT-Thread의 object-oriented C 설계와 component 생태계를 따라갑니다. FreeRTOS급 경량 kernel 위에 DFS·LwIP·POSIX·FinSH가 어떻게 얹히는지, Smart variant가 무엇을 더 가져오는지 정리합니다.</description><pubDate>Fri, 08 May 2026 09:48:00 GMT</pubDate><category>rt-thread</category><category>source-analysis</category><category>components</category><category>smart</category><category>finsh</category></item><item><title>Zephyr 커널 분석 — k_thread·k_sem·Driver Model</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part5-02-zephyr-source/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part5-02-zephyr-source/</guid><description>Zephyr 커널 서브트리를 따라가며 sched.c·thread.c·sem.c의 핵심을 읽습니다. devicetree로 드라이버 인스턴스가 만들어지는 경로와 KConfig·west 빌드 체계까지 한 지도 위에 모읍니다.</description><pubDate>Fri, 08 May 2026 09:47:00 GMT</pubDate><category>zephyr</category><category>source-analysis</category><category>k_thread</category><category>device-model</category><category>device-tree</category></item><item><title>FreeRTOS 소스 분석 — tasks.c·queue.c·port.c 추적</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part5-01-freertos-source/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part5-01-freertos-source/</guid><description>FreeRTOS-Kernel 저장소의 핵심 파일 셋을 따라가며 xTaskCreate부터 PendSV까지의 흐름을 정리합니다. TCB·ready list·port 계층 사이의 경계가 어떻게 그어져 있는지 source 수준에서 살펴봅니다.</description><pubDate>Fri, 08 May 2026 09:46:00 GMT</pubDate><category>freertos</category><category>source-analysis</category><category>tasks</category><category>queue</category><category>port</category></item><item><title>C++ in RTOS — RAII·std::thread·ETL·Coroutine</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part4-13-cpp-in-rtos/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part4-13-cpp-in-rtos/</guid><description>RTOS C API를 C++ 객체로 감싸는 패턴을 정리합니다. RAII MutexGuard와 ScopedIRQDisable, std::thread/std::mutex의 한계와 직접 xTaskCreate가 결정성을 갖는 이유, ETL로 STL을 대체하는 법, C++20 coroutine을 RTOS 위에 얹는 방식까지 다룹니다.</description><pubDate>Thu, 07 May 2026 09:45:00 GMT</pubDate><category>cpp</category><category>rtos</category><category>raii</category><category>std-thread</category><category>std-mutex</category><category>etl</category><category>coroutine</category></item><item><title>AMP와 OpenAMP — Heterogeneous SoC·RPMsg·remoteproc</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part4-12-amp-openamp/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part4-12-amp-openamp/</guid><description>Cortex-A와 Cortex-M이 한 칩 위에서 별도의 OS를 돌리는 AMP 구조를 정리합니다. OpenAMP framework(libmetal/RPMsg/remoteproc), virtio-vring 기반 shared memory IPC, mailbox 인터럽트, i.MX·STM32MP·RP2350 사례까지 다룹니다.</description><pubDate>Thu, 07 May 2026 09:44:00 GMT</pubDate><category>amp</category><category>openamp</category><category>heterogeneous</category><category>rpmsg</category><category>remoteproc</category><category>imx</category><category>stm32mp</category></item><item><title>TrustZone과 TF-M — Secure/Non-Secure·NSC Veneer·PSA</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part4-11-trustzone-tfm/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part4-11-trustzone-tfm/</guid><description>Cortex-M33/M55/M85의 TrustZone-M과 TF-M secure firmware를 정리합니다. SAU/IDAU로 메모리를 secure/non-secure로 가르고, NSC veneer + SG 명령으로 안전하게 cross-world call을 수행하는 구조, PSA Crypto/Storage/Attestation API, secure boot chain까지 다룹니다.</description><pubDate>Thu, 07 May 2026 09:43:00 GMT</pubDate><category>trustzone</category><category>tf-m</category><category>security</category><category>cortex-m33</category><category>psa</category><category>secure-boot</category></item><item><title>RTOS System Call — SVC·ECALL·User/Kernel 분리·FreeRTOS-MPU</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part4-10-syscall/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part4-10-syscall/</guid><description>MPU/MMU로 user task와 kernel을 분리하는 RTOS의 syscall 구조를 정리합니다. Cortex-M의 SVC trap, RISC-V의 ECALL, FreeRTOS-MPU와 Zephyr USERSPACE의 차이, capability 검사, syscall overhead 측정까지 다룹니다.</description><pubDate>Thu, 07 May 2026 09:42:00 GMT</pubDate><category>syscall</category><category>svc</category><category>ecall</category><category>mpu</category><category>mmu</category><category>privilege</category><category>freertos-mpu</category></item><item><title>Software Timer 분석 — Daemon Task·자료구조·ISR-Safe API</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part4-09-software-timer/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part4-09-software-timer/</guid><description>FreeRTOS Software Timer 내부를 따라가며 daemon task 구조, sorted list와 timer wheel 자료구조, one-shot/auto-reload 동작, xTimerStartFromISR과 xTimerPendFunctionCall을 통한 ISR 워크 deferral을 정리합니다.</description><pubDate>Thu, 07 May 2026 09:41:00 GMT</pubDate><category>software-timer</category><category>daemon</category><category>callback</category><category>timer-wheel</category></item><item><title>SMP Spinlock 구현 — LDREX/STREX·Ticket Lock·MCS·WFE/SEV</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part4-08-spinlock-smp/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part4-08-spinlock-smp/</guid><description>ARM LDREX/STREX exclusive monitor와 ARMv8.1 LSE를 출발점으로 SMP spinlock 구현을 따라갑니다. test-and-test-and-set, ticket lock, MCS lock의 fairness와 cache bouncing trade-off, WFE/SEV로 만드는 저전력 spin을 정리합니다.</description><pubDate>Thu, 07 May 2026 09:40:00 GMT</pubDate><category>spinlock</category><category>smp</category><category>ldrex</category><category>strex</category><category>mcs</category><category>ticket-lock</category></item><item><title>SMP RTOS 설계 — Ready List·Affinity·IPI·Load Balancing</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part4-07-smp-rtos/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part4-07-smp-rtos/</guid><description>FreeRTOS 11 SMP와 Zephyr SMP를 단일 ready list와 per-CPU ready list 두 축으로 비교합니다. task affinity, IPI, cross-core wake, cache coherency 경계까지 설계 관점에서 정리합니다.</description><pubDate>Thu, 07 May 2026 09:39:00 GMT</pubDate><category>smp</category><category>multicore</category><category>affinity</category><category>ipi</category><category>load-balancing</category></item><item><title>Stack Overflow 탐지 — Canary·MPU·Watermark 3중 방어</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part4-06-stack-overflow/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part4-06-stack-overflow/</guid><description>임베디드 가장 흔한 silent bug가 스택 오버플로우입니다. FreeRTOS canary, MPU region 기반 hardware 보호, high-water mark 측정, 정적 분석 도구까지 다층 방어 전략을 정리합니다.</description><pubDate>Thu, 07 May 2026 09:38:00 GMT</pubDate><category>stack-overflow</category><category>canary</category><category>mpu</category><category>watermark</category></item><item><title>Memory Pool — Fixed-Size Block Allocator의 단순함과 강력함</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part4-05-memory-pool/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part4-05-memory-pool/</guid><description>같은 크기 객체를 다수 alloc/free하는 패턴을 위한 fixed-size pool입니다. free list 구조, O(1) 보장, per-class pool, lock-free 변형까지 실전 패턴을 정리합니다.</description><pubDate>Thu, 07 May 2026 09:37:00 GMT</pubDate><category>pool</category><category>fixed-size</category><category>free-list</category><category>slab</category></item><item><title>Static Allocation — 컴파일 타임으로 동적 위험 제거하기</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part4-04-static-allocation/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part4-04-static-allocation/</guid><description>모든 RTOS 객체를 컴파일 타임에 fixed로 두는 패턴입니다. FreeRTOS Static API, Zephyr 매크로, linker section 배치, MISRA/DO-178C 호환성까지 정리합니다.</description><pubDate>Thu, 07 May 2026 09:36:00 GMT</pubDate><category>static</category><category>deterministic</category><category>misra</category><category>do-178c</category><category>linker</category></item><item><title>TLSF Allocator 분석 — Two-Level Segregated Fit O(1)</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part4-03-tlsf/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part4-03-tlsf/</guid><description>Masmano 2004의 TLSF 알고리즘을 풀어봅니다. Bitmap과 CLZ 명령으로 alloc·free·coalesce 모두 O(1)을 보장하며, 자동차·로봇·RT 게임의 표준 dynamic allocator가 된 이유를 살펴봅니다.</description><pubDate>Thu, 07 May 2026 09:35:00 GMT</pubDate><category>tlsf</category><category>allocator</category><category>deterministic</category><category>o1</category></item><item><title>FreeRTOS Heap_1~5 분석 — 5종 Allocator의 구조와 트레이드오프</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part4-02-freertos-heap/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part4-02-freertos-heap/</guid><description>FreeRTOS가 제공하는 다섯 가지 heap 구현을 source 수준에서 비교합니다. heap_1의 bump부터 heap_5의 multi-region까지, 실시간성과 단편화 관점에서 어떤 워크로드에 어떤 구현이 맞는지 정리합니다.</description><pubDate>Thu, 07 May 2026 09:34:00 GMT</pubDate><category>freertos</category><category>heap</category><category>allocator</category></item><item><title>실시간 메모리 요구사항 — Determinism·Fragmentation·WCET</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part4-01-realtime-memory/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part4-01-realtime-memory/</guid><description>동적 할당의 한계와 fragmentation, WCET-bounded allocator, safety-critical 기준을 살펴봅니다.</description><pubDate>Thu, 07 May 2026 09:33:00 GMT</pubDate><category>memory</category><category>determinism</category><category>fragmentation</category><category>wcet</category></item><item><title>Stream Buffer와 Message Buffer — FreeRTOS 10의 Lock-Free SPSC</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part3-11-stream-message-buffer/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part3-11-stream-message-buffer/</guid><description>FreeRTOS 10+ 추가된 Stream/Message Buffer. Lock-free SPSC ring buffer로 queue보다 10배 빠른 IPC. ISR-safe variant, byte stream vs variable-length frame의 선택.</description><pubDate>Wed, 06 May 2026 09:32:00 GMT</pubDate><category>stream-buffer</category><category>message-buffer</category><category>freertos</category><category>ipc</category><category>lock-free</category><category>spsc</category></item><item><title>Deadlock 분석 — 4 조건·Wait-for Graph·Lock Ordering·Timeout</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part3-10-deadlock/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part3-10-deadlock/</guid><description>Coffman의 네 조건과 wait-for graph 분석, lock ordering, timeout, hierarchical locking을 살펴봅니다.</description><pubDate>Wed, 06 May 2026 09:31:00 GMT</pubDate><category>deadlock</category><category>detection</category><category>avoidance</category><category>lock-ordering</category></item><item><title>ISR-Safe API 설계 — FromISR 패턴·Higher Priority Wake·Deferred Work</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part3-09-isr-safe-api/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part3-09-isr-safe-api/</guid><description>FromISR API 내부 구조와 pxHigherPriorityTaskWoken, yield 결정, deferred work 패턴을 정리합니다.</description><pubDate>Wed, 06 May 2026 09:30:00 GMT</pubDate><category>isr-safe</category><category>fromisr</category><category>higher-priority</category><category>deferred</category></item><item><title>Event Group 분석 — Bit Flag·AND/OR Wait·Sync Barrier</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part3-08-event-group/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part3-08-event-group/</guid><description>FreeRTOS Event Group — 24-bit flag, AND·OR semantics, clear-on-exit, multi-task sync.</description><pubDate>Wed, 06 May 2026 09:29:00 GMT</pubDate><category>event-group</category><category>bit-flag</category><category>and-or</category><category>sync-barrier</category></item><item><title>Queue 내부 구현 추적 — Ring Buffer·2 Wait Lists·Atomic Send/Receive</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part3-07-queue-impl/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part3-07-queue-impl/</guid><description>FreeRTOS Queue 코드 — pcWriteTo·pcReadFrom·uxMessagesWaiting + xTasksWaitingToSend/Receive.</description><pubDate>Wed, 06 May 2026 09:28:00 GMT</pubDate><category>queue</category><category>ring-buffer</category><category>wait-list</category><category>atomic</category></item><item><title>Priority Ceiling Protocol — Immediate vs Original 비교</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part3-06-priority-ceiling/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part3-06-priority-ceiling/</guid><description>PI의 대안. 각 mutex에 정적 ceiling — take 즉시 boost. Deadlock 방지.</description><pubDate>Wed, 06 May 2026 09:27:00 GMT</pubDate><category>priority-ceiling</category><category>pcp</category><category>deadlock-free</category></item><item><title>Priority Inheritance 구현 — Inherit·Disinherit·Chain</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part3-05-priority-inheritance/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part3-05-priority-inheritance/</guid><description>FreeRTOS PI 코드 분석 — vTaskPriorityInherit, vTaskPriorityDisinherit, chain handling.</description><pubDate>Wed, 06 May 2026 09:26:00 GMT</pubDate><category>priority-inheritance</category><category>pi</category><category>inherit</category><category>disinherit</category></item><item><title>Priority Inversion 문제 — Mars Pathfinder 사례·Bounded vs Unbounded</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part3-04-priority-inversion/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part3-04-priority-inversion/</guid><description>고우선 task가 저우선 task 때문에 막힘. 1997 화성 탐사선 reset의 원인.</description><pubDate>Wed, 06 May 2026 09:25:00 GMT</pubDate><category>priority-inversion</category><category>mars-pathfinder</category><category>bounded</category><category>unbounded</category></item><item><title>Mutex 내부 구현 추적 — Owner·Recursion Count·ISR 금지</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part3-03-mutex-impl/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part3-03-mutex-impl/</guid><description>Mutex = Semaphore + pxMutexHolder + uxBasePriority. Recursive variant는 lock-count.</description><pubDate>Wed, 06 May 2026 09:24:00 GMT</pubDate><category>mutex</category><category>owner</category><category>recursion</category><category>lock-count</category><category>queue</category></item><item><title>Semaphore 내부 구현 추적 — Counter·Wait List·ISR-Safe Variant</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part3-02-semaphore-impl/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part3-02-semaphore-impl/</guid><description>FreeRTOS semaphore = Queue wrapper. Counter + priority-sorted wait list.</description><pubDate>Wed, 06 May 2026 09:23:00 GMT</pubDate><category>semaphore</category><category>wait-list</category><category>counter</category><category>queue</category><category>isr-safe</category></item><item><title>Critical Section 구현 비교 — IRQ Disable·BASEPRI·Spinlock</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part3-01-critical-section/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part3-01-critical-section/</guid><description>3 가지 구현 — cpsid/BASEPRI mask, taskENTER_CRITICAL, SMP spinlock. Hold time이 latency 결정.</description><pubDate>Wed, 06 May 2026 09:22:00 GMT</pubDate><category>critical-section</category><category>irq-disable</category><category>basepri</category><category>spinlock</category></item><item><title>RTOS Tracing과 Observability — Tracealyzer·SystemView·ITM/ETM</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part2-11-tracing-observability/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part2-11-tracing-observability/</guid><description>Percepio Tracealyzer와 Segger SystemView, Cortex-M의 ITM/ETM 하드웨어 트레이스. Task switch·ISR·queue·mutex 이벤트를 시간축에 펼쳐 인과를 추적합니다.</description><pubDate>Tue, 05 May 2026 09:21:00 GMT</pubDate><category>tracing</category><category>observability</category><category>tracealyzer</category><category>systemview</category><category>itm</category><category>etm</category></item><item><title>Scheduler Latency 측정 기법 — GPIO Toggle·DWT·ftrace·cyclictest</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part2-10-scheduler-latency/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part2-10-scheduler-latency/</guid><description>ISR 종료 → ready task 실행까지의 시간. 측정 방법과 worst-case 추적.</description><pubDate>Tue, 05 May 2026 09:20:00 GMT</pubDate><category>scheduler</category><category>latency</category><category>measurement</category><category>dwt</category><category>gpio</category><category>ftrace</category><category>cyclictest</category></item><item><title>Tickless 모드 구현 — Idle Tick Suppression·Sleep·Wake 보정</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part2-09-tickless/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part2-09-tickless/</guid><description>Idle 시 SysTick 멈춤 + CPU sleep. 다음 task wake 시점까지 동적 timer 설정. 배터리 IoT 핵심.</description><pubDate>Tue, 05 May 2026 09:19:00 GMT</pubDate><category>tickless</category><category>low-power</category><category>suppress-tick</category><category>wfi</category><category>sleep</category></item><item><title>RTOS Tick과 타이머 — SysTick·Generic Timer·configTICK_RATE_HZ</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part2-08-tick-timer/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part2-08-tick-timer/</guid><description>RTOS의 심장 박동. SysTick 1 kHz가 표준 — Hz 선택의 trade-off.</description><pubDate>Tue, 05 May 2026 09:18:00 GMT</pubDate><category>tick</category><category>systick</category><category>hw-timer</category><category>time-slice</category></item><item><title>RISC-V Context Switch 분석 — ECALL·mret·CSR</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part2-07-riscv-context/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part2-07-riscv-context/</guid><description>RISC-V는 모든 레지스터 SW save. ECALL/mret + CSR (mscratch/mepc/mcause/mstatus).</description><pubDate>Tue, 05 May 2026 09:17:00 GMT</pubDate><category>risc-v</category><category>ecall</category><category>mret</category><category>csr</category><category>mscratch</category><category>mepc</category></item><item><title>ARM Cortex-A Context Switch — Mode 전환·SVC·Banked Registers</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part2-06-cortex-a-context/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part2-06-cortex-a-context/</guid><description>Cortex-A의 7 모드와 모드별 banked register. 모드 간 SP·LR 별도 — Cortex-M보다 복잡.</description><pubDate>Tue, 05 May 2026 09:16:00 GMT</pubDate><category>cortex-a</category><category>svc</category><category>mode</category><category>banked-registers</category><category>mmu</category></item><item><title>ARM Cortex-M Context Switch — PendSV·MSP/PSP 어셈블리 추적</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part2-05-cortex-m-context/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part2-05-cortex-m-context/</guid><description>Cortex-M context switch는 PendSV 예외와 dual-stack 모델로 압축됩니다. FreeRTOS port의 PendSV 핸들러 어셈블리를 한 줄씩 따라가며 EXC_RETURN, BASEPRI, lazy FPU까지 풀어봅니다.</description><pubDate>Tue, 05 May 2026 09:15:00 GMT</pubDate><category>cortex-m</category><category>pendsv</category><category>msp</category><category>psp</category><category>svc</category><category>assembly</category></item><item><title>Context Switch 원리 분석 — 레지스터 저장·복원·Stack Frame</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part2-04-context-switch/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part2-04-context-switch/</guid><description>Context switch는 결국 CPU의 모든 가시 상태를 task 스택에 통째로 복제하는 일입니다. 어디서 발생하고, 무엇을 저장하고, 비용은 얼마인지 아키텍처 중립적으로 정리합니다.</description><pubDate>Tue, 05 May 2026 09:14:00 GMT</pubDate><category>context-switch</category><category>register</category><category>stack-frame</category><category>caller-saved</category><category>callee-saved</category></item><item><title>Scheduler 알고리즘 구현 추적 — Next-Task Selection 로직</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part2-03-scheduler-algorithm/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part2-03-scheduler-algorithm/</guid><description>FreeRTOS pxCurrentTCB 결정. CLZ 최적화, tie-breaking, scheduler entry points.</description><pubDate>Tue, 05 May 2026 09:13:00 GMT</pubDate><category>scheduler</category><category>next-task</category><category>pxcurrenttcb</category><category>clz</category></item><item><title>Blocked List 자료구조 — Timeout 정렬·Delta List·Two-List Scheme</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part2-02-blocked-list/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part2-02-blocked-list/</guid><description>Blocked task의 timeout 관리. Sorted list + tick wraparound 처리. FreeRTOS의 2-list scheme.</description><pubDate>Tue, 05 May 2026 09:12:00 GMT</pubDate><category>scheduler</category><category>blocked-list</category><category>timeout</category><category>delta-list</category><category>tick-wraparound</category></item><item><title>Ready List 자료구조 분석 — Linked List·Bitmap·O(1) Scheduler</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part2-01-ready-list/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part2-01-ready-list/</guid><description>Ready 상태 task를 보관하는 자료구조 선택이 곧 스케줄러 latency를 결정합니다. FreeRTOS의 array-of-lists, bitmap + CLZ 최적화, uC/OS의 8×8 LUT까지 한 번에 정리합니다.</description><pubDate>Tue, 05 May 2026 09:11:00 GMT</pubDate><category>scheduler</category><category>ready-list</category><category>bitmap</category><category>linked-list</category><category>o1</category></item><item><title>실시간성 분석 — Latency·Jitter·Deadline·WCET·RMA</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part1-10-realtime-analysis/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part1-10-realtime-analysis/</guid><description>4 핵심 지표인 Latency, Jitter, Deadline, WCET를 다룹니다. Hard와 Soft real-time의 차이, Rate Monotonic Analysis로 schedulability를 증명하는 방법을 살펴봅니다.</description><pubDate>Mon, 04 May 2026 09:10:00 GMT</pubDate><category>realtime</category><category>latency</category><category>jitter</category><category>wcet</category><category>rma</category><category>deadline</category></item><item><title>큐와 메시지 패싱 — Producer-Consumer·Ring Buffer·전달 의미</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part1-09-queues/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part1-09-queues/</guid><description>Task 간 데이터 전달의 표준입니다. FreeRTOS는 by-value copy이며, 대용량은 pointer queue로 처리합니다.</description><pubDate>Mon, 04 May 2026 09:09:00 GMT</pubDate><category>queue</category><category>message-passing</category><category>producer-consumer</category><category>ring-buffer</category></item><item><title>Mutex 개념 분해 — Ownership·Recursive·Priority Inheritance</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part1-08-mutex/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part1-08-mutex/</guid><description>공유 자원 보호의 정답입니다. Owner tracking 덕에 PI가 가능하고, recursive로 재진입도 허용합니다.</description><pubDate>Mon, 04 May 2026 09:08:00 GMT</pubDate><category>mutex</category><category>ownership</category><category>recursive</category><category>priority-inheritance</category><category>mutual-exclusion</category></item><item><title>Semaphore 개념 분해 — Counting·Binary·P/V 연산</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part1-07-semaphore/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part1-07-semaphore/</guid><description>Dijkstra의 P/V(1965)에서 출발한 Counting(N 자원)과 Binary(신호) 세마포어를 다룹니다. ISR에서 task로 신호를 전달하는 표준 도구입니다.</description><pubDate>Mon, 04 May 2026 09:07:00 GMT</pubDate><category>semaphore</category><category>counting</category><category>binary</category><category>dijkstra</category><category>pv</category></item><item><title>동기화 기초 분석 — Critical Section·Mutual Exclusion·Race Condition</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part1-06-sync-basics/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part1-06-sync-basics/</guid><description>공유 자원 보호의 3가지 도구로 interrupt disable, spinlock, mutex가 있습니다. 언제 어느 것을 쓰는지 정리합니다.</description><pubDate>Mon, 04 May 2026 09:06:00 GMT</pubDate><category>sync</category><category>critical-section</category><category>mutex</category><category>race-condition</category><category>atomic</category></item><item><title>인터럽트와 RTOS — ISR Context·Deferred Processing·FromISR API</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part1-05-interrupts-rtos/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part1-05-interrupts-rtos/</guid><description>ISR은 task가 아니므로 context도 따로 관리됩니다. Long work는 deferred task로 넘기고, FromISR API 패턴을 씁니다.</description><pubDate>Mon, 04 May 2026 09:05:00 GMT</pubDate><category>rtos</category><category>isr</category><category>deferred</category><category>fromisr</category><category>bottom-half</category></item><item><title>Preemption과 Cooperation — 강제 전환 vs 자발 양보</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part1-04-preemption/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part1-04-preemption/</guid><description>Preemptive는 tick과 IRQ에서 강제로 전환합니다. Cooperative는 yield를 명시해야 합니다. latency와 predictability의 trade-off를 다룹니다.</description><pubDate>Mon, 04 May 2026 09:04:00 GMT</pubDate><category>rtos</category><category>preemption</category><category>cooperative</category><category>yield</category><category>tick</category></item><item><title>실시간 스케줄링 알고리즘 비교 — RR·Priority·EDF·RMS</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part1-03-scheduling-algorithms/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part1-03-scheduling-algorithms/</guid><description>Round Robin, Priority-based preemptive, Earliest Deadline First, Rate Monotonic을 다룹니다. 임베디드 RTOS는 대부분 fixed-priority preemptive를 씁니다.</description><pubDate>Mon, 04 May 2026 09:03:00 GMT</pubDate><category>rtos</category><category>scheduler</category><category>rr</category><category>priority</category><category>edf</category><category>rms</category></item><item><title>Task와 Thread 개념 — TCB·상태 머신·생명 주기 분석</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part1-02-task-thread/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part1-02-task-thread/</guid><description>Task는 stack과 TCB, 상태로 구성됩니다. 5상태 머신(Running·Ready·Blocked·Suspended·Deleted)과 그 전이를 다룹니다.</description><pubDate>Mon, 04 May 2026 09:02:00 GMT</pubDate><category>rtos</category><category>task</category><category>tcb</category><category>state-machine</category><category>lifecycle</category></item><item><title>RTOS가 필요한 이유 — 일반 OS와의 결정적 차이</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/part1-01-why-rtos/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/part1-01-why-rtos/</guid><description>Super-loop는 모든 작업이 직렬화되어 deadline을 보장하지 못합니다. RTOS는 preemption과 우선순위로 실시간성을 확보합니다.</description><pubDate>Mon, 04 May 2026 09:01:00 GMT</pubDate><category>rtos</category><category>super-loop</category><category>realtime</category><category>preemption</category></item><item><title>Practical RTOS Internals — 실시간 커널 내부 분석 시리즈 소개</title><link>https://hawk90.dev/blog/embedded/rtos/practical-internals/00-preface/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/rtos/practical-internals/00-preface/</guid><description>RTOS를 사용하는 것이 아니라 이해하고 구현하는 법. Scheduler, context switch, memory allocator의 내부 동작을 소스 코드 수준에서 분석합니다.</description><pubDate>Mon, 04 May 2026 09:00:00 GMT</pubDate><category>rtos</category><category>freertos</category><category>zephyr</category><category>scheduler</category><category>context-switch</category><category>embedded</category><category>arm</category><category>risc-v</category></item><item><title>임베디드 HAL 설계 패턴 — Static·Dynamic·Hybrid 비교</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part5-04-hal-design-patterns/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part5-04-hal-design-patterns/</guid><description>범용 HAL 구조 — 벤더 종속성 격리, 다중 보드/MCU 지원, 시리즈 마무리.</description><pubDate>Sat, 02 May 2026 09:40:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>hal</category><category>abstraction</category><category>portability</category><category>board-support</category></item><item><title>Peripheral 추상화 — UART·SPI·I2C 공통 인터페이스 설계</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part5-03-peripheral-abstraction/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part5-03-peripheral-abstraction/</guid><description>UART, SPI, I2C — peripheral을 type-safe class로. Blocking, interrupt, DMA 패턴.</description><pubDate>Sat, 02 May 2026 09:39:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>peripheral</category><category>uart</category><category>spi</category><category>i2c</category><category>dma</category></item><item><title>GPIO 추상화 패턴 — Template·Concept으로 보드 독립성</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part5-02-gpio-abstraction/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part5-02-gpio-abstraction/</guid><description>GPIO pin = type — 컴파일 타임에 핀 설정 검증, runtime 비용 0.</description><pubDate>Sat, 02 May 2026 09:38:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>gpio</category><category>template</category><category>type-safe</category><category>hal</category></item><item><title>MMIO Register 추상화 — 타입 안전한 비트 필드 접근</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part5-01-register-abstraction/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part5-01-register-abstraction/</guid><description>MMIO를 type-safe하게 — volatile, bit field, register wrapper class.</description><pubDate>Sat, 02 May 2026 09:37:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>register</category><category>mmio</category><category>volatile</category><category>type-safe</category><category>hardware</category></item><item><title>Singleton 대안 패턴 — Service Locator·Static Init·Phantom</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part4-08-singleton-alternatives/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part4-08-singleton-alternatives/</guid><description>임베디드의 DI 패턴 — Construct-On-First-Use, static dependency injection, service locator.</description><pubDate>Fri, 01 May 2026 09:36:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>singleton</category><category>dependency-injection</category><category>static-di</category><category>service-locator</category></item><item><title>Compile-time FSM 구현 — 템플릿으로 상태 전이 검증</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part4-07-compile-time-fsm/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part4-07-compile-time-fsm/</guid><description>constexpr state machine — 컴파일 타임에 전이 검증, runtime 코드 0.</description><pubDate>Fri, 01 May 2026 09:35:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>fsm</category><category>constexpr</category><category>compile-time</category><category>template-meta</category></item><item><title>임베디드 State Machine 패턴 — Variant·Visitor·Table-driven 비교</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part4-06-state-machine/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part4-06-state-machine/</guid><description>타입 안전한 상태 머신 — enum + switch부터 std::variant, etl::fsm까지.</description><pubDate>Fri, 01 May 2026 09:34:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>state-machine</category><category>fsm</category><category>variant</category><category>etl</category><category>type-safe</category></item><item><title>Type-safe Flags 패턴 — Enum Class·Strong Typedef·Tag</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part4-05-type-safe-flags/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part4-05-type-safe-flags/</guid><description>enum class + bit operators — type-safe 비트 플래그. 의도하지 않은 변환 차단.</description><pubDate>Fri, 01 May 2026 09:33:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>enum-class</category><category>bit-flags</category><category>type-safe</category></item><item><title>Lock-free Container 구현 — SPSC Queue·Ring Buffer</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part4-04-lock-free-container/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part4-04-lock-free-container/</guid><description>SPSC queue, MPMC stack, ring buffer — lock-free 자료구조 구현 패턴.</description><pubDate>Fri, 01 May 2026 09:32:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>lock-free</category><category>queue</category><category>stack</category><category>ring-buffer</category><category>spsc</category><category>mpmc</category></item><item><title>임베디드 Lock-free 기초 — atomic·memory ordering·CAS</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part4-03-lock-free-basics/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part4-03-lock-free-basics/</guid><description>Atomic, CAS, memory order — mutex 없이 동시성. 임베디드의 ISR-safe 패턴.</description><pubDate>Fri, 01 May 2026 09:31:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>lock-free</category><category>atomic</category><category>cas</category><category>memory-order</category><category>isr</category></item><item><title>ETL 라이브러리 분석 — Embedded Template Library의 STL 대체</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part4-02-etl-library/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part4-02-etl-library/</guid><description>Embedded Template Library — heap 없는 STL 대체, fsm, message router 포함.</description><pubDate>Fri, 01 May 2026 09:30:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>etl</category><category>library</category><category>stl-alternative</category><category>fsm</category></item><item><title>Intrusive Containers 분석 — 동적 할당 없는 컨테이너 설계</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part4-01-intrusive-containers/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part4-01-intrusive-containers/</guid><description>객체가 자기 next pointer 보유 — 동적 할당 없는 linked list와 tree.</description><pubDate>Fri, 01 May 2026 09:29:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>intrusive</category><category>linked-list</category><category>container</category><category>no-alloc</category></item><item><title>임베디드 C++ 소유권 모델 — single·shared·borrow 패턴</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part3-10-ownership-model/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part3-10-ownership-model/</guid><description>Owner, observer, borrower — 객체 lifetime의 명확한 책임 할당.</description><pubDate>Thu, 30 Apr 2026 09:28:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>ownership</category><category>lifetime</category><category>reference</category><category>design</category></item><item><title>임베디드 스마트 포인터 선택 — unique·shared·custom 비교</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part3-09-smart-pointer-choice/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part3-09-smart-pointer-choice/</guid><description>unique_ptr vs shared_ptr vs raw pointer — 임베디드의 소유권 모델 선택.</description><pubDate>Thu, 30 Apr 2026 09:27:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>smart-pointer</category><category>unique-ptr</category><category>shared-ptr</category><category>ownership</category></item><item><title>No-RTTI C++ 설계 — dynamic_cast 제거와 정적 타입 분기</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part3-08-no-rtti-design/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part3-08-no-rtti-design/</guid><description>-fno-rtti 환경에서 type info 없이 다형성 — enum tag, std::variant, CRTP.</description><pubDate>Thu, 30 Apr 2026 09:26:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>no-rtti</category><category>variant</category><category>type-id</category><category>polymorphism</category></item><item><title>std::expected 분석 — C++23 결과 타입과 에러 전파</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part3-07-expected/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part3-07-expected/</guid><description>C++23의 Result type — Rust 같은 monadic 에러 처리, 예외 없이 풍부한 정보.</description><pubDate>Thu, 30 Apr 2026 09:25:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>expected</category><category>cpp23</category><category>result-type</category><category>monadic</category></item><item><title>임베디드 에러 처리 패턴 — Result·errno·optional 비교</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part3-06-error-handling-patterns/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part3-06-error-handling-patterns/</guid><description>Result types, error chains, exception-free RAII — 실용적 에러 시스템 구축 패턴.</description><pubDate>Thu, 30 Apr 2026 09:24:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>error-handling</category><category>result-type</category><category>error-chain</category><category>fatal-error</category></item><item><title>No-Exception C++ 설계 — 코드 크기·결정성 트레이드오프</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part3-05-no-exception-design/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part3-05-no-exception-design/</guid><description>-fno-exceptions 환경에서 에러 처리 — error code, std::optional, std::expected.</description><pubDate>Thu, 30 Apr 2026 09:23:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>no-exceptions</category><category>error-handling</category><category>optional</category><category>expected</category></item><item><title>std::pmr 임베디드 활용 — Polymorphic Memory Resource 분석</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part3-04-pmr/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part3-04-pmr/</guid><description>C++17 polymorphic allocator — 같은 컨테이너 타입에 다른 메모리 출처 주입.</description><pubDate>Thu, 30 Apr 2026 09:22:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>pmr</category><category>polymorphic-allocator</category><category>cpp17</category><category>memory-resource</category></item><item><title>Pool Allocator 구현 — Fixed-Size Block과 O(1) 보장</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part3-03-pool-allocator/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part3-03-pool-allocator/</guid><description>고정 크기 블록 + free list — 임베디드의 표준 allocator 구현.</description><pubDate>Thu, 30 Apr 2026 09:21:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>pool-allocator</category><category>free-list</category><category>memory-management</category></item><item><title>Custom Allocator 기초 — std::allocator 인터페이스 분석</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part3-02-custom-allocator-basics/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part3-02-custom-allocator-basics/</guid><description>STL allocator interface — 표준 컨테이너의 메모리 출처를 제어.</description><pubDate>Thu, 30 Apr 2026 09:20:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>allocator</category><category>custom-allocator</category><category>stl</category></item><item><title>동적 할당 없는 임베디드 C++ — placement new·정적 객체·풀</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part3-01-no-dynamic-alloc/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part3-01-no-dynamic-alloc/</guid><description>임베디드의 첫 번째 원칙 — new/malloc 없이 modern C++의 STL 같은 컨테이너 활용.</description><pubDate>Thu, 30 Apr 2026 09:19:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>no-heap</category><category>static-allocation</category><category>std-array</category><category>etl</category></item><item><title>C++20 Concepts 활용 — 템플릿 제약과 가독성 개선</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part2-10-concepts/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part2-10-concepts/</guid><description>Template 제약을 명시 — SFINAE의 가독성 개선, 에러 메시지 명확화, 자체 문서화.</description><pubDate>Wed, 29 Apr 2026 09:18:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>concepts</category><category>cpp20</category><category>templates</category><category>constraints</category></item><item><title>Type Traits 임베디드 활용 — SFINAE·is_pod·컴파일 타임 검사</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part2-09-type-traits/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part2-09-type-traits/</guid><description>std::is_*, std::enable_if, SFINAE — 컴파일 타임 type 정보로 코드 분기와 검증.</description><pubDate>Wed, 29 Apr 2026 09:17:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>type-traits</category><category>sfinae</category><category>enable-if</category><category>compile-time</category></item><item><title>CRTP 패턴 분석 — vtable 없는 정적 다형성</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part2-08-static-polymorphism/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part2-08-static-polymorphism/</guid><description>Curiously Recurring Template Pattern — virtual 함수 없이 컴파일 타임 다형성. vtable 0, 간접 호출 0.</description><pubDate>Wed, 29 Apr 2026 09:16:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>crtp</category><category>polymorphism</category><category>virtual</category><category>zero-cost</category></item><item><title>Template 비용 분석 — 코드 폭증·인스턴스화·디버그 정보 측정</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part2-07-templates-cost/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part2-07-templates-cost/</guid><description>Template instantiation의 코드 bloat — 추적, 통제, 공통 부분 분리 패턴.</description><pubDate>Wed, 29 Apr 2026 09:15:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>templates</category><category>code-bloat</category><category>instantiation</category><category>optimization</category></item><item><title>임베디드 Templates 기초 — 타입 안전과 코드 재사용 분석</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part2-06-templates-basics/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part2-06-templates-basics/</guid><description>함수 템플릿과 클래스 템플릿 — 컴파일 타임 다형성으로 type-safe + zero-cost generic 코드.</description><pubDate>Wed, 29 Apr 2026 09:14:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>templates</category><category>generic</category><category>type-safe</category><category>instantiation</category></item><item><title>consteval과 constinit 분석 — C++20 컴파일 타임 강제 메커니즘</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part2-05-consteval-constinit/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part2-05-consteval-constinit/</guid><description>C++20의 컴파일 타임 강제 — consteval은 함수 호출을, constinit은 변수 초기화를 컴파일 타임에 강제합니다.</description><pubDate>Wed, 29 Apr 2026 09:13:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>cpp20</category><category>consteval</category><category>constinit</category><category>compile-time</category></item><item><title>constexpr 고급 활용 — 룩업 테이블·CRC·해시 컴파일 타임 생성</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part2-04-constexpr-advanced/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part2-04-constexpr-advanced/</guid><description>컴파일 타임 sort, search, 문자열 — constexpr 알고리즘의 한계와 가능성.</description><pubDate>Wed, 29 Apr 2026 09:12:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>constexpr</category><category>compile-time</category><category>algorithm</category><category>std-array</category></item><item><title>constexpr 기초와 임베디드 적용 — 컴파일 타임 계산 활용</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part2-03-constexpr-basics/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part2-03-constexpr-basics/</guid><description>컴파일 타임 계산 — 런타임 코드와 데이터를 컴파일러가 미리 만들어줍니다. -Os보다 강력한 zero-cost.</description><pubDate>Wed, 29 Apr 2026 09:11:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>constexpr</category><category>compile-time</category><category>optimization</category><category>zero-cost</category></item><item><title>임베디드 RAII 실전 패턴 — Lock·Pin·DMA·Power 관리</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part2-02-raii-patterns/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part2-02-raii-patterns/</guid><description>scoped_lock, unique_ptr with custom deleter, ScopedXxx, Finally — 임베디드에 자주 등장하는 RAII 표준 패턴.</description><pubDate>Wed, 29 Apr 2026 09:10:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>raii</category><category>scoped-lock</category><category>unique-ptr</category><category>finally</category><category>lock-guard</category></item><item><title>임베디드 RAII 기초 — 리소스 안전성과 결정적 소멸 보장</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part2-01-raii-basics/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part2-01-raii-basics/</guid><description>Resource Acquisition Is Initialization — 자원 생명주기를 객체 생명주기에 묶는 C++의 핵심 idiom.</description><pubDate>Wed, 29 Apr 2026 09:09:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>raii</category><category>resource</category><category>destructor</category><category>exception-safety</category></item><item><title>임베디드 C++ 표준 선택 가이드 — C++11/14/17/20/23 트레이드오프</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part1-08-cpp-standard-choice/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part1-08-cpp-standard-choice/</guid><description>C++11/14/17/20/23 — 임베디드에서 어느 표준을 골라야 하나. 컴파일러 지원, 표준 라이브러리 변화, 핵심 기능 비교.</description><pubDate>Tue, 28 Apr 2026 09:08:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>standard</category><category>cpp11</category><category>cpp17</category><category>cpp20</category><category>cpp23</category><category>compiler-support</category></item><item><title>임베디드 C++ 링커 스크립트 — vtable·정적 객체 배치 추적</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part1-07-linker-scripts/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part1-07-linker-scripts/</guid><description>MEMORY와 SECTIONS — Flash와 RAM에 C++ 객체와 코드를 정확한 위치에 두는 법.</description><pubDate>Tue, 28 Apr 2026 09:07:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>linker-script</category><category>sections</category><category>memory</category><category>init-array</category><category>vector-table</category></item><item><title>C++ 스타트업 코드 분석 — .init_array·전역 생성자 호출 순서</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part1-06-startup-code/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part1-06-startup-code/</guid><description>Reset에서 main까지 — vector table, .data 복사, .bss 초기화, __libc_init_array가 호출하는 C++ static 생성자.</description><pubDate>Tue, 28 Apr 2026 09:06:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>startup</category><category>init-array</category><category>static-initialization</category><category>reset-handler</category></item><item><title>C++ ABI 호환성 — Itanium ABI·name mangling·vtable 레이아웃</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part1-05-abi-compatibility/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part1-05-abi-compatibility/</guid><description>C와 C++가 한 바이너리에서 살아남는 법 — name mangling, extern &quot;C&quot;, calling convention, struct layout.</description><pubDate>Tue, 28 Apr 2026 09:05:00 GMT</pubDate><category>cpp</category><category>c</category><category>embedded</category><category>abi</category><category>name-mangling</category><category>extern-c</category><category>calling-convention</category></item><item><title>C++ 코드 크기 분석 — 가상 함수·템플릿·예외 비용 추적</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part1-04-code-size-analysis/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part1-04-code-size-analysis/</guid><description>size, nm, objdump, bloaty — 어디서 어떤 크기가 오는지 측정하는 도구. bloat 추적의 표준 워크플로.</description><pubDate>Tue, 28 Apr 2026 09:04:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>code-size</category><category>bloat</category><category>tools</category><category>nm</category><category>objdump</category><category>bloaty</category></item><item><title>임베디드 C++ 런타임 요구사항 — libstdc++·newlib·crt0 분석</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part1-03-runtime-requirements/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part1-03-runtime-requirements/</guid><description>C++ 코드가 돌기 위한 최소 런타임 — libstdc++, libsupc++, newlib, libgcc. 무엇이 진짜 필요한가.</description><pubDate>Tue, 28 Apr 2026 09:03:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>runtime</category><category>libstdc++</category><category>newlib</category><category>libgcc</category><category>libsupc++</category></item><item><title>실전 사례 — 카메라 1080p 60fps가 30fps로 떨어지는 이유</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part6-04-case-dma-tuning/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part6-04-case-dma-tuning/</guid><description>Cortex-A 보드의 카메라 캡처가 frame drop. CPU는 한가했고 진짜 범인은 DMA burst size와 AXI bus 효율이었다.</description><pubDate>Tue, 28 Apr 2026 09:03:00 GMT</pubDate><category>case-study</category><category>dma</category><category>burst</category><category>axi</category><category>throughput</category></item><item><title>임베디드 C++ 컴파일러 플래그 분석 — -fno-rtti·-fno-exceptions·-Os</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part1-02-compiler-flags/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part1-02-compiler-flags/</guid><description>C++를 임베디드 모드로 — -fno-exceptions, -fno-rtti, -Os, -flto. 각 플래그가 실제 바이너리에 무엇을 하는가.</description><pubDate>Tue, 28 Apr 2026 09:02:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>compiler</category><category>gcc</category><category>clang</category><category>flags</category><category>optimization</category></item><item><title>실전 사례 — 8-core가 4-core를 넘으면 throughput이 떨어지는 이유</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part6-03-case-lock-contention/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part6-03-case-lock-contention/</guid><description>8-core 서버에서 thread를 늘릴수록 throughput이 오히려 감소. 단일 global mutex가 cache invalidation 폭주를 일으킨 사례.</description><pubDate>Tue, 28 Apr 2026 09:02:00 GMT</pubDate><category>case-study</category><category>lock</category><category>contention</category><category>scalability</category><category>perf-lock</category></item><item><title>임베디드 C++ vs C — 런타임·코드 크기·ABI 관점 비교</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/part1-01-cpp-vs-c/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/part1-01-cpp-vs-c/</guid><description>임베디드에서 C++가 진짜로 무거운가? 측정 가능한 비교와, C가 여전히 옳은 자리들.</description><pubDate>Tue, 28 Apr 2026 09:01:00 GMT</pubDate><category>cpp</category><category>c</category><category>embedded</category><category>overhead</category><category>zero-cost</category><category>comparison</category></item><item><title>실전 사례 — Matrix Multiply가 예상의 10배 느린 이유</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part6-02-case-cache-thrashing/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part6-02-case-cache-thrashing/</guid><description>1024×1024 matrix multiply가 이론값의 10배 느렸다. SIMD부터 의심했지만 진짜 범인은 캐시 미스 90%였다.</description><pubDate>Tue, 28 Apr 2026 09:01:00 GMT</pubDate><category>case-study</category><category>cache</category><category>thrashing</category><category>tiling</category><category>layout</category></item><item><title>Embedded C++ for Real Systems — 임베디드 모던 C++ 시리즈 소개</title><link>https://hawk90.dev/blog/embedded/embedded-cpp/00-preface/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/embedded-cpp/00-preface/</guid><description>어디까지 C++를 써도 되는가? RAII, constexpr, no-exception 설계부터 lock-free 패턴까지. 임베디드에서 안전하게 C++를 쓰는 법.</description><pubDate>Tue, 28 Apr 2026 09:00:00 GMT</pubDate><category>cpp</category><category>embedded</category><category>raii</category><category>constexpr</category><category>no-exception</category><category>modern-cpp</category><category>arm</category><category>templates</category></item><item><title>실전 사례 — ISR Latency 100µs Deadline Miss 추적</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part6-01-case-isr-latency/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part6-01-case-isr-latency/</guid><description>산업용 센서 보드에서 산발적으로 발생한 ISR latency spike. 가설 두 개를 거쳐 SD 카드 드라이버를 범인으로 확정한 과정.</description><pubDate>Tue, 28 Apr 2026 09:00:00 GMT</pubDate><category>case-study</category><category>isr</category><category>latency</category><category>ftrace</category><category>irq</category></item><item><title>연속 프로파일링 — Parca·Pixie·Pyroscope·Tetragon</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part5-10-ebpf-continuous/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part5-10-ebpf-continuous/</guid><description>eBPF 기반 continuous profiling. Parca, Pixie, Pyroscope, Cilium Tetragon으로 24/7 분석.</description><pubDate>Mon, 27 Apr 2026 09:09:00 GMT</pubDate><category>profiling</category><category>ebpf</category><category>parca</category><category>pixie</category><category>pyroscope</category><category>tetragon</category><category>continuous-profiling</category></item><item><title>모던 프로파일러 비교 — Tracy·Hotspot·uftrace·Coz</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part5-09-tracy-hotspot/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part5-09-tracy-hotspot/</guid><description>Tracy nanosecond instrumentation, Hotspot GUI, uftrace function trace, Coz causal profiler.</description><pubDate>Mon, 27 Apr 2026 09:08:00 GMT</pubDate><category>profiling</category><category>tracy</category><category>hotspot</category><category>uftrace</category><category>coz</category><category>low-overhead</category></item><item><title>NVIDIA Nsight Systems — GPU·NPU 포함 시스템 분석</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part5-08-nsight/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part5-08-nsight/</guid><description>NVIDIA Nsight Systems로 CPU·GPU·메모리 통합 timeline 분석. Jetson 임베디드 활용.</description><pubDate>Mon, 27 Apr 2026 09:07:00 GMT</pubDate><category>nsight</category><category>gpu</category><category>npu</category><category>jetson</category><category>cuda</category><category>nvtx</category></item><item><title>Bare-metal 프로파일링 — GPIO·DWT·SysTick·ITM 활용</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part5-07-baremetal-profiling/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part5-07-baremetal-profiling/</guid><description>OS도 perf도 없는 환경에서 GPIO, DWT cycle counter, SysTick, ITM으로 측정하기.</description><pubDate>Mon, 27 Apr 2026 09:06:00 GMT</pubDate><category>bare-metal</category><category>dwt</category><category>gpio</category><category>cycle-counter</category><category>itm</category><category>systick</category></item><item><title>ARM DS·Lauterbach 분석 — Hardware Trace 전문 도구</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part5-06-arm-ds-lauterbach/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part5-06-arm-ds-lauterbach/</guid><description>ARM Development Studio Streamline, Lauterbach TRACE32, ETM·PTM hardware trace.</description><pubDate>Mon, 27 Apr 2026 09:05:00 GMT</pubDate><category>arm-ds</category><category>lauterbach</category><category>trace32</category><category>etm</category><category>ptm</category><category>streamline</category></item><item><title>Flamegraph 분석 — On-CPU·Off-CPU·Differential</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part5-05-flamegraph/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part5-05-flamegraph/</guid><description>Brendan Gregg flamegraph로 on-CPU·off-CPU·차분 분석. perf·BCC stack 수집.</description><pubDate>Mon, 27 Apr 2026 09:04:00 GMT</pubDate><category>flamegraph</category><category>perf</category><category>brendan-gregg</category><category>off-cpu</category></item><item><title>eBPF·bpftrace 동적 트레이싱 — 커널 무수정 관측</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part5-04-ebpf/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part5-04-ebpf/</guid><description>eBPF VM과 verifier, bpftrace one-liner, BCC tools, kprobe·uprobe·USDT 비교.</description><pubDate>Mon, 27 Apr 2026 09:03:00 GMT</pubDate><category>ebpf</category><category>bpftrace</category><category>bcc</category><category>dynamic-tracing</category></item><item><title>ftrace 활용 — function·function_graph·latency tracer</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part5-03-ftrace/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part5-03-ftrace/</guid><description>ftrace의 function tracer, function_graph, irqsoff·preemptoff latency tracer 활용.</description><pubDate>Mon, 27 Apr 2026 09:02:00 GMT</pubDate><category>ftrace</category><category>function-tracer</category><category>latency-tracer</category><category>trace-cmd</category></item><item><title>Linux perf 고급 — Raw Event·Tracepoint·perf script</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part5-02-perf-advanced/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part5-02-perf-advanced/</guid><description>perf의 raw event, tracepoint, perf script Python을 사용한 커스텀 분석.</description><pubDate>Mon, 27 Apr 2026 09:01:00 GMT</pubDate><category>perf</category><category>raw-event</category><category>scripting</category><category>tracepoint</category></item><item><title>Linux perf 기초 — stat·record·report 활용</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part5-01-perf-basics/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part5-01-perf-basics/</guid><description>Linux perf 표준 도구의 세 가지 핵심 명령. 설치, 권한, 그리고 첫 측정부터 핫스팟 분석까지.</description><pubDate>Mon, 27 Apr 2026 09:00:00 GMT</pubDate><category>perf</category><category>profiling</category><category>sampling</category><category>linux</category></item><item><title>SMP 성능 분석 — Per-Core·Affinity·Load Balance·Scalability</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part4-10-smp-analysis/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part4-10-smp-analysis/</guid><description>Per-core utilization과 CPU affinity, NUMA, migration cost, Amdahl 한계.</description><pubDate>Sun, 26 Apr 2026 09:09:00 GMT</pubDate><category>smp</category><category>affinity</category><category>load-balancing</category><category>migration</category><category>scalability</category></item><item><title>Cache Coherency 프로토콜 — MESI·MOESI·Snoop·Directory</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part4-09-cache-coherency/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part4-09-cache-coherency/</guid><description>MESI와 MOESI 프로토콜, snoop과 directory 방식, coherency overhead 측정.</description><pubDate>Sun, 26 Apr 2026 09:08:00 GMT</pubDate><category>coherency</category><category>mesi</category><category>moesi</category><category>snoop</category><category>directory</category></item><item><title>Memory Ordering 분석 — Acquire·Release·Seq-Cst·ARM Relaxed Model</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part4-08-memory-ordering/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part4-08-memory-ordering/</guid><description>C11/C++11 memory_order와 acquire-release pair, seq-cst 비용, ARM ldar/stlr.</description><pubDate>Sun, 26 Apr 2026 09:07:00 GMT</pubDate><category>memory-ordering</category><category>acquire</category><category>release</category><category>seq-cst</category><category>ldar</category></item><item><title>Lock-Free 자료구조 성능 — CAS·ABA·Hazard Pointer·Epoch Reclamation</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part4-07-lock-free/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part4-07-lock-free/</guid><description>CAS 기반 lock-free와 ABA 문제, hazard pointer와 epoch reclamation 비교.</description><pubDate>Sun, 26 Apr 2026 09:06:00 GMT</pubDate><category>lock-free</category><category>cas</category><category>aba</category><category>hazard-pointer</category><category>epoch</category></item><item><title>Reader-Writer Lock 성능 — Reader/Writer Priority·RCU·Seqlock</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part4-06-rw-lock/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part4-06-rw-lock/</guid><description>RW-lock의 종류와 reader/writer priority, RCU 비교, seqlock의 read-mostly 대안.</description><pubDate>Sun, 26 Apr 2026 09:05:00 GMT</pubDate><category>rwlock</category><category>reader</category><category>writer</category><category>rcu</category><category>seqlock</category></item><item><title>Mutex 성능 분석 — Futex·Adaptive·Priority Inheritance</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part4-05-mutex/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part4-05-mutex/</guid><description>Mutex blocking 비용과 Linux futex 2-stage, adaptive mutex, priority inheritance overhead.</description><pubDate>Sun, 26 Apr 2026 09:04:00 GMT</pubDate><category>mutex</category><category>blocking</category><category>futex</category><category>adaptive</category><category>priority-inheritance</category></item><item><title>Spinlock 성능 분석 — Spin-Wait vs Context Switch·Ticket·MCS</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part4-04-spinlock/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part4-04-spinlock/</guid><description>Spinlock 비용 분석과 ticket lock, MCS lock의 scalability 차이.</description><pubDate>Sun, 26 Apr 2026 09:03:00 GMT</pubDate><category>spinlock</category><category>smp</category><category>ticket-lock</category><category>mcs</category></item><item><title>Lock Contention 분석 — Wait·Hold·Convoy·측정 기법</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part4-03-lock-contention/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part4-03-lock-contention/</guid><description>Wait time과 hold time, contention ratio를 측정하고 lock convoy를 회피하는 법.</description><pubDate>Sun, 26 Apr 2026 09:02:00 GMT</pubDate><category>lock</category><category>contention</category><category>wait-time</category><category>hold-time</category><category>convoy</category></item><item><title>False Sharing 진단 — Cache Line Ping-Pong·Padding·측정</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part4-02-false-sharing/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part4-02-false-sharing/</guid><description>False sharing 원인. Cache coherence ping-pong. Padding으로 line 분리. 측정 방법.</description><pubDate>Sun, 26 Apr 2026 09:01:00 GMT</pubDate><category>false-sharing</category><category>cacheline</category><category>padding</category><category>coherence</category></item><item><title>Concurrency 기초 — Concurrency vs Parallelism·Race·Memory Model</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part4-01-concurrency-basics/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part4-01-concurrency-basics/</guid><description>Concurrency vs Parallelism (Rob Pike). Race condition. Memory model 도입.</description><pubDate>Sun, 26 Apr 2026 09:00:00 GMT</pubDate><category>concurrency</category><category>parallel</category><category>race</category><category>memory-model</category></item><item><title>CXL Interconnect 분석 — AI 시대 메모리 대역폭 확장</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part3-11-cxl-interconnect/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part3-11-cxl-interconnect/</guid><description>CXL 2.0/3.1과 Neoverse V2가 만든 cache-coherent interconnect. CXL.io·CXL.cache·CXL.mem 세 프로토콜, Type 1/2/3 디바이스, latency·대역폭의 현실.</description><pubDate>Sat, 25 Apr 2026 09:10:00 GMT</pubDate><category>cxl</category><category>interconnect</category><category>memory-bandwidth</category><category>ai</category><category>neoverse</category><category>accelerator</category></item><item><title>Thermal Throttling 분석 — Junction Temp·Trip Point·냉각</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part3-10-thermal/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part3-10-thermal/</guid><description>Junction temperature, thermal sensor, trip point, throttling 동작, 자동차·우주 환경.</description><pubDate>Sat, 25 Apr 2026 09:09:00 GMT</pubDate><category>thermal</category><category>throttle</category><category>sensor</category><category>junction-temp</category></item><item><title>Power vs Performance 트레이드오프 — DVFS·Race-to-Idle·Big.LITTLE</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part3-09-power-vs-performance/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part3-09-power-vs-performance/</guid><description>DVFS governor, race-to-idle, big.LITTLE, CPU 코어 hotplug, 측정·tuning.</description><pubDate>Sat, 25 Apr 2026 09:08:00 GMT</pubDate><category>power</category><category>dvfs</category><category>cpufreq</category><category>big-little</category><category>race-to-idle</category></item><item><title>Peripheral Clock 분석 — PLL·Divider·Gating·DVFS</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part3-08-peripheral-clock/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part3-08-peripheral-clock/</guid><description>PLL/divider/gating으로 peripheral clock. STM32 RCC, Linux CCF. Power vs Performance.</description><pubDate>Sat, 25 Apr 2026 09:07:00 GMT</pubDate><category>clock</category><category>peripheral</category><category>dvfs</category><category>rcc</category><category>pll</category></item><item><title>MMIO 접근 성능 — Cache Policy·Write-Combining·Volatile·Barrier</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part3-07-mmio/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part3-07-mmio/</guid><description>MMIO uncached strongly-ordered. Write-combining for PCIe BAR. Volatile, DMB·DSB·ISB.</description><pubDate>Sat, 25 Apr 2026 09:06:00 GMT</pubDate><category>mmio</category><category>register</category><category>cache-policy</category><category>volatile</category><category>barrier</category></item><item><title>Interrupt Storm 처리 — NAPI·Rate-Limit·Polling 전환</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part3-06-interrupt-storm/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part3-06-interrupt-storm/</guid><description>IRQ flooding으로 main loop 봉쇄. NAPI 패턴, rate limit, interrupt coalescing.</description><pubDate>Sat, 25 Apr 2026 09:05:00 GMT</pubDate><category>interrupt</category><category>storm</category><category>rate-limit</category><category>napi</category><category>coalescing</category></item><item><title>Interrupt Latency 분석 — 진입·종료·Tail-Chaining·Late Arrival</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part3-05-interrupt-latency/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part3-05-interrupt-latency/</guid><description>Cortex-M 12-cycle latency. Tail-chaining 6-cycle. Late arrival, lazy stacking, FreeRTOS hooks.</description><pubDate>Sat, 25 Apr 2026 09:04:00 GMT</pubDate><category>interrupt</category><category>latency</category><category>tail-chaining</category><category>lazy-stacking</category></item><item><title>DMA vs CPU Copy 성능 비교 — Break-even·Setup Overhead 실측</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part3-04-dma-vs-cpu/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part3-04-dma-vs-cpu/</guid><description>DMA setup overhead. CPU memcpy 최적화. Break-even size. 실측 데이터.</description><pubDate>Sat, 25 Apr 2026 09:03:00 GMT</pubDate><category>dma</category><category>memcpy</category><category>cpu</category><category>break-even</category></item><item><title>DMA 성능 최적화 — Burst·Scatter-Gather·Chain·Cache 일관성</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part3-03-dma-performance/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part3-03-dma-performance/</guid><description>Burst size 최적화. Scatter-gather, chain. Cache clean/invalidate, double buffer.</description><pubDate>Sat, 25 Apr 2026 09:02:00 GMT</pubDate><category>dma</category><category>burst</category><category>scatter-gather</category><category>cache</category><category>double-buffer</category></item><item><title>Bus Contention 진단 — Arbitration·QoS·Starvation 측정</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part3-02-bus-contention/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part3-02-bus-contention/</guid><description>Round-robin·priority·QoS arbitration. Master 다수 시 starvation. AXI QoS·BUSY counter.</description><pubDate>Sat, 25 Apr 2026 09:01:00 GMT</pubDate><category>bus</category><category>contention</category><category>arbitration</category><category>qos</category><category>starvation</category></item><item><title>임베디드 Bus Architecture — AHB·AXI·CHI 진화와 5-Channel</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part3-01-bus-architecture/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part3-01-bus-architecture/</guid><description>ARM AMBA — AHB·APB·AXI·ACE·CHI. AXI 5 channel, burst, outstanding transaction.</description><pubDate>Sat, 25 Apr 2026 09:00:00 GMT</pubDate><category>bus</category><category>ahb</category><category>axi</category><category>chi</category><category>amba</category></item><item><title>PMU·HPM 하드웨어 카운터 분석 — 정밀 성능 진단</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part2-10-pmu/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part2-10-pmu/</guid><description>ARMv8 PMU 6+ counter, RISC-V HPM. CYCLE·INST_RETIRED·CACHE·BRANCH. perf 활용.</description><pubDate>Fri, 24 Apr 2026 09:09:00 GMT</pubDate><category>pmu</category><category>hardware-counter</category><category>arm</category><category>risc-v</category><category>perf</category></item><item><title>SIMD·NEON 활용 — 128-bit Vector·Auto-Vectorization·SVE/SVE2</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part2-09-simd-neon/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part2-09-simd-neon/</guid><description>ARM NEON 128-bit, SVE 가변폭. Auto-vectorize (-O3). Intrinsics. Cortex-M Helium (MVE).</description><pubDate>Fri, 24 Apr 2026 09:08:00 GMT</pubDate><category>simd</category><category>neon</category><category>sve</category><category>helium</category><category>intrinsics</category></item><item><title>메모리 대역폭 분석 — STREAM·Roofline·Bus Saturation 측정</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part2-08-memory-bandwidth/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part2-08-memory-bandwidth/</guid><description>STREAM benchmark (Copy·Scale·Add·Triad). Roofline. PMU BUS_ACCESS · DDR bandwidth.</description><pubDate>Fri, 24 Apr 2026 09:07:00 GMT</pubDate><category>memory</category><category>bandwidth</category><category>stream</category><category>roofline</category></item><item><title>Cache Line 최적화 — Alignment·Prefetch·False Sharing 처리</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part2-07-cache-line/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part2-07-cache-line/</guid><description>64-byte line alignment, software prefetch, false sharing 회피, SoA·AoS 선택.</description><pubDate>Fri, 24 Apr 2026 09:06:00 GMT</pubDate><category>cache</category><category>line</category><category>alignment</category><category>prefetch</category><category>false-sharing</category></item><item><title>Cache Miss 3C Model 분석 — Compulsory·Capacity·Conflict</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part2-06-cache-miss/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part2-06-cache-miss/</guid><description>Cold/Compulsory, Capacity (working set &gt; cache), Conflict (associativity 한계).</description><pubDate>Fri, 24 Apr 2026 09:05:00 GMT</pubDate><category>cache</category><category>miss</category><category>compulsory</category><category>capacity</category><category>conflict</category><category>3c</category></item><item><title>CPU Cache 기초 — L1·L2·L3·Set Associative·Replacement Policy</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part2-05-cache-basics/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part2-05-cache-basics/</guid><description>Cache hierarchy. Direct mapped vs N-way set associative. LRU·PLRU·Random.</description><pubDate>Fri, 24 Apr 2026 09:04:00 GMT</pubDate><category>cache</category><category>l1</category><category>l2</category><category>l3</category><category>set-associative</category></item><item><title>Speculative Execution 분석 — OoO·Reorder Buffer·Register Renaming</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part2-04-speculative-execution/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part2-04-speculative-execution/</guid><description>Out-of-order execution. ROB·issue queue·rename. Spectre 측면. Cortex-A 사례.</description><pubDate>Fri, 24 Apr 2026 09:03:00 GMT</pubDate><category>cpu</category><category>speculative</category><category>ooo</category><category>reorder-buffer</category><category>renaming</category></item><item><title>Branch Prediction 분석 — Static·2-bit·BTB·BHT·Mispredict 비용</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part2-03-branch-prediction/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part2-03-branch-prediction/</guid><description>BTFNT, 2-bit saturating counter, BTB·BHT. Mispredict 10-20 cycle. PMU BR_MIS_PRED.</description><pubDate>Fri, 24 Apr 2026 09:02:00 GMT</pubDate><category>cpu</category><category>branch</category><category>prediction</category><category>btb</category><category>bht</category></item><item><title>Pipeline Stall 분석 — Data·Structural·Control Hazard·Forwarding</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part2-02-pipeline-stall/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part2-02-pipeline-stall/</guid><description>Stall은 pipeline bubble을 만듭니다. RAW·WAR·WAW hazard, forwarding, PMU STALL counter를 살펴봅니다.</description><pubDate>Fri, 24 Apr 2026 09:01:00 GMT</pubDate><category>cpu</category><category>pipeline</category><category>hazard</category><category>stall</category><category>forwarding</category></item><item><title>CPU 파이프라인 분석 — 5-stage·Cortex-M·Cortex-A 비교</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part2-01-pipeline/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part2-01-pipeline/</guid><description>Fetch·Decode·Execute·Memory·Writeback의 5-stage 파이프라인을 봅니다. Cortex-M3/M4는 3-stage, Cortex-A는 8~15-stage입니다.</description><pubDate>Fri, 24 Apr 2026 09:00:00 GMT</pubDate><category>cpu</category><category>pipeline</category><category>cortex-m</category><category>cortex-a</category></item><item><title>프로파일링 기법 개요 — Sampling vs Instrumentation·PGO·LTO</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part1-08-profiling-overview/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part1-08-profiling-overview/</guid><description>두 가지 큰 접근을 비교합니다. Sampling은 perf처럼 가볍고 Instrumentation은 gprof처럼 정확하지만 무겁습니다. PGO로 최적화하는 방법도 다룹니다.</description><pubDate>Thu, 23 Apr 2026 09:08:00 GMT</pubDate><category>profiling</category><category>sampling</category><category>instrumentation</category><category>gprof</category><category>perf</category><category>pgo</category><category>lto</category></item><item><title>성능 모델링 — Amdahl·Gustafson·Roofline Model 적용</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part1-07-modeling/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part1-07-modeling/</guid><description>최적화 한계를 예측하는 수학 모델. Serial 부분이 결정. Memory-bound vs Compute-bound.</description><pubDate>Thu, 23 Apr 2026 09:07:00 GMT</pubDate><category>amdahl</category><category>gustafson</category><category>roofline</category><category>operational-intensity</category></item><item><title>임베디드 벤치마킹 기초 — 재현성·Warmup·노이즈 제거</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part1-06-benchmark/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part1-06-benchmark/</guid><description>신뢰할 수 있는 벤치마크는 warmup, isolation, multi-run이 필요합니다. CoreMark·Dhrystone·SPEC을 살펴봅니다.</description><pubDate>Thu, 23 Apr 2026 09:06:00 GMT</pubDate><category>benchmark</category><category>reproducibility</category><category>warmup</category><category>coremark</category><category>isolation</category></item><item><title>실시간 성능 분석 — WCET·Jitter·Deadline Miss 측정</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part1-05-realtime/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part1-05-realtime/</guid><description>Real-time 시스템의 측정 — 평균 아닌 worst-case. WCET 4 방법과 jitter·tardiness 분석.</description><pubDate>Thu, 23 Apr 2026 09:05:00 GMT</pubDate><category>realtime</category><category>wcet</category><category>jitter</category><category>deadline</category><category>tardiness</category><category>cyclictest</category></item><item><title>성능 데이터 통계적 분석 — Percentile·Histogram·평균의 함정</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part1-04-statistics/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part1-04-statistics/</guid><description>평균은 거짓말. p99·p999·max·long tail. HdrHistogram·임베디드 fixed-bucket.</description><pubDate>Thu, 23 Apr 2026 09:04:00 GMT</pubDate><category>statistics</category><category>percentile</category><category>histogram</category><category>hdr-histogram</category></item><item><title>성능 측정의 기본 — Wall-Clock·CPU Cycle·Instruction Count</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part1-03-measurement/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part1-03-measurement/</guid><description>어떻게 측정하나. DWT, PMU, clock_gettime, GPIO + 로직 분석기. Overhead 줄이기.</description><pubDate>Thu, 23 Apr 2026 09:03:00 GMT</pubDate><category>measurement</category><category>dwt</category><category>pmu</category><category>clock-gettime</category><category>gpio</category></item><item><title>성능 지표 정의 — Latency·Throughput·Utilization 분석</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part1-02-metrics/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part1-02-metrics/</guid><description>3 핵심 지표 + 임베디드 추가 — Jitter·Deadline. Service time vs Response time.</description><pubDate>Thu, 23 Apr 2026 09:02:00 GMT</pubDate><category>performance</category><category>latency</category><category>throughput</category><category>utilization</category><category>jitter</category><category>deadline</category></item><item><title>임베디드 성능 분석 방법론 — Measure → Analyze → Optimize 사이클</title><link>https://hawk90.dev/blog/embedded/performance-engineering/part1-01-methodology/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/part1-01-methodology/</guid><description>감으로 최적화 금지. USE·RED 메서드, 임베디드 적용. 과학적 접근의 시작.</description><pubDate>Thu, 23 Apr 2026 09:01:00 GMT</pubDate><category>performance</category><category>methodology</category><category>use-method</category><category>red-method</category></item><item><title>Embedded Performance Engineering — 임베디드 성능 엔지니어링 시리즈 소개</title><link>https://hawk90.dev/blog/embedded/performance-engineering/00-preface/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/performance-engineering/00-preface/</guid><description>왜 느린가? Cache miss, pipeline stall, bus contention부터 profiling 도구 활용까지. 임베디드 시스템 성능 분석의 모든 것.</description><pubDate>Thu, 23 Apr 2026 09:00:00 GMT</pubDate><category>performance</category><category>profiling</category><category>cache</category><category>optimization</category><category>perf</category><category>embedded</category><category>arm</category><category>risc-v</category></item><item><title>Matter·Thread 분석 — IoT 통합 표준·Commissioning·Multi-Fabric</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part12-12-matter-thread/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part12-12-matter-thread/</guid><description>Apple·Google·Amazon·Samsung이 공동으로 만든 Matter 1.3/1.4와 Thread 1.3 mesh를 합쳐 IoT device를 한 번에 모든 ecosystem에 등록하는 패턴을 정리합니다.</description><pubDate>Tue, 21 Apr 2026 09:11:00 GMT</pubDate><category>recipes</category><category>iot</category><category>matter</category><category>thread</category><category>openthread</category><category>csa</category></item><item><title>Cortex-M33 TF-M·TrustZone — Secure Firmware·PSA·MCUboot</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part12-11-tfm-trustzone/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part12-11-tfm-trustzone/</guid><description>Cortex-M33+ TrustZone-M 위에 TF-M으로 secure firmware를 구성하는 패턴. SPE/NSPE, PSA Crypto/ITS/Attestation, MCUboot secure boot를 정리합니다.</description><pubDate>Tue, 21 Apr 2026 09:10:00 GMT</pubDate><category>recipes</category><category>security</category><category>tf-m</category><category>trustzone</category><category>psa</category><category>cortex-m33</category><category>mcuboot</category></item><item><title>온디바이스 LLM 추론 — llama.cpp·GGUF·MLX·KV Cache·NPU Backend</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part12-10-on-device-llm/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part12-10-on-device-llm/</guid><description>4-bit 양자화된 LLM이 모바일·edge에서 동작하는 시대. llama.cpp/GGUF, Apple MLX, KV cache 메모리, 백엔드 선택을 정리합니다.</description><pubDate>Tue, 21 Apr 2026 09:09:00 GMT</pubDate><category>recipes</category><category>edge-ai</category><category>llm</category><category>llama-cpp</category><category>ggml</category><category>mlx</category><category>gguf</category></item><item><title>Zero-Copy Camera Pipeline — V4L2·DMA-BUF·GPU Import·NPU 직결</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part12-09-zero-copy-camera/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part12-09-zero-copy-camera/</guid><description>카메라부터 NPU·display까지 한 frame이 한 physical page를 유지하도록 V4L2·DMA-BUF·EGL·CUDA를 연결하는 패턴을 정리합니다.</description><pubDate>Tue, 21 Apr 2026 09:08:00 GMT</pubDate><category>recipes</category><category>camera</category><category>v4l2</category><category>dma-buf</category><category>zero-copy</category><category>isp</category><category>libcamera</category></item><item><title>NVIDIA Jetson 분석 — Nano·Xavier·Orin·Thor·JetPack·DLA·VPI</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part12-08-jetson/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part12-08-jetson/</guid><description>Jetson 라인업의 power·성능 trade-off, JetPack 구성, DLA·VPI·DeepStream을 묶어 자율주행·로봇 stack에서 쓰는 패턴을 정리합니다.</description><pubDate>Tue, 21 Apr 2026 09:07:00 GMT</pubDate><category>recipes</category><category>jetson</category><category>tensorrt</category><category>dla</category><category>vpi</category><category>deepstream</category><category>jetpack</category></item><item><title>Edge Thermal Management — Throttling·DVFS·Fan Curve·Sustained</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part12-07-thermal/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part12-07-thermal/</guid><description>Edge AI 보드의 sustained 성능을 결정하는 thermal 한계. throttle trip, DVFS, fan curve, nvpmodel, passive cooling 설계를 정리합니다.</description><pubDate>Tue, 21 Apr 2026 09:06:00 GMT</pubDate><category>recipes</category><category>thermal</category><category>throttling</category><category>edge-ai</category><category>jetson</category><category>dvfs</category></item><item><title>ONNX Runtime 분석 — Execution Provider와 Cross-Platform 배포</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part12-06-onnx-runtime/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part12-06-onnx-runtime/</guid><description>ONNX format·ONNX Runtime의 Execution Provider (CUDA·TensorRT·DML·CoreML)·embedded build·cross-platform inference.</description><pubDate>Tue, 21 Apr 2026 09:05:00 GMT</pubDate><category>recipes</category><category>edge-ai</category><category>onnx</category><category>onnxruntime</category></item><item><title>TFLite Micro 분석 — Op Resolver·Tensor Arena·Cortex-M</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part12-05-tflite-micro/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part12-05-tflite-micro/</guid><description>MCU용 TensorFlow Lite Micro의 구조, op resolver·tensor arena·CMSIS-NN integration·Ethos-U delegate.</description><pubDate>Tue, 21 Apr 2026 09:04:00 GMT</pubDate><category>recipes</category><category>edge-ai</category><category>tflite-micro</category><category>mcu</category><category>cortex-m</category></item><item><title>TensorRT 분석 — ONNX→Engine·FP16·INT8·DLA·Multi-Stream</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part12-04-tensorrt/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part12-04-tensorrt/</guid><description>NVIDIA TensorRT로 ONNX 모델을 engine으로 빌드하고 FP16·INT8·DLA·multi-stream으로 throughput을 끌어올리는 패턴을 정리합니다.</description><pubDate>Tue, 21 Apr 2026 09:03:00 GMT</pubDate><category>recipes</category><category>tensorrt</category><category>jetson</category><category>dla</category><category>cuda</category><category>onnx</category></item><item><title>딥러닝 Quantization 분석 — PTQ·QAT·INT8·INT4·Calibration</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part12-03-quantization/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part12-03-quantization/</guid><description>FP32→INT8/INT4 양자화의 수식, PTQ와 QAT 차이, per-channel·per-tensor 선택, LLM용 GPTQ·AWQ까지 실전 패턴을 정리합니다.</description><pubDate>Tue, 21 Apr 2026 09:02:00 GMT</pubDate><category>recipes</category><category>quantization</category><category>int8</category><category>int4</category><category>qat</category><category>ptq</category><category>gptq</category></item><item><title>NPU 아키텍처 분석 — Ethos·Hexagon·Systolic Array 비교</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part12-02-npu-architecture/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part12-02-npu-architecture/</guid><description>Arm Ethos·Qualcomm Hexagon·Apple Neural Engine 등 NPU 내부 구조와 systolic MAC array·INT8·memory hierarchy.</description><pubDate>Tue, 21 Apr 2026 09:01:00 GMT</pubDate><category>recipes</category><category>edge-ai</category><category>npu</category><category>ethos</category><category>hexagon</category></item><item><title>Edge Inference 분석 — Cloud vs Edge·Latency·Privacy</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part12-01-edge-inference/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part12-01-edge-inference/</guid><description>Edge inference가 cloud 대비 언제 답인지, MCU부터 server-class edge까지 하드웨어 스펙트럼과 프레임워크 선택, 3-stage pipeline 설계를 정리합니다.</description><pubDate>Tue, 21 Apr 2026 09:00:00 GMT</pubDate><category>recipes</category><category>edge-ai</category><category>inference</category><category>pipeline</category><category>tflite</category><category>onnx</category></item><item><title>Intel Quartus 사용법 — Platform Designer·Nios II·HLS</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part11-14-intel-quartus/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part11-14-intel-quartus/</guid><description>Intel Quartus Prime·Platform Designer(Qsys)·Nios II soft processor·Intel HLS·partial reconfig 사용법.</description><pubDate>Mon, 20 Apr 2026 09:13:00 GMT</pubDate><category>recipes</category><category>fpga</category><category>quartus</category><category>intel</category><category>altera</category></item><item><title>OpenCL on FPGA — Kernel·Channel·Burst Memory 분석</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part11-13-opencl-fpga/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part11-13-opencl-fpga/</guid><description>Intel/AMD FPGA에서 OpenCL kernel·channel·burst memory를 활용하는 패턴과 SYCL/oneAPI FPGA backend.</description><pubDate>Mon, 20 Apr 2026 09:12:00 GMT</pubDate><category>recipes</category><category>fpga</category><category>opencl</category><category>sycl</category></item><item><title>Vitis AI 분석 — DPU·xmodel·VART</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part11-12-vitis-ai/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part11-12-vitis-ai/</guid><description>Xilinx Vitis AI로 TensorFlow/PyTorch 모델을 DPU용 xmodel로 quantize·compile하고 VART로 실행하는 흐름.</description><pubDate>Mon, 20 Apr 2026 09:11:00 GMT</pubDate><category>recipes</category><category>fpga</category><category>vitis-ai</category><category>dpu</category><category>edge-ai</category></item><item><title>HLS 최적화 기법 — Pipeline·Unroll·Partition·Dataflow</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part11-11-hls-optimization/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part11-11-hls-optimization/</guid><description>Vitis/Vivado HLS의 pragma로 II=1 pipeline·array partition·dataflow를 적용해 throughput을 극대화하는 패턴.</description><pubDate>Mon, 20 Apr 2026 09:10:00 GMT</pubDate><category>recipes</category><category>fpga</category><category>hls</category><category>vitis</category></item><item><title>Vitis HLS 분석 — Pragma·Pipeline II·Dataflow 실전 감각</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part11-10-hls/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part11-10-hls/</guid><description>Vitis HLS로 C++ 코드를 RTL로 합성할 때 II=1을 끌어내는 pragma 조합, dataflow, AXI 인터페이스 결정을 실전 패턴 중심으로 정리합니다.</description><pubDate>Mon, 20 Apr 2026 09:09:00 GMT</pubDate><category>recipes</category><category>hls</category><category>vitis</category><category>fpga</category><category>pipeline</category><category>dataflow</category></item><item><title>PCIe Streaming 분석 — BAR Type·MSI-X·Kernel Bypass</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part11-09-pcie-streaming/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part11-09-pcie-streaming/</guid><description>PCIe로 streaming traffic을 다룰 때 알아야 할 BAR 종류, prefetchable 의미, MSI-X 분산, posted/non-posted 순서, kernel bypass 패턴을 정리합니다.</description><pubDate>Mon, 20 Apr 2026 09:08:00 GMT</pubDate><category>recipes</category><category>pcie</category><category>bar</category><category>msi-x</category><category>dpdk</category><category>spdk</category></item><item><title>DMA Completion 메커니즘 — Interrupt·Polling·Completion Ring</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part11-08-dma-completion/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part11-08-dma-completion/</guid><description>DMA가 끝났음을 알려주는 세 가지 방식을 비교합니다. Interrupt, polling, completion ring과 IRQ coalescing의 trade-off를 정리합니다.</description><pubDate>Mon, 20 Apr 2026 09:07:00 GMT</pubDate><category>recipes</category><category>dma</category><category>completion</category><category>interrupt</category><category>polling</category></item><item><title>Command Queue·Submission Queue — NVMe·XDMA 공통 패턴</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part11-07-cq-sq/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part11-07-cq-sq/</guid><description>Submission/Completion Queue 패턴을 NVMe·io_uring·Xilinx XDMA·Vulkan 사례로 묶어 정리합니다. Doorbell, phase bit, multi-queue 확장까지.</description><pubDate>Mon, 20 Apr 2026 09:06:00 GMT</pubDate><category>recipes</category><category>cq</category><category>sq</category><category>nvme</category><category>xdma</category><category>io_uring</category></item><item><title>Mailbox Protocol 분석 — Host와 Accelerator를 잇는 Doorbell</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part11-06-mailbox/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part11-06-mailbox/</guid><description>Host CPU와 FPGA·NPU·보조 CPU를 잇는 mailbox 프로토콜을 register layout, doorbell IRQ, sequence·CRC, OpenAMP 비교 관점에서 정리합니다.</description><pubDate>Mon, 20 Apr 2026 09:05:00 GMT</pubDate><category>recipes</category><category>mailbox</category><category>doorbell</category><category>fpga</category><category>openamp</category></item><item><title>Zynq PS-PL 통신 — GP·HP·ACP 인터페이스 선택</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part11-05-ps-pl-communication/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part11-05-ps-pl-communication/</guid><description>Zynq의 GP·HP·ACP·M_AXI·S_AXI 인터페이스를 latency·throughput·cache coherence 관점에서 비교합니다.</description><pubDate>Mon, 20 Apr 2026 09:04:00 GMT</pubDate><category>recipes</category><category>fpga</category><category>zynq</category><category>ps-pl</category><category>axi</category></item><item><title>AXI 인터페이스 — AXI4·AXI4-Lite·AXI-Stream 비교</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part11-04-axi/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part11-04-axi/</guid><description>AMBA AXI4·AXI4-Lite·AXI-Stream을 역할별로 구분해 사용하는 법과 burst·outstanding·deadlock 회피를 정리합니다.</description><pubDate>Mon, 20 Apr 2026 09:03:00 GMT</pubDate><category>recipes</category><category>axi</category><category>axi-stream</category><category>amba</category><category>fpga</category></item><item><title>PCIe BAR 매핑 분석 — Config Space·Enumeration·MMIO 접근</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part11-03-pcie-bar/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part11-03-pcie-bar/</guid><description>PCIe BAR (Base Address Register), enumeration, sizing, MMIO 매핑, ioremap.</description><pubDate>Mon, 20 Apr 2026 09:02:00 GMT</pubDate><category>recipes</category><category>pcie</category><category>bar</category><category>mmio</category><category>enumeration</category></item><item><title>Vivado 사용법 — Project·Constraint·Synth·Impl·Bitstream</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part11-02-vivado-usage/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part11-02-vivado-usage/</guid><description>Vivado project 흐름·XDC constraint·synthesis/implementation·timing report·bitstream programming의 실전 패턴.</description><pubDate>Mon, 20 Apr 2026 09:01:00 GMT</pubDate><category>recipes</category><category>fpga</category><category>vivado</category><category>xilinx</category></item><item><title>FPGA 기초 분석 — LUT·FF·BRAM·DSP 자원 구조</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part11-01-fpga-basics/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part11-01-fpga-basics/</guid><description>LUT·Flip-Flop·BRAM·DSP slice·clock region·IO bank — FPGA 구성 요소를 임베디드 관점에서 정리합니다.</description><pubDate>Mon, 20 Apr 2026 09:00:00 GMT</pubDate><category>recipes</category><category>fpga</category><category>basics</category></item><item><title>임베디드 포스트모템 분석 — Core Dump와 Field Crash</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part10-12-postmortem-analysis/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part10-12-postmortem-analysis/</guid><description>Linux coredump·gdb 분석부터 MCU 환경의 mini-dump(Memfault)·last-gasp logging·field debug 패턴까지.</description><pubDate>Sun, 19 Apr 2026 09:11:00 GMT</pubDate><category>recipes</category><category>debugging</category><category>postmortem</category></item><item><title>임베디드 로깅 시스템 설계 — 레벨·버퍼·SWO·Deferred</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part10-11-logging-system/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part10-11-logging-system/</guid><description>임베디드 환경에서 overhead를 최소화한 로깅. 레벨 분리·circular buffer·SWO/RTT·deferred 처리 패턴.</description><pubDate>Sun, 19 Apr 2026 09:10:00 GMT</pubDate><category>recipes</category><category>debugging</category><category>logging</category></item><item><title>통신 프로토콜 분석 — Logic Analyzer와 Protocol Decoder</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part10-10-protocol-analyzer/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part10-10-protocol-analyzer/</guid><description>Saleae·DSLogic·oscilloscope·protocol decoder로 UART/SPI/I2C/CAN 신호를 캡처·디코딩하는 실전 패턴.</description><pubDate>Sun, 19 Apr 2026 09:09:00 GMT</pubDate><category>recipes</category><category>debugging</category><category>logic-analyzer</category></item><item><title>타이밍·Race 진단 — Heisenbug 잡는 법</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part10-09-timing-race-diag/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part10-09-timing-race-diag/</guid><description>printf로 race가 사라지는 이유와 SWO/RTT·DWT 사이클 카운터·GPIO pulse로 non-intrusive하게 race를 가시화하는 방법.</description><pubDate>Sun, 19 Apr 2026 09:08:00 GMT</pubDate><category>recipes</category><category>debugging</category><category>race</category><category>timing</category></item><item><title>메모리 오버플로우·오염 진단 — Canary·MPU·Pattern 분석</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part10-08-memory-corruption/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part10-08-memory-corruption/</guid><description>Heap canary·MPU guard·data watchpoint·desktop ASan — 임베디드 메모리 오염을 잡는 도구를 정리합니다.</description><pubDate>Sun, 19 Apr 2026 09:07:00 GMT</pubDate><category>recipes</category><category>debugging</category><category>memory</category></item><item><title>인터럽트 누락·중복 진단 — Priority·Pending·Re-entry 추적</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part10-07-interrupt-debugging/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part10-07-interrupt-debugging/</guid><description>NVIC pending·priority·level vs edge·shared IRQ — 인터럽트 동작 이상의 흔한 원인을 잡습니다.</description><pubDate>Sun, 19 Apr 2026 09:06:00 GMT</pubDate><category>recipes</category><category>debugging</category><category>interrupt</category><category>nvic</category></item><item><title>임베디드 부팅 실패 진단 — 단계별 Isolation</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part10-06-boot-failure/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part10-06-boot-failure/</guid><description>전원·reset·clock·vector table·main 진입까지 단계별로 isolation하는 부팅 디버깅 절차를 정리합니다.</description><pubDate>Sun, 19 Apr 2026 09:05:00 GMT</pubDate><category>recipes</category><category>debugging</category><category>boot</category></item><item><title>UART 안 찍힐 때 — Bare-metal 체크리스트</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part10-05-uart-not-printing/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part10-05-uart-not-printing/</guid><description>UART 디버깅. 클럭·핀·baud·로직 레벨·종단·인쇄 단계별 체크.</description><pubDate>Sun, 19 Apr 2026 09:04:00 GMT</pubDate><category>recipes</category><category>uart</category><category>debugging</category><category>bare-metal</category></item><item><title>Cortex-M 하드폴트 분석 — Stacked Frame·CFSR 읽기</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part10-04-hardfault-analysis/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part10-04-hardfault-analysis/</guid><description>Cortex-M HardFault 핸들러에서 stacked PC·LR·CFSR을 추출해 정확한 fault 위치를 찾는 절차를 정리합니다.</description><pubDate>Sun, 19 Apr 2026 09:03:00 GMT</pubDate><category>recipes</category><category>debugging</category><category>hardfault</category><category>cortex-m</category></item><item><title>GDB 원격 디버깅 — OpenOCD·J-Link·target remote 구성</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part10-03-gdb-remote-debug/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part10-03-gdb-remote-debug/</guid><description>OpenOCD·pyOCD로 target에 붙고, .gdbinit으로 반복 작업을 자동화하는 패턴을 정리합니다.</description><pubDate>Sun, 19 Apr 2026 09:02:00 GMT</pubDate><category>recipes</category><category>debugging</category><category>gdb</category><category>openocd</category></item><item><title>JTAG·SWD 안 붙을 때 — 핀·전압·속도·세션 진단</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part10-02-jtag-swd/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part10-02-jtag-swd/</guid><description>JTAG·SWD 디버깅 체크리스트. Pin·voltage·clock·daisy chain·security 잠금.</description><pubDate>Sun, 19 Apr 2026 09:01:00 GMT</pubDate><category>recipes</category><category>jtag</category><category>swd</category><category>openocd</category><category>debug</category><category>brick</category></item><item><title>임베디드 디버깅 마인드셋 — 가설·격리·재현·이분탐색</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part10-01-debug-mindset/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part10-01-debug-mindset/</guid><description>가설-검증 사이클·binary search·changelog·rubber duck — 임베디드 디버깅의 사고 도구.</description><pubDate>Sun, 19 Apr 2026 09:00:00 GMT</pubDate><category>recipes</category><category>debugging</category><category>methodology</category></item><item><title>MPMC Queue 구현 — Multi-producer Multi-consumer Lock-Free</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part9-10-mpmc-queue/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part9-10-mpmc-queue/</guid><description>MPMC와 SPSC 차이, Vyukov 큐, Disruptor의 ring과 sequence, bounded와 unbounded 비교를 실측과 함께 정리합니다.</description><pubDate>Sat, 18 Apr 2026 09:09:00 GMT</pubDate><category>recipes</category><category>concurrency</category><category>queue</category><category>mpmc</category></item><item><title>False Sharing 해결 — Cache Line Padding·SoA 적용</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part9-09-false-sharing/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part9-09-false-sharing/</guid><description>False sharing의 원리와 영향, perf c2c 감지, alignas(64) padding, per-CPU 변수, thread-local까지 해결 전략을 정리합니다.</description><pubDate>Sat, 18 Apr 2026 09:08:00 GMT</pubDate><category>recipes</category><category>concurrency</category><category>cache</category><category>false-sharing</category></item><item><title>ABA 문제 회피 — Tagged Pointer·Hazard·Generation Counter</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part9-08-aba-problem/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part9-08-aba-problem/</guid><description>ABA 시나리오, tagged pointer (64-bit + tag), version counter, hazard pointer 활용, 실제 사례를 정리합니다.</description><pubDate>Sat, 18 Apr 2026 09:07:00 GMT</pubDate><category>recipes</category><category>concurrency</category><category>aba</category></item><item><title>Spinlock vs Mutex 결정 가이드 — Context Switch·Hold Time</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part9-07-spinlock-vs-mutex/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part9-07-spinlock-vs-mutex/</guid><description>Lock hold time, 코어 수, preemption, real-time 요구사항에 따라 spinlock과 mutex를 어떻게 고를지 ticket lock과 MCS lock까지 함께 정리합니다.</description><pubDate>Sat, 18 Apr 2026 09:06:00 GMT</pubDate><category>recipes</category><category>concurrency</category><category>lock</category></item><item><title>Atomic Operation 비용 분석 — Fence·Cache Line·Contention</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part9-06-atomic-cost/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part9-06-atomic-cost/</guid><description>memory_order별 ARM 명령어 차이, LSE vs LL/SC, hot spinning 회피까지 atomic 연산의 실측 비용을 정리합니다.</description><pubDate>Sat, 18 Apr 2026 09:05:00 GMT</pubDate><category>recipes</category><category>concurrency</category><category>atomic</category></item><item><title>Compare-And-Swap 패턴 — Stack·Counter·Linked List 적용</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part9-05-cas-patterns/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part9-05-cas-patterns/</guid><description>CAS loop, strong과 weak CAS, ABA 회피, exponential backoff, spurious failure까지 CAS 사용의 표준 패턴을 정리합니다.</description><pubDate>Sat, 18 Apr 2026 09:04:00 GMT</pubDate><category>recipes</category><category>concurrency</category><category>atomic</category><category>cas</category></item><item><title>Hazard Pointer 분석 — Lock-Free Memory Reclamation</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part9-04-hazard-pointer/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part9-04-hazard-pointer/</guid><description>Lock-free 메모리 회수, ABA 회피, RCU와의 비교, C++ proposal까지 hazard pointer의 원리와 구현을 정리합니다.</description><pubDate>Sat, 18 Apr 2026 09:03:00 GMT</pubDate><category>recipes</category><category>concurrency</category><category>hazard-pointer</category></item><item><title>RCU (Read-Copy-Update) 기초 — Quiescent State·Grace Period</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part9-03-rcu-basics/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part9-03-rcu-basics/</guid><description>RCU 원리, rcu_read_lock, grace period, synchronize_rcu, 임베디드 적용(URCU)을 정리합니다.</description><pubDate>Sat, 18 Apr 2026 09:02:00 GMT</pubDate><category>recipes</category><category>concurrency</category><category>rcu</category></item><item><title>Wait-Free Signaling — Atomic Flag·Sequence·Latest-Value</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part9-02-wait-free/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part9-02-wait-free/</guid><description>Wait-free 보장 patterns. Atomic flag, sequence number, latest-value (double buffer).</description><pubDate>Sat, 18 Apr 2026 09:01:00 GMT</pubDate><category>recipes</category><category>wait-free</category><category>signaling</category><category>sequence</category><category>double-buffer</category></item><item><title>Lock-Free Ring Buffer 구현 — SPSC·Power-of-2·Memory Order</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part9-01-lock-free-ring/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part9-01-lock-free-ring/</guid><description>SPSC ring 구현. Power-of-2 size, head/tail atomic, memory order release/acquire.</description><pubDate>Sat, 18 Apr 2026 09:00:00 GMT</pubDate><category>recipes</category><category>lock-free</category><category>ring-buffer</category><category>spsc</category><category>atomic</category></item><item><title>WCET 분석 기법 — Static·Measurement·Hybrid 방법론</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part8-12-wcet-analysis/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part8-12-wcet-analysis/</guid><description>WCET와 ACET의 차이, 측정 기반과 static analysis, cache 영향, hard real-time 요구사항을 정리합니다.</description><pubDate>Fri, 17 Apr 2026 09:11:00 GMT</pubDate><category>recipes</category><category>performance</category><category>wcet</category></item><item><title>임베디드 전력 최적화 — Sleep Mode·Clock Gating·DVFS</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part8-11-power-optimization/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part8-11-power-optimization/</guid><description>Active와 sleep, peripheral clock gating, DVFS, tickless idle, µA-level 측정까지 임베디드 전력 절감 기법을 정리합니다.</description><pubDate>Fri, 17 Apr 2026 09:10:00 GMT</pubDate><category>recipes</category><category>performance</category><category>power</category></item><item><title>임베디드 코드 크기 최적화 — -Os·LTO·Section Garbage Collection</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part8-10-code-size-optimization/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part8-10-code-size-optimization/</guid><description>-Os, LTO, function-sections, --gc-sections, strip, newlib-nano, printf-tiny까지 펌웨어 binary 크기를 줄이는 단계별 기법을 정리합니다.</description><pubDate>Fri, 17 Apr 2026 09:09:00 GMT</pubDate><category>recipes</category><category>performance</category><category>code-size</category></item><item><title>임베디드 스택 분석 — high-water·overflow 탐지</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part8-09-stack-analysis/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part8-09-stack-analysis/</guid><description>Stack 패턴 채우기로 high-water mark, overflow hook, canary, MPU guard region, RTOS task stack 분석을 한 자리에 정리합니다.</description><pubDate>Fri, 17 Apr 2026 09:08:00 GMT</pubDate><category>recipes</category><category>memory</category><category>stack</category></item><item><title>ARM NEON 심화 — Matrix Multiply·FFT·Image Filter 적용</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part8-08-neon/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part8-08-neon/</guid><description>NEON 실전 사례를 matrix multiply, color conversion, box filter, Sobel, FFT, crypto로 묶어 정리합니다.</description><pubDate>Fri, 17 Apr 2026 09:07:00 GMT</pubDate><category>recipes</category><category>neon</category><category>matrix</category><category>fft</category><category>image</category><category>simd</category></item><item><title>SIMD 활용 분석 — Intrinsics·Auto-Vectorization·OpenMP SIMD</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part8-07-simd/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part8-07-simd/</guid><description>Auto-vectorize, intrinsics, OpenMP SIMD pragma 세 갈래를 데이터 layout과 함께 정리합니다.</description><pubDate>Fri, 17 Apr 2026 09:06:00 GMT</pubDate><category>recipes</category><category>simd</category><category>vectorization</category><category>intrinsics</category><category>openmp</category><category>ispc</category></item><item><title>NUMA Memory Topology — numactl·numa_alloc·HBM 적용</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part8-06-numa/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part8-06-numa/</guid><description>NUMA node topology, numactl 운영, libnuma API, HBM/CXL tier, 자동차 ECU의 mini-NUMA까지 정리합니다.</description><pubDate>Fri, 17 Apr 2026 09:05:00 GMT</pubDate><category>recipes</category><category>numa</category><category>memory</category><category>hbm</category><category>cxl</category></item><item><title>Zero-Copy Pipeline — DMA-BUF·sendfile·io_uring·splice</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part8-05-zero-copy/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part8-05-zero-copy/</guid><description>Camera→GPU→Encoder→Network pipeline에서 memcpy를 모두 제거하는 패턴을 모았습니다.</description><pubDate>Fri, 17 Apr 2026 09:04:00 GMT</pubDate><category>recipes</category><category>zero-copy</category><category>dma-buf</category><category>sendfile</category><category>io_uring</category><category>splice</category></item><item><title>DMA-Friendly Allocator — dma_alloc_coherent·IOMMU·Pool</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part8-04-dma-allocator/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part8-04-dma-allocator/</guid><description>DMA buffer 할당 패턴을 coherent와 streaming, CMA, IOMMU, MPU non-cacheable 영역으로 나눠 정리합니다.</description><pubDate>Fri, 17 Apr 2026 09:03:00 GMT</pubDate><category>recipes</category><category>dma</category><category>allocator</category><category>iommu</category><category>coherent</category></item><item><title>Cache Line Alignment — alignas·Padding·SoA 적용</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part8-03-cache-alignment/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part8-03-cache-alignment/</guid><description>Cache line 정렬과 false sharing 회피, hot/cold 분리, SoA 변환을 코드와 측정으로 정리합니다.</description><pubDate>Fri, 17 Apr 2026 09:02:00 GMT</pubDate><category>recipes</category><category>cache</category><category>alignment</category><category>padding</category><category>soa</category></item><item><title>메모리 정렬과 패딩 분석 — Natural·Strict Alignment·Trap</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part8-02-memory-alignment/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part8-02-memory-alignment/</guid><description>Natural alignment, struct padding 규칙, packed의 unaligned access penalty, offsetof와 alignof 사용을 정리합니다.</description><pubDate>Fri, 17 Apr 2026 09:01:00 GMT</pubDate><category>recipes</category><category>memory</category><category>alignment</category></item><item><title>임베디드 동적 메모리 — malloc 위험·결정성·대안 분석</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part8-01-dynamic-memory/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part8-01-dynamic-memory/</guid><description>Malloc의 fragmentation과 비결정성, pool/arena/slab 대안, FreeRTOS heap_4/5와 정적 대안까지 임베디드의 메모리 전략을 정리합니다.</description><pubDate>Fri, 17 Apr 2026 09:00:00 GMT</pubDate><category>recipes</category><category>memory</category><category>allocator</category></item><item><title>루트 파일시스템 구축 — Buildroot 기초·Package·Toolchain</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part7-14-rootfs-buildroot/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part7-14-rootfs-buildroot/</guid><description>Buildroot 설정, package 추가, post-build script, toolchain 선택, Yocto와의 trade-off를 정리합니다.</description><pubDate>Thu, 16 Apr 2026 09:13:00 GMT</pubDate><category>recipes</category><category>linux</category><category>buildroot</category><category>rootfs</category></item><item><title>IRQ Affinity 튜닝 — smp_affinity·isolcpus·irqbalance</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part7-13-irq-affinity/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part7-13-irq-affinity/</guid><description>IRQ를 코어에 고정하는 방법과 isolcpus·irqbalance·threaded IRQ의 상호작용을 측정과 함께 정리합니다.</description><pubDate>Thu, 16 Apr 2026 09:12:00 GMT</pubDate><category>recipes</category><category>irq-affinity</category><category>isolcpus</category><category>irqbalance</category><category>preempt-rt</category></item><item><title>sysfs·configfs 활용 — kobject 기반 User 인터페이스</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part7-12-sysfs/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part7-12-sysfs/</guid><description>sysfs attribute, attribute group, configfs로 user space에서 driver를 제어하는 표준 패턴을 정리합니다.</description><pubDate>Thu, 16 Apr 2026 09:11:00 GMT</pubDate><category>recipes</category><category>sysfs</category><category>configfs</category><category>kobject</category><category>udev</category></item><item><title>UIO·VFIO 분석 — User-Space Driver와 IOMMU 격리</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part7-11-uio-vfio/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part7-11-uio-vfio/</guid><description>UIO·VFIO로 user space에서 hardware를 다루는 방법, IOMMU 기반 DMA 안전성, DPDK·SPDK 사용 패턴을 정리합니다.</description><pubDate>Thu, 16 Apr 2026 09:10:00 GMT</pubDate><category>recipes</category><category>uio</category><category>vfio</category><category>iommu</category><category>dpdk</category><category>spdk</category></item><item><title>epoll 실전 — LT·ET·ONESHOT·EXCLUSIVE 비교</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part7-10-epoll/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part7-10-epoll/</guid><description>select·poll의 한계와 epoll의 트리거 모드, ONESHOT·EXCLUSIVE 플래그를 코드와 성능으로 비교합니다.</description><pubDate>Thu, 16 Apr 2026 09:09:00 GMT</pubDate><category>recipes</category><category>epoll</category><category>level-triggered</category><category>edge-triggered</category><category>multiplex</category></item><item><title>mmap 4가지 모드 — Anonymous·File·Shared·Huge Page</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part7-09-mmap/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part7-09-mmap/</guid><description>mmap의 네 가지 사용 모드와 madvise·MAP_HUGETLB·mlock을 코드와 측정값으로 정리합니다.</description><pubDate>Thu, 16 Apr 2026 09:08:00 GMT</pubDate><category>recipes</category><category>mmap</category><category>madvise</category><category>huge-page</category><category>mlock</category></item><item><title>Platform 드라이버 작성 — probe·remove·of_match·DT 바인딩</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part7-08-platform-driver/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part7-08-platform-driver/</guid><description>platform_driver_register, of_match_table, probe/remove, devm_* 자원 관리, IRQ와 MMIO 획득까지 platform driver의 표준 패턴을 정리합니다.</description><pubDate>Thu, 16 Apr 2026 09:07:00 GMT</pubDate><category>recipes</category><category>linux</category><category>platform-driver</category></item><item><title>캐릭터 드라이버 작성 — file_operations·cdev·register_chrdev</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part7-07-char-driver/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part7-07-char-driver/</guid><description>file_operations, cdev, minor 번호, copy_to/from_user, blocking I/O, misc device 단축 경로까지 character driver의 표준 패턴을 정리합니다.</description><pubDate>Thu, 16 Apr 2026 09:06:00 GMT</pubDate><category>recipes</category><category>linux</category><category>char-driver</category></item><item><title>커널 모듈 기초 — init/exit·Parameter·KBuild·DKMS</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part7-06-kernel-module/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part7-06-kernel-module/</guid><description>Linux kernel module의 진입점, 모듈 파라미터, KBuild Makefile, insmod 흐름, DKMS 배포까지 한 번에 정리합니다.</description><pubDate>Thu, 16 Apr 2026 09:05:00 GMT</pubDate><category>recipes</category><category>kernel-module</category><category>ko</category><category>kbuild</category><category>dkms</category></item><item><title>임베디드 커널 빌드 — defconfig·menuconfig·Image·zImage</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part7-05-kernel-build/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part7-05-kernel-build/</guid><description>Kernel source, defconfig, menuconfig, cross-compile, module 빌드, deb/rpm 패키징까지 KBuild 전 과정을 정리합니다.</description><pubDate>Thu, 16 Apr 2026 09:04:00 GMT</pubDate><category>recipes</category><category>linux</category><category>kernel-build</category></item><item><title>Device Tree Overlay 적용 — Runtime fragment·dtoverlay</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part7-04-device-tree-overlay/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part7-04-device-tree-overlay/</guid><description>DT overlay의 fragment, target, symbol, dtoverlay 명령, Raspberry Pi 적용 예까지 동적 device 활성화를 정리합니다.</description><pubDate>Thu, 16 Apr 2026 09:03:00 GMT</pubDate><category>recipes</category><category>linux</category><category>device-tree</category><category>overlay</category></item><item><title>Device Tree 실전 — DTS·DTB·Overlay·Phandle 추적</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part7-03-device-tree-basics/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part7-03-device-tree-basics/</guid><description>Device Tree Source 문법. DTC 컴파일. Overlay로 dynamic 변경. Linux driver match.</description><pubDate>Thu, 16 Apr 2026 09:02:00 GMT</pubDate><category>recipes</category><category>device-tree</category><category>dts</category><category>dtb</category><category>overlay</category><category>linux</category></item><item><title>U-Boot 활용 — bootcmd·env·tftp·boot.scr 분석</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part7-02-uboot-usage/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part7-02-uboot-usage/</guid><description>U-Boot environment, script, bootcmd, TFTP/Fastboot, UEFI 모드까지 현장에서 쓰는 패턴을 정리합니다.</description><pubDate>Thu, 16 Apr 2026 09:01:00 GMT</pubDate><category>recipes</category><category>linux</category><category>u-boot</category></item><item><title>임베디드 Linux 부팅 흐름 분석 — BootROM·U-Boot·Kernel·init</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part7-01-linux-boot-flow/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part7-01-linux-boot-flow/</guid><description>BootROM, SPL, U-Boot, Kernel, Init까지 각 단계의 책임과 ATF/OP-TEE, initramfs, init 시스템 선택을 정리합니다.</description><pubDate>Thu, 16 Apr 2026 09:00:00 GMT</pubDate><category>recipes</category><category>linux</category><category>boot</category></item><item><title>RTOS 디버깅 기법 — Tracealyzer·SystemView·Stack 추적</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part6-12-rtos-debugging/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part6-12-rtos-debugging/</guid><description>Stack high-water mark, overflow hook, deadlock 탐지, heap 분석, trace 도구까지 RTOS 디버깅을 한 자리에 정리합니다.</description><pubDate>Wed, 15 Apr 2026 09:11:00 GMT</pubDate><category>recipes</category><category>rtos</category><category>debugging</category></item><item><title>Timer Wheel 분석 — Hashed·Hierarchical·O(1) Tick</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part6-11-timer-services/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part6-11-timer-services/</guid><description>Timer wheel 자료구조. Hashed wheel·hierarchical wheel·O(1) tick·Linux jiffies.</description><pubDate>Wed, 15 Apr 2026 09:10:00 GMT</pubDate><category>recipes</category><category>timer-wheel</category><category>hashed-wheel</category><category>hierarchical</category><category>scheduler</category></item><item><title>Priority Inversion 진단·예방 — Mars Pathfinder Lesson 추적</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part6-10-priority-inversion/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part6-10-priority-inversion/</guid><description>Priority Inversion 발생 시나리오. Mars Pathfinder 사례. PI mutex, Priority Ceiling.</description><pubDate>Wed, 15 Apr 2026 09:09:00 GMT</pubDate><category>recipes</category><category>priority-inversion</category><category>mars-pathfinder</category><category>pi</category><category>mutex</category></item><item><title>ISR-Safe API 설계 — Reentrant·Atomic·Defer 패턴</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part6-09-isr-api/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part6-09-isr-api/</guid><description>ISR 안전 함수 작성. Reentrant, atomic 변수, deferred work, FromISR variant.</description><pubDate>Wed, 15 Apr 2026 09:08:00 GMT</pubDate><category>recipes</category><category>isr</category><category>reentrant</category><category>atomic</category><category>defer</category></item><item><title>RTOS Software Timer 활용 — One-shot·Auto-reload·Daemon Task</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part6-08-software-timer/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part6-08-software-timer/</guid><description>Software timer와 hardware timer의 분기점, one-shot/auto-reload, timer task context, delete 시 race를 정리합니다.</description><pubDate>Wed, 15 Apr 2026 09:07:00 GMT</pubDate><category>recipes</category><category>rtos</category><category>timer</category></item><item><title>RTOS Event Group 활용 — Bit Wait·Sync·Notify</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part6-07-event-group/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part6-07-event-group/</guid><description>Event group bit, set/clear, AND/OR 조건 wait, broadcast로 다중 task synchronization을 정리합니다.</description><pubDate>Wed, 15 Apr 2026 09:06:00 GMT</pubDate><category>recipes</category><category>rtos</category><category>event</category></item><item><title>RTOS Queue 활용 — By-Value·By-Reference·Timeout 패턴</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part6-06-queue-usage/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part6-06-queue-usage/</guid><description>RTOS queue로 producer-consumer를 구성하고, by-value vs by-pointer, backpressure, zero-copy queue까지 정리합니다.</description><pubDate>Wed, 15 Apr 2026 09:05:00 GMT</pubDate><category>recipes</category><category>rtos</category><category>queue</category></item><item><title>RTOS Mutex 활용 — Recursive·Priority Inheritance 적용</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part6-05-mutex-usage/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part6-05-mutex-usage/</guid><description>Mutex와 binary semaphore의 차이, priority inheritance, recursive lock, timeout, ownership 규칙을 정리합니다.</description><pubDate>Wed, 15 Apr 2026 09:04:00 GMT</pubDate><category>recipes</category><category>rtos</category><category>mutex</category></item><item><title>RTOS Semaphore 활용 — Binary·Counting·ISR Give</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part6-04-semaphore-usage/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part6-04-semaphore-usage/</guid><description>Binary semaphore signaling, counting semaphore resource pool, ISR-to-task wake-up 패턴을 정리합니다.</description><pubDate>Wed, 15 Apr 2026 09:03:00 GMT</pubDate><category>recipes</category><category>rtos</category><category>semaphore</category></item><item><title>RTOS Scheduler 동작 분석 — Tick·Context Switch·Yield</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part6-03-scheduler-internals/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part6-03-scheduler-internals/</guid><description>Preemptive와 cooperative, time-slice, context switch 비용, tickless idle까지 scheduler가 실제로 어떻게 도는지 정리합니다.</description><pubDate>Wed, 15 Apr 2026 09:02:00 GMT</pubDate><category>recipes</category><category>rtos</category><category>scheduler</category></item><item><title>RTOS Task 설계 패턴 — 우선순위·스택·State Machine</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part6-02-task-design/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part6-02-task-design/</guid><description>Periodic, event-driven, state machine 세 가지 task 패턴과 priority 산정 기준을 정리합니다.</description><pubDate>Wed, 15 Apr 2026 09:01:00 GMT</pubDate><category>recipes</category><category>rtos</category><category>task</category></item><item><title>RTOS 도입 결정 분석 — Super Loop vs RTOS 트레이드오프</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part6-01-rtos-decision/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part6-01-rtos-decision/</guid><description>Super-loop와 RTOS의 분기점, RAM/Flash 비용, 디버깅 복잡도, 결정 기준을 한 자리에 정리합니다.</description><pubDate>Wed, 15 Apr 2026 09:00:00 GMT</pubDate><category>recipes</category><category>rtos</category><category>design</category></item><item><title>RTC 활용 — Calendar·Alarm·Wake-up Timer·Backup Domain</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part5-14-rtc-utilization/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part5-14-rtc-utilization/</guid><description>Battery backup·alarm·calendar·tamper.</description><pubDate>Tue, 14 Apr 2026 10:02:00 GMT</pubDate><category>recipes</category><category>peripheral</category><category>rtc</category></item><item><title>SD Card + FatFs 구현 — SPI/SDIO 모드·CSD/CID·Wear</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part5-13-sd-card-fatfs/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part5-13-sd-card-fatfs/</guid><description>SPI 모드 vs SDIO·FatFs port·long filename.</description><pubDate>Tue, 14 Apr 2026 10:01:00 GMT</pubDate><category>recipes</category><category>peripheral</category><category>sd</category><category>fatfs</category></item><item><title>Ethernet MAC+PHY 통합 — RMII·lwIP·DMA Descriptor</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part5-12-ethernet-mac-phy/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part5-12-ethernet-mac-phy/</guid><description>RMII·MDIO·lwIP raw API·DHCP·HTTP server.</description><pubDate>Tue, 14 Apr 2026 10:00:00 GMT</pubDate><category>recipes</category><category>peripheral</category><category>ethernet</category></item><item><title>USB Device 기초 — Descriptor·Enumeration·Endpoint·HID/CDC</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part5-11-usb-device/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part5-11-usb-device/</guid><description>CDC·HID class — STM32 USB stack 활용.</description><pubDate>Tue, 14 Apr 2026 09:59:00 GMT</pubDate><category>recipes</category><category>peripheral</category><category>usb</category></item><item><title>CAN 통신 구현 — bxCAN·Filter·Mailbox·CAN-FD</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part5-10-can-communication/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part5-10-can-communication/</guid><description>Frame format·filter·bit timing·error frame.</description><pubDate>Tue, 14 Apr 2026 09:58:00 GMT</pubDate><category>recipes</category><category>peripheral</category><category>can</category></item><item><title>IMU 센서 활용 — MPU6050·BMI270·Sensor Fusion</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part5-09-imu-sensor/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part5-09-imu-sensor/</guid><description>MPU6050·BMI270 — sensor fusion 입력 단계.</description><pubDate>Tue, 14 Apr 2026 09:57:00 GMT</pubDate><category>recipes</category><category>peripheral</category><category>imu</category></item><item><title>환경 센서 활용 — BME280 온습압·SHT3x 비교</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part5-08-environmental-sensors/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part5-08-environmental-sensors/</guid><description>BME280·SHT3x — I2C·SPI 센서 driver 패턴.</description><pubDate>Tue, 14 Apr 2026 09:56:00 GMT</pubDate><category>recipes</category><category>peripheral</category><category>sensor</category></item><item><title>TFT 디스플레이 구동 — RGB565·FSMC·LTDC·DMA2D</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part5-07-tft-display/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part5-07-tft-display/</guid><description>Parallel RGB·framebuffer·LTDC·tearing 방지.</description><pubDate>Tue, 14 Apr 2026 09:55:00 GMT</pubDate><category>recipes</category><category>peripheral</category><category>tft</category><category>display</category></item><item><title>SPI OLED 제어 — SSD1306·Frame Buffer·Page 단위 갱신</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part5-06-spi-oled/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part5-06-spi-oled/</guid><description>128×64 OLED·framebuffer·page mode·partial update.</description><pubDate>Tue, 14 Apr 2026 09:54:00 GMT</pubDate><category>recipes</category><category>peripheral</category><category>oled</category></item><item><title>Character LCD 제어 — HD44780·4-bit Mode·Custom Char</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part5-05-character-lcd/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part5-05-character-lcd/</guid><description>4/8-bit 모드·command·custom character·timing 준수.</description><pubDate>Tue, 14 Apr 2026 09:53:00 GMT</pubDate><category>recipes</category><category>peripheral</category><category>lcd</category></item><item><title>서보 모터 제어 — PWM 1ms~2ms·Closed Loop·PID</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part5-04-servo-motor/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part5-04-servo-motor/</guid><description>PWM-based 제어 (50Hz, 1~2ms duty)·각도 매핑.</description><pubDate>Tue, 14 Apr 2026 09:52:00 GMT</pubDate><category>recipes</category><category>peripheral</category><category>servo</category></item><item><title>스테퍼 모터 제어 — Full Step·Half Step·Microstepping</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part5-03-stepper-motor/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part5-03-stepper-motor/</guid><description>Full-step·half-step·micro-step·가속/감속 프로파일.</description><pubDate>Tue, 14 Apr 2026 09:51:00 GMT</pubDate><category>recipes</category><category>peripheral</category><category>motor</category><category>stepper</category></item><item><title>DC 모터 제어 — H-Bridge·PWM Duty·Encoder Feedback</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part5-02-dc-motor/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part5-02-dc-motor/</guid><description>H-bridge·PWM·방향·역기전력 보호.</description><pubDate>Tue, 14 Apr 2026 09:50:00 GMT</pubDate><category>recipes</category><category>peripheral</category><category>motor</category></item><item><title>PWM 출력 실전 — LED 밝기·모터 속도 제어</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part5-01-pwm-output/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part5-01-pwm-output/</guid><description>Timer로 PWM 생성·duty 변경·complementary 출력.</description><pubDate>Tue, 14 Apr 2026 09:49:00 GMT</pubDate><category>recipes</category><category>peripheral</category><category>pwm</category></item><item><title>DDR 초기화 실패 진단 — Timing·Calibration·Walking Bit Test</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part4-14-ddr-init-failure/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part4-14-ddr-init-failure/</guid><description>DDR3/4 초기화 sequence. ZQ calibration, write leveling, walking bit test, JESD79 사양.</description><pubDate>Mon, 13 Apr 2026 09:48:00 GMT</pubDate><category>recipes</category><category>ddr</category><category>sdram</category><category>memory</category><category>calibration</category></item><item><title>임베디드 Flash 프로그래밍 — Erase·Program·Read While Write</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part4-13-flash-programming/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part4-13-flash-programming/</guid><description>내부 erase/write·dual bank·EEPROM emulation.</description><pubDate>Mon, 13 Apr 2026 09:47:00 GMT</pubDate><category>recipes</category><category>bare-metal</category><category>flash</category></item><item><title>IWDG·WWDG 워치독 구현 — Independent vs Window 비교</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part4-12-watchdog/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part4-12-watchdog/</guid><description>Independent vs Window·refresh 전략·debug 모드 freeze.</description><pubDate>Mon, 13 Apr 2026 09:46:00 GMT</pubDate><category>recipes</category><category>bare-metal</category><category>watchdog</category></item><item><title>저전력 모드 분석 — Sleep·Stop·Standby·Wake-up Source</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part4-11-low-power-modes/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part4-11-low-power-modes/</guid><description>Sleep/Stop/Standby·wake-up source·전류 측정.</description><pubDate>Mon, 13 Apr 2026 09:45:00 GMT</pubDate><category>recipes</category><category>bare-metal</category><category>low-power</category></item><item><title>임베디드 DMA 기초 — Memory-to-Memory·Peripheral·Circular Mode</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part4-10-dma-basics/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part4-10-dma-basics/</guid><description>Channel·trigger·half/full complete·circular·memory-to-memory.</description><pubDate>Mon, 13 Apr 2026 09:44:00 GMT</pubDate><category>recipes</category><category>bare-metal</category><category>dma</category></item><item><title>I2C 드라이버 구현 — Master·7-bit/10-bit·Clock Stretching 처리</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part4-09-i2c-driver/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part4-09-i2c-driver/</guid><description>Master·repeated start·NACK 처리·timeout.</description><pubDate>Mon, 13 Apr 2026 09:43:00 GMT</pubDate><category>recipes</category><category>bare-metal</category><category>i2c</category></item><item><title>SPI 드라이버 구현 — Master·Slave·CRC·DMA</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part4-08-spi-driver/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part4-08-spi-driver/</guid><description>Master/slave·CPOL/CPHA·DMA·multi-slave CS.</description><pubDate>Mon, 13 Apr 2026 09:42:00 GMT</pubDate><category>recipes</category><category>bare-metal</category><category>spi</category></item><item><title>UART 드라이버 구현 — polling·interrupt·DMA 3가지 방식 비교</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part4-07-uart-driver/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part4-07-uart-driver/</guid><description>3가지 모드의 trade-off — CPU 사용량·latency·throughput.</description><pubDate>Mon, 13 Apr 2026 09:41:00 GMT</pubDate><category>recipes</category><category>bare-metal</category><category>uart</category></item><item><title>SysTick 타이머 활용 — 24-bit Counter·1ms Tick·delay 구현</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part4-06-systick-timer/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part4-06-systick-timer/</guid><description>1ms tick·delay·jiffies — RTOS 없이 시간 처리.</description><pubDate>Mon, 13 Apr 2026 09:40:00 GMT</pubDate><category>recipes</category><category>bare-metal</category><category>systick</category></item><item><title>Cortex-M 인터럽트 핸들링 — NVIC·Priority·Vector·EXTI</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part4-05-interrupt-handling/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part4-05-interrupt-handling/</guid><description>NVIC 설정·ISR 작성·prologue/epilogue·priority.</description><pubDate>Mon, 13 Apr 2026 09:39:00 GMT</pubDate><category>recipes</category><category>bare-metal</category><category>interrupt</category></item><item><title>임베디드 클럭 설정 분석 — HSE·PLL·SYSCLK·AHB/APB 분주</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part4-04-clock-setup/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part4-04-clock-setup/</guid><description>HSE/HSI·PLL·peripheral clock enable — 코어/주변기기 클럭 트리.</description><pubDate>Mon, 13 Apr 2026 09:38:00 GMT</pubDate><category>recipes</category><category>bare-metal</category><category>clock</category></item><item><title>GPIO 드라이버 직접 구현 — STM32 HAL 없이 레지스터로</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part4-03-gpio-driver/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part4-03-gpio-driver/</guid><description>Mode/speed/pull/AF — STM32 기준 register-level driver.</description><pubDate>Mon, 13 Apr 2026 09:37:00 GMT</pubDate><category>recipes</category><category>bare-metal</category><category>gpio</category></item><item><title>MMIO 레지스터 직접 접근 — volatile·Memory Map·Aliasing 분석</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part4-02-mmio-access/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part4-02-mmio-access/</guid><description>volatile·MMIO·packed struct — peripheral register 다루기.</description><pubDate>Mon, 13 Apr 2026 09:36:00 GMT</pubDate><category>recipes</category><category>bare-metal</category><category>mmio</category></item><item><title>첫 bare-metal 프로그램 작성 — Linker·Startup·main의 최소 구성</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part4-01-first-baremetal/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part4-01-first-baremetal/</guid><description>LED toggle — 최소한의 startup·main·loop.</description><pubDate>Mon, 13 Apr 2026 09:35:00 GMT</pubDate><category>recipes</category><category>bare-metal</category><category>led</category></item><item><title>임베디드 Bootloader 체인 — BootROM·SPL·U-Boot·Kernel·Secure Boot</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part3-12-bootloader-chain/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part3-12-bootloader-chain/</guid><description>Cortex-A 부팅 단계. BootROM → SPL → U-Boot → Linux. Secure boot, FIT image, A/B.</description><pubDate>Sun, 12 Apr 2026 09:34:00 GMT</pubDate><category>recipes</category><category>bootloader</category><category>u-boot</category><category>secure-boot</category><category>spl</category></item><item><title>Make·CMake 크로스 컴파일 — Toolchain File·Sysroot 통합</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part3-11-make-cmake-cross/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part3-11-make-cmake-cross/</guid><description>Embedded 빌드 시스템 — toolchain file·target_link_options.</description><pubDate>Sun, 12 Apr 2026 09:33:00 GMT</pubDate><category>recipes</category><category>build</category><category>cmake</category></item><item><title>Map 파일 분석 — Symbol·Section·Size 추적으로 코드 크기 진단</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part3-10-map-file-analysis/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part3-10-map-file-analysis/</guid><description>메모리 사용·심볼 위치·dead code 추적.</description><pubDate>Sun, 12 Apr 2026 09:32:00 GMT</pubDate><category>recipes</category><category>toolchain</category><category>mapfile</category></item><item><title>임베디드 컴파일러 최적화 분석 — -O0~-O3·-Os·-LTO 비교</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part3-09-compiler-optimization/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part3-09-compiler-optimization/</guid><description>-O0/-O1/-O2/-O3/-Os/-Og — 옵션별 차이와 디버깅 가능성.</description><pubDate>Sun, 12 Apr 2026 09:31:00 GMT</pubDate><category>recipes</category><category>toolchain</category><category>optimization</category></item><item><title>임베디드 메모리 레이아웃 — .text·.rodata·.data·.bss·.heap·.stack</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part3-08-memory-layout/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part3-08-memory-layout/</guid><description>Stack/heap/static — 누가 어디 사는가.</description><pubDate>Sun, 12 Apr 2026 09:30:00 GMT</pubDate><category>recipes</category><category>toolchain</category><category>memory</category></item><item><title>C 런타임 crt0 분석 — Stack·BSS Zero·Data Copy·atexit</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part3-07-c-runtime/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part3-07-c-runtime/</guid><description>crt0·.data 복사·.bss 클리어·ctors·atexit.</description><pubDate>Sun, 12 Apr 2026 09:29:00 GMT</pubDate><category>recipes</category><category>toolchain</category><category>runtime</category></item><item><title>임베디드 스타트업 코드 분석 — Reset_Handler·Vector Table·SystemInit</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part3-06-startup-code/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part3-06-startup-code/</guid><description>Reset_Handler·vector table·__libc_init_array·main 진입.</description><pubDate>Sun, 12 Apr 2026 09:28:00 GMT</pubDate><category>recipes</category><category>toolchain</category><category>startup</category></item><item><title>링커 스크립트 고급 — Overlay·BSS·init_array·LMA/VMA</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part3-05-linker-script-advanced/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part3-05-linker-script-advanced/</guid><description>LMA vs VMA·KEEP·AT&gt;·overlay·custom section.</description><pubDate>Sun, 12 Apr 2026 09:27:00 GMT</pubDate><category>recipes</category><category>toolchain</category><category>linker</category></item><item><title>링커 스크립트 기초 — SECTIONS·MEMORY·entry point</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part3-04-linker-script-basics/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part3-04-linker-script-basics/</guid><description>MEMORY·SECTIONS·alignment·기본 layout.</description><pubDate>Sun, 12 Apr 2026 09:26:00 GMT</pubDate><category>recipes</category><category>toolchain</category><category>linker</category></item><item><title>ELF 파일 구조 분석 — Section·Segment·Symbol Table·DWARF</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part3-03-elf-format/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part3-03-elf-format/</guid><description>Header·sections·symbols — `readelf`로 dissect.</description><pubDate>Sun, 12 Apr 2026 09:25:00 GMT</pubDate><category>recipes</category><category>toolchain</category><category>elf</category></item><item><title>C 컴파일 4단계 — Preprocess·Compile·Assemble·Link 추적</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part3-02-compile-pipeline/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part3-02-compile-pipeline/</guid><description>Preprocess·compile·assemble·link — `-E -S -c` 분해.</description><pubDate>Sun, 12 Apr 2026 09:24:00 GMT</pubDate><category>recipes</category><category>toolchain</category><category>compile</category></item><item><title>임베디드 크로스 컴파일러 분석 — GCC·Clang·Sysroot 구성</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part3-01-cross-compiler/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part3-01-cross-compiler/</guid><description>arm-none-eabi-gcc/clang — 호스트와 타겟이 다른 컴파일러 체인.</description><pubDate>Sun, 12 Apr 2026 09:23:00 GMT</pubDate><category>recipes</category><category>toolchain</category><category>cross-compile</category></item><item><title>ARM Memory Barrier 실전 — DMB·DSB·ISB·DMA·MMIO</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part2-10-memory-barrier/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part2-10-memory-barrier/</guid><description>ARM memory barrier 실전. DMB/DSB/ISB 사용 시점. DMA·MMIO·self-modifying code.</description><pubDate>Sat, 11 Apr 2026 09:22:00 GMT</pubDate><category>recipes</category><category>memory-barrier</category><category>dmb</category><category>dsb</category><category>isb</category><category>dma</category></item><item><title>ARM TrustZone-M 기초 — Secure/Non-Secure·NSC·MPC</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part2-09-trustzone-m/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part2-09-trustzone-m/</guid><description>Cortex-M33의 Secure/Non-Secure 분리·SAU/IDAU·NSC.</description><pubDate>Sat, 11 Apr 2026 09:21:00 GMT</pubDate><category>recipes</category><category>arm</category><category>trustzone</category></item><item><title>ARM MMU 기초 분석 — Translation Table·TLB·ASID</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part2-08-arm-mmu/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part2-08-arm-mmu/</guid><description>Page table·TLB·virtual address·Linux의 4-level paging.</description><pubDate>Sat, 11 Apr 2026 09:20:00 GMT</pubDate><category>recipes</category><category>arm</category><category>mmu</category></item><item><title>ARM MPU 활용 — Region·Attribute·Privilege Separation</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part2-07-arm-mpu/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part2-07-arm-mpu/</guid><description>Region setup·attributes·fault analysis — 메모리 보호의 실전.</description><pubDate>Sat, 11 Apr 2026 09:19:00 GMT</pubDate><category>recipes</category><category>arm</category><category>mpu</category></item><item><title>ARM L1·L2 캐시 분석 — Set Associative·Inclusive·Maintenance</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part2-06-arm-cache/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part2-06-arm-cache/</guid><description>I-Cache/D-Cache·write-through vs write-back·invalidate/clean.</description><pubDate>Sat, 11 Apr 2026 09:18:00 GMT</pubDate><category>recipes</category><category>arm</category><category>cache</category></item><item><title>ARM 메모리 맵 분석 — Normal·Device·Strongly-Ordered Region</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part2-05-arm-memory-map/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part2-05-arm-memory-map/</guid><description>Code·SRAM·Peripheral·System 영역 — bitband·MPU 활용.</description><pubDate>Sat, 11 Apr 2026 09:17:00 GMT</pubDate><category>recipes</category><category>arm</category><category>memory-map</category></item><item><title>Cortex-M 예외 처리 — Vector Table·NVIC·Tail-Chaining 추적</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part2-04-cortex-m-exceptions/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part2-04-cortex-m-exceptions/</guid><description>NVIC·vector table·tail-chaining·late-arrival의 hardware 기반.</description><pubDate>Sat, 11 Apr 2026 09:16:00 GMT</pubDate><category>recipes</category><category>arm</category><category>nvic</category><category>exceptions</category></item><item><title>ARM 레지스터 구조 분석 — R0~R15·CPSR·SPSR·Banked Registers</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part2-03-arm-registers/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part2-03-arm-registers/</guid><description>R0-R15·xPSR·CONTROL·PRIMASK·BASEPRI — register set 전체 지도.</description><pubDate>Sat, 11 Apr 2026 09:15:00 GMT</pubDate><category>recipes</category><category>arm</category><category>registers</category></item><item><title>ARM Cortex-A 시리즈 비교 — A53·A55·A72·A78·X1 분석</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part2-02-cortex-a-comparison/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part2-02-cortex-a-comparison/</guid><description>A53/A72/A78/Neoverse — 임베디드 Linux용 application 코어.</description><pubDate>Sat, 11 Apr 2026 09:14:00 GMT</pubDate><category>recipes</category><category>arm</category><category>cortex-a</category></item><item><title>ARM Cortex-M 시리즈 비교 — M0·M3·M4·M7·M33·M55 분석</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part2-01-cortex-m-comparison/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part2-01-cortex-m-comparison/</guid><description>M0/M0+/M3/M4/M7/M33/M55/M85 — 어느 코어를 언제 쓰나.</description><pubDate>Sat, 11 Apr 2026 09:13:00 GMT</pubDate><category>recipes</category><category>arm</category><category>cortex-m</category></item><item><title>LVDS 차동 신호 분석 — Common-Mode·Impedance·Eye Pattern</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part1-12-lvds-differential/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part1-12-lvds-differential/</guid><description>고속 차동 신호 (LVDS·LVPECL·CML)·impedance matching.</description><pubDate>Fri, 10 Apr 2026 09:12:00 GMT</pubDate><category>recipes</category><category>lvds</category><category>hw-basics</category></item><item><title>RS-485·RS-422 차동 신호 분석 — Termination·Biasing·Topology</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part1-11-rs485-rs422/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part1-11-rs485-rs422/</guid><description>Multi-drop·terminating·fail-safe biasing·노이즈 강한 환경.</description><pubDate>Fri, 10 Apr 2026 09:11:00 GMT</pubDate><category>recipes</category><category>rs485</category><category>hw-basics</category></item><item><title>CAN 버스 전기적 특성 — Differential·Termination·Dominant/Recessive</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part1-10-can-electrical/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part1-10-can-electrical/</guid><description>CAN_H/CAN_L 차동 신호·120Ω termination·1Mbit 한계.</description><pubDate>Fri, 10 Apr 2026 09:10:00 GMT</pubDate><category>recipes</category><category>can</category><category>hw-basics</category></item><item><title>PWM 신호 생성 분석 — Duty·Frequency·Dead Time·Center-Aligned</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part1-09-pwm-signal/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part1-09-pwm-signal/</guid><description>Duty·frequency·dead-time·center-aligned·complementary 출력.</description><pubDate>Fri, 10 Apr 2026 09:09:00 GMT</pubDate><category>recipes</category><category>pwm</category><category>hw-basics</category></item><item><title>DAC 동작 원리 — R-2R Ladder·Sigma-Delta·Settling Time</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part1-08-dac-principles/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part1-08-dac-principles/</guid><description>R-2R·delta-sigma DAC·glitch energy·monotonicity.</description><pubDate>Fri, 10 Apr 2026 09:08:00 GMT</pubDate><category>recipes</category><category>dac</category><category>hw-basics</category></item><item><title>ADC 동작 원리 — SAR·Sigma-Delta·Pipelined 비교</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part1-07-adc-principles/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part1-07-adc-principles/</guid><description>Sampling·quantization·SAR vs sigma-delta·SNR·ENOB·aliasing.</description><pubDate>Fri, 10 Apr 2026 09:07:00 GMT</pubDate><category>recipes</category><category>adc</category><category>hw-basics</category></item><item><title>I2C 하드웨어 분석 — Open-Drain·Clock Stretching·Arbitration</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part1-06-i2c-hardware/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part1-06-i2c-hardware/</guid><description>SDA/SCL·7/10-bit addressing·ACK/NACK·clock stretching·풀업 크기 선정.</description><pubDate>Fri, 10 Apr 2026 09:06:00 GMT</pubDate><category>recipes</category><category>i2c</category><category>hw-basics</category></item><item><title>SPI 하드웨어 분석 — Clock Mode·MOSI/MISO·Chip Select</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part1-05-spi-hardware/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part1-05-spi-hardware/</guid><description>MOSI/MISO/SCK/CS·CPOL/CPHA 4 모드·daisy-chain·high-speed signal 고려사항.</description><pubDate>Fri, 10 Apr 2026 09:05:00 GMT</pubDate><category>recipes</category><category>spi</category><category>hw-basics</category></item><item><title>UART 하드웨어 동작 분석 — Baud Rate·Framing·FIFO</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part1-04-uart-hardware/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part1-04-uart-hardware/</guid><description>Baud·framing·parity·FIFO·RS-232 레벨까지 UART 회로의 동작 원리.</description><pubDate>Fri, 10 Apr 2026 09:04:00 GMT</pubDate><category>recipes</category><category>uart</category><category>hw-basics</category></item><item><title>GPIO 내부 구조 분해 — Push-Pull·Open-Drain·Schmitt Trigger</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part1-03-gpio-internals/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part1-03-gpio-internals/</guid><description>Push-pull·open-drain·pull-up/down·drive strength·slew rate.</description><pubDate>Fri, 10 Apr 2026 09:03:00 GMT</pubDate><category>recipes</category><category>gpio</category><category>hw-basics</category></item><item><title>임베디드 클럭과 타이밍 — Skew·Jitter·PLL·MMCM 분석</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part1-02-clock-timing/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part1-02-clock-timing/</guid><description>PLL·jitter·skew·setup/hold time — 디지털 시스템의 모든 동작의 근간.</description><pubDate>Fri, 10 Apr 2026 09:02:00 GMT</pubDate><category>recipes</category><category>clock</category><category>timing</category><category>pll</category></item><item><title>디지털 신호 기초 — Voltage Level·Edge·Setup/Hold 분석</title><link>https://hawk90.dev/blog/embedded/modern-recipes/part1-01-digital-signal-basics/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/part1-01-digital-signal-basics/</guid><description>Voltage level·rise/fall time·noise margin·신호 무결성의 기본기.</description><pubDate>Fri, 10 Apr 2026 09:01:00 GMT</pubDate><category>recipes</category><category>signal-integrity</category><category>hw-basics</category></item><item><title>Modern Embedded Recipes — 모던 임베디드 실전 레시피 시리즈 소개</title><link>https://hawk90.dev/blog/embedded/modern-recipes/00-preface/</link><guid isPermaLink="true">https://hawk90.dev/blog/embedded/modern-recipes/00-preface/</guid><description>HW interface 기초부터 ARM·빌드·드라이버·peripheral·RTOS·Linux·메모리·동시성·디버깅·FPGA·Edge AI까지 임베디드 12 Part 종합 cookbook 148편.</description><pubDate>Fri, 10 Apr 2026 09:00:00 GMT</pubDate><category>embedded</category><category>recipes</category><category>cookbook</category><category>arm</category><category>linux</category><category>rtos</category><category>fpga</category><category>edge-ai</category></item></channel></rss>