情報技術の四方山話

AI、IoT、ヤマハルータ、VPN、無線LAN、Linux、クラウド、仮想サーバと情報セキュリティのよもやま話

WSL2は極めてシンプル-Ubuntu 20.04.LTSを起動(その1)

2020-06-05 23:52:02 | Windowsの備忘録
今日は「WSL2は極めてシンプル-Ubuntu 20.04.LTSを起動(その1)」です。
WSL2を起動したところ「initとbashのみ」見えています。起動直後はこれだけです。
freeをすると、PCハードのメモリー領域がそのまま見えています。



takumi@DESKTOP-882HI3T:/mnt/c/Users/taniy$ free
total used free shared buff/cache available
Mem: 9703440 55592 9616440 68 31408 9493588
Swap: 3145728 0 3145728
takumi@DESKTOP-882HI3T:/mnt/c/Users/taniy$




コメント

Windows 10 Version 2004 /May 2020 Updateが配布開始-大型で再起動が数回必要です

2020-05-31 22:00:43 | Windowsの備忘録
今回は注意喚起「Windows 10 Version 2004 /May 2020 Updateが配布開始-大型で再起動が数回必要です」です。

もうすぐ「Windows 10 May 2020 Update」が配布開始になります。自動更新になっているWindows 10は長時間のダウンロードと、再起動が必要になります。私のPCのWindows Update画面には、既に予告が出ています。

昨晩、一台のPCを「強制アップデート」したところ、ダウンロード時間、アップデート時間共に長く、再起動が数回必要でした。

自動更新になっている方も多いと思います。「うっかり再起動すると、更新に時間がかかります」ご注意ください。

コメント

Windows 10上でWSL2を設定し、Ubuntu 20.04 LTSを起動しました

2020-05-31 16:42:17 | Windowsの備忘録
今回は「Windows 10上でWSL2を設定し、Ubuntu 20.04 LTSを起動しました」です。

Windows 10ではネイティブにLinuxを利用する環境WSL(Windows Subsystem for Linux)があります。これはいわゆる「仮想サーバ」ではなく、LinuxシステムコールでWindowsシステムコールを包み、Linuxというアプリを動かしています。正確にはLinuxそのものではありませんが、ほとんどのLinux機能をそのまま使うことができます。

一方、昨年からその新バージョンWSL2が開発者向けに公開が始まり、この5月末の最新のWindows 10のリリースに合わせて、正式なリリースが始まりました。

WSL2は仮想マシンを起動するHyper-V上で動作する「Linux仮想マシン」です。Windowsとは独立して動作します。実際にLinuxカーネルはMicrosoft謹製のLinuxカーネルです。Windows環境から起動はしますが「ネイティブなLinux」が動きます。
もう、VirtualBoxやVMwareは不要なのです。しばらくすると、WindowsのGUI環境に重ねて、LinuxのGUIを表示できるようになります。

こうなると、WindowsはLinux仮想サーバ実行環境そのものです。実は、WindowsのPwerShell、Visual Studio CodeはLinuxと極めて密接に実行できる機能をすでに備えています。使い慣れたWindows上でLinuxネイティブなアプリケーションを開発できます。

Windows OSとLinux OSは既に共生する関係になっており、適材適所で使いやすい方を使うことになります。

私のワークステーション上でWSL2が動き始めています。いろいろ試していきます。
コメント

WindowsはWSL2でLinuxのGUIもサポートへ

2020-05-21 20:45:51 | Windowsの備忘録
今日の話題は「WindowsはWSL2でLinuxのGUIもサポートへ」です。
Windows上の仮想マシンとして動く仕組みを提供するWSL2のリリースが目前です。MicrosoftはWSL2上でWindows GUI上にLinux GUIの表示が可能になると発表しました。

素晴らしい。これはすごい。ソフトの開発がとても楽になります。なんせ完全なLinuxが動くのですから。GUI付きLinuxのソフトもWindows上で開発できます。

今でもWindows上で走るXwindowのサーバーもあり、Windows上でLinuxGUIを表示することができます。これで、LinuxとWindowsを連携した開発もシンプルにWindows上で開発することができるのです。

WSLの時代でもとても便利でしたが、WLS2への移行を急ぎたいと思います。
コメント

Windowsのファイル共有プロトコル(SMB)のコマンドでの確認の仕方

2020-05-20 08:54:05 | Windowsの備忘録
今日の話題は「Windowsのファイル共有プロトコル(SMB)のコマンドでの確認の仕方」です。
以下の通り、Windows上のPowerShellでの実行例です。
Windows10のデフォルトでは、SMB1が表示されません。

■Windows 7

C:\Users\taniyama> sc.exe qc lanmanworkstation
[SC] QueryServiceConfig SUCCESS

SERVICE_NAME: lanmanworkstation
TYPE : 20 WIN32_SHARE_PROCESS
START_TYPE : 2 AUTO_START
ERROR_CONTROL : 1 NORMAL
BINARY_PATH_NAME : C:\Windows\System32\svchost.exe -k NetworkService
LOAD_ORDER_GROUP : NetworkProvider
TAG : 0
DISPLAY_NAME : Workstation
DEPENDENCIES : Bowser
: MRxSmb10
: MRxSmb20

: NSI
SERVICE_START_NAME : NT AUTHORITY\NetworkService

C:\Users\taniyama>


■Windows 10ではSMB1が表示されない


PS C:\Program Files\PowerShell\7> sc.exe qc lanmanworkstation
[SC] QueryServiceConfig SUCCESS

SERVICE_NAME: lanmanworkstation
TYPE : 20 WIN32_SHARE_PROCESS
START_TYPE : 2 AUTO_START
ERROR_CONTROL : 1 NORMAL
BINARY_PATH_NAME : C:\WINDOWS\System32\svchost.exe -k NetworkService -p
LOAD_ORDER_GROUP : NetworkProvider
TAG : 0
DISPLAY_NAME : Workstation
DEPENDENCIES : Bowser
: MRxSmb20
: NSI
SERVICE_START_NAME : NT AUTHORITY\NetworkService
PS C:\Program Files\PowerShell\7>


コメント

PowerShell 7/7.1 preview 2がリリースされています

2020-05-14 07:32:54 | Windowsの備忘録
今回の話題は「PowerShell 7/7.1 preview 2がリリースされています」です。
PowerShell 7はオープンソースで開発されている、Windows、macOS、Linuxで使うことのできる「シエル環境」で、コマンドレットと呼ぶコマンドと、POSIX互換の基本的なコマンド、Windows環境では、従来のコマンドプロンプトで実行できたコマンドも使うことができます。
また、一般的なスクリプト言語同様、条件分岐ができるなど、プログラムを書くことができます。


PowerShell 7.1.0-preview.2
Copyright (c) Microsoft Corporation.


https://aka.ms/powershell
Type 'help' to get help.


PS C:\Users\taniy>



PowerShell 7.0.0
Copyright (c) Microsoft Corporation. All rights reserved.


https://aka.ms/powershell
Type 'help' to get help.


PS C:\Users\taniy> get-host


Name : ConsoleHost
Version : 7.0.0
InstanceId : c9e6b480-734a-4a32-bc11-3d78aba3b26d
UI : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture : ja-JP
CurrentUICulture : ja-JP
PrivateData : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
DebuggerEnabled : True
IsRunspacePushed : False
Runspace : System.Management.Automation.Runspaces.LocalRunspace




PS C:\Users\taniy>

コメント

Windows Terminalは画期的にシステム管理やシステム開発を改善します

2020-05-11 07:30:54 | Windowsの備忘録
今回の話題は「Windows Terminalは画期的にシステム管理やシステム開発を改善します」です。
Windows TerminalとはWindows上のPowerShell、コマンドプロンプト、Linux shellを統合して表示する、新しく提供が始まったばかりのコマンドラインシェル呼び出し機能です。

ついこの間まで、Preview版としてMicrosoft Storeで配布されていました。連休中に"RC(Relase Candidate=リリース候補)版が公開され、すでにMicrosoft Storeの製品表示も"Windows Terminal"=正規版となっています。

Windows Terminalは起動したshellを一つのWindowでTab表示で管理できます。
これだけでも画期的に便利ですが、さらにPowerShellとLinuxシェルも起動でき、Tab切り替えで使い分けることができます。システム管理者やシステム開発者には、必須の環境です。お勧めのツールになること必定です。



コメント

Windows PowerShellでのソフト開発のきっかけ

2020-05-10 19:11:58 | Windowsの備忘録
今回の話題は「Windows PowerShellでのソフト開発のきっかけ」です。

私は、ネットワークに関連するソフト開発も行います。もともと、ソフト開発は大好きです。昨年から取り組んだ仕事で、LinuxとWindowsを連携した、データ伝送の仕組みを開発しました。

Linux側は100%bashスクリプトで開発し、Windows側は一つの小さな機能モジュールをC言語で、主体となる部分はWindows PowerShellで開発しています。

Windows PowerShellでの開発はそれまで経験無しです。最初はWindows PowerShellでの開発ではなく、busybox.exeというWindows上で走る極めてコンパクトなLinux上で開発を始めました。bash, cur, wgetなど慣れたLinuxツールの活用が目論見でしたが、すぐに行き詰まりました。busybox.exe上でのwgetもcurlもお客様先のFireWallを通過できない可能性がでてきたのです。「持ち込み禁止」の可能性ありです。

そこでWindows PowerShellを使っての方法に切り替え、通信は全てWindowsが備える機能で行いました。

Windows PowerShellでの本格的な通信ソフトの開発は初めてなので、まだコードが綺麗ではありません。開発後の機能追加もあり、ちょっとコードが膨らんでいます。
ただ、バグなして動いていたコンパクトなソフトの自然な拡張なので、根本的に書き換えるようなことはしません。

Windows PowerShellはコマンドレットと呼ばれるコマンドを使います。これまでのコマンドと大きく違うのは、「コマンド名が長い」ことです。ただ、コマンド名はとてもよく体系化されているので、慣れてくると必要な機能を実現するコマンドレットの名前が推定できるほどです。またコマンドレットはオブジェクトを返すので、多くの関連情報を知ることができます。

コマンドレットの扱いには、例題を見て少しずつ慣れました。条件判断も同様です。WindowsのOS機能を使うには、C#等コンパイル言語で書き下すより圧倒的に保守性が良くなります。

今はWindows Terminal(Preview)に統合されたWindows PowerShell環境に移行したので、コマンドライン・シェルも使いやすくなりました。


コメント

WSLは"Windows Subsystem for Linux"でした

2020-05-03 08:55:12 | Windowsの備忘録
今回の話題は「WSLは"Windows Subsystem for Linux"でした」です。
これまでWSLをWLS(=Windows Service for Linux)と記述していましたが、正しくはWSL(Windows Subsystem for Linux)の間違いでした。過去記事の表記も、同様の間違いです。

尚、略称の基の単語を間違っていましたが、WSLそのものの機能・役割を間違っているわけではありません。

実はWindows Service for UNIX(=SFU)という、Windows上にUNIXを移植した環境がありました。実はWindowsはPOSIX/UNIX環境を備えていたのです。SFUとWSLの利用者への見え方はそっくりです。POSIX環境なのでスクリプトはパスの変更程度で動きましたし、gccも使えるのでUNIX流のソフト開発もできたのです。その環境を使って、システムを構築したこともあり、てっきりその流れで"Service for Linux"だと思っていました。SFUは英語版Wikiには細かい解説があります。


コメント

WSL2とWSLの違いを解説します

2020-05-02 21:18:45 | Windowsの備忘録
今回は「WSL2とWSLの違いを解説します」です。
タイトルのミスタイプを修正しました。
WSL(Windows Service for Linux)はもうすぐWSL2となることがアナウンスされており、既に開発者向けプログラムでは配布が始まっています。

WSLは、Windows APIをLinux APIでラップしています。WSLの下はWindowsのAPIなので「仮想」ではなく、いわば「Windowsのアプリケーション」なのです。Linuxに合わせてその集合体をこさえています。即ち、完全に「WindowsAPIをラップ(Wrap)」して異なるOSの環境と見せているのです。そのため、Linuxカーネルの上で動いているように見えますが、Linuxカーネルは実在しません。なので、カーネル内部の機能を制御することはできないのです。典型的にはデバイスドライバ等ハードウエア依存部分を含む開発は多くの場合できません。
とはいえ、これは、これで素晴らしい環境です。私みたいに全く不満の無い方の方がほとんどだとおもいます。

一方、WSL2は完全な仮想環境です。仮想マシンをつくる、ハイパーバイザーの上でWindowsに全く依存しない形でLinuxカーネルごと起動します。これまで仮想環境をつくるために導入していたVirtualBox、VMWareが要らなくなります。完全なx64 Linuxですから、そのLinuxの上に仮想化層を載せることもできます。即ち「ただのLinux」なのです。その実行管理をWindowsがこれまでのVirtualBoxやVMWareのように提供します。

こなると、同じアーキテクチャであれば、Linuxデスクトップで開発した「バイナリプログラム」を変更なしでもってきて実行することができます。アーキテクチャが異なる場合は、その上でコンパイルし直せば実行できます。スクリプトだけではなく、バイナリ実行型のプログラムの環境が大きく広がります。

WSL2の登場は、Microsoftが純粋なLinux実行環境の提供を始めることを意味します。これまでのWindowsGUI環境で、ローカルに完全なLinuxが立ち上がります。なのでLinux上で著名なコンテナ環境のDockerさえも使えます。私の場合も、カーネル依存のミドルウエアの利用や開発であれば、WLS2を使います。


コメント

WSLでPowerShellやコマンドプロンプトからlinuxコマンドを実行する

2020-04-30 12:03:32 | Windowsの備忘録
今回は「WSLでPowerShellやコマンドプロンプトからlinuxコマンドを実行する」です。
WLSが更新され、使いやすいWindows TerminaのPreviewがでたこともありWLS(Windows Service for Linux)を試しています。
前回は、PowerShellやコマンドプロンプトからwlsコマンドでLinuxのbashを起動できることを紹介しました。

もう少し試してみたところ、なんと「wlsコマンドでLinuxコマンドを呼び出すことができる」ことが判りました。
これは「PowerSHellスクリプトでLinuxコマンドを発行することができる」ということです。

■コマンドプロンプトでLinuxコマンドを実行

C:\Users\taniy>wsl lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.4 LTS
Release: 18.04
Codename: bionic

C:\Users\taniy>


■PowerShellでLinuxコマンドを実行

PS C:\Users\taniy> wsl lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.4 LTS
Release: 18.04
Codename: bionic
PS C:\Users\taniy>


この環境ならば、これまでWindows上でLinux/bash環境を提供するツールとして使っていたBusyBox.exeは不要です。もちろん、Linux環境の呼び出し方の手続きは変わりますが、これからは、素直な実行環境でWindowsの機能とLinuxの機能を連携することができます。これは、開発者にとっては、素晴らしい環境です。

Windows Terminalでコマンドを操作する環境も改善されています。
Linuxのスクリプトだと思っていたプログラムが、WindowsにWSLをインストールすれば、概ねそのまま実行できることも判りました。デバッグ済みのLinuxソフトウエアをWindows上で実行することが極めて容易になるのですから、素晴らしいことです。

次回は、Linux環境で沢山使っている、自作のPythonプログラムが実行できることを試します。


コメント

WSLのLinux/bashはPowerShellやコマンドプロンプトからも起動できます

2020-04-30 05:36:05 | Windowsの備忘録
今日は「WSLのLinux/bashはPowerShellやコマンドプロンプトからも起動できます」です。
WSL(Windows Service for Linux)はWindowsのメニューから起動することができます。
これまではそうしてきていました。PowerShellやコマンドプロントから「wsl」と入力するとあら不思議。Linuxのbashが起動されLinux環境に変わります。

この仕組みを使うとPowerShellからLinuxのスクリプトを起動することもできそうです。
私の場合は、Windows上でLinux bash環境で作ったスクリプトを動かしたいことがままあり、これまでは、コマンドプロントからbusybox.exeを使ってbashスクリプトを起動してきました。
これは、Windows環境のスクリプト実行環境としてコマンドプロンプト、いわゆる".bat"しか知らないからです。しかも"*.exe"を起動できる程度の知識しかありません。

コマンドプロント環境も使いこなせば、複雑なことも書けるとは思います。
ただ、私にとっては長年使っているbash, awk, pythonの方が経験と、インターネット上の事例の情報量が圧倒的に多くて実装が楽なのです。

一方、仕事の都合で、昨年よりPowerShellを本格的に使い始めています。
私にとってWindows nativeなスクリプティング環境はすでにPowerShellになっています。シンプルなスクリプトですが、異種のシステムを連携させるプログラムを記述しています。このプログラムは当面使い続けることになります。

".bat/busybox.exe/bash,awk"で書いたスクリプトもPowerShellに移植し、メンテナンスできるようにしようとしていますが、方針を転換してPoweShellから素直にWSL/bash,awkスクリプトを実行するかどうかをまず調べます。


コメント

Windows TerminalでPowerShellとLinux/Ubuntu bashを統合表示

2020-04-29 22:18:32 | Windowsの備忘録
今日の話題は「Windows TerminalでPowerShellとLinux/Ubuntu bashを統合表示」です。Windows環境にはコマンドshellが幾つかあります。

歴史的:コマンドプロンプト
モダン:PowerShell
新機能:Linux/Ubuntu(複数の種類を同時実行可)

これらは、独立のコマンド入力ウインドウを持ちます。複数の環境を一つのウインドウに統合して「Tab」で管理できるようにしたものが「Windows Terminal」です。
すでにMicorosoft StoreからPreview版が配布されており、インストールは極めて簡単です。

私の場合は、PowerShellとUbuntu/bashの両方を使う機会が多いので、統合環境は便利です。
PowerShellはコマンドプロンプトが持つコマンドを使うことができるので、近年はコマンドプロンプトを使う機会はほとんどなくなっています。
また、昨年よりお客様向けの仕事として、PowerShellスクリプトも書いています。

PowerShell環境でsshを使ってLinuxサーバに接続することは日常です。
PowerShellの端末機能はLinuxの端末機能とは異なりPowerShellでは表示やキー操作がうまくいかないことも散見されています。
本格的にLinux上で仕事をする場合は、PuTTYやTeraTermなど「別のTerminal」をインストールし起動しています。

Linux/Ubuntu bashでは、bash, awk, pythonなど、様々なLinux上の言語でスクリプトを書きます。
また、他のLinuxにつなぐ際も「Terminal」として利用します。

これまでは、この二つの利用環境は全く独立したものでした。
これが以下のように「Windows Terminal」の中でひとまとまりに管理することができます。
これは、便利です。



コメント

次世代Windows Edge/Chromiumエンジン版で最初に調整すること

2019-06-02 20:26:03 | Windowsの備忘録
次世代Windows Edge/Chromiumエンジン版で最初に調整すること

いつもアクセスありがとうございます。匠技術研究所の谷山 亮治です。
今日は「次世代Windows Edge/Chromiumエンジン版で最初に調整すること」を紹介します。


■メニューの日本語化
まだできないようです。英語で表示されますが実用上問題ありません。

■ダウンロードURL
Microsoft社の特設ページからダウンロードします。
Microsoft Edge Insider

■日本語の追加
Edge SettingsページでLanguageを選びJapaneseを追加します。
edge://settings/languages 

■日本語フォントの設定
フォントを詳細設定することで、日本語をきれいに表示することができます。
edge://settings/fonts 

Stndard font:メイリオ
Serif font:メイリオ
Sans-serif font:メイリオ
Fixed-width font:MSゴシック

デフォルトフォントは英語圏のフォントなので、私は日本語にしていますが、将来はOSの言語環境に自動追従するようになるでしょう。

■検索エンジンの選択
検索エンジンを変更することができます。
edge://settings/searchEngines
デフォルトはbingですがGoogleを選ぶこともできます。
コメント

Windows 7起動直後のWindowsUpdateを止める

2016-11-01 05:48:08 | Windowsの備忘録
匠技術研究所
Windows 7起動直後のWindowsUpdateを止める


いつもアクセスありがとうございます。匠技術研究所の谷山亮治です。
NEC LaVieのバッテリーを交換し、モバイルPCとして再活用をはじめました。
とても軽量で扱い易いのですが、いつの頃からか起動すると「全力で走っている」状態が続いていました。
これでは、バッテリーの減りも早く、モバイルに適しません。

一旦、Windows 7の起動直後にWindowsUpdateが自動起動しないようにします。

「services.msc」を起動
「windows update」をダブルクリック
中程「スタートアップの種類」プルダウン->「無効」を選択
(*)デフォルトは自動(遅延開始)
「適用」

事務所など長時間電源に接続して利用できる際に、先の設定を戻してWindowsUpdateを実行します。
コメント