푸크시아(Fuchsia), 구글의 새로운 OS

IT 이슈를 파헤치다|2018. 1. 23. 20:54

Key Point

  • Fuchsia는 무엇인가?
  • Fuchsia는 어떻게 구성되어있는가?
  • 구글이 Fuchsia를 내놓은 이유는?


Fuchsia는 무엇인가?

Fuchsia는 구글이 현재 개발중인 RTOS(Real-Time Operating System)입니다.

리눅스 커널 기반이 아닌 임베디드 시스템 용으로 고안된 마이크로 커널인 마젠타(이후 Zicron으로 바뀌었습니다)를 기반으로 만들어졌습니다.

기존 구글의 크롬 OS, 안드로이드 모두 리눅스 커널을 기반으로 만들어진 것과는 다르게 푸크시아는 자체 마이크로 커널인 Zicron을 기반으로 만들어졌습니다.

정말 조용하게 구글의 레파지토리에 등장한 Fuchsia. 구글이 새로운 OS를 만든 이유가 무엇일지 추측이 난무하고 있습니다.
스마트폰, 임베디드 시스템, IOT등 다양한 소형 기기들에 탑재되지 않을까하는 추측 정도만 돌고 있습니다.

Fuchsia는 Micro Kernel의 집합인 Zicron Kernel에 운영체제 구현에 필요한 프레임워크, 파일 시스템, 네트워크, 그래픽, 미디어 모듈들이 붙여진 것이라고 할 수 있습니다.

커널에 대한 자세한 내용은 아래의 글을 참조하세요.



2018/01/08 - [IT 이슈를 파헤치다] - 커널을 파헤치다




Fuchsia는 어떻게 구성되어있는가?

Fuchsia는 다음과 같이 구성되어 있습니다.

  • Zicron Core → Zicron은 운영체제의 핵심인 커널 부분입니다. Fuchsia가 정상적으로 동작하기 위해서 반드시 필요한 부분입니다. Zicron은 OS의 핵심적인 부분만 구현되어 있는 Micro Kernel입니다.
    Zicron Core는 Zicron Kernel에서 운영체제를 만드는데 필요한 핵심 부분을 라이브러리 형태로 가져온 것입니다. Fuchsia의 핵심적인 부분이라고 할 수 있습니다.
    • Device Driver 관련
      • Device Manager & Device Hosts
      • Device Driver Model
    • Process 관련
      • C Library(libc)
      • Process Start / ELF Loading (liblaunchpad)
  • Framework → 운영체제를 만드는데 필요한 요소들을 모아 놓은 것입니다.
    • Zicron Core Libraries → Zicron을 사용하기 위한 라이브러리들을 모아 놓은 것입니다.
    • Boot Sequence → 부팅 과정에 대한 라이브러리입니다. Zicron 영역에서 Fuchsia로 넘어가기 위해 필요합니다.
    • SandBoxing → 보안을 강화하기 위한 부분입니다.
  • Storage → 파일 시스템 관련 부분입니다. 데이터를 저장하기 위한 시스템이라고 볼 수 있습니다.
  • Networking → 네트워크 통신을 지원하는 부분입니다. 아래의 프로토콜들을 지원합니다.
    • Ethernet
    • Bluetooth
    • Sockets
    • HTTP
    • Wireless
  • Graphics
    • User Interface → Armadillo라고 불리우는 카드 형식의 사용자 인터페이스를 제공합니다. 더 쉽고 빠르고 아름답게 디자인되었습니다.
  • Media → 음향, 영상출력과 관련된 부분입니다.
  • Developer Tools → 개발자를 위한 도구를 모아 놓은 것입니다.
  • Update and Recovery → OS 업데이트와 복구에 관련된 부분입니다.


구글이 Fuchsia를 내놓은 이유는?

새로운 OS를 만든다는 것은 매우 큰 도전입니다. 구글 정도 규모의 글로벌 기업이 아닌 이상 매우 도전하기 힘든 분야입니다.
구글 조차도 새로운 OS의 생태계 장악을 보장하기 힘듭니다. OS는 컴퓨터의 매우 기본적인 틀이고 많은 프로그램들이 OS에 의존하여 돌아가고 있습니다. 개발환경, 기존 프로그램 호환성등 새로운 OS로 생태계를 장악하려면 정말 많은 어려움들을 극복해야 합니다.

이렇게 새로운 OS를 만드는 것이 들어가는 노력 대비 큰 성과를 내기 어려움에도 구글이 Fuchsia를 내놓은 이유는 도대체 무엇일까요?
많은 사람들이 Google이 Oracle과 Java 분쟁을 겪으면서 다시는 이런 문제가 생기지 않도록 하기 위해 새로운 OS를 만든 것이다라고 얘기합니다. 이는 분명 구글이라서 가능한 일입니다. 앞으로 IOT, 스마트폰, 스마트 TV등 다양한 곳에 프로그램들이 탑재될 것입니다. 이러한 기기들에서 프로그램들이 돌아가기 위해서는 컴퓨터와 마찬가지로 OS가 필요합니다. 하지만 이곳에 Android OS를 탑재하게 되면 Google은 Oracle과의 지속적인 분쟁을 피하기 힘들 것입니다. 그렇게하기 보다는 더 많은 기기에 적합하고, 성능이 개선된 새로운 OS를 만들자라고 Google이 판단했을 수도 있습니다.

Fuchsia가 사람들의 입에 오르내리면서 생긴 의문점이 있습니다. 과연 이 새로운 OS는 기존 Android 생태계를 바꿀 수 있을 것인가에 대한 의문입니다. Android는 아이폰이 나오기도 전에 존재했습니다. 원래 디지털 카메라 내부에 들어갈 용도로 개발된 것인데 Google이 이것을 바탕으로 스마트폰에 최적화된 OS를 만든 것입니다. 하지만 이 때문에 기기 파편화라는 엄청난 문제를 맞이하게 되었습니다. 여전히 Android의 기기 파편화는 개발자들에게도, 사용자들에게도 매우 어렵고 괴로운 문제로 남아있습니다. 이러한 Android의 한계를 극복하고 스마트폰, PC, IoT 그 어느곳에나 적용될 수 있는 개선된 OS를 만들려는 Google의 새로운 그림이 바로 Fuchsia이지 않을까 추측해 볼 수 있습니다. Android가 스마트폰 시장을 장악하고 있는 것은 사실이지만 Android의 단점들이 보완된, 좋은 성능의 OS가 등장한다면 생태계를 장악할 가능성도 있습니다. Google은 생태계가 변화하는 데에는 매우 오랜 시간이 걸린다는 것을 누구보다 잘 알고 있는 기업입니다. 그렇기 때문에 Fuchsia에 탑재될 수 있는 어플리케이션 모두 Android에 설치될 수 있도록 개발 환경을 만들었습니다. Flutter SDK가 바로 그것입니다. Flutter SDK는 Google이 개발한 Cross-Platform 개발도구로 Android와 IOS를 모두 지원합니다. Fuchsia에 탑재될 수 있는 어플리케이션 역시 Flutter SDK로 개발이 가능합니다.

앞으로는 모든 것들이 서로 통신하는 Internet Of Things(IoT) 시대가 올 것입니다. Google은 정말 다양한 크기들의 디바이스들에 Android를 탑재하는 것인 무리라고 판단했을지도 모릅니다. Android는 다소 무거운 플랫폼이기 때문에 소형 디바이스에 사용하기에는 다소 효율적이지 않습니다. Google은 이 큰 생태계를 직접 만든 커널, 직접 만든 프로그래밍 언어, 개발 환경, 새로운 디자인으로 바꾸어 버리려는 전략일지도 모릅니다. 만약 이 그림이 실현된다면 Google은 생태계의 매우 막강한 지배자가 될 것입니다. 사용자들은 더 빠르고, 더 아름다운 디자인을 가진 새로운 디바이스를 마다 하지 않을 것입니다. Google은 이미 행동을 개시했고, 얼마전에 Fuchsia의 새로운 UI(User Interface)인 Armadillo가 공개되었습니다.

댓글()