리눅스 커널 0.01 컴파일 및 부팅하기

FOSS|2022. 7. 17. 04:51

https://web.archive.org/web/20170707093303/http://iamhjoo.tistory.com/11

즐겨찾기한 글이 삭제되어서 어쩔 수 없이 복원에서 공유해봅니다.
 
다행히 다른 분이 이미 리눅스 커널 0.01버전을 잘 정리해두었네요.
https://kjhg4321.gitbook.io/kaldp/
 
 

댓글()

Rust 기반 OpenGL animation toolkit

FOSS|2021. 11. 24. 14:31

오랜 숙원사업(?) 첫삽을 떴습니다. 나만의 오픈소스 프로젝트를 시작해보려고 그동안 여러 시도를 해왔지만, 생각 만큼 진척이 없었습니다. 무엇보다도 부끄럽지 않은 결과를 만들어보고 공개하자는 맘이 앞서다 보니, 뭘 만들어도 막상 공개하려면 부끄러움이 앞서더군요. 하지만 어떤 피드백 없이 혼자 꾸역 꾸역 뭔가 만들어 나가는 것도 보통 의지가 없으면 안됩니다. 리누스 토발즈가 말했는이, 제대로된 구조 보다 일단 동작 가능하게 만들어야 한다. 그리고 자주 업데이트하고 릴리스 하면 된다는 말을 떠올리면 일단 최소한 동작 가능한 수준에서 공개를 했습니다.

처음 Rust와 OpenGL 배우는 분께는 더할 나위없이 좋은 프로젝트입니다. 왜냐하면 코드 아주 간단하거든요. 별로 기능이 없습니다.  저도 역시 배우는 입장이라.. :-)   단, 릴리스 할 때마다 API가 무지 바뀔 수 있습니다.

https://github.com/joone/rust-animation

 올해 연말은 이 프로젝트로 따듯하게 지낼 수 있을 것 같네요.

댓글()

닌텐도 스위치, 소니 플스 FreeBSD를 사용하다.

FOSS|2019. 8. 16. 05:10

 

약간 오래된 발표자료이긴한데, FreeBSD의 현재에 관해 잘 알 수 있는 발표다. FreeBSD가 리눅스 만큼은 아지만, 여전히 산업계에서 많이 쓰이고 있다는 사실을 알 수 있다. 특히, 일본회사에서 많이 쓰는데, 소니 플레이스테이션 닌텐도 스위치가 대표적인 예이다(비디오에서 17:45를 보자). 리눅스는 커널을 고치면 공개해야 하지만 FreeBSD는 그럴 필요가 없어서 뭔가 해킹의 위협에 늘 시달리는 게임기 업체들이 많이 쓰는 것 같다.

댓글()

크로미움 프로젝트 커미터 (Chromiun Project Committer)

FOSS|2016. 11. 6. 04:33

얼마전 크로미움 프로젝트 커미터(Chromiun Project Committer)가 되었다. 프로젝트에 기여한지 3년이 되었지만, 사실상 다른 업무로 많은 기여를 하지 못했다. 올해 어느 정도 여유가 생겨서 평소에 관심이 있었던 Blink엔진의 Editing 부분에 집중적으로 기여했다. 

어느 오픈소스 프로젝트나 커미터가 되려면 많은 노력이 필요하다. 어떻게 보면 쉽고 어떻게 보면 어렵다. 크로미움 프로젝트의 경우, 주요한 10개의 patch를 기존 커미터들이 평가하는데, 반대 없이 3명 이상의  +1을 받아야 한다.  기여한 patch의 개수는 중요하지 않다.  실제 버그를 수정하고, Feature를 개발하고 성능을 높이고, refactoring도 큰 수준으로 해야 다른 커미터로 부터 커미터 지명을 받을 수 있다. 사실 구글 직원이 아니면 이런 기여를 하기가 쉽지 않다. 누가 멘토를 해주는 것도 아니고, 자기 스스로 문제를 찾고 feature를 개발해야 하는데, 구글의 허락 없이는 feature를 추가하는 것은 불가능하다. 주요 feature들은 이미 Googler들에게 할당되어 있기 때문에 새로운 분야를 찾는 것 역시 어렵다. 그래서 가장 쉬운 것이 버그를 잡는 것이다. Issue Tracker에 등록된 버그를 해결하는 것이 빠른 일이지만, 사실상 Googler들이 해결 안하는 버그들 역시 고치기 어려운 것이 대부분이다. :-( 하지만, 기역할 분야를 결정하고 하나 하나 버그를 잡다보면 코드를 이해하게 되고, 비슷한 버그를 쉽게 수정할 수 있다. 이때, 가능한 많은 사람들이 관심을 가져주는 급한 버그를 해결하면 더 의미가 있다. 아래는 이번에 커미터가 되기 위해 제출한 주요 patch 목록이다.

Blink Editing

  1. [Issue 226941] Contenteditable issues related to backspace handling
  2. [Issue 318925] Copy and paste sometimes removes spaces between words
  1. [Issue 310149] ContentEditable:   is forced on SPACE between text nodes
  2. [Issue 335955] Unwanted spans inserted in contentEditable elements
  3. [issue 571420] chrome hangs on when creating bullet list in contenteditable
  1. [Issue 634482] Formatting tags converted to spans with styles on cut/paste
  2. [Issue 625802] Unnecessary quote appears after clicking on indent more option in compose box.
  3. [Issue 582225] document.queryCommandState isn't working well with <sub> and <sup>
  4. [Issue 584939] document.queryCommandState returns true for bold, italic, underline, and strikethrough after selecting image
  5. [Issue 385374] queryCommandState can return true for both list types
 

Linux and Wayland support

  1. [Issue 408481] System dialogs (e.g. 'Save As...') are not modal on Ubuntu
  2. [Issue 473228] Make *::ShowWithWindowState(minimized, maximized, fullscreen) consistent across platforms
  3. Issue 578890 upstream wayland backend for ozone

한국인 크로미움 커미터는 이미 9명이 있다. 많은 대기업에서 크로미움 기반으로 브라우저를 개발하고 있어서 그 수가 많은 편이다.  이렇게 다양한 사람들이 함께 내가 사용하는 웹브라우저를 개발한다는 것이 오픈소스가 주는 매력이 아닐까 싶다. 지금 이 순간도 수 많은 사람들이 크롬 브라우저에서 문서를 편집할 때 마다, 내가 추가한 코드가 실행된다고 생각하면 개발자로서 이 보다 보람찬 일은 없을 것이다.

댓글()

오픈소스 코드 문서화가 어려운 또는 쓸모 없는 이유

FOSS|2013. 3. 20. 01:30
많은 개발자들이 Open Source Project에 참여하기 어렵다고 불평하는 것 중 하나가 문서화다. 방대한 코드에 버그를 수정하고 기능을 추가하는 일은 쉽지 않다. 그래서 Code에 대한 어느 정도 문서화나 안내서가 있으면 좋은데, 그런 문서를 찾기가 쉽지 않다. 있다고 하더라고 오래된 문서들이다.

왜 그럴까? WebKit Project에 참여하는 입장에서 생각해보면, 코드가 너무 빠르기 변경되기 때문에 문서화하기 어렵다고 이야기할 수 있다. 어느 정도 대략적인 문서화(요구사항 및 디자인 문서) 정도는 가능하지만, 실제 구현된 내용을 Class 수준으로 이야기하는 것은 어려운 일이다.  가능은 하지만, 글쎄, 한달 정도 지나면 Class 코드에 많은 부분이 변경되어 있을 것이다. 실제로 WebKit2의 Hardware Acceleration 코드인 Coordinated Compositing를 분석하고 문서화하려고 노력하고 있는데, 지난 몇 달간 없어진 Class도 있고 Class이름은 대부분 변경되었고, UI Process와 Web Process간의 message도 절반이상 제거되었다. 개발자들이 끓임없이 refactoring하기 때문이다. 일반 프로젝트에서는 refactoring은 잘 하지 않는다. 일단 기능이 구현되어 정상 동작하면 그만이기 때문이다. 하지만, Open Source Proejct는 다르다. 잘 동작하는 기능이라고 하더라도 좀 더 이해하기 쉬운 code를 만들기 위해서 끊임없이 Refactoring을 한다.

이런 상황에서 개발자는 code를 문서화하기 보다는 보다 이해하기 쉽고 간결한 code를 만들기 위해 노력한다. Class, variable, method이름 하나 하나가 제대로 지어졌는지 또 생각하고 의미가 명확한 이름으로 바꾸려고 노력한다.

오랜 시간을 들여 상세하게 문서화를 하려고 했던 나의 시도는 결국 실패하고 말았다. Code를 이해하고, 변경되지 않는 핵심 부분을 문서화 하는 것은 좋다. 하지만, 가장 좋은 문서화는 바로 쉬운 Code를 작성하는 것이다. 가끔 주석으로 설명된 문장들이나 그림들이 성경의 한 구절처럼 느껴질 때가 있는데, 이런 것들이 진정한 문서화 같다.


Source: https://joone-foss.blogspot.com/2013/03/blog-post.html


댓글()

한국인/국내기업은 얼마나 Linux Kernel에 기여할까?

FOSS|2012. 2. 27. 13:03
올림픽에는 원래 공식 순위가 없다고 한다. 그래서 나라마다 순위를 정하는 기준이 다르고, 우리나라는 유독 금매달에 집착해 순위를 정한다. 나도 그런 한국 사람인지 몰라도, 한국과 관련된 높은 순위에 열광하고 의미를 부여하는 것을 좋아하는 것 같다.

Linux Foundation에서는 Kernel Git Repository를 분석해서 매년 누가 얼마나 코드를 기여하는지 순위를 발표하고 있다. 개인별 순위 부터 기업별 순위를 매기고 있는데, 2010년 자료에 흥미로운 결과가 있어서 소개해 본다.

(The above numbers are drawn from the entire git repository history, starting with 2.6.12)

허태준님은 2007년에 이 보고서를 통해 국내 오픈소스 커뮤니티에 알려지기 시작했다. "Linux Kernel Maintainer중에 한국인 이름이 있다. 이 분이 kldp.org에 문서를 등록한 것으로 보아 한국인이 맞다."등등. 결국,  KLDP 컨퍼런스에도 Linux Kernel 참여에 대해 발표를 하기도 했다.

위 순위를 보면, 단순히 참여 수준이 아니라, 8위에 랭크되어 있는 것을 알 수 있다. 곧 결혼하신다 하니, 내년에는 순위가 좀 떨어질 것 같다. ^^; 현재 Google에서 일하고 있으며 내일 구글 오픈소스 라운드테이블 패널 중 한분으로 Linux Kernel 개발을 소개할 예정이다. 여기 참석할 분은 사인을 받으면 좋을 것 같다. :-)

(The picture since 2.6.30)
 

삼성전자가 2010년 회사 기여 순위에 올라온 것은 무척 반가운 일이다. 국내 기업이 Linux Kernel에 이렇게 많이 기여하고 있는지 모르는 분이 많을 것이다. 아쉽게도, 이런 사실이 언론을 통해 알려진 적이 없는 것 같다. 많은 사람들이 대한민국 소프트웨어 위기를 말하는데, 이 자료를 보면 작은 희망을 갖게 된다. 이런 배경인지 몰라도 삼성전자가 안드로이드 스마트폰에 무척 강한 모습을 보이고 있다.  

삼성전자 김국진님도 역시 내일 구글 행사에 패널로 참여하므로 그 분의 Kernel개발 이야기를 들어볼 수 있을 것 같다. 이외에 본인이 아는바로 내일 역시 패널로 참석하는 LG전자의 김남형님이 활발하게 활동 중이다. 그리고, 얼마전까지 Redhat에서 일했던 김민찬님도 활발한 Kernel 개발자이다.

Linux Kernel 개발 참여는 많은 개발자의 꿈이기도 하다. 내일 구글 행사에 참여하는 많은 분들이 이런 순위 결과를 통해 자극을 받고 자신감을 가지면 좋을 것 같다. 실력도 중요하지만, 열정이 가장 중요한 것 같다. 시간은 걸리겠지만 꾸준한 관심과 참여로, 언젠가 이런 순위에 이름을 올릴 수 있는 또 다른 한국인 개발자가 나타나기를 기대해 본다.

자료 출처: Linux Kernel Development: How Fast it is Going, Who is Doing It, What They are Doing, and Who is Sponsoring It, 2010.12

댓글()

Qt의 열린 지배 모델

FOSS|2010. 6. 5. 19:25


Qt의 Git Repository가 공개된지 1주년이 되었습니다. 국내에는 불과 몇 종류의 심비안(Symbian)기반의 스마트폰이 소개되었고, Maemo5를 사용한 N900단말도 출시되지 않았기 때문에, 최근 Nokia 횡보에 관심을 가져주는 매체는 많지 않습니다. 요즘은 연일 iPad, iPhone, Android에 대한 기사를 쏟아내기 바쁘죠.

조용하지만, Nokia Maemo와 Intel Moblin이 합쳐진 MeeGo v1.0이 정식 릴리스 되었고, 조금씩 그 기세를 키워나가고 있습니다.

Android가 비록 Linux Kernel을 사용하고 플랫폼 자체는 오픈소스(Open Source)화되었지만, 사실 기존 오픈소스 커뮤니티에 큰 관심을 주지  못하고 있습니다.

근본적인 이유는 개발 중인  소스코드 저장소(repository)가 공개되어 있지 않은 점, 코드를 기여할 수 있는 프로세스가 없다는 점 복잡한 점 등을 들을 수 있지만,  플랫폼을 구성하는 주요 컴포넌트는 원래  독점 소프트웨어이기 때문에 커뮤니티 자체가 존재하지 않는 부분이 주된 이유인 것 같습니다.

그래서 GNOME, KDE, Linux Kernel 등과 같은 오픈소스 커뮤니티가 Maemo와 Moblin의 통합에 관심을 갖는 것은 자연스러운 일이였습니다.

현재, Nokia는 Qt의 개발용 저장소를 공개하므로서 개발 상황을 공유하고 있고, 외부 개발자의 patch도 받아들이고 있습니다. 앞으로 기술적 논의 뿐만 아니라 로드맵, 일정과 같이 제품에 영향을 주는 의사결정까지도 공개적으로 하겠다고 합니다.
또한, 커뮤니티가 QA 프로세스에 접근할 수 있는 권한을 준다고 합니다. 테스트 결과나 통합 빌드 보고서 등을 공유한다는 것입니다. 이에 더 나아가 의사 결정 과정에 Contributor를 참여시킬 계획을 갖고 있습니다.

이를 통해 Nokia는 더 많은 커뮤니티의 참여를 이끌어 내고, 신뢰성 있는 제품을 개발할 수 있게 됩니다. 커뮤니티의 개발 참여를 통해 다양한 아이디어도 쉽게 받아들일 수 있고, QA에 드는 비용도 절감할 수 있습니다.

이런 시도가 얼마나  큰 성공을 가져다 줄지는 사실 알 수 없으나,  Intel과의 협업을 이끌어내는 등 소기의 성과도 얻었습니다. 물론, Apple, Google에 비해 모바일 플랫폼 경쟁에 뒤떨어져있는 Nokia가 취할 수 밖에 없는 전략일 수도 있지만, Nokia의 이런 행동이 실제로 오픈소스 커뮤니티의 참여를 이끌어 내는 것도 사실입니다.

Nokia는 Post Symbian 시대를 준비하기 위해 Maemo, Qt에 투자하면서 오픈소스를 전략적으로 잘 활용하고 있으며, 이런 움직임이 다른 제조사에게도 영향을 주고 있습니다.

Nokia를 통해 제조사가 더 많은 것을 공개할 수록 더 많은 회사, 개발자를 우리편으로 만들고 그 바탕으로 좀 더 좋은 플랫폼, 제품을 개발하는 성공적인 모델을 기대해봅니다.

댓글()

iPhone에 대항하는 Linux Phone의 반격

FOSS|2009. 6. 7. 12:08

iPhone 새로운 제국이 되나?


다음주 화요일 새벽이면 3세대 iPhone에 대한 소식으로 전세계가 시끄러울 것 같습니다. 곧이어 새로운 iPhone이 출시되면, 업계에 광풍이 불겠지요.

그 동안 경쟁사들은 iPhone을 따라잡기 위해 부단히 노력했습니다. 터치 기반 폰을 출시하고, AppStore도 구축하고 UX에도 많은 신경을 썼습니다. 다행히 iPhone은 비쌌고 여전히 사용자는 일반 Feature폰을 선호했습니다.

이제 새로운 iPhone은 저가 시장에도 손을 내밀고 있습니다. 모바일 웹은 계속 성장하고 무선인터넷에 관심 없던 사용자도 twitter와 같은 서비스를 통해 진정한 모바일 웹을 체험하기 시작했습니다. iPhone은 다른 제조사와 Operator들에게 다시 악몽이 되어가고 있습니다. 현재 iPhone이 전체 handset 시장의 1%를 차지한다고 하지만, Feature Phone에서 Smart Phone으로 시장이 옮겨가는 상황에서 iPhone은 단일 모델로 PC시장 수준의 market share을 가져갈지도 모릅니다.

이러한 상황은 제조사에게 악몽인데, 특히 Smart Phone에 강했던 Nokia의 이익율이 급락한 것을 보면 어느 정도 예상할 수 있습니다. 이것은 다른 제조사 삼성, LG, Motorola에게도 다가올 시나리오일 수 있습니다.

Open Source로 무장한 경쟁사들


이제 iPhone을 주축으로 거대한 전선이 형성되어가는 분위기입니다. 마치 Microsoft가 PC 시장에서 제국의 되었던 것 처럼 Apple도 커다란 제국이 되어가고 있습니다.

그렇다면 제조사, Operator는 뭘하고 있을까요?

PC 시장을 보면 그 답을 찾을 수 있습니다. MS의 오랜 지배도 오픈소스와 리눅스로 금이 가고 이제는 누구도 MS를 두려워하지는 않는 것 같습니다. 그 만큼 시장 지배력이 떨어졌습니다.

Smart Phone 시장도 마찬가지입니다. Nokia는 Symbian이라는  Smart Phone OS와  S60이라는 Mobile Platform이 있었지만, 2005년 이후 Maemo라는 Linux Platform에 투자를 왔고, 작년에 Trolltech을 인수하여 QT를 S60, Maemo에 적용하였습니다.

다른 제조사와 Operator도 LiMo Foundation을 설립하여 GNOME Mobile Platform을 기반으로 Open Source Mobile Platform을 구축하고 있습니다. 국내에서는 삼성, LG 뿐만 아니라 SKT가 참여했고 Post 위피의 역할을 할 전망입니다.

이제 그 결실들이 나올 예정입니다. 우선  7월에 Maemo기반의 최초 Mobile Phone으로 나오게 됩니다. 그 동안 MID로 그 가치를 인정받았지만, 개발자의 장난감에 불과하다는 평판도 있었지만, 드디어 일반 사용자들의 위한 Handset으로, 출시를 앞 두고 있습니다.

LiMo 진영도 뜨겁게 움직이고 있습니다. 아직 구체적인 정보는 많지 않지만, 올해를 기점으로 많은 Linux Phone이 공개될 전망입니다.

이들의 강점은 대부분의 SW 스택이 Open Source로 구성되어, 커뮤니티와 수 많은 개발자의 지원을 받을 수 있고, 이미 개발된 많은 SW가 많다는  사실입니다. 기술적으로도 많이 발전되어 QT와 Clutter를 통해  iPhone 수준의 Graphic 능력을 확보하였습니다.

특히,  Nokia는  Intel과 협력을 통해 주요 주요 컴포넌트(Hildon, oFono)를 공동개발하여, 부족한 기술 확보에 나서고 있습니다. 이런 과실은 두 회사 뿐만 아니라 전체 오픈소스 진영에도 큰 도움이 되고 있습니다.

Linux Phone, 사용자의 환영을 받을까?


문제는 사용자입니다. 과연 사용자가 얼마나 리눅스 폰을 선호할까요? 리눅스/오픈소스는 사용자에게 중요한 부분이 아닙니다. 그들은 좀 더 싸고 멋진 폰을 원할 뿐입니다. 물론 게임 처럼 재밌는 어플도 많이 있어야겠지요.

이를 위해서는 제조사와 Operator의 많은 투자가 필요합니다. 단지 오픈소스의 과실을 따먹는 것이 아니라, 오픈소스의 기술적 혁신을 지원하고 커뮤니티 양성에 도움을 줘야 합니다. 또한, 상품화를 통해 모난 부분을 다듬고 사용자 편리성을 높여야 하며, 개발 과정 공개를 통해  커뮤니티의 참여를 이끌어 내어,  진정한 가치의 Linux Phone을 만들어야 합니다.

Open Source, 지원이 아닌 생존의 문제


이제 오픈소스는 지원아닌 생존의 문제가 되어버렸습니다. 단순히 활용을 떠나 커뮤니티와 밀접하게 혁신하지 못하면 iPhone과의 경쟁은 더더욱 힘들어질 것입니다.

7월 이후 Linux Phone의 반격을 조용히 지켜봐야겠습니다. 그리고 GNOME Mobile Platform 공부도 게을리 해서는 안되겠습니다. :-)

댓글()