「Linux/OSS」カテゴリーアーカイブ

File System Improvements to the Windows Subsystem for Linux

This is part of a series of blog posts on the Windows Subsystem for Linux (WSL). For background information you may want to read the architectural overview , introduction to pico processes , WSL system calls , and WSL file system blog posts.

情報源: File System Improvements to the Windows Subsystem for Linux

WSLでWindowsのファイルシステムをマウントし、差分を吸収する仕組みがDrvFsだが、mountコマンドでDrvFsを使用するための解説。SMBなシェアフォルダもマウントできるようです。

Windows Subsystem for Linuxでのシリアルポートサポート

情報源: Serial Support on the Windows Subsystem for Linux – Windows Subsystem for Linux

Windows 10 Insider Previewの最新ビルドで、WSL上からのCOMポート使用がサポートされたようです。これでTTYが必要なアプリケーションも動作させれるようになったほか、VT-100とかつなげられますね:P

仕組み的には以下の図のようになっているようです。

Lxcore.sys内部に持つttyS.libがWindowsのCOMポートを中継する黒魔術です。

WSLではWindowsのCOM1がLinuxの/dev/ttyS1にCOM2が/dev/ttyS2と言うようにマップされます。WSLから使用する際のCOMポートのボーレート、ストップビット、フロー制御などについてはデバイスマネージャもしくはレジストリにより設定するようです。

MSではWSL上からラズベリーPiのシリアルポートに対して、以下のシナリオで動作のテストをしているようです。

  • Hyper-V virtual COM port
  • FTDI USB to serial converter
  • Prolific USB to serial converter
  • Physical COM port

まぁターミナル繋ぐのは今となってはネタですが、シリアル接続が必要なデバイスはそれなりに今もあるので、そのようなデバイスのプログラミングやデバッグをするのには良いかもしれませんね。

Windows 10 Creators Update: Bash/WSL & Windows Consoleの新しい点

雑に要約しました。

情報源: Windows 10 Creators Update: What’s new in Bash/WSL & Windows Console – Windows Command Line Tools For Developers

Windowsクリエーターズアップデートでは、WSL, コンソールアプリケーションがアップデートされています。

WSLの新機能

互換性の向上

クリエーターズアップデートではLinuxシステムコールインターフェイス(CSI)との互換性が改善されました。

これにより、各種開発ツール、言語処理系、テキストエディタ、RDBMS等が期待通りに動作します。

詳細については情報源の記事を確認ください。

Linuxとの互換テストについては、以下の記事になっています。

Testing the Windows Subsystem for Linux – Windows Subsystem for Linux

Ubuntu 16.04のサポート

Ubuntuが16.04へアップデートされました。

Win10 AUからWin 10 CUへアップデートした場合、自動的にUbuntu 14.04から16.04へのアップデートは行われないので、管理者権限のあるコマンドプロンプトで、以下の要領でWSLのアンインストールとインストールを行います。

既存の環境を余り壊したくない場合には以下の要領でインプレースアップデートが可能です。

Ubuntuのバージョン確認は以下の要領で行います。

ifconfig, ネットワーク接続列挙のサポート

Win10 AUではネットワーク接続列挙の機能が不足していたため、ifconfig、gulp、npmのようなツールが正しく動作しませんでしたが、Win10 CUではこの部分が改善されました。

pingとICMPのサポート

Win10 AUでは管理者権限がないとpingが出来ませんでしたが改善されました。

ファイル変更通知のサポート(INOTIFY)

Win10 AUでの不満点にINOTIFYの非サポートがありましたが、これも改善されました。

Windows, Linuxの相互運用

WSLのコンソールからWindowsアプリケーションの呼び出し、WindowsのコンソールからWSL上のLinuxアプリケーションを呼び出しができ、それだけで無く、パイプ、リダイレクトで接続することができます。

WindowsからLinuxコマンドを呼び出す場合、…\System32\Bash.exe経由で呼び出すので、Git for WindowsやCygwinでその他のbashにpathを通している場合には注意してください。

UNIXとNetlinkソケットの改善

Win10 AUではUnixソケットとNetlinkソケットの一部機能がサポートされていませんでしたが、改善され、多くのツールが動作するようになりました。詳しくは以下のリリースノートを確認ください。

https://msdn.microsoft.com/en-us/commandline/wsl/release_notes

TCPソケットとIPV6の改善

TCPソケットとネットワーク周りが改善され、様々なネットワークソケット機能、IPV6の使用が可能になりました。詳しくは以下のリリースノートを確認ください。

https://msdn.microsoft.com/en-us/commandline/wsl/release_notes

Windowsコンソールとコマンドラインの改善

Windowsコンソールは非常に長い歴史がありますが、長い間ほとんど顧みられること無く、機能改善はされないままで、それ故に多くのサードパーティが登場することになりましたが、長い間ユーザーの不満点として残っていました。

ところが、MSがOSSに配慮するようになって、要約その不満点を理解したのか、2年前よりWindowsコンソールチームがが出来、コンソールのオーバーホールが行われています。

多くのVTシーケンスの改善

以前のWindowsのコンソールは不十分なANSIシーケンスのサポートで有名でしたが、もはやそれは過去のものとなりました。

Win10 AUのコンソールではほとんど一般的なANSI, VTシーケンスがサポートされましたが、いくつかの高度な機能が欠落していました。Win10 CUではさらにVTシーケンスのサポートが改良され、いくつかの高度なVTシーケンスを正しく処理できるようになり、vim、emacs、Midnight Commander、tmux、htopなどの多くのリッチテキストUI機能をコンソールに表示できるようになりました。

24ビットカラーのサポート

コンソールで24ビットカラーがサポートされるようになりました。

マウスのサポート

コンソールでマウスがサポートされるようになりました。

Windowsのシンボリックリンクで管理者権限が不要に

Win10 CUで開発者モードをONにした場合、管理者権限無しでシンボリックリンクの作成が可能になりました。

これについては次の記事を参考にしてください。

https://blogs.windows.com/buildingapps/2016/12/02/symlinks-windows-10/#lHydFmMHvUPDUtk0.97

What’s Next?

Win10 CUにおいてもWSLはベータ版です。

Windows 10 Insider PreviewのFastリングに登録して、新しい追加機能を試すとともにフィードバックをして欲しいとのこと。

源ノ明朝が公開されました

オープンソース Pan-CJK 書体

情報源: 源ノ明朝

Adobeからオープンソースの多言語対応フォントである源ノ明朝が公開されました。

フォントはAdobeのTypeKitより入手できるほか、以下のGitHubページからもダウンロードが可能です。

https://github.com/adobe-fonts/source-han-serif/tree/release/

CJKに関しては各国語版が用意されています。

TypeKitを使用せずGitHubからダウンロードする場合、どのフォントのダウンロードが必要かは、以下のPDFにフローチャートがあるのでご確認ください。

http://www.adobe.com/content/dam/Adobe/en/products/type/pdfs/download-guide-source-han.pdf

Chinaが簡字、Taiwanが繁字です。

今までサンセリフ体の源ノ各ゴシックが公開されていましたが、今回セリフ体の源ノ明朝が公開されたことで、WEBや印刷物でセリフ体を使用した時もトウフ無しの表現が可能になりました。

また、源ノ明朝は印刷物のフォントとしてもきれいで読みやすく、MSP明朝の置き換えとしても使用できそうです。

追記(20:46)

Googleからも同一のフォントであるNoto Serifのダウンロードが以下URLのページより可能になっています。

https://www.google.com/get/noto/

CodePlexは12/15で閉鎖

情報源: Shutting down CodePlex | Brian Harry’s blog

2006年に始まったCodePlexですが、12/15で閉鎖と言うことになったようです。

CodePlexの立ち上げは不器用ながらもMSがOSSとそのコミュニティに取り組み始めたことを象徴していましたが、その役割が終わったと判断されたようです。

閉鎖の段階で全てのコンテンツがバックアップされ、JSON API等含めて閲覧可能な状態には置かれるので、即見れなくなるとか、ソースやバイナリが取得できなくなると言うことでは無いようです。

各プロジェクトの引っ越し先としてはGitHubへの以下の移行手順書が用意されているほか、Visual Studio Team Service、BitBacketなどが上げられています。特にHgを使われていた方はBitBacketへの移行がスムーズだと思います。

Migrating to GitHub – CodePlex Information and Discussion

そして一方GitHubは。。。

Welcoming CodePlex projects to GitHub

全く抜け目なしとなっています。

マイクロソフトがLinuxファウンデーションのメンバーに

LinuxLove

情報源: Microsoft Fortifies Commitment to Open Source, Becomes Linux Foundation Platinum Member | The Linux Foundation

これでMS謹製ディストロ来るでーって話ではないですが、MSがLinuxファンデーションに加わったようです。まぁ最近の状況を考えると余り不思議では無いんですが、こうなってみるとここまで来たかって感じです。

SQL Server on Linux public preview

Official News from Microsoft’s Information Platform

情報源: Announcing SQL Server on Linux public preview, first preview of next release of SQL Server | SQL Server Blog

SQL Server on Linuxがパブリックプレビューとなり、一般公開されたようです。各ディストリビューションでのインストール方法については上情報源のサイトを確認ください。

youtubeに関連ビデオが上げられています。

WSL adds Ubuntu 16.04 Xenial support

情報源: WSL adds Ubuntu 16.04 Xenial support – Windows Command Line Tools For Developers

Insider Previewの新しいビルドでWSLが更新されたのは既にお伝えしていますが、Ubuntuがのバージョンが14.04から16.04にアップデートされています。普通に考えればUbuntuのアップデート手順でアップデートなのですが、この記事だとなんと、14.04から16.04へのアップデート出来ないから入れ直せと行っています。ちょっと何を言っているかわからない。だがそういう事らしい。製品版では素直にアップデートできると良いですね。

アンインストール・インストールとも管理者権限のapuコマンドプロンプトかPowerShellで実行してください。

アンインストール

インストール

そして、この記事のMSの開発チームの「目指していない物」リストが面白い。(意訳)

  • 私たちはこのリリースではGUI/X アプリケーションやデスクトップのサポートは目指していません。
  • 私たちはこのリリースではオーディオサーバーやストリーミングのサポートは目指していません。
  • 私たちはこのリリースではCUDAやGPUアクセラレーションによる計算のサポートは目指していません。
  • 私たちはこのリリースではリムーバブルデバイスあるいはネットワークドライブのマウントのサポートは目指していません
  • %localappdata%\lxss は直接触らないでくれる?

つまりボクらが無茶するので、お前ら落ち着けって事らしい。

WSL上でのWindowsアプリケーションの起動と相互運用

情報源: Windows and Ubuntu Interoperability – Windows Subsystem for Linux

今日公開されたInsider Previewのビルドに含まれるWSLでは、WSLのbash上からWindowsアプリケーションの起動が可能になったほか、WindowsプロセスとWSLのプロセスとの間でリダイレクト・パイプが使用できるようになりました。

それを実現する仕組みを示したのが下の図です。

当然WSLのプロセス空間の中でWindowsプロセスが作られるわけではなく、実際にはWSLのローダー側でWindowsのbinがロードされようとされたことを検知したら、それをbash.exeに通知して、Bash.exeに起動させます。また、WinプロセスとWSLのプロセス間でのリダイレクト・パイプを実現するために、その起動したWindowsプロセスの入出力とWSL側のプロセスの入出力をWSLのサービスとbash.exeが橋渡しをします。

どの様にリダイレクトを実現しているのか、Linux側のローダーをどのように設定変更しているかについては、元のBlogにもう少し細やかな説明がありますのでご確認ください。

実際にWSL上でどうWindowsバイナリを使っていくかについては、以下のmsdnライブラリの文書を参考にしてください。

Windows Interoperability

参考:リリースノート

Linux25周年

Linuxは8月25日で25歳になる。Linus Torvaldsが新しいオペレーティングシステムへの協力を求める運命的メッセージを送った日だ。「386(486)AT互換機用に(フリーの)オペレーティングシステムを作っています(単なる趣味でgnuのように大きくてプロフェッショナルなものにはならないでしょう)。4月から作り始めて、そろそろ準備が整うところです。minixの好きなところ嫌いなとこ…

情報源: Linux、25歳の誕生日おめでとう | TechCrunch Japan

伝説的なLinusのcomp.os.minixへの投稿から25年だそうです。

最初にLinuxを知ったのは今は無きSupaer ASCIIのPC UNIX特集だったっと思う。実際にインストールしたのは多分95年頃。Slackwareだったっと思う。もうコンベンションの名前は思い出さないけど、幕張で開催されたPCのコンベンションでCD-ROMを買ったかもらったのが最初だと思う。ISAバスカードのPnPが出来なくて手動設定したのとかすごい懐かしい。なので、僕のLinux体験は20年チョットぐらいなのか。(まぁ記憶だけで書いているのでいろいろ怪しいけど)

最初はただ安くNFSサーバーを作りたいとか、SUN WSにつなげられる安いXターミナルが欲しいとかそんな理由で使い始めていた。業務(社内)のDNS, メールサーバーにLinuxを使うのは怖くて、そっちは当時マクニカが代理店をしていた386BSDが使われていたし、製品でLinux使うって言うのはチョット考えもしなかった頃。

まぁこんなネタおっさんの昔話にしかならない。