1: 海江田三郎 ★ 2016/08/29(月) 15:14:58.42 ID:CAP_USER
http://ascii.jp/elem/000/001/219/1219259/
Build 2016で発表され話題となった「Windows 10でネイティブ動作するbash」(「Windows Subsystem for Linux」)。
ベータ版という位置付けだが、先日Windows 10 Anniversary Updateに含まれる形で提供が開始され、いよいよユーザーに身近な存在となった。
その概念から導入の実際、ネイティブLinux環境との違いなどについて、2回にわたりレポートする。
「Windows Subsystem for Linux」の衝撃
MicrosoftがWindows 10向けに提供する「Windows 10 Anniversary Update」は、2015年11月公開の「Threshold 2」
以来10ヵ月ぶりとなる大型アップデート。生体認証機能をサポートする「Windows Hello」や音声アシスタント「Cortana」など多くの機能が強化され
、規模としてはThreshold 2をしのぐといっていい。
そのうち本稿で採り上げるのは、UNIX系OSで広く利用されているシェル「bash」がネイティブサポートされたこと。
Ubuntu Linuxをサブシステムで動作させる機構が追加されたため、bashのみならずLinuxのコマンドをWindows(実際にはコマンドプロンプト)から
透過的に利用できるようになったのだ
これまでもWindowsにはCygwinやMSYS2などUNIXシェルが動作する環境は存在したが、それらが依存するPOSIX互換レイヤーが
オーバーヘッドを生じるうえ、ディレクトリ構造がWindowsともUNIXとも異なってしまうなど"クセ"があり、
WindowsでUNIX由来の機能/コマンドをスムースに利用する仕組みが存在しなかった。
一方、対比されることが多いOS X(macOS)といえば、ネイティブのBSDレイヤーを持ちSingle UNIX Specificationの認証を受けた「UNIX」であり、
LinuxなどのPC-UNIXとソースコードレベルで高い互換性を備える。LAMP(Linux+Apache+MySQL+{PHP|Perl|Python})という言葉があるように、
WEBアプリ開発環境をLinux上で構築することが一種のトレンドとして存在するが、同様の環境をOS X上で構築することは難しくない。
Windowsでこれを実現しようとなると、仮想マシンを用意したりCygwinに手を入れたりひと苦労で、結構な数のデベロッパーがMacに移行したこともうなずける。
Windows 10 Anniversary Updateに含まれる「Windows Subsystem for Linux」は、まさにそこを意識した機能といえる。
仮想環境でもPOSIX互換レイヤーでもなく、サブシステムとしてUbuntu Linuxを動作させれば、ほぼネイティブに
Linuxの機能(バイナリ)がWindowsから呼び出せる。Build 2016での発表以来、シェル「bash」がネイティブ動作することばかりクローズアップされているが、
bashはあくまで"窓口"に過ぎず、その本質はLinuxをWindowsサブシステムで動作可能にしたことにある。
繰り返しになるが、Windows 10上でネイティブ動作するbash、およびLinuxのプログラム(コマンド)を手に入れるには、
Windows 10 Anniversary Updateを適用し、その後「Ubuntu on Windows」のセットアップを行なうという手順になる。
誤解のないように補足しておくと、Ubuntu Linuxをネイティブ動作させるためのサブシステム(Windows Subsystem for Linux)は
Windows 10 Anniversary Updateにオプションの形で含まれるが、Ubuntu Linuxのイメージファイルは後から追加することになる。
セットアップは若干煩雑で数回のシステム再起動を伴うが、いったん済ませてしまえば次回以降はコマンドプロンプトから「bash」を実行するだけで
Linuxとしての機能を呼び出せる。まずは、作業を進めてみよう。
2: 海江田三郎 ★ 2016/08/29(月) 15:15:08.00 ID:CAP_USER
1. Windows 10 Anniversary Updateの実行
Windows 10 Anniversary Updateは、Windows Update経由で自動アップデートが始まるのを待つか、Windowsの更新履歴から
「Windows 10 更新アシスタント」を手動実行するか、どちらかの方法で実行できる。ダウンロードとアップデート処理を合計すると、
ネットワークの混雑度合いにもよるが数時間から半日程度かかる可能性があるため、時間に余裕があるときの作業をお勧めする。
2. Windows Subsystem for Linuxの有効化
Ubuntu On Windowsを実行するために必要な「Windows Subsystem for Linux」(8月現在ベータ版)は、デフォルトでは無効化されている。
これを有効化するには、コントロールパネルで「表示方法:小さいアイコン」の状態で「プログラムと機能」を選択し、サイドバーにある
「Windowsの機能の有効化または無効化」をクリック、現れた画面で「Windows Subsystem for Linux(Beta)」をチェックする。
システム再起動を促されたら、そのまま再起動しよう。
3. 開発者モードを有効にする
これでWindows Subsystem for Linuxは有効化されたが、Ubuntu on Windowsをインストールするには、開発者モードを有効にする必要がある。
「設定」アプリの「更新とセキュリティ」を開き、サイドバーにある「開発者向け」をクリック、表示された「開発者向け機能を使う」にある
「開発者モード」ラジオボタンを有効にすれば準備完了だ。
4. 「bash」を起動する
Windows Subsystem for Linuxを有効にすると、Windowsのシステムフォルダ(C:¥Windows¥System32)に「bash.exe」が用意される。
この実行ファイルはLinuxのbash(/bin/bash)とは別モノで一種のラッパーとして機能し、初めて実行したときには
Windowsストアから「Ubuntu on Windows」のイメージファイルをダウンロードを試みるものだ(開発者モードでなければ拒否される)。
bash.exeを実行するには、コマンドプロンプトを起動して「bash」とだけ入力し実行すればOK。これだけで、Windowsストアからのダウンロードが自動スタートする。
5. ユーザーアカウントの登録
Ubuntu On Windowsのダウンロードが完了すると、ユーザーアカウントの作成へと進む。適当なユーザー名とパスワードを入力すれば、
そのユーザー名でホームディレクトリ(/home/****)が作成され、一連の作業が完了する。なお、Windowsコマンドプロンプトは
マルチバイト文字の扱いに不具合があるのか、メッセージの一部が崩れてしまうことがあるが、入力された文字がASCIIコードであれば処理は問題なく進む。
次回は、Ubuntu on WindowsとLinuxネイティブ環境の違いや、日々活用するための環境設定についてレポートする予定だ。
Windows 10 Anniversary Updateは、Windows Update経由で自動アップデートが始まるのを待つか、Windowsの更新履歴から
「Windows 10 更新アシスタント」を手動実行するか、どちらかの方法で実行できる。ダウンロードとアップデート処理を合計すると、
ネットワークの混雑度合いにもよるが数時間から半日程度かかる可能性があるため、時間に余裕があるときの作業をお勧めする。
2. Windows Subsystem for Linuxの有効化
Ubuntu On Windowsを実行するために必要な「Windows Subsystem for Linux」(8月現在ベータ版)は、デフォルトでは無効化されている。
これを有効化するには、コントロールパネルで「表示方法:小さいアイコン」の状態で「プログラムと機能」を選択し、サイドバーにある
「Windowsの機能の有効化または無効化」をクリック、現れた画面で「Windows Subsystem for Linux(Beta)」をチェックする。
システム再起動を促されたら、そのまま再起動しよう。
3. 開発者モードを有効にする
これでWindows Subsystem for Linuxは有効化されたが、Ubuntu on Windowsをインストールするには、開発者モードを有効にする必要がある。
「設定」アプリの「更新とセキュリティ」を開き、サイドバーにある「開発者向け」をクリック、表示された「開発者向け機能を使う」にある
「開発者モード」ラジオボタンを有効にすれば準備完了だ。
4. 「bash」を起動する
Windows Subsystem for Linuxを有効にすると、Windowsのシステムフォルダ(C:¥Windows¥System32)に「bash.exe」が用意される。
この実行ファイルはLinuxのbash(/bin/bash)とは別モノで一種のラッパーとして機能し、初めて実行したときには
Windowsストアから「Ubuntu on Windows」のイメージファイルをダウンロードを試みるものだ(開発者モードでなければ拒否される)。
bash.exeを実行するには、コマンドプロンプトを起動して「bash」とだけ入力し実行すればOK。これだけで、Windowsストアからのダウンロードが自動スタートする。
5. ユーザーアカウントの登録
Ubuntu On Windowsのダウンロードが完了すると、ユーザーアカウントの作成へと進む。適当なユーザー名とパスワードを入力すれば、
そのユーザー名でホームディレクトリ(/home/****)が作成され、一連の作業が完了する。なお、Windowsコマンドプロンプトは
マルチバイト文字の扱いに不具合があるのか、メッセージの一部が崩れてしまうことがあるが、入力された文字がASCIIコードであれば処理は問題なく進む。
次回は、Ubuntu on WindowsとLinuxネイティブ環境の違いや、日々活用するための環境設定についてレポートする予定だ。
39: 名刺は切らしておりまして 2016/08/29(月) 15:47:37.25 ID:OmW42Oti
>>2
>そのユーザー名でホームディレクトリ(/home/****)が作成され、一連の作業が完了する。
bashからはドライブレターは見えなくなって、ファイルパスの区切り文字が\から/に変わるという理解であってる?
>そのユーザー名でホームディレクトリ(/home/****)が作成され、一連の作業が完了する。
bashからはドライブレターは見えなくなって、ファイルパスの区切り文字が\から/に変わるという理解であってる?
46: 名刺は切らしておりまして 2016/08/29(月) 15:52:51.95 ID:g2Fr108y
>>39
ローカルドライブは、/mnt/c とかにいる
/home/<user> の実体は、C:\Users\<user>\AppData\Local\lxss\home とかそんな感じの場所
ローカルドライブは、/mnt/c とかにいる
/home/<user> の実体は、C:\Users\<user>\AppData\Local\lxss\home とかそんな感じの場所
50: 名刺は切らしておりまして 2016/08/29(月) 15:55:42.35 ID:OmW42Oti
>>46
それじゃCYGWINと大して変わらないじゃん!
それじゃCYGWINと大して変わらないじゃん!
54: 名刺は切らしておりまして 2016/08/29(月) 15:59:03.08 ID:g2Fr108y
>>50
コンパイルとか考えずに apt-get 出来るっていうだけで素晴らしいと思うけどな
コンパイルとか考えずに apt-get 出来るっていうだけで素晴らしいと思うけどな
67: 名刺は切らしておりまして 2016/08/29(月) 16:11:28.33 ID:OmW42Oti
>>54
CYGWINにもapt-cygがあるよ。
MSが公式に提供する性能のいいCYGWINって感じなのかなぁ。
CYGWINにもapt-cygがあるよ。
MSが公式に提供する性能のいいCYGWINって感じなのかなぁ。
3: 名刺は切らしておりまして 2016/08/29(月) 15:17:29.17 ID:dK50mfgq
ただ使えたらいいってもんじゃ無いんですわ
5: 名刺は切らしておりまして 2016/08/29(月) 15:18:47.70 ID:EmAhwkwj
ls しか使ったことが無いけど
7: 名刺は切らしておりまして 2016/08/29(月) 15:21:25.08 ID:ZvoNo8PF
音が止まる
androidバージョンアップと同じで
サウンドドライバはもう与えられないんだろう
androidと違って自作できる可能性がありそうだけど
廃棄してOSごと買い替えになるのか
実によくできたアップデートだ
androidバージョンアップと同じで
サウンドドライバはもう与えられないんだろう
androidと違って自作できる可能性がありそうだけど
廃棄してOSごと買い替えになるのか
実によくできたアップデートだ
9: 名刺は切らしておりまして 2016/08/29(月) 15:22:07.03 ID:D0U1mF6N
CUI搭載を自慢すんなよ
アナクロだぞw
アナクロだぞw
11: 名刺は切らしておりまして 2016/08/29(月) 15:29:31.68 ID:yLIHXU/h
chmodとか使えるのかな
そこらへん意外と引っかかるポイントだけど
そこらへん意外と引っかかるポイントだけど
14: 名刺は切らしておりまして 2016/08/29(月) 15:31:54.47 ID:vVl3wwE/
最初からLinuxでええやん
19: 名刺は切らしておりまして 2016/08/29(月) 15:34:27.23 ID:9fWvxBkf
マイクロソフトがいまだに、潰れないで存続してるのが不思議なくらいだよww
アップルの軍門に下った方がいいんじゃねえの?OSで一発当てただけの会社に
しては、よく持ちこたえているとは思うがなww
アップルの軍門に下った方がいいんじゃねえの?OSで一発当てただけの会社に
しては、よく持ちこたえているとは思うがなww
30: 名刺は切らしておりまして 2016/08/29(月) 15:41:27.20 ID:lLER7ri/
ここでMS叩きしてるバカは、MSがUNIXを初めて市販した会社でUNIX系の根幹技術にMSの成果が切っても切れないレベルで入ってるとか
OS/2=WinNTが、UNIXのように古臭いOSを捨て、1から新しいOSを作りたがったUNIX技術者達が作ったOSって知らんのやろなぁ・・・w
OS/2=WinNTが、UNIXのように古臭いOSを捨て、1から新しいOSを作りたがったUNIX技術者達が作ったOSって知らんのやろなぁ・・・w
48: 名刺は切らしておりまして 2016/08/29(月) 15:54:07.27 ID:OmW42Oti
>>30
WinNTを開発したのは元DECでVMSを設計したデヴィッド・カトラー。
UNIXとは全く関係がない。
WinNTを開発したのは元DECでVMSを設計したデヴィッド・カトラー。
UNIXとは全く関係がない。
32: 名刺は切らしておりまして 2016/08/29(月) 15:43:20.92 ID:6FkDG+gt
根本的に、間違っている。
Macはハード。
Macで動くOSに、Windows10や、Linuxもある。
Macはハード。
Macで動くOSに、Windows10や、Linuxもある。
37: 名刺は切らしておりまして 2016/08/29(月) 15:46:43.34 ID:W0Di+8D7
MacはってOS XはLinuxじゃないわけだが…
40: 名刺は切らしておりまして 2016/08/29(月) 15:48:12.10 ID:lLER7ri/
>>37
出来の悪いUNIXだわなw
数年前まで、MSが30年ほど前に取得したUNIX認定をやっと取得できたレベルw
出来の悪いUNIXだわなw
数年前まで、MSが30年ほど前に取得したUNIX認定をやっと取得できたレベルw
44: 名刺は切らしておりまして 2016/08/29(月) 15:51:46.09 ID:8/0hx/rM
時流的にMacはもう不要!よりも
Androidははもう不要!に
持ってこないとダメな気がする・・・
Androidははもう不要!に
持ってこないとダメな気がする・・・
52: 名刺は切らしておりまして 2016/08/29(月) 15:57:54.76 ID:mdUlSS+a
win10でいいや、Macとかいらんわ。
57: 名刺は切らしておりまして 2016/08/29(月) 16:04:05.00 ID:YmpsO051
大企業はウィンドウズを強制だろ
他のOSはセキュリティに害があるとかいって使わせてもらえない
linuxなどは毛嫌いされとる
ウィンドウズだとNSAが情報集めやすいのかね
他のOSはセキュリティに害があるとかいって使わせてもらえない
linuxなどは毛嫌いされとる
ウィンドウズだとNSAが情報集めやすいのかね
63: 名刺は切らしておりまして 2016/08/29(月) 16:09:03.63 ID:DPgEqpRz
Macは使えないアプリが多すぎてなぁ
68: 名刺は切らしておりまして 2016/08/29(月) 16:11:46.89 ID:GI180Oj3
bashだけ使えても意味ない
72: 名刺は切らしておりまして 2016/08/29(月) 16:15:13.03 ID:WakSsmtV
>>1
あんた何にも分かっていないでしょ?
システムコールが完全対応していないから、手探り状態なわけ
それなら、仮想マシンを使った方がましなんだわ
今時、マシンパワーは十分だし
あんた何にも分かっていないでしょ?
システムコールが完全対応していないから、手探り状態なわけ
それなら、仮想マシンを使った方がましなんだわ
今時、マシンパワーは十分だし
77: 名刺は切らしておりまして 2016/08/29(月) 16:37:36.42 ID:HIHCHIg6
そんな理由でMacを使っている人なんて超少数じゃないですかね・・・・
84: 名刺は切らしておりまして 2016/08/29(月) 16:52:59.88 ID:VFaxn0QW
Windows On Linux subsystemじゃなかったか
文字コードでShiftJISやUTF8のBOM有り無しの取り扱いがまだできてないときいたが、その辺はConEmuとか使ったらいけるのかね
文字コードでShiftJISやUTF8のBOM有り無しの取り扱いがまだできてないときいたが、その辺はConEmuとか使ったらいけるのかね
90: 名刺は切らしておりまして 2016/08/29(月) 17:12:56.26 ID:Yi5tSdLw
Swift等のiOSのアプリを深くいじりたい用になってしまうん?
それすらなんか開発中なら分かるけど
それすらなんか開発中なら分かるけど
92: 名刺は切らしておりまして 2016/08/29(月) 17:18:56.82 ID:Yi5tSdLw
windowsは仮想化出来ちゃうからなぁ
macは出来ないし(ライセンス的に?)
両方を1台で使うとなるとmacという選択になってしまう
macは出来ないし(ライセンス的に?)
両方を1台で使うとなるとmacという選択になってしまう
96: 名刺は切らしておりまして 2016/08/29(月) 17:28:17.64 ID:PtLI3EPZ
家にはWin10しかなくてスマホも泥
子供をパソコン教室に通わせるのにノート買わなくちゃならない
iPhoneアプリ開発コースへ通わせるならMacが要るって言われたんだが
この記事とおりならWin10でiPhoneアプリ作れるの?
子供をパソコン教室に通わせるのにノート買わなくちゃならない
iPhoneアプリ開発コースへ通わせるならMacが要るって言われたんだが
この記事とおりならWin10でiPhoneアプリ作れるの?
100: 名刺は切らしておりまして 2016/08/29(月) 17:35:16.06 ID:4zyYRSP0
>>96
子供をアプリ開発者にさせたいのか?
あんなもん本人が好きでやってなきゃ
親の願望でさせられたって
一ミリ一グラムたりともなんも身に付かないだろうに
子供をアプリ開発者にさせたいのか?
あんなもん本人が好きでやってなきゃ
親の願望でさせられたって
一ミリ一グラムたりともなんも身に付かないだろうに
102: 名刺は切らしておりまして 2016/08/29(月) 17:38:19.00 ID:3x4UHZLT
UNIXに拘ってた大学もだいぶ減ってMac鯖使ってるお客さんは2つだけになったわ。
Solarisは意外と渋といw
Solarisは意外と渋といw
BOOTCAMPでWINDOWS使うから