NixOS から Windows 10 Pro に出戻りました

OS の入れ替え回数については、もはや語る事はない。

なんでまた NixOS から Windows に出戻ったのか

まーこれは特に深い理由があったワケでもなく、なんとなくの気紛れでやった感が非常に有るのですが、 最近では VTuber を実現するための技術に興味関心が出てきて色々調べたところ、

あー VTuber 関連技術って Windows じゃないと相当厳しいやつやん……

と理由も有って、Windows 10 Pro に出戻ってきました。 あとはDTM も Wine on NixOS でやるのもなんかなー感が出てきたのもあります。

またそれ以外に開発環境の用意も最近の Windows 10 Pro では WSL2 で大分ラクになってきた事が判明して来ており、 Win32 アプリケーションも普段の環境を粉砕しないで使えそうな事も分かったので、 そう言う面も含めて Windows 10 Pro に戻って来た感じですね。はい。

Windows 10 Pro に出戻る際に活用したモノ

それで今回 Windows 10 Pro に出戻って来たワケなんですが、 今回の出戻りでは Windows 10 Pro 環境を出来るだけ粉砕しない様に、 具体的には下記のソフトウェアを使っています:

sandboxie-plus/Sandboxie: Sandboxie - Open Source

Sandboxie - Open Source. Contribute to sandboxie-plus/Sandboxie develo...

んでこの Sandboxie Plus と言うソフトウェアなんですが、 これは Windows 環境下でサンドボックスを実現するソフトウェアで、 具体的には下記の様な特長があります:

  1. レジストリ環境をサンドボックスに分離できる
  2. ファイルシステムもサンドボックスに隔離できる
  3. 設定すればサンドボックス外のリソースにアクセス出来る様になる

それでこの Sandboxie Plus と言うソフトウェア、 元々は有償ソフトウェアの類いで Sandboxie として古くから存在していたらしいのですが、 開発元の買収などで最終的にはセキュリティ会社の Sophos の持ち物になり、 それが Windows Sandbox と言う Windows 公式機能の提供で開発が終了、 そして Sandboxie の資産を OSS で提供してコミュニティに還元されたのち、 Sandboxie Plus として fork されて提供されるに至る、と言う経緯を持つソフトウェアです。 説明が長いですね。

あと Sandboxie Plus は GPLv3 として提供されており、 現在も開発が続く Sandboxie の後継として無償利用できるため、 そう言った面でも非常に使い勝手の良いソフトウェアです。

ただし一点だけなんともし難い点として、 Sandboxie 自体の機能が Windows Kernel Driver として実装されている都合上、 Windows 10 の 64bit Edition ではドライバにEV署名が必要となる……のですが、 これが少数人数で回している OSS としては高額な出費となるために、 なんかリークされた証明書を使っている……と言う現実があります。

なので Windows 組込みの Windows Defender でも、

これ悪意あるソフトウェアやんけ!

と怒られが発生するため、Sandboxie Plus を利用する際にはこの辺りは誤魔化す必要があります。 まぁ私は false positive だと分かってたんで、とりあえず許可された脅威としてドライバを有効にしましたが。

開発環境は WSL2 の Ubuntu 20.04 と nixpkgs を組み合わせて作った

あと個人的に開発用と言うか普段使う Linux 環境としては、 下記の様な環境を組み合わせて普段使いの開発用 Linux として使ってます:

  • Ubuntu 20.04 on WSL2
  • Docker Desktop for Windows
  • nixpkgs with Ubuntu 20.04 on WSL2

なんで nixpkgs が使えれば Ubuntu 20.04 でもなんとかなりそう……と言う感触も得たため、 今のところはこの環境で普段の作業とかしています。

また WSL2 の意外な便利ポイントとして、

NTFS としては妥当だが Windows としては不正なファイル名

を手軽に修正できる(と言うか出来た)と言った点が有ります。

それでこれはどういう事かと言うと、Windows ではフォルダの末尾がスペースで終わったり、 あるいは(Windows の)システムで予約されたファイル名などは不正なファイル名になってしまい、 Windows からでは該当ファイルなどが操作不可能になる、と言う欠点があるのですが、 WSL2側の /mnt/c と言った Windows Drive のマウントポイントからだとこの辺りの制約が外れ、 Windows で不正なファイル名やら不正なフォルダ名となったパスをサクっと修正したり削除したり、と言う事が出来ます。

よってこう言った点でも WSL2 は便利だったし、また今後の WSL2 の Update で WSL2 側の Linux から Host 側の Windows に刺さってる NVIDIA Graphics Cards を cuda 用に利用できる様にする、 言うロードマップも出てるので、そう言った意味でも WSL2 は良いんじゃないかなーと思います。 とは言え機械学習とかやったことはほぼありませんが。

以上

まぁ今回の引っ越しは割と正解だったかなーと個人的には思ってますが、 引っ越してから 10日ほど DTM 環境の試行錯誤とかをしまくっていたため、 この話を書くのが今頃になった、と言う事情が実はあったりもします。

また私が System が Mutable な OS を信頼しない理由の一つとして、

システムをいじったりアップデートを掛けるだけでシステムが粉砕される

と言う理由があったのですが(だから NixOS と言うシステムが Immutable な Linux を使っていた)、 今回はその問題点への対策が困難だった Windows 側の環境でも Sandboxie Plus を使うことによって解消できた感じなので、 そう言った点でも今はだいぶ良い環境が揃えられるんだなー、と言う実感を得ていますね。

そんな感じで今回の話はそういう類いの話だったんですが、 DTM with Sandboxie Plus についてはまた後日情報をまとめたいと思ってます。はい。