전체 글 334

자동차 소프트웨어 개발에 오픈소스 기반 혁신이 가능한가?

자동차 소프트웨어 개발에 오픈소스 기반 혁신이 가능한가? 라는 큰 주제를 가지고 국민대학교 자동차학과 학생들에게 10월 달에 두차례 세미나를 진행할 예정이다. 임베디드 소프트웨어 개발, 특히 차량용 소프트웨어 개발에는 엄청난 양의 코드가 들어가 있다. 이 코드의 양은 SDV (Software Defined Vehicle)가 되면서 가파르게 증가할 예정이다. 그리고 그 코드 중 상당수가 오픈소스로 구성되어 있다. 현재 벤츠의 인포테인먼트 플랫폼의 코드 절반 이상이 오픈 소스로 구성되어 있을 정도이고 다른 자동차 회사들도 마찬가지이다. 전체를 완전 상용 OS (QNX, VxWorks등)를 사더라도 오픈소스 없이 제품을 개발한다는 것은 상상도 할 수 없는 일이다. 빠른 개발과 유지보수를 위해 오픈소스의 사용을..

Automotive 2024.08.03

Cloud 비용을 줄이기 위한 Hackathon 아이디어

회사에서 프로젝트를 진행하는데 개발 환경의 인프라가 대부분 Cloud에 올라가 있다. 당연히 비용도 엄청나게 지불하고 있고 관리가 잘 안되어 무차별적으로 사용하고 있는 부분도 많이 있다. 이에 전사적으로 Cloud 비용을 줄이기 위한 해커톤을 하루 진행하기로 했다.  기본적으로 오랫동안 사용하지 않는 아티팩트 찾아서 삭제, 올바른 형태로 CI/CD 사용, 최적의 인스턴스 유형 사용, 사용하지 않는 시간에 인스턴스 Off 등 큰 아이디어들은 제공한다. 그리고 실제 프로젝트의 아티팩트에 들어가서 줄이는 작업을 진행한다. 당연히 제품과 개발에 영향을 주면 안된다. 내일 참여하기 위해 간단히 아이디어를 생각해보려고 이렇게 글을 쓰고 있다. 우선 가능하면 현재 프로젝트에서 사용하는 AWS에 접속해서 어디서 비용을..

Development 2024.08.02

SDV 개발에서 HW/SW Decoupling (디커플링)

SDV (Software Defined Vehicle)는 Automotive 분야에서 가장 많이 듣는 용어 중에 하나이다. 물론 회사 내부에서 개발을 할 때 많이 들어보지는 못했다. 내부적으로는 그냥 MB.OS (Mercecdes-Benz Operating System) 이라는 용어를 훨씬 더 많이 쓴다. 하지만 여기저기 미디어나 다른 회사 블로그 등에서 보면 대중적으로 사용하는 것은 분명하다. 그럼에도 불구하고 이전에 유비쿼터스 등과 같은 용어와 같이 이미 있는 기술을 잘 포장하는 듯한 느낌이 많이 나는것은 필자만의 생각일까? 또한 여러군데서 여러 사람들이 조금씩 다르게 SDV라는 용어에 대해서 이야기한다. 여기서는 그 내용 중 하나인 차량용 SW 개발에서 하드웨어와 분리되어 SW를 개발할 수 있는 환..

Automotive 2024.08.01

Yocto Shared State Cache 디버깅 하기

Yocto 프로젝트의 shared state cache (SSTATE)는 빌드 시스템의 빌드 속도와 효율성을 높이기 위해 사용하는 메커니즘이다. 이 캐시 시스템은 이전에 빌드된 결과물을 재사용할 수 있도록 하여, 매번 전체 빌드 과정을 다시 수행하지 않아도 되게 한다. 위의 그림은 Bazel의 Remote cache에 대해 설명한 그림인데, Yocto의 Shared State Cache 또는 PREMIRROR 도 비슷하다. 원격의 공유할 수 있는 공간에 Cache를 담아 놓고 빌드할 때 접근해서 캐시를 사용한다. 캐시는 이미 빌드해 놓은 결과물로써 변경이 없으면 그대로 사용하여 빌드 속도를 향상시키는데 주 목적이 있다. 하지만 가끔 변경이 없거나 잘못된 의존성 등으로 인해서 Cache Hit이 되지 않아..

Yocto 2024.07.31

QNX 유용한 명령어 (Command)

QNX에서 사용할 수 있는 유용한 명령어에 대해 간단히 정리해보고자 한다. 이 글에서 설명하고 있지 않거나 명령어에 대한 자세한 옵션들을 보고 싶으면 QNX 사이트 https://www.qnx.com/developers/docs/8.0/com.qnx.doc.neutrino.utilities/topic/about.html 를 참고하기 바란다.기본 명령어1. pidin: 시스템의 프로세스 및 상태 정보를 표시한다.$ pidin ar 2. slogger2: 시스템 로그 메시지를 기록하는 데 사용된다. 3. slog2info: 시스템 로그를 표시한다. 4. use: 특정 명령어 또는 프로그램의 사용법을 표시한다. 5. pci: PCI 장치에 대한 정보를 표시한다. 6. devb-: 블록 I/O 드라이버를 실행한..

Development 2024.07.27

QNX의 SDV 전략 (QNX Cabin)

QNX에서 지난주 수요일과 목요일 이틀동안 회사에 와서 하루는 데모를 진행하고 다른 하루는 전일 기술적인 워크샾을 진행하였다. 이틀 모두 참석했고 이에 대한 QNX의 SDV 전략에 대해서 간단히 느낀대로 적어보고자 한다. 아래 webOS가 있어서 간만에 반가웠다. :)  결론부터 이야기하면 이대로 잘 구현만 된다면 QNX를 사용하는 OEM은 Supplier에 의존성이 많이 줄어들고 대신 QNX에 대한 의존성이 조금 더 늘어날 것 같다. 방향성은 정말 좋고 현재 데모도 AWS Cloud, Qualcomm 레퍼런스 보드, Samsung 레퍼런스 보드에서 잘 동작하는 것을 보았다. 물론 이상과 현실은 다르지만 플랫폼과 개발 환경에는 너무 좋은 것 같다.QNX CabinQNX Cabin이라는 새로운 용어를 들고..

Automotive 2024.07.27

빌드 성능 개선 (최적화)

작년 10월 https://www.yocto.co.kr/176 글에서 Yocto 빌드 성능 최적화에 대해서 글을 썼고 중간중간 clang 적용, ccache 적용 등 회사에서 작업한 내용들을 간단히 적어보았다. 이 글에서는 일반론적인 임베디드 소프트웨어 개발에서 빌드 성능을 개선할 수 있는 작업들을 경험을 토대로 적어보고자 한다. Yocto Linux, QNX, 안드로이드 등 OS를 포함하는 빌드에서 성능을 개선하는데 큰 그림이 될 수 있을 것으로 생각된다. 차량용 ECU가 여러 개에서 하나로 통합되면서 고성능의 SoC가 필요하고 그 위에 하이퍼바이저 기반으로 여러개의 OS가 올라가서 동작한다. 이 각각의 OS를 빌드하는데도 오랜 시간이 걸리고 클라우드를 사용하면 그 비용을 상당히 많이든다. 현재 프로젝..

Development 2024.07.25

QNX와 QNX 빌드 시스템

QNX는 실시간 운영 체제 (Real-Time Operating System, RTOS)로, 마이크로커널 아키텍처를 기반으로 하며 주로 임베디드 시스템에 사용된다. QNX는 1980년대에 캐나다의 QNX 소프트웨어 시스템즈에 의해 개발되었으며, 높은 안정성과 실시간 처리 능력, 작은 메모리 사용량을 특징으로 한다. Blackberry가 2010년에 인수했으며 QNX 하이퍼바이저 ASIL D 인증 획득하고 많은 양산 레퍼런스를 보유하여 비싼 라이선스 값에도 불구하고 차량용 OS에 많이 사용되고 있다. QNX SDP (Software Development Platform)QNX SDP(Software Development Platform)는 QNX 운영 체제에서 응용 프로그램을 개발하기 위한 포괄적인 도구 ..

Automotive 2024.07.22

독일의 월세 Index Miete (월세 상승률)

독일 특히 베를린은 집을 구하기 엄청 힘들다. 지금도 그렇지만 필자가 2009년 처음 독일에 와서 집을 구할 때 수십군데 지원을 하고 지원할 때 월급 명세서, Schufa(신용정보조회 즉 독일에서 미납이나 내 신용에 문제가 있는지 확인하는 서류), 집값 체납이 없다는 증명서 (이전 집주인에게) 등 가능한 많은 서류를 집주인에게 줘서 월세를 잘 낼 수 있다는 것을 증명해야 한다. 어떤 친구들은 편지까지 쓴다. 결국 결정은 집주인 마음이다. 그리고 결정이 되면 집주인의 제시 조건에 큰 이견 없이 대부분 수락할 수 밖에 없는, 임대인이 약자가 된다. 그 중 하나가 Index Miete이다. Index Miete는 정해진 공식적인 지표 (물가 상승률)에 따라 집값을 1년에 한번 또는 특정 조건 (필자의 경우 5..

Germany 2024.07.18

Daily (일상) - 2024년 7월 11일 (목)

크로아티아 Split, Hvar, Bol로 휴가를 다녀와서 이틀 전에 복귀해서 오늘까지 쉬고 있다. 내일 (금)부터 다시 업무에 복귀한다. 금요일도 쉴 수 있었지만 그동안 밀려있던 이메일, MS Teams 메시지 등을 처리하고 다음주 월요일부터 깔끔하게 일을 시작하기 위해 주말 전에 복귀하기로 결정했다. 여전히 피곤하지만 오늘 테니스를 치고 와서 약간 살아난 느낌이다. 자기전 그리고 업무에 복귀하기 전에 이런저런 생각을 하면서 블로그를 적어보고 있다.업무휴가 직전 매니저와 팀원들과 MB.OS에서 IVI 부분을 어떻게 다시 시작할까 고민을 했고 어느 정도 안이 나왔다. 내일 복귀하지마자 10시에 회의를 잡아놨고 8월 말, 10월 말까지 각각의 마일스톤별로 어떻게 일을 할지 논의할 예정이다. 일단 개인적으로..

Daily 2024.07.12