어떤 멋진 모임

1.
몇 일전 CPU이야기를 소개하였습니다. 오늘은 커널을 소개하고자 합니다.

아침에 일어나서 구글로 지난 뉴스를 뒤적거렸습니다. 그중 C11과 관련한 내용을 찾아보았습니다. C11은 2011년에 만들어진 C언어에 관한 표준규격입니다. 그동안 표준은 C99였습니다. C99라고 해서 C11보다 최신 표준인 것으로 착각했습니다. C와 C++의 표준은 제정한 해의 마지막 두자리를 기준으로 버전을 정한다고 합니다.

C Finally Gets A New Standard
C11 Draft

같이 일하는 파트너는 concurrency와 관련한 변화를 눈 여겨 보더군요. 다만 GCC도 일부만 지원하고 있기때문에 C11를 온전히 지원하는 컴파일러가 나오려면 시간이 필요할 듯 합니다.

Concurrency : C11 standardizes the semantics of multithreaded programs, potentially running on multicore platforms, and lightweight inter-thread communication using atomic variables.

관련하여 GCC가 4.70으로 판올림하면서 재미있는 기능이 들어갔더군요.

When Richard Stallman announced the first public release of GCC in 1987, few could have imagined the broad impact that it has had. ?It has prototyped many language features that later were adopted as part of their respective standards — everything from “long long” type to transactional memory. It deployed an architecture-neutral automatic vectorization facility, OpenMP, and Polyhedral loop nest optimization. It has provided the toolchain infrastructure for the GNU/Linux ecosystem used everywhere from Google and Facebook to financial markets and stock exchanges.
GCC celebrates 25 years with the 4.7.0 release?중에서

Software Transaction Memory입니다. Intel이 CPU에 Transaction Memory를 넣겠다는 이야기는 들어보았지만 소프트웨어 TM은 처음 들어보는 소리였습니다.

Transactional Memory in GCC

C/C++표준이나 컴파일러들이 멀티코어환경에 맞도록 진화하고 있다는 생각이 듭니다. 이상은 서론이었습니다.

본론입니다. Transactional Memory를 검색하다 보니까 IAMROOT.ORG 스터디모임을 알았습니다. 2003년부터 다양한 분야에 대한 분석모임을 해오신 분들이었습니다.

Kernel 소스 분석 스터디, Xen KVM 분석 스터디, GCC 소스 분석 스터디, VM 소스 분석 스터디, MPSoC 분석 스터디, Processor 분석 스터디등. 이중에서 리눅스커널소스 분석은 2003년부터 현재까지 이어져오고 있었습니다. ?더 중요한 점은 이런 분석연구의 성과를 공유하고 있었습니다.

ARM_lksas_6th_documentation_v.0.6.pdf

2.
위의 모임에 참여하시는 분들을 보니 학생만이 아니라 직장인도 있는 듯 합니다. 무엇이 이들을 이끌었을까요? 모임을 소개하는 글중 일부입니다.

1. linux kernel에 대해서 아주 깊이 알게 됩니다. (linux kernel의 이해 책의 틀린 부분을 찾을 정도, 머리로 부팅할 정도)
2. 단순히 kernel을 아는것이 아니라 원하는 대로 바꾸고 고칠수 있게 됩니다. (device driver 정도는 손쉽게 만들 수 있을 정도, embedded는 취미삼아)
3. OS에 대한 이해가 깊어집니다. (간단한 OS 정도는 심심풀이 삼아 만들어 볼수 있을정도)
4. 궁극의 code 최적화 기술을 배울수 있습니다.? (architecture 최적화, 메모리 최적화 , C의 어두운 면, 돈주고도 못배우는 각종 사파의 기술들 등등등)
5. 프로그래밍 스킬이 향상됩니다. (설계, 알고리즘, compiler, linker, assembly는 덤으로)
6. 대규모 프로젝트를 이해하고 분석하는 능력 및 실제로 개발하는 능력이 향상됩니다. (당연하겠죠.)
7. Compiler에 대해서 깊이 이해하게 됩니다. (C 소스를 머리로 컴파일해서 assembly로 보는 정도)
8. Architecture에 대해서 이해가 깊어집니다.? (토론중에 CISC, RISC, EISC, VLIW, Superscalar, RP 등등의 이야기가 절로 나옵니다.)
9. Architecture 및 여러 컴퓨팅 기술의 흐름을 읽을수 있게 됩니다. (가만히 앉아서 최신 커널 소스를 보는것 만으로도 그냥 저절로 알수 있습니다.)
10. 마지막으로 각 분야에 전문가 분과 교류할 수 있습니다.? ?(주위에서 geek이라 불릴만한 분들이 수두룩합니다.)

기술, 지식과 관계를 얻을 수 있습니다. 당연히 도전할 매력을 느끼지 않았나 합니다.

굳이 이런 모임을 소개한 이유는 자본시장내에서 리눅스의 지위가 점점 높아지기때문입니다. 그동안 OS는 이용의 대상이었습니다. 그렇지만 이제는 개발의 대상입니다. 오픈소스 OS이기때문에 정책에 따라서 커널소스를 수정할 수 있습니다.

리눅스 커널과 매매체결시스템

아니더라도 OS의 기본인 커널에 대한 지식을 쌓으면 어플리케이션의 품질을 더 높일 수 있지 않을까요? Latency 경쟁이 하루 이틀에 끝날 것이 아닙니다. 도전하는 자는 항상 아름답습니다.

(*)참고로 북한이 패킹한 리눅스 OS인 붉은별을 구경하세요. 미국에 의해 수입통제를 받고 있어서 공식적으로 윈도우를 사용할 수 없습니다. 그렇기 때문에 리눅스에 대한 투자를 국가적으로 하지 않을까 합니다. 남북교류가 활발해지면 북한의 리눅스개발자와 함께 자본시장 어플리케이션을 개발하면 어떨까요?(^^)

OS “Red Star” – линуксоиды всех стран, соединяйтесь!

2 Comments

  1. 其仁

    ==>북한의 리눅스개발자와 함께 자본시장 어플리케이션을 개발하면 어떨까요?

    이런, 이런, 이러다가 ‘종북쫘빨’ 소릴 들으시면 어쩌시려고. 요즘 분위기 흉흉합니다. 몸조심하셔야죠. ㅎ

    Reply
    1. smallake

      ㅋㅋㅋ 내가 좌든 우든 그것으로 인해 사회적 문제를 일으키지 않으면 되죠. 헌법에 양심의 자유가 있으니까….

      그래도 남북이 협력하여 좀더 좋은 걸 만들 수 있으면 좋죠. 인도나 중국이나 베트남 노동자와 일하려고 고생하지 말고 북한 노동자와 일하는 것이 더 편하겠죠. 물론 생각과 말과 행동이 너무나 다르겠지만.

      하여튼 마음조심은 아니고 몸은 조심.

      Reply

Leave a Comment

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.