어떤 사람들은 "이게 무슨 소리야?" 하실 수도 있고

어떤 사람들은 "얘가 또 잘못 먹었나?" 하실 수도 있을겁니다.


아무래도 이쪽 계통의 사람들이라면 당연하게도 잘 알고 계실 겁니다.


안드로이드는 리눅스가 맞습니다.


그런데 리눅스의 정의가 무엇일까요?

이를 위해서는 OS의 정의부터 알아봐야 할 것 같습니다.


사실 세계 3대 OS하면 다음과 같습니다.


1. Windows

2. macOS

3. Linux


그런데 이렇게 나누는 것이 과연 정답일까요? OS가 필요한 이유가 무엇일까요?


이렇게 되면 복잡해지기 시작합니다.


간단하게 이야기해보겠습니다.


자동차가 있습니다. 자동차에서 제일 중요한 것은 보통 엔진이라고 합니다. 사실 엔진이 없으면 그저 동력이 없는 깡통일 뿐이니까요. 하지만 엔진만 있다고 자동차라고 할 수 있을까요? 멀리 갈 것도 없이 바퀴가 없으면 자동차로서 쓸 수 없는 물건이 됩니다. 거기에 사람이 앉을 수 있는 좌석도 있어야 하고 핸들과 같은 조작계도 있어야 합니다.


비슷하게 말하겠습니다.

여기 OS가 있습니다. OS애서 제일 중요한 것은 보통 커널이라고 합니다. 사실 커널이 없으면 그저 하드웨어를 쓸 수 없는 코드 덩어리일 뿐이니까요. 하지만 커널만 있다고 OS라고 할 수 있을까요? 멀리 갈 것도 없이 응용프로그램이 없으면 OS로서 쓸 수 없는 물건이 됩니다. 거기에 명령어체계도 있어야 하고 CLI나 GUI같은 인터페이스도 있어야 합니다.


위의 글과 아래글의 차이는 무엇일까요? 사실 저는 OS를 자동차에 비유했습니다.

자동차

 OS

 엔진

 커널

 바퀴

 응용프로그램

 조작계(핸들 등)

 인터페이스(CLI, GUI)


즉, OS란 커널과 그 위에서 돌아가는 응용프로그램들과 인터페이스 등으로 구성된 것을 의미합니다.


그럼 리눅스의 정의로 다시 돌아와 보겠습니다.


우리가 흔히 리눅스라고 말하는 것은 어떤 것일까요? 제일 많이 쓰이는 우분투 리눅스에 대해 알아보도록 합시다.


우분투 리눅스는 당연히 리눅스 커널을 사용합니다.

인터페이스는 GUI로 X11기반의 Gnome(사람에 따라서는 Wayland가 기본)을 씁니다.

기본 응용프로그램으로 Bash를 쉘프로그램을 쓰고 Firefox를 기본 웹브라우저로 사용합니다.


일단 여기까지만 이야기 해봅시다. 이제 다시 확인 해봅시다. OS는 커널과 그 위에서 돌아가는 응용프로그램, 그리고 인터페이스 등으로 구성되었다고 했습니다.


우분투 리눅스는 리눅스가 맞습니다. 

그리고 서버용으로 쓰이는 RHEL도 리눅스커널을 쓰고 CLI로 Bash를 쓰면서 YUM이나 VI같은 응용프로그램을 씁니다. 그리고 RHEL도 리눅스가 맞지요.


보통 리눅스라고 부르는 OS는 이런 식으로 구성되었다고 생각하시면 되겠습니다. (서버용의 인터페이스는 Gnome이 아닌 그냥 콘솔 인터페이스라고 하지요.)


그럼 같은 Gnome 인터페이스를 쓰고 Firefox를 쓰는 FreeBSD는 무엇일까요?

우분투와 FreeBSD의 차이는 커널의 차이입니다.


우분투는 리눅스고 FreeBSD는 BSD입니다.

즉, 리눅스의 정의는

리눅스 커널을 사용한 OS라고 할 수 있겠습니다.


인터페이스가 무엇이든 응용프로그램이 무엇이든 그건 상관 없는 셈입니다.


그렇게 따지면 안드로이드는 분명 리눅스가 맞습니다.


하지만... 우리가 알고 있는 리눅스랑 사용 방법이 완전히 다릅니다.

왜냐하면 인터페이스가 완전히 다르고 전혀 다른 응용프로그램을 사용하니까요.


이렇게 생각해봅시다.


페도라와 우분투는 같은 OS인가?

같은 OS라고 보는 사람은 없을 겁니다. 일부 응용프로그램이 다르거든요.

(YUM, APT 등)

하지만 인터페이스는 같을 수 있습니다.

그리고 일정 부분 사용하는 응용프로그램이 같지요.


그럼 안드로이드는 어떨까요?

전혀 다른 인터페이스와 전혀 다른 응용프로그램으로 구성되어 있습니다.


즉, 안드로이드는 리눅스는 맞으나 다른 리눅스OS와 다른 OS라고 볼 수 있습니다.


그러니까 리눅스는 맞는데 우리가 흔히 말하는 리눅스와는 다른 물건이라고 할 수 있습니다. ChromeOS도 마찬가지입니다. 이것도 리눅스 커널을 썼으니 리눅스가 맞기는 한데 인터페이스도 다르고 응용프로그램도 제한적입니다. 그러니까 다른 OS로 봐야합니다.


이제 여기서 한가지 의문이 생기게 됩니다.

아까 3대 OS 이야기 했었지요?


1. Windows

2. macOC

3. Linux <-여기에 안드로이드가 들어갈까요?


정답부터 말씀드리자면 아니지요.


저 3대 OS란 표현부터가 틀려먹었습니다.

3대 데스크톱 OS라고 표현해야 합니다. 그런데 이것도 이상합니다. Linux란 것은 리눅스커널을 쓴 수많은 OS를 포괄해서 표현하는 것이니까요. 그럼 이렇게 다시 써야 겠네요.


1. Windows

2. macOS

3. Ubuntu

4. Fedora


이렇게 쓰면... 다른 OS사용자분들이 태클을 걸 것입니다.


1. Windows

2. macOS

3. Ubuntu

4. Fedora

5. OpenSUSE

6. Debian

7. Arch

...

...

...


에라이...



안드로이드 때문에 복잡해져 버렸네요.


그냥 이렇게 생각합시다.


안드로이드는 리눅스가 맞다 하지만 리눅스 데스크톱 OS는 아니다.


하지만 안드로이드가 데스크톱으로 들어오는 것도 머지 않았다는 사실...

RemixOS같은 물건이 존재하는 한 이것도 가능한 이야기입니다.


이러면 또 정의가 바뀌어야겠네요...

,