SlideShare uma empresa Scribd logo
1 de 30
Baixar para ler offline
Wine on Solaris 11 Express で紡ぐ絆



               Kazuyuki Sato
Agenda

 Wine について
 そして、転落する日々がはじまる
 絆ブレイク
 旅立ちの時
 libumem っておいしいの ? ^q^
 wine を注いでください
 参考情報
Wine on Solaris 11 Express

 "Wine Is Not just an Emulator"
   “Compatibility layer"
      Windows API を native system call にトランスレート
   VirtualBox の Direct3D 周りでも Wine の実装が
   使われている
   サン・マイクロシステムズの PWI (Public
   Windows Initiative) や Wabi に影響される
      これに懐かしさを感じる人は・・・


             http://www.winehq.org/
              Presentation Title                  pg 3
Wine on Solaris 11 Express

 なぜ、 Wine なのか?
   Solaris 上で OVDC (Oracle Virtual
   Desktop Client) を動かしたかった
 結果は?
   少し問題があったものの・・・



    大成功!!
   * OVDC ・・・ ソフトウェア版 Sun Ray Client 。 Windows, Linux, Mac OS X 版が提供

                   Presentation Title                                  pg 4
Presentation Title   pg 5
Agenda

 Wine について
 そして、転落する日々がはじまる
 絆ブレイク
 旅立ちの時
 libumem っておいしいの ? ^q^
 wine を注いでください
 参考情報
Wine on Solaris 11 Express

 そして、転落の日々が始まる・・・




 んっ?
            Presentation Title   pg 7
Wine on Solaris 11 Express


2009 年・・・




広い画面と   GPU   搭載の            MacBook   Pro   15"   行きたいなぁ・・・
広い画面と   GPU   搭載の            MacBook   Pro   15"   行きたいなぁ・・・
広い画面と   GPU   搭載の            MacBook   Pro   15"   行きたいなぁ・・・
広い画面と   GPU   搭載の            MacBook   Pro   15"   行きたいなぁ・・・
               Presentation Title                         pg 8
Wine on Solaris 11 Express




            Presentation Title   pg 9
Agenda

 Wine について
 そして、転落する日々がはじまる
 絆ブレイク
 旅立ちの時
 libumem っておいしいの ? ^q^
 wine を注いでください
 参考情報
Wine on Solaris 11 Express

 OVDC の問題は新しい Wine で解決



   だがしかし・・・

            Presentation Title   pg 11
Wine on Solaris 11 Express

 Final Fantasy XI を起動すると・・・

Unhandled page fault
 「動け、動け、動いてよ !!!
    今動かなきゃ、
  今ログインできなきゃ、
みんないなくなっちゃうんだ!」
            Presentation Title   pg 12
Agenda

 Wine について
 そして、転落する日々がはじまる
 絆ブレイク
 旅立ちの時
 libumem っておいしいの ? ^q^
 wine を注いでください
 参考情報
Wine on Solaris 11 Express

 というわけで、 FFXI が動作しなくなったので
   遊べなくなった
   ログインしなくなったので、絆崩壊 wwww うぇっ
 そして、社内ニートへ・・・
   よーし、暇だから手パッチで動かなくなった原因を
   追求するよ!
 見つけた
   1.1.32 と 1.1.33 の diff を取り、一つづつ手パッチ
   この時点での wine 最新版は、 1.3.15

            Presentation Title       pg 14
Wine on Solaris 11 Express

    この修正が原因
diff --git a/libs/wine/mmap.c b/libs/wine/mmap.c
index fc5b1d9..b400189 100644
--- a/libs/wine/mmap.c
+++ b/libs/wine/mmap.c
@@ -350,6 +350,12 @@ void mmap_init(void)

     reserve_malloc_space( 8 * 1024 * 1024 );

+    if (!list_head( &reserved_areas ))
+    {
+        /* if we don't have a preloader, try to reserve some space below 2Gb */
+        reserve_area( (void *)0x00110000, (void *)0x40000000 );
+    }
+
     /* check for a reserved area starting at the user space limit */
     /* to avoid wasting time trying to allocate it again */
     LIST_FOR_EACH( ptr, &reserved_areas )

    こいつを backout することで動作した
                          Presentation Title                                   pg 15
Agenda

 Wine について
 そして、転落する日々がはじまる
 絆ブレイク
 旅立ちの時
 libumem っておいしいの ? ^q^
 wine を注いでください
 参考情報
Wine on Solaris 11 Express

 そして、すでに BugDB に登録されていた
   Bug 22033 - World of Warcraft Crashes on
   startup (due to broken Solaris malloc())
   http://bugs.winehq.org/show_bug.cgi?id=22033
   おまえらどんだけ World of Warcraft 好きなんだよ・・・
   しかも、




    Solaris で・・・
                Presentation Title                pg 17
Wine on Solaris 11 Express

 libumem の奇跡
   Bug 22033 に書かれていた
     libumem 使うと、動くよ?
 libumem = user-mode (nonkernel mode)
 memory allocator library
   kernel memory allocator として実装されている
   Slab Allocator を userland でも利用できるように
   したもの
     強力な memory debug 機能も持つ
 「こいつ・・・動くぞ!」
            Presentation Title          pg 18
Wine on Solaris 11 Express

 libumem は何をやっているか?
   libc で提供される malloc を置き換える
   メモリ確保処理のバックエンドが選択可能
     brk (default)
     mmap
 libumem 自体は、高機能なメモリアロケータと
 して利用できる
 ちなみに、 google-perftools にて提供される
 libtcmalloc.so でも可

               Presentation Title   pg 19
Agenda

 Wine について
 そして、転落する日々がはじまる
 絆ブレイク
 旅立ちの時
 libumem っておいしいの ? ^q^
 wine を注いでください
 参考情報
Wine on Solaris 11 Express

 Wine の導入方法について
   パッケージさえ揃っていれば、簡単に build できる
   下記に詳細あります!
     http://goo.gl/649Q4
     ついでに、 SSL 接続できなかったのを修正
          Kindle for PC 動いた

 注意点
   Wine を実行するときは、必ず、下記の環境変数を
   渡して実行すること
    $ env LD_PRELOAD=libumem.so 
           UMEM_OPTIONS=backend=mmap wine hoge.exe

             Presentation Title                  pg 21
Wine on Solaris 11 Express

 WINEPREFIX 環境変数
   Windows で言うところの C: ドライブとなる
   複数作って、この環境変数で切り替え
 ZFS dataset 上に作成しておくと便利
   Snapshot で簡単バックアップ
   Clone で環境を複製
     別アカウント用
   さらに、 compression したり
     意外と気にならず。領域も節約可能


            Presentation Title   pg 22
Wine on Solaris 11 Express

      こんな感じで ZFS dataset に配置
       # zfs create -o compress=on rpool/wine/FFXI
       # chown -R ore:ore /rpool/wine/FFXI
       $ env WINEPREFIX=/rpool/wine/FFXI wine hoge.exe
rpool/wine                                          87.5G   94.8G   69.1M   /rpool/wine
rpool/wine/Diablo2LoD                               2.02G   94.8G   2.01G   /rpool/wine/Diablo2LoD
rpool/wine/DragonAge2Demo                           2.04G   94.8G   2.03G   /rpool/wine/DragonAge2Demo
rpool/wine/DragonAgeOrigins                         16.8G   94.8G   16.8G   /rpool/wine/DragonAgeOrigins
rpool/wine/FinalFantasyXI                           10.6G   94.8G   10.5G   /rpool/wine/FinalFantasyXI
rpool/wine/FinalFantasyXI_en                        12.1G   94.8G   12.1G   /rpool/wine/FinalFantasyXI_en
rpool/wine/FinalFantasyXI_jp                        10.2G   94.8G   9.82G   /rpool/wine/FinalFantasyXI_jp
rpool/wine/OVDC                                      172M   94.8G   44.5M   /rpool/wine/OVDC
rpool/wine/Rift                                     16.3G   94.8G   9.38G   /rpool/wine/Rift
rpool/wine/Rift_solarisx                            8.21G   94.8G   10.2G   /rpool/wine/Rift_solarisx
rpool/wine/Steam                                    7.55G   94.8G   6.97G   /rpool/wine/Steam
rpool/wine/emu                                      1.35G   94.8G   1.32G   none

      さぁ、みんなもおいでよ!
                               Presentation Title                                                  pg 23
Wine on Solaris 11 Express

   日本語入力について
        ATOK との相性最悪
             Solaris 11 Express はギリギリセーフ
             /usr/share/X11/locale/ja_JP.UTF-8/XI18N_OBJS を修正

XLC       common/xlcUTF8Load _XlcUtf8Loader     # XLC_open
XIM       common/xiiimp      _SwitchOpenIM                # XIM_open
XIM       common/ximcp       _XimOpenIM _XimRegisterIMInstantiateCallback   _XimUnRegi
sterIMInstantiateCallback # XIM_open XIM_regiser XIM_unregister

                                                順番を入れ替える
XLC       common/xlcUTF8Load _XlcUtf8Loader     # XLC_open
XIM       common/ximcp       _XimOpenIM _XimRegisterIMInstantiateCallback   _XimUnRegi
sterIMInstantiateCallback # XIM_open XIM_regiser XIM_unregister
XIM       common/xiiimp      _SwitchOpenIM                # XIM_open


                           Presentation Title                                       pg 24
Wine on Solaris 11 Express

 動作させたいアプリは人それぞれ
   動かしたいものがあるなら、調べてみる
   Wine Application Database - http://appdb.winehq.org/

   Mailing List に問い合わせてみる
 何が言いたいかというと・・・


動けば、ラッキー!
                    Presentation Title                    pg 25
Agenda

 Wine について
 そして、転落する日々がはじまる
 絆ブレイク
 旅立ちの時
 libumem っておいしいの ? ^q^
 wine を注いでください
 参考情報
参考情報
WineHQ
http://www.winehq.org/
Wine Key Mailing Lists/Forums
http://www.winehq.org/forums
Wine WIki
http://wiki.winehq.org/FrontPage
Wine Application Database
http://appdb.winehq.org/
A Comparison of Memory Allocators in Multiprocessors
http://developers.sun.com/solaris/articles/multiproc/multiproc.html
いつも心に太陽を - Wine
http://goo.gl/ywAI3
いつも心に太陽を - libumem
http://goo.gl/tChtD

                  Presentation Title                           pg 27
Presentation Title   pg 28
Presentation Title   pg 29
Wine on Solaris 11 Express
 最近はまっているのは、 Rift
 今朝・・・ Hotfix #2 適用後、動作しなくなった
     「動け、動け、動いてよ !!!
        今動かなきゃ、
      今ログインできなきゃ、                                        New!
    みんないなくなっちゃうんだ!」
 すでに、中の人が動いてるので確認できしだい修正されるっぽい
 http://forums.riftgame.com/showthread.php?215541-pm-patch-6-24
 そして、修正準備中 (2011/6/28)
 http://forums.riftgame.com/showthread.php?215541-pm-patch-6-24&p=270

                   Presentation Title                             pg 30

Mais conteúdo relacionado

Destaque

Igniting Customer Curiosity through Participatory Design
Igniting Customer Curiosity through Participatory DesignIgniting Customer Curiosity through Participatory Design
Igniting Customer Curiosity through Participatory DesignNina Simon
 
Guardians of your CODE
Guardians of your CODEGuardians of your CODE
Guardians of your CODEPeter Hlavaty
 
Persecution Of Disabled People In Nazi Germany
Persecution Of Disabled People In Nazi GermanyPersecution Of Disabled People In Nazi Germany
Persecution Of Disabled People In Nazi GermanyZoeG
 
わんくま同盟大阪勉強会 Vol.68 LT - ラブライブ!サンシャイン!聖地巡礼に入った話
わんくま同盟大阪勉強会 Vol.68 LT - ラブライブ!サンシャイン!聖地巡礼に入った話わんくま同盟大阪勉強会 Vol.68 LT - ラブライブ!サンシャイン!聖地巡礼に入った話
わんくま同盟大阪勉強会 Vol.68 LT - ラブライブ!サンシャイン!聖地巡礼に入った話TATSUYA HAYAMIZU
 
Resumen Huesos de la MANO y del PIE
Resumen Huesos de la MANO y del PIEResumen Huesos de la MANO y del PIE
Resumen Huesos de la MANO y del PIEJessika Velasco
 

Destaque (7)

Back to the CORE
Back to the COREBack to the CORE
Back to the CORE
 
Igniting Customer Curiosity through Participatory Design
Igniting Customer Curiosity through Participatory DesignIgniting Customer Curiosity through Participatory Design
Igniting Customer Curiosity through Participatory Design
 
Guardians of your CODE
Guardians of your CODEGuardians of your CODE
Guardians of your CODE
 
Persecution Of Disabled People In Nazi Germany
Persecution Of Disabled People In Nazi GermanyPersecution Of Disabled People In Nazi Germany
Persecution Of Disabled People In Nazi Germany
 
Hamilton lecture
Hamilton lectureHamilton lecture
Hamilton lecture
 
わんくま同盟大阪勉強会 Vol.68 LT - ラブライブ!サンシャイン!聖地巡礼に入った話
わんくま同盟大阪勉強会 Vol.68 LT - ラブライブ!サンシャイン!聖地巡礼に入った話わんくま同盟大阪勉強会 Vol.68 LT - ラブライブ!サンシャイン!聖地巡礼に入った話
わんくま同盟大阪勉強会 Vol.68 LT - ラブライブ!サンシャイン!聖地巡礼に入った話
 
Resumen Huesos de la MANO y del PIE
Resumen Huesos de la MANO y del PIEResumen Huesos de la MANO y del PIE
Resumen Huesos de la MANO y del PIE
 

Mais de Kazuyuki Sato

第6回コンテナ型仮想化の情報交換@東京「今日から触れる Solaris Zones 入門」
第6回コンテナ型仮想化の情報交換@東京「今日から触れる Solaris Zones 入門」 第6回コンテナ型仮想化の情報交換@東京「今日から触れる Solaris Zones 入門」
第6回コンテナ型仮想化の情報交換@東京「今日から触れる Solaris Zones 入門」 Kazuyuki Sato
 
Oracle Solaris 11.2 新機能概要
Oracle Solaris 11.2 新機能概要Oracle Solaris 11.2 新機能概要
Oracle Solaris 11.2 新機能概要Kazuyuki Sato
 
第4回コンテナ型仮想化勉強会@東京 Oracle Solaris のコンテナ技術「Solaris Zones」
第4回コンテナ型仮想化勉強会@東京 Oracle Solaris のコンテナ技術「Solaris Zones」第4回コンテナ型仮想化勉強会@東京 Oracle Solaris のコンテナ技術「Solaris Zones」
第4回コンテナ型仮想化勉強会@東京 Oracle Solaris のコンテナ技術「Solaris Zones」Kazuyuki Sato
 
~Solaris 11 をマルチ・プロトコル SCSI ターゲットに~ 「もう一つのストレージ仮想化機能 “COMSTAR”概要」
~Solaris 11 をマルチ・プロトコル SCSI ターゲットに~ 「もう一つのストレージ仮想化機能 “COMSTAR”概要」~Solaris 11 をマルチ・プロトコル SCSI ターゲットに~ 「もう一つのストレージ仮想化機能 “COMSTAR”概要」
~Solaris 11 をマルチ・プロトコル SCSI ターゲットに~ 「もう一つのストレージ仮想化機能 “COMSTAR”概要」Kazuyuki Sato
 
Oracle Solaris 11デベロッパーが押さえておきたい機能
Oracle Solaris 11デベロッパーが押さえておきたい機能Oracle Solaris 11デベロッパーが押さえておきたい機能
Oracle Solaris 11デベロッパーが押さえておきたい機能Kazuyuki Sato
 
Solaris 10 から Solaris 11 への移行準備とポイント
Solaris 10 から Solaris 11 への移行準備とポイントSolaris 10 から Solaris 11 への移行準備とポイント
Solaris 10 から Solaris 11 への移行準備とポイントKazuyuki Sato
 
Oracle Solaris 11 における システム、ネットワーク、ストレージの仮想化機能
Oracle Solaris 11 における システム、ネットワーク、ストレージの仮想化機能Oracle Solaris 11 における システム、ネットワーク、ストレージの仮想化機能
Oracle Solaris 11 における システム、ネットワーク、ストレージの仮想化機能Kazuyuki Sato
 
Oracle solaris 10 u9 iSCSI Boot
Oracle solaris 10 u9 iSCSI BootOracle solaris 10 u9 iSCSI Boot
Oracle solaris 10 u9 iSCSI BootKazuyuki Sato
 
Opensolaris ipfilter 20090710
Opensolaris ipfilter 20090710Opensolaris ipfilter 20090710
Opensolaris ipfilter 20090710Kazuyuki Sato
 
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)Kazuyuki Sato
 

Mais de Kazuyuki Sato (10)

第6回コンテナ型仮想化の情報交換@東京「今日から触れる Solaris Zones 入門」
第6回コンテナ型仮想化の情報交換@東京「今日から触れる Solaris Zones 入門」 第6回コンテナ型仮想化の情報交換@東京「今日から触れる Solaris Zones 入門」
第6回コンテナ型仮想化の情報交換@東京「今日から触れる Solaris Zones 入門」
 
Oracle Solaris 11.2 新機能概要
Oracle Solaris 11.2 新機能概要Oracle Solaris 11.2 新機能概要
Oracle Solaris 11.2 新機能概要
 
第4回コンテナ型仮想化勉強会@東京 Oracle Solaris のコンテナ技術「Solaris Zones」
第4回コンテナ型仮想化勉強会@東京 Oracle Solaris のコンテナ技術「Solaris Zones」第4回コンテナ型仮想化勉強会@東京 Oracle Solaris のコンテナ技術「Solaris Zones」
第4回コンテナ型仮想化勉強会@東京 Oracle Solaris のコンテナ技術「Solaris Zones」
 
~Solaris 11 をマルチ・プロトコル SCSI ターゲットに~ 「もう一つのストレージ仮想化機能 “COMSTAR”概要」
~Solaris 11 をマルチ・プロトコル SCSI ターゲットに~ 「もう一つのストレージ仮想化機能 “COMSTAR”概要」~Solaris 11 をマルチ・プロトコル SCSI ターゲットに~ 「もう一つのストレージ仮想化機能 “COMSTAR”概要」
~Solaris 11 をマルチ・プロトコル SCSI ターゲットに~ 「もう一つのストレージ仮想化機能 “COMSTAR”概要」
 
Oracle Solaris 11デベロッパーが押さえておきたい機能
Oracle Solaris 11デベロッパーが押さえておきたい機能Oracle Solaris 11デベロッパーが押さえておきたい機能
Oracle Solaris 11デベロッパーが押さえておきたい機能
 
Solaris 10 から Solaris 11 への移行準備とポイント
Solaris 10 から Solaris 11 への移行準備とポイントSolaris 10 から Solaris 11 への移行準備とポイント
Solaris 10 から Solaris 11 への移行準備とポイント
 
Oracle Solaris 11 における システム、ネットワーク、ストレージの仮想化機能
Oracle Solaris 11 における システム、ネットワーク、ストレージの仮想化機能Oracle Solaris 11 における システム、ネットワーク、ストレージの仮想化機能
Oracle Solaris 11 における システム、ネットワーク、ストレージの仮想化機能
 
Oracle solaris 10 u9 iSCSI Boot
Oracle solaris 10 u9 iSCSI BootOracle solaris 10 u9 iSCSI Boot
Oracle solaris 10 u9 iSCSI Boot
 
Opensolaris ipfilter 20090710
Opensolaris ipfilter 20090710Opensolaris ipfilter 20090710
Opensolaris ipfilter 20090710
 
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
 

Último

論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 

Último (9)

論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 

Wine on Solaris 11 Express

  • 1. Wine on Solaris 11 Express で紡ぐ絆 Kazuyuki Sato
  • 2. Agenda Wine について そして、転落する日々がはじまる 絆ブレイク 旅立ちの時 libumem っておいしいの ? ^q^ wine を注いでください 参考情報
  • 3. Wine on Solaris 11 Express "Wine Is Not just an Emulator" “Compatibility layer" Windows API を native system call にトランスレート VirtualBox の Direct3D 周りでも Wine の実装が 使われている サン・マイクロシステムズの PWI (Public Windows Initiative) や Wabi に影響される これに懐かしさを感じる人は・・・ http://www.winehq.org/ Presentation Title pg 3
  • 4. Wine on Solaris 11 Express なぜ、 Wine なのか? Solaris 上で OVDC (Oracle Virtual Desktop Client) を動かしたかった 結果は? 少し問題があったものの・・・ 大成功!! * OVDC ・・・ ソフトウェア版 Sun Ray Client 。 Windows, Linux, Mac OS X 版が提供 Presentation Title pg 4
  • 6. Agenda Wine について そして、転落する日々がはじまる 絆ブレイク 旅立ちの時 libumem っておいしいの ? ^q^ wine を注いでください 参考情報
  • 7. Wine on Solaris 11 Express そして、転落の日々が始まる・・・ んっ? Presentation Title pg 7
  • 8. Wine on Solaris 11 Express 2009 年・・・ 広い画面と GPU 搭載の MacBook Pro 15" 行きたいなぁ・・・ 広い画面と GPU 搭載の MacBook Pro 15" 行きたいなぁ・・・ 広い画面と GPU 搭載の MacBook Pro 15" 行きたいなぁ・・・ 広い画面と GPU 搭載の MacBook Pro 15" 行きたいなぁ・・・ Presentation Title pg 8
  • 9. Wine on Solaris 11 Express Presentation Title pg 9
  • 10. Agenda Wine について そして、転落する日々がはじまる 絆ブレイク 旅立ちの時 libumem っておいしいの ? ^q^ wine を注いでください 参考情報
  • 11. Wine on Solaris 11 Express OVDC の問題は新しい Wine で解決 だがしかし・・・ Presentation Title pg 11
  • 12. Wine on Solaris 11 Express Final Fantasy XI を起動すると・・・ Unhandled page fault 「動け、動け、動いてよ !!! 今動かなきゃ、 今ログインできなきゃ、 みんないなくなっちゃうんだ!」 Presentation Title pg 12
  • 13. Agenda Wine について そして、転落する日々がはじまる 絆ブレイク 旅立ちの時 libumem っておいしいの ? ^q^ wine を注いでください 参考情報
  • 14. Wine on Solaris 11 Express というわけで、 FFXI が動作しなくなったので 遊べなくなった ログインしなくなったので、絆崩壊 wwww うぇっ そして、社内ニートへ・・・ よーし、暇だから手パッチで動かなくなった原因を 追求するよ! 見つけた 1.1.32 と 1.1.33 の diff を取り、一つづつ手パッチ この時点での wine 最新版は、 1.3.15 Presentation Title pg 14
  • 15. Wine on Solaris 11 Express この修正が原因 diff --git a/libs/wine/mmap.c b/libs/wine/mmap.c index fc5b1d9..b400189 100644 --- a/libs/wine/mmap.c +++ b/libs/wine/mmap.c @@ -350,6 +350,12 @@ void mmap_init(void) reserve_malloc_space( 8 * 1024 * 1024 ); + if (!list_head( &reserved_areas )) + { + /* if we don't have a preloader, try to reserve some space below 2Gb */ + reserve_area( (void *)0x00110000, (void *)0x40000000 ); + } + /* check for a reserved area starting at the user space limit */ /* to avoid wasting time trying to allocate it again */ LIST_FOR_EACH( ptr, &reserved_areas ) こいつを backout することで動作した Presentation Title pg 15
  • 16. Agenda Wine について そして、転落する日々がはじまる 絆ブレイク 旅立ちの時 libumem っておいしいの ? ^q^ wine を注いでください 参考情報
  • 17. Wine on Solaris 11 Express そして、すでに BugDB に登録されていた Bug 22033 - World of Warcraft Crashes on startup (due to broken Solaris malloc()) http://bugs.winehq.org/show_bug.cgi?id=22033 おまえらどんだけ World of Warcraft 好きなんだよ・・・ しかも、 Solaris で・・・ Presentation Title pg 17
  • 18. Wine on Solaris 11 Express libumem の奇跡 Bug 22033 に書かれていた libumem 使うと、動くよ? libumem = user-mode (nonkernel mode) memory allocator library kernel memory allocator として実装されている Slab Allocator を userland でも利用できるように したもの 強力な memory debug 機能も持つ 「こいつ・・・動くぞ!」 Presentation Title pg 18
  • 19. Wine on Solaris 11 Express libumem は何をやっているか? libc で提供される malloc を置き換える メモリ確保処理のバックエンドが選択可能 brk (default) mmap libumem 自体は、高機能なメモリアロケータと して利用できる ちなみに、 google-perftools にて提供される libtcmalloc.so でも可 Presentation Title pg 19
  • 20. Agenda Wine について そして、転落する日々がはじまる 絆ブレイク 旅立ちの時 libumem っておいしいの ? ^q^ wine を注いでください 参考情報
  • 21. Wine on Solaris 11 Express Wine の導入方法について パッケージさえ揃っていれば、簡単に build できる 下記に詳細あります! http://goo.gl/649Q4 ついでに、 SSL 接続できなかったのを修正 Kindle for PC 動いた 注意点 Wine を実行するときは、必ず、下記の環境変数を 渡して実行すること $ env LD_PRELOAD=libumem.so UMEM_OPTIONS=backend=mmap wine hoge.exe Presentation Title pg 21
  • 22. Wine on Solaris 11 Express WINEPREFIX 環境変数 Windows で言うところの C: ドライブとなる 複数作って、この環境変数で切り替え ZFS dataset 上に作成しておくと便利 Snapshot で簡単バックアップ Clone で環境を複製 別アカウント用 さらに、 compression したり 意外と気にならず。領域も節約可能 Presentation Title pg 22
  • 23. Wine on Solaris 11 Express こんな感じで ZFS dataset に配置 # zfs create -o compress=on rpool/wine/FFXI # chown -R ore:ore /rpool/wine/FFXI $ env WINEPREFIX=/rpool/wine/FFXI wine hoge.exe rpool/wine 87.5G 94.8G 69.1M /rpool/wine rpool/wine/Diablo2LoD 2.02G 94.8G 2.01G /rpool/wine/Diablo2LoD rpool/wine/DragonAge2Demo 2.04G 94.8G 2.03G /rpool/wine/DragonAge2Demo rpool/wine/DragonAgeOrigins 16.8G 94.8G 16.8G /rpool/wine/DragonAgeOrigins rpool/wine/FinalFantasyXI 10.6G 94.8G 10.5G /rpool/wine/FinalFantasyXI rpool/wine/FinalFantasyXI_en 12.1G 94.8G 12.1G /rpool/wine/FinalFantasyXI_en rpool/wine/FinalFantasyXI_jp 10.2G 94.8G 9.82G /rpool/wine/FinalFantasyXI_jp rpool/wine/OVDC 172M 94.8G 44.5M /rpool/wine/OVDC rpool/wine/Rift 16.3G 94.8G 9.38G /rpool/wine/Rift rpool/wine/Rift_solarisx 8.21G 94.8G 10.2G /rpool/wine/Rift_solarisx rpool/wine/Steam 7.55G 94.8G 6.97G /rpool/wine/Steam rpool/wine/emu 1.35G 94.8G 1.32G none さぁ、みんなもおいでよ! Presentation Title pg 23
  • 24. Wine on Solaris 11 Express 日本語入力について ATOK との相性最悪 Solaris 11 Express はギリギリセーフ /usr/share/X11/locale/ja_JP.UTF-8/XI18N_OBJS を修正 XLC common/xlcUTF8Load _XlcUtf8Loader # XLC_open XIM common/xiiimp _SwitchOpenIM # XIM_open XIM common/ximcp _XimOpenIM _XimRegisterIMInstantiateCallback _XimUnRegi sterIMInstantiateCallback # XIM_open XIM_regiser XIM_unregister 順番を入れ替える XLC common/xlcUTF8Load _XlcUtf8Loader # XLC_open XIM common/ximcp _XimOpenIM _XimRegisterIMInstantiateCallback _XimUnRegi sterIMInstantiateCallback # XIM_open XIM_regiser XIM_unregister XIM common/xiiimp _SwitchOpenIM # XIM_open Presentation Title pg 24
  • 25. Wine on Solaris 11 Express 動作させたいアプリは人それぞれ 動かしたいものがあるなら、調べてみる Wine Application Database - http://appdb.winehq.org/ Mailing List に問い合わせてみる 何が言いたいかというと・・・ 動けば、ラッキー! Presentation Title pg 25
  • 26. Agenda Wine について そして、転落する日々がはじまる 絆ブレイク 旅立ちの時 libumem っておいしいの ? ^q^ wine を注いでください 参考情報
  • 27. 参考情報 WineHQ http://www.winehq.org/ Wine Key Mailing Lists/Forums http://www.winehq.org/forums Wine WIki http://wiki.winehq.org/FrontPage Wine Application Database http://appdb.winehq.org/ A Comparison of Memory Allocators in Multiprocessors http://developers.sun.com/solaris/articles/multiproc/multiproc.html いつも心に太陽を - Wine http://goo.gl/ywAI3 いつも心に太陽を - libumem http://goo.gl/tChtD Presentation Title pg 27
  • 30. Wine on Solaris 11 Express 最近はまっているのは、 Rift 今朝・・・ Hotfix #2 適用後、動作しなくなった 「動け、動け、動いてよ !!! 今動かなきゃ、 今ログインできなきゃ、 New! みんないなくなっちゃうんだ!」 すでに、中の人が動いてるので確認できしだい修正されるっぽい http://forums.riftgame.com/showthread.php?215541-pm-patch-6-24 そして、修正準備中 (2011/6/28) http://forums.riftgame.com/showthread.php?215541-pm-patch-6-24&p=270 Presentation Title pg 30