2016년 11월 14일 월요일

MeetBSD CA 2016 참석기


MeetBSD CA는 2008년부터 2년마다 열리는 행사로 2014년 산호세의 웨스턴 디지탈사에 이어 올해는 BSD의 고향이라 할 수 있는 캘리포니아 버클리 대학교의 Clark Kerr 캠퍼스 내에 있는 Krutch Theatre에서 열렸습니다.


MeetBSD 행사는 기술 컨퍼런스라기 보다는 유저그룹이 모이는 행사에 가까운데, 지난번에 비해서는 아주 자세한 기술 이야기는 줄고 그보다는 현황에 대한 업데이트라든가 언컨퍼런스 형태의 모임 위주로 진행이 되었습니다. 아무래도 기술적인 이야기는 EuroBSD, BSDCan, AsiaBSD에서 주로 다루고 있고, 이름에서도 알 수 있듯이 지역 행사에 더 가깝기 때문입니다.

그중 몇몇 세션에 대해서 살펴보면, (놓친 것도 있습니다)

Day 1


Devin Teske, "Netgraph vs epair+if_bridge in the context of vimage jails; Using and managing vimage jails"

jail 안의 networking (VIMAGE 사용)에 대한 이야기입니다. 기존의 jail 방식에 추가로 VIMAGE커널을 하나 구축해서 jail 내에서 독립적인 네트워킹을 할 수 있는데 netgraph 와 if_bridge 두가지 방법으로 호스트와 브리지 형태의 네트워크를 구축할 수 있네요.

Krste Asanovic, "RISC-V: Instruction Sets Want To Be Free"
RISC-V는  CPU 아키텍처 책에도 나오는 RISC ISA (Instruction Set Architecture) 의 다섯번째 에디션으로 오픈 소스 형태로 개발이 되고 있습니다. Intel의 IA-32, IA-64, ARM의 ARM v7 등이 많이 쓰이는 ISA의 대표적인 예인데, 상용이기도 하고 오래 되다 보니 한 명령이 너무 많은 일을 수행하는 경우도 있다고 합니다. RISC-V는 간단하고 확장 가능한 아키텍처를 지향하고 있고, 실제 하드웨어와 컴파일러를 위해 여러 업체나 오픈소스 프로젝트와 협력하고 있다 합니다. FreeBSD와 같은 오픈 소스 OS는 이런 오픈 아키텍처 위에서 돌아가는데 매우 적합 하겠죠.

Sean Chittenden, "Using FreeBSD in the Cloud, Development to Prod"

HashiCorp (consul, terraform 등으로 유명하죠) 의 Sean 씨는 FreeBSD를 클라우드상에서 이용하는 방법에 대해서 GCE기반으로 설명을 해 주었습니다. 요즘에는 다수의 서버나 VM을 다루는 일이 많아 졌으므로 단순히 OS만 설치하는게 아니라 어떻게 설정 관리를 하는지도 매우 중요합니다. 

Matt Ahrens, "History of ZFS and OpenZFS"

Matt 씨는 선마이크로시스템즈에서 ZFS를 개발한 핵심 개발자 중 한명인데, 2001년 이후 ZFS의 역사에 대해서 발표를 하였습니다. 처음에는 솔라리스용으로 개발하다 선이 오라클로 인수되고 여러가지 역사를 거치면서 ZFS는 2011년 오픈소스화되어 지금은 FreeBSD에서 매우 밀어 주는 파일시스템이 되었고 FreeNAS 등의 스토리지나 기타 몇몇 스토리지 어플라이언스에서도 사용되고 있습니다. zfs는 FreeBSD 궁합이 잘 맞고 부트 파일시스템으로도 이용 가능하기 때문에 기존의 FFS를 완전히 대체할 수 있습니다.
리눅스에서도 ZFS on Linux가 있고 (라이센스 이유로 커널에는 정식 포함은 안되고 있습니다) Ubuntu 가 ZFS를 기본 채용한다고 해서 화제가 되기도 하고요. 처음부터 상용으로 개발이 된 것이라 매우 안정적이고 (대신 메모리를 좀 먹는데 요즘에는 큰 문제는 안됩니다) 매우 확장성이 높은 것이 특징입니다.

Michael Dexter, "Not Only is BSD Coming Home to Roost But so is the bhyve Hypervisor!"

FreeBSD에는 가상 OS를 쓸 수 있게 해 주는 네이티브 하이퍼바이저로 bhyve가 있습니다. Michael 씨는 bhyve 프로젝트의 창시자이자 리더인데, bhyve 프로젝트의 역사와 현황에 대해서 발표를 하였습니다. 지금은 게스트 OS로 FreeBSD 뿐 아니라 리눅스, 윈도우 등도 모두 사용 가능하고 게스트 콘솔용 RDP 서버도 지원하는 등 대부분의 하이퍼바이저에서 지원하는 기능을 모두 포함하고 있습니다. 향후에 큰 발전이 기대되는 프로젝트이기도 합니다.

Day 2

Jordan Hubbard, "FreeNAS 10: The Challenges of building a modern Enterprise Storage Appliance on FreeBSD"

FreeBSD 프로젝트 창시자이자 현재는 iXSystems의 CTO인 Jordan씨가 FreeBSD 기반의 스토리지 OS인 FreeNAS 10 에 대해서 소개를 하였습니다. UI가 잘 되어 있고 ZFS기반인 것이 특징입니다. FreeNAS 프로젝트 자체도 오픈 소스이니 집이나 회사에서 스토리지 서버 만들 때 쉽게 활용할 수 있습니다. 특이하게 UI를 통해서 bhyve기반의 VM이나 이를 활용해서 Docker 컨테이너를 만드는 데모 (리눅스 게스트 위에서 돌아가는)도 보여 주었는데, Docker와 같은 컨테이너 기술은 *BSD가 아직 부족한 분야 이기도 합니다. jail 이 오래전부터 있어 왔지만, Docker 는 널리 사용되는 점도 있고 패키징이나 업데이트등의 관리가 용이하다는 것이 더 좋은 점이겠지요.

아무래도 Jordan 씨는 BSD관계자라면 대부분 아는 사람이다 보니 자기소개 없이 시작했는데, 나중에 '자기 소개 부탁 드립니다'라고 물어 보는 사람이 있어서 다른 청중들이 웃기도 했습니다.

Kris Moore, "Unveiling TrueOS"

PC-BSD는 FreeBSD 기반의 데스크탑 OS입니다. 이번에 이름을 TrueOS로 바꾸었는데, 기본적으로는 FreeBSD를 더 데스크탑에서 이용하기 쉽게 다시 패키징하고, 관리 UI를 제공하고 있다고 보면 됩니다. 노트북 등에서 사용할 BSD를 선택할 때에는 FreeBSD에서 시작하기 보다는 PC-BSD (이제는 TrueOS) 에서 시작하는게 아무래도 편리한 점이 많습니다. GUI 설치도 가능 하고요. 이름을 바꾸게 된 것은 BSD기반이기는 하지만 데스크탑과 서버를 모두 포괄하는 범용 OS로 나가고자 하는 의지가 있지 않나 싶습니다.

새 버전에는 GNOME/KDE/XFCE와 유사한 X윈도우 기반 데스크탑 환경인 Lumina Desktop 이 기본이 되었고 (기존에는 GNOME/KDE/XFCE 등을 고를 수 있었습니다), 시스템 설정 UI가 SysAdm 으로 변경되고 API 서버로도 제공, FreeBSD 릴리즈를 따라가는게 아니라 -CURRENT를 따라가는 업데이트 시스템, base의 pkg화 등 내부적인 변화가 많이 있습니다. 데스크탑에서의 요구를 반영하다 보니 FreeBSD에서는 설치 단게에서 기본적으로는 제공되지 않는 사운드 시스템(PulseAudio)이나 몇몇 패키지의 옵션 변경등도 추가되어 있습니다.

Allan Jude, ZFS Discussion Panel

Allan씨는 Michael Lucas 씨와 함께 FreeBSD Mastery: ZFS를 쓰는 등 FreeBSD 활동이 매우 활발한 분입니다. 관련 개발자들과 같이 하는 Q&A였습니다.

Kylie Liang, PCI pass-thru

마이크로소프트는 자사의 Azure 클라우드 서비스에 FreeBSD를 기본 제공하는 등 리눅스 이외에도 오픈 소스 OS 지원을 하고 있습니다. 이 발표는 MS의 Hyper-V 하이퍼바이저의 PCI Passthrough 기능을 FreeBSD가 지원하게 되면서 호스트에 있는 하드웨어 (네트워크 카드 등)을 직접 하드웨어 수준에서 접근 가능하게 되었다는 내용 입니다. SR-IOV도 지원 예정이라고 하네요.


그외 FreeBSD 10.3이 Azure에 올라 왔고, OpenBSD도 예정이라고 하네요.


또한 중국에서 처음으로 BSD Meetup를 열 예정이라고 합니다.


이번 MeetBSD CA 2016에서는 최근에 많이 화제가 되었던 zfs, bhyve, PC-BSD, FreeNAS등의 주요 프로젝트는 대부분 다루어지긴 했습니다만, FreeBSD(또는 그 기반 OS)에 대한 내용이 대부분이었고 NetBSD나 OpenBSD관련 내용이 없던 것이 조금 아쉬웠습니다. 그외 각 프로젝트의 역사 등에 대한 세션도 유익 했고, 마이크로소프트가 지속적으로 BSD에 대한 지원을 하고 있는 점도 인상적이었습니다. 알게모르게 많은 발전이 이루어지고 있는지라 많은 공부가 되었습니다. VIMAGE커널이나 bhyve는 저도 써본적이 없는데 한번 시도해 봐야 겠고요.

오픈소스의 역사를 살펴 보면 OS가 매우 큰 부분을 차지 하지만, 요즘에는 서버 쪽에서는 클라우드 기반 서비스, 빅데이터, 클라이언트는 웹이나 모바일 개발의 비중이 늘어 나면서 OS자체의 관심은 상대적으로 줄어든 게 아닌가 합니다. 또한 클라우드나 빅데이터의 경우에도 OS의 선택은 대부분 리눅스가 되다 보니 아마존, 마이크로소프트, 구글 등의 큰 벤더 이외에는 BSD 등을 기본 제공해 주는 클라우드는 많지 않은 것이 현실입니다. 그런 점에서 보다 적극적으로 클라우드, 빅데이터, 컨테이너 등에 대한 지원이 더 필요하지 않을까 싶습니다.






2016년 3월 11일 금요일

이세돌9단 vs 알파고

일단 한국 밖에서는 별 관심 없는것 같고 (미국 미디어에 소개는 되는데... 바둑이라는데 미국서는 생소한 게임이다 보니 아무래도 관심은 적은듯. 우리가 체스경기에 별 관심 없듯이) 사실 나도 바둑을 둘 줄 몰라서 그런지 관심은 많이 떨어지는 편이다. 오히려 주변의 반응을 즐기고 있는 듯.

내 관점에서는 체스나 바둑이나 정해진 룰 안에서 이루어지는 게임이고 컴퓨터는 정해진 룰 안에서 정해진 알고리즘대로 움직이는데는 인간을 능가하는건 당연하다고 생각한다. 구글과 같이 거의 무한의 컴퓨팅 자원을 동원할 수 있는 곳이라면 더더욱 제한이 없어질 것이라 보므로, 일개 인간과 무한의 컴퓨터 자원의 대결이라면 인간이 이길 확률은 없다고 보는 것이 맞을 것이다. 이제 이세돌9단이 3연승으로 인간의 자존심을 지킨다고 해도, 다음번 경기에서 그렇게 될 확률은 더더욱 낮을 것이므로. 카스파로프가 졌고 이제 스마트폰 안의 체스 프로그램조차 당신이 이길 확률이 없듯이, 바둑도 그런 수순을 거칠 거라는 것에는 의문의 여지가 없다.

따라서 미래에 인공지능이 인간의 직업을 많은 부분 대체할 것이라는 점에 대해서는 이론의 여지가 없지만, 그렇다고 그것이 인간이 기계의 노예가 된다거나, 취직자리가 없을까봐 걱정하는 것은 지나친 걱정이라 본다. 인공지능까지 생각하지 않아도 이미 많은 일자리가 간단한 자동화만으로도 없어지고 있고 그런 경향은 이미 르네상스 이후 산업화에 의해 지난 2-3백년간 계속된 현상이다. 처음에는 인간으로 때우다 반복 작업을 기계로 대치하는 건 새로운 현상이 전혀 아니라는 의미이다. 아마 인공지능과 3D프린터를 결합하면 새로운 조각 미술을 만들어낼 수 있겠지만 그것이 조각가라는 직업이 영영 없어지는 건 아니라는 건 인간이라면 직감할 수 있을 것이다.

인간이 해야 할 것은, 단순하고 범위가 정해진 내에서 효율을 따지는 건 점점 기계에게 맡기는 것이고 그러고 나면 또 새로운 분야, 새로운 직업을 만들어 내는 것이다. 전화 시대 초기에는 교환원이 필요 했지만 자동 교환기가 발명된 이후에는 필요 없어진 직업이고, 교환원이 없어진 대신 다른 직업이 생겨 났다. 피처폰시대에 제한적인 앱 개발하던 것이 스마트폰이 생겨서 기존에는 없던 앱 개발자라는 직업이 대대적으로 생겼고, 만약 앱 개발이 인공지능화 된다면 그걸 이용해서 돈을 버는 또다른 직업이 생겨날 것이다. 물론 100명이 하던 걸 5명+기계가 하면 된다고 하면 나머지 95명은 무얼 해야 하는지에 대해 의문을 가지게 되겠지만, 그건 기본적으로는 지난 200년간의 산업 발전을 되돌아 볼 때 "당장 직업을 잃게 되니 대책을 만들어 내라는 현실파" vs "기술의 발전이 또 다른 직업을 만들어 낼 거니 걱정 없을 거라는 낙관파" 간의 갈등에 다름 아니다.

우리가 해야 할 것은 이제 인공지능이 대체하는 분야를 마련하고 대신 인간은 무엇을 해야 하는지에 대한 논의를 심도있게 해야 한다. 인간의 호기심과 그에 따른 과학 기술의 발전은 자본에 의해 일시적으로 제어될 망정 제어할 수 없다. 따라서 이런 발전을 특정 자본에게 유익하게만 하지 않도록 제어하는 역할이 필요하고, 기술이 폭주하지 않도록 제어하는 역할도 필요하다. 이건 이미 기존에 존재하는 정치경제 제도가 해야 할 일이라 생각한다. 기술의 무한 발전은 이미 피할 수 없고 인간의 그것에 적응하는 일 빼고는 할 것이 없기 때문이다.