한 때 잠깐이나마 마이크로소프트는 Flash의 대항마 격인 웹 플러그인을 발표합니다. 그 이름이 Silverlight입니다. 은빛이라는 한국말로 바꾸면 꽤 예쁜 이름이지만, 이 실버라이트는 결국 Flash라는 거대한 벽을 넘지 못하고 버려진 자식이 되어버립니다. Windows8의 IE지원 대상에서 빼버린 것이지요. 실버라이트를 이용해서 동영상을 서비스해 주는 곳도 일부 있었고(SBS, 다나와 리뷰 등), 일부 사이트에서는 Flash처럼 멀티업로드용으로 쓰기도 했습니다. 그런데 사람들에게서 이미 잊혀진 존재가 되어가다보니 해당 사이트들도 Flash로 바꾸거나 아니면 전혀 다른 방식으로 서비스를 시작했습니다. 이렇게 실버라이트는 사라지는 듯 했습니다.


그런데 이 시점에서도 실버라이트를 버리지 못한 불행한 사이트들이 많이 남아 있습니다. 실버라이트가 마이크로소프트를 통해서도 지원 받지 못하는 마당에 답답한 노릇입니다. 이 사이트들이 정신을 차리고 다른 방법으로 바꾸기 전까지는 우리는 어쩔 수 없이 실버라이트를 써야만 합니다. 사실 실버라이트가 윈도우를 쓰다 보면 자연스레 설치되는 놈이라 자연스럽게 쓰는 것일 수도 있습니다. 그런데 마이크로소프트도 지원을 끊은지 오래인데 아직까지 실버라이트를 고집하는 배짱은 대체 무엇일까요?
(제 생각에는 그냥 똥배짱입니다. 시스템을 바꿀 자금이 부족하거나)


그런데 우분투에서 어떻게 마이크로소프트의 실버라이트를 쓸 수 있을까요? 방법은 두 가지가 있습니다.

1. moonlight라는 실버라이트 호환플러그인을 설치한다.http://www.mono-project.com/Moonlight

2. Pipelight로 실버라이트를 Wine과 조합해서 플러그인을 구동한다.http://pipelight.net


1.경우는 속도는 빠르지만 실버라이트3까지 완벽 지원이며 실버라이트4는 일부 호환입니다. 실버라이트가5까지 나왔다는 사실을 아는 사람은 별로 없는 것 같네요. 적당히 구동은 되지만 저 일부 사이트들 중에서 실버라이트5를 요구하는 (망할)사이트가 있어서 어쩔 수 없이 2.의 방법을 써야 할 것 같습니다.


일단 실버라이트5가 리눅스환경에서 무사히 구동이 된다는 것에서 안심을 해야 할 것 같네요. 참고로 PipeLight는 Windows용 Flash플러그인도 구동지원됩니다. 리눅스용 Flash가 10.x에서 멈춘 지금, 최신플러그인을 요구 할 경우 대용으로 쓸 수 있습니다. 물론 구동 속도는 보장 못합니다. 


Pipelight를 한번 설치해서 Silverlight를 구동해 봅시다. 우선 Pipelight를 설치해야겠지요?

우선 터미널을 열고 다음과 명령을 순차적으로 내립시다.


 

sudo add-apt-repository ppa:pipelight/stable
sudo apt-get update
sudo apt-get install --install-recommends pipelight-multi
sudo pipelight-plugin --update

첫 번째 명령어는 PPA를 등록하는 명령어 입니다.

두 번째 명령은 새로운 패키지 리스트를 가져오는 명령어 입니다. 즉, 패키지 리스트에 Pipelight를 가져오는 과정입니다.

세 번째 명령은 Pipelight를 설치하는 명령어입니다. --install-recommends 옵션은 같이 추천하는 패키지를 설치하란 것입니다. 이 때 Pipelight 전용 Wine이 설치됩니다. 브라우저 플러그인 전용으로 특화된 Wine입니다.

네 번째 명령어는 플러그인 업데이트 리스트를 받아오는 명령어입니다. 사실 이 순간에도 새로운 플러그인이 지원이 될 가능성이 있습니다. 최근의 Pipelight는 Unity3D Web Player도 지원이 되더군요. 이제는 웹 게임도 우분투에서 3D로 구동할 수 있다니 무서운 세상이군요.


이제 실버라이트를 활성화 해봅시다. 같은 방법으로 Flash도 활성화 가능한데 이것도 터미널을 이용해야 합니다. GUI가 아직 지원이 될 가능성은 없어 보이기 때문에 어쩔 수 없습니다. 터미널과 친해지는 수 밖에 없습니다.




sudo pipelight-plugin --enable silverlight


끝입니다. 이제 Firefox나 Chrome에서 실버라이트를 사용하는 (망할)사이트에 들어가면 잠깐 Wine구동 메시지가 뜨더니 실버라이트가 작동하는 것을 보실 수 있을 겁니다. 만약 해당 사이트가(정말로 망할)OS차별을 한다면 Agent Switcher같은 확장기능을 써서 Windows로 속이시면 간단합니다. (실버라이트는 원래 브라우저 구별은 안 합니다. 단지 Windows에서만 된다는 것이 문제입니다. 그런데 이것 때문에 웹디자이너분들이 Windows외의 OS접근을 막는 경우가 종종 있습니다.)


비슷하게 Flash 11이상 버전을 요구하면



sudo pipelight-plugin --enable flash

이렇게 해주시면 됩니다. Firefox야 문제 없는데 Chrome은 자체 내장 Flash때문에 고생을 한다네요. 어차피 Chrome내장 Flash는 버전이 높으니 굳이 pipelight를 통하지 않아도 됩니다. Firefox를 이용하시는 분들이 이용해 주시면 좋을 것입니다.


http://pipelight.net/cms/installation.html

Pipelight에 우분투 계열 외의 다른 OS나 실버라이트,Flash외의 다른 플러그인을 설치하실 분들은 위의 주소로 가시면 자세히(영어로) 설명되어 있습니다. 



이미 버려진 기술인 실버라이트를 쓰기 위해서 이런 삽질을 해야만 한다니, 정말 짜증이 올라오는군요. 그런데 어쩌겠어요. 해당 사이트를 안 쓸 수도 없는 노릇이고 그렇다고 굳이 윈도를 부팅하기는 더더욱 싫으니 그냥 이렇게라도 써야지요. 역시 오늘도 우분투는 삽질입니다.

,

XP의 지원이 끊긴지도 꽤 되었습니다. 사람들은 이제 낡은OS를 버리고 새OS로 갈아타는 중입니다. 대부분 사람들의 새OS가 MS입장에선 윈도8이었으면 매우 좋았겠지만, 윈도8이 아닌 윈도7이란게 MS는 답답한 노릇일겁니다. 7이 8보다 더 비싸니 더 좋을 수도 있겠군요. 

서론은 그만하고 이제 본론으로 들어가겠습니다. XP가 처음 세상에 나온 시절에 기존에 쓰던 프로그램이 돌아가지 않아서 많은 사람들이 혼란을 겪었습니다.여차하면 새pc에 98을 설치하는 경우도 있었으니까요. 윈도의 판매는 윈도의 완성도가 아니라 그 응용프로그램들이 이끈다고 할 정도로 쓰던 프로그램이 안 돌아가면 그 OS가 어떻든 안 씁니다. 리눅스가 아무리 발전해도 윈도를 못 따라잡는게 바로 이런겁니다. 맥도 엄연히 말하자면 osx가 아니라 파이널컷이나 키노트를 쓰기위해 사는경우가 많습니다. (예쁘다고 사는사람도 있기는 합니다.) 

그럼 윈도7은 어떨까요? 일반 사용자들이야 큰 문제는 없습니다. 비스타가 난리를치기는 했지만 비스타를 통해 어느정도 호환성을 확보해서 7에게 넘겨주었습니다. 심지어 드라이버도 호환됩니다. 이정도면 합격입니다만 어디까지나 일반사용자입장에서야 합격이고 산업현장에서는 이야기가 조금 다릅니다. 

산업현장에서는 프로그램상 보통 안정성이 검증된 구버전을 선호합니다. XP기반뿐만아니라 아직도 도스로 관리하는 기업도 있습니다. 그런데 7은 솔직히 검증되었다고 하기에는 조금 부족할지도 모릅니다. 특히 기계컨트롤 관련으로는 관리자 권한이라던가 드라이버 문제로(xp와7은 드라이버가 완벽히 호환되지 않습니다. 어떤문제가 일어날지 모릅니다.) 기존 프로그램을 사용해야 할수도 있습니다. 그리고 일부 프로그램은 설치조차 안되서 호환성설정을 해야하는데 그것마저 잘 안되는경우도 있습니다. 그럼 7호환되는 프로그램을 사야 합니다. 기업들이 좋아할리가 없지요. 아마도 큰마음 먹어야 할 수도 있습니다.

사용자에 따라 큰 차이를 보이는 이유가 무엇일까요? 사실 그 이유는 프레임워크 및 라이브러리부분과 커널단이 차이를 보이기 때문입니다.

프레임워크는 닷넷프레임워크같이 응용프로그램이 돌아갈때 해당 응용프로그램이 돌아가게끔 해주는 일종의 뼈대입니다. 닷넷으로 개발한다고 하면 닷넷프레임워크를 뼈대삼아 이리저리 끼워 맞추는 겁니다. 그런데 윈도는 닷넷만 있지 않습니다. VisualC++로 만든 윈도API기반 프로그램이 더 많습니다. 그런데 이 API가 조금 바뀌어서 다르게 동작한다면? 오류터지는 겁니다. 윈도API를 프레임워크라고 한다면 이 달라지는 것을 갖고 이리저리 패치해야합니다. Wine이 버전에따라 될때가 있다가 안될때가 있다가 하는게 바로 이 api의 구현이 어떻게 바뀌었을지 모르기 때문입니다. Api가 xp와7이 얼마나 다를지는 MS만이 알고 있을겁니다. 아 라이브러리는 이 API가 구현되어진 파일들이고요. directx같은것도 라이브러리입니다.

그리고 산업현장에서 쉽게 OS를 못바꾸게 만드는 원흉인 커널이 되겠습니다.  사실 라이브러리는 패치하기 쉽습니다. 함수형태가 변하는경우는 거의없고 구현이 살짝 바뀌어서 거기맞춰 수정하기만 하면 되기때문에 리버스엔지니어링으로 처리해버리는 경우도 가끔있습니다.(보통은 그럴 필요는 없고 프로그램 제조사에서 금방 대응해줍니다) 문제는 드라이버입니다. 기계들을 관리하는 프로그램들은 드라이버단이 필수인데 커널이 바뀌면 참 대응하기 어렵습니다. 제조사에서 바로 대응해주기도 어렵고요.7은 xp가 못하는 기능이 다수 포함되었는데 파일시스템추가라던가 iso마운트 전력소모 컨트롤 다중프로세스 최적화 등등 그런데 이게 드라이버단에서 꽤나 문제를 일으킵니다. 사운드 드라이버같은것은 별 문제를 안 일으키는데 gpu를 활용하고(cuda같은) 시리얼통신을 하며 특수pci카드같은 장치를 통한방식을 쓴다면 드라이버가 참 말썽을 많이 일으킬것이 뻔합니다. 실제로 xp용 그래픽드라이버를 7에 설치하였을시에 해상도는 잡히지만 발열이 어마어마하게 나며 사망했습니다.... 커널단에서 전력조절을 못한듯 합니다. 그래픽카드야 새 윈도를 당연히 대응해주지만 특수장치 같은경우에는 드라이버를 새로 개발해야 할 정도로 답답해집니다. 그라고 가끔 디스크인식 문제도 벌어진다는군요. 산업용보드같은 경우에는 안정성을 위해 구버전 칩셋에 구형cpu를 다는경우가 많은데 이게 7용 드라이버가 없는경우라고 하더라구요. 산업현장에서는 참 답답할 노릇입니다. OS를 바꾸기는 해야겠지만 기계까지 바꿀수는 없으니...

아마도 이래서 산업현장에서는 범용보다는 임베디드를 선호하는 것일 수도 있겠습니다. 일단 임베디드는 최적화된데다가 OS교체주기가 기니까요. 

갑자기 임베디드하고 범용의 비교가 나왔네요. 기존xp를쓰시던분들은 7교체를 하실때 주변 하드웨어 호환을 고려하셔야합니다. 일반 사용자들은 그냥 지금쓰는 프로그램이 돌아가는지만 확인하시면 되고요. 산업현장은 바꾸는게 능사가 아닐수도 있겠네요.

,