Automotive Software

나의 포직스(POSIX) 이야기 본문

포직스 (POSIX)

나의 포직스(POSIX) 이야기

AutoSW 2020. 9. 18. 18:04
나의 포직스(POSIX) 이야기

사실 제목을 "나의 리눅스 또는 유닉스 이야기"로 해야 될지 망설여진다. 나에게 포직스라는 개념조차 없던 시절, 임베디드 리눅스를 통해 처음 포직스라는 단어를 알게 되었지만, 이내 머릿속에서 잊히고 이러한 계열의 운영체제는 단지 유닉스(UNIX)라는 이름으로 인식한 채 대부분의 시간을 지내왔기 때문이다.

물론 리눅스가 포직스 운영체제는 아니지만 그래도 포직스에서 정의하는 기능을 제공하는 포직스 같은 (POSIX Like) 운영체제이고 실제 QNX와 같은 다른 상용 포직스 호환 운영체제와 실제 개발 면에서 크게 다른 점이 없다. (물론, 세부적인 지원 기능 또는 타입 구조체 정의 등은 차이가 있지만)

처음 임베디드 리눅스를 접할 때만 해도 난 임베디드 리눅스 개발자로 먹고살겠구나 생각했었는데, 어찌하다 보니 고성능 운영체제가 필요하지 않은 일반적인 차량 전장 제어기 개발자로 지금까지의 대부분 시간을 보내고 있다. 하지만, 세상은 또 돌고 도는 것인지 제어기 사양도 고성능 요구와 맞물려 고성능 운영체제를 필요로 하고 있어 몇 년 전부터는 잊고 지냈던 리눅스를 다시 나의 책상에 올려놓고선 예전에 느꼈던 그 짜릿함? 을 다시금 느끼고 있다.

이는 바로, 운전자 보조 시스템 또는 자율 주행시스템을 지원하기 위한 아답티브 오토사(The AUTOSAR Adaptive Platform)가 소개 되었기 때문이다. 아답티브 오토사는 제어기 지원 기능을 포직스를 지원하는 운영체제상에서 구동하도록 설계되어 있어, 포직스에서 정의하고 있는 기능과 프로그래밍 기법들을 이해한다면 좀 더 신뢰성 있는 제어기 개발을 할 수 있을 것이다.

사실, 고성능 플랫폼에 아답티브 오토사가 바로 적용 된 것은 아니고, 클래식 오토사의 마이그레이션(Migration) 형태를 가진 오토사 아키텍처가 먼저 적용되었다. 이는, 포직스 기반(호환) 운영체제에 추상화 계층을 구현하여 클래식 오토사 스택을 포직스 운영체제 상에서 구동시키는 구조이다. 기회가 된다면, 이 부분도 다른 포스트에...

어찌 되었건 포직스도 이제는 차량 전장 소프트웨어 개발에 일부분으로 자리 잡고 있어 이와 관련된 부분도 주제 별로 정리해 보고자 한다.

지난 날을 돌이켜보면... 이제는 워낙 다양한 리눅스 개발환경이 여러 반도체 회사들에 의해서도 제공되어 그러한 작업이 굳이 필요하지 않지만, 예전만 해도 리눅스 커널을 다운로드하여 각 프로세서 아키텍처 또는 타깃 보드에 맞추어 커널을 최적화하고 포팅하는 작업이 무엇보다 우선되었다. 그때는 커널 컴파일 시간도 왜 그렇게 길던지.. 컴파일 돌려놓고 친구넘들이랑 공차러 나갔던 것도 생각이 난다. 요즘은 윈도우상의 가상머신(WSL이나 다른 Virtual Machine)에 게스트 운영체제 이미지를 적재하여 간편히 사용하는 것을 보면서, 커널 컴파일에 날밤을 지새운 내 지난날에 아쉬움을 느낀다. 난, 왜 그리 집착하며 컴파일한 걸까...?

To 리눅스, 다시 너를 만나기 전 내 기억 속의 커널은 2.9에 머물러 있었는데, 다시 만난 날 너는 4.19, 그리고 오늘은(2020년 8월 현재) 벌써 5.9로 따라가기 힘겹게 앞서 달려가고 있구나, 나를 위해 조금만 천천히 걸어주면 안 되겠니?

 

'포직스 (POSIX)' 카테고리의 다른 글

램 파일시스템 /dev/shmem, /tmp  (0) 2023.06.15
포직스 안전성 개념 (POSIX Safety Concepts)  (0) 2020.10.16