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

Windows Subsystem for Linuxの仕様にあたり、開発者モードの設定が不要に

情報源: Developer Mode no longer required for Windows Subsystem for Linux – Windows Command Line Tools For Developers

Windows 10 Insider Preview Build 16215よりWSLの仕様に当たって開発者モードの設定をする必要がなくなります。

これは、開発中の不安定な機能を使用するものだったため、非技術ユーザーを保護する目的で設置されていましたが、昨年からの二つの大きな更新でMSとして自信が持てたので、このツールセットを多くのユーザーが利用できるよう、開発者モードの設定無しで使えるようにするということのようです。

このため、今後WSL自体の機能をWindowsに追加するには、Windowsの機能にて「Windows Subsystem for Linux(Beta)」を選択するだけです。

Windows 10 SでWSLは動くのか?

情報源: Will Linux distros run on Windows 10 S? – Windows Command Line Tools For Developers

教育分野用のWindows 10のエディションとして、Windows Sが先頃発表されました。このWindows SはWindowsストア経由でのアプリケーションのインストールが行えませんし、ストア経由でインストールしかアプリケーションを実行できません。また、先のBuild 2017ではWSLのユーザーランドがUbuntuだけでなくSUSE, Fedoraが追加され、それがストア経由で選択してインストール出来るようになることが発表されました。

そこで、誰もが疑問に思うのがそれだったらWindows SでWSLが動くんじゃ無いかって事です。

答えはNO

理由はWSLが前提としているデスクトップブリッジが広範な権限を必要とするため、Windows Sでは動かないから。記事では同様な理由でWindows Sは開発者向けではないとしています。

Surface LaptopのようなWindows SがプリインストールされたPCを入手した場合には、Pro等へのアップグレードが必要となります。

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 は直接触らないでくれる?

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