일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 컨트롤러
- 모빌슈트
- MSX
- Game Gear
- 슈퍼패미컴
- analogue
- ensemble
- 게임보이
- 게임기어
- GOG
- 건담
- 이스
- 앙상블
- mister
- YS
- 오블완
- mobilesuit
- 닌텐도 스위치
- 티스토리챌린지
- fpga
- PSP
- ps4
- 메가드라이브
- 3DS
- 패미컴
- LMD
- Apple II
- snes
- 슈퍼마리오
- PC엔진
- Today
- Total
Just a Blog
리눅스(Linux) 커널 6.12 그리고 PREEMPT_RT 본문
얼마 전에 리눅스 커널 6.12가 공식적으로 발표되었다고 한다.
이번 버전에서 많이 이야기가 되는 것이기도 하면서 개인적으로 가장 눈에 들어온 사항은, PREEMPT_RT 패치가 리눅스 커널 메인라인에 올라가 머지(merge)된 것이다. 그동안 리눅스를 RTOS 처럼 사용하기 위해서 PREEMPT_RT 패치를 리눅스 커널 소스에 별도 적용해야 했으나, 이제는 리눅스 소스 트리 안에 기본적으로 포함이 되는 것이다. 관련된 소식은 신규 리눅스 커널이 공식적으로 나오기 전에 있어서 관련 기사를 링크한 적도 있는데, 신규 커널 발표와 함께 공식화 되었다.
이번 버전에 Raspberry Pi 5 지원도 기본 포함되는 것 처럼, 리눅스를 적용하는 많은 시스템들이 자기 시스템을 위한 리눅스 패치가 리눅스 소스 트리에 기본으로 반영되기를 기대한다. PREEMT_RT도 마찬가지였을텐데, 특히 이 패치의 반영은 20년이 걸렸다고 하니 그동안 관계자들이 커널 개발자들을 설득하는데 얼마나 많은 노력이 들었을지 상상 조차 되지 않는다.
과거 한 때 리눅스를 real-time 시스템 안에 적용하기 위해 이런저런 패치를 찾아서 적용하던 경험을 생각하면 묘한 기분이 들기도 한다. 당시 RTLinux, RTAI 등 리눅스 커널과 별도의 커널을 이중으로 두는 방식의 패치를 적용했지만, 그 후에도 리눅스 커널에 preempt 또는 reenterent 특성을 추가하려는 노력들을 보아 왔다. 가장 최근에는 라즈베리파이에 Xenomai 패치를 적용해 보려고 시도해 보기도 했다.
현재의 PREEMPT_RT 상황을 잘 알지 못하지만 이제는 리눅스에서 real-time 기능을 지원하는 방식은 공식적으로 확정된 것 같다.
관련 개발자들의 소감을 다룬 기사도 흥미롭게 읽에 되었는데, printk() 수정에 대한 이야기가 인상적이었다. 커널 개발자들이 오랫동안 사용해 오던 펑션을 바꾸는 것이 쉽지 않았을 것이지만 결국 Linus Torvalds가 수용한 모양이다.
리눅스 소스가 RTOS처럼 동작될 능력을 갖추게 된 만큼 시장에서도 여러가지 움직임이 있지 않을까 생각한다. 타겟 시스템이 PREEMPT_RT가 적용된 리눅스 커널을 사용할 수 있도록 서비스 하는 쪽도 있을 것 같고, 특정 적용 분야의 목적에 맞는 추가 패치를 제공하는 쪽도 있을 것 같다. RTOS 밴더들의 제품군 처럼 real-time 시스템 개발에 사용할 수 있는 보조 툴을 제공하는 곳도 있을 수 있겠고, real-time 시스템 개발에 리눅스를 적용할 수 있도록 교육이나 컨설팅을 제공하는 곳이 있을 수도 있을 것이다.