お知らせ

Windows Subsystem for Linux

Bash on Windows!

  • ブログ

Windows10のネットワーク

noimage

Windows10のネットワーク

あけましておめでとうございます。 かわせです。 今年もAIとラズパイを追っていきたいと考えておりますが、令和2年1発目のブログはWindows10ネタで行きたいと思います。 Windows10を使っているとネットが突然つながらなくなるという現象に遭遇した人はそう少なくないようです。マイナビニュースにこんな記事が流れていました。 https://news.mynavi.jp/article/win10tips-458/ こうゆう記事が出るということはやっぱりWindows10のネットワークって何か問題を抱えているようですね。 でもね、ネットワークをリセットするのであればGUIでネットワークアダプタを一旦無効にし再度有効にすることでも治ります。     とくに無線LANは、切れることが多いので時々使うという方はこの設定画面のショートカットを出しておくと便利かもしれません。 また、Windows7のサポートが切れますがWindows7PCは比較的性能の良いものが多いので捨ててしまうのはもったいない!なのでLinuxを入れることをお勧めします。 Linuxでどんなことができるかは以下の動画を見ていただければわかると思います。 https://youtu.be/zES0e2z_lvU https://youtu.be/py88DT5SZjg https://youtu.be/15nUr5HCR94 といった具合でWindowsよりも軽くコンピュータプログラミングの教材としても非常に適しています。 Linuxにご興味がある方は以下のリンクからコミュニティにご参加ください。 https://bashw.connpass.com/ http://waitwg.org/ 本年もよろしくお願いいたします!  

  • らずぱいでIoT

らずぱいでIoT 第14回(ラズパイ4B登場)

noimage

らずぱいでIoT 第14回(ラズパイ4B登場)

かわせです。 久しぶりにらずぱいでIoTを更新します。 いよいよ日本でもRaspberry 4Bが発売されました。 ということでスイッチサイエンスさんで購入してDebian10ベースのOSを入れてみました。 やはり前にも書いた通りlibgpio仕様となっているためgpioコマンドを起動するとエラーが発生します。 Oops - unable to determine board type... model: 17 というメッセージでボードタイプが特定できないというメッセージが出て終了します。 でこれに対応するためにはどうするかというと答えはここにありました。 http://wiringpi.com/wiringpi-updated-to-2-52-for-the-raspberry-pi-4b/ sudo su - で管理ユーザーになり wget https://project-downloads.drogon.net/wiringpi-latest.deb sudo dpkg -i wiringpi-latest.deb で解決いたしました。

  • パソコン関連

WSL2と新しいWindows Terminal

noimage

WSL2と新しいWindows Terminal

Windows10の新バージョンでWSL(Windows Subsystem for Linux)の新バージョンWSL2が搭載されること、新しいWindowsターミナルが搭載されることなどが発表されました。   WSLはあくまでマイクロソフトによるLinuxとの互換性のある実装でしたが、WSL2では本物のLinuxカーネルが導入されます。 これによりWSLで動作するLinuxソフトウェアのパフォーマンスが向上し、また互換性が向上しこれまで対応できなかったLinuxのソフトウェアを動作させることができるようになります。 現在普及しているDokerもWSL2ではLinuxカーネルが導入されたことにより対応することができるということです。 また新しいWindowsターミナルはLinux親和性がとても高いものとなるようです。 LinuxがサーバーOSとしてここまで普及している中で、Windowsは仮想環境、アプリやツールなどを利用しないとLinuxをすんなりと利用できませんでした。 Linuxは仮想環境、それ以外はWindowsとそれらの環境を行き来することより、新しいWindowsターミナルでWSL2もWindowsのファイルも全て同じコマンドでシームレス操作できるということは開発者としてWindowsを選ぶ大きな理由になるでしょう。 開発者はWindows環境もLinux環境も両方使うというシーンが結構あるでしょうから、これらの改良は歓迎されることと思います。

  • らずぱいでIoT

らずぱいでIoT 第12回(C言語で制御するために、その3)

noimage

らずぱいでIoT 第12回(C言語で制御するために、その3)

前回は、メモリのアドレスと意味についてマニュアルから読み取れるというお話をしました。 C言語を使うと、ポインターに仮想メモリのアドレスを与えてあげればメモリにアクセスすることも可能でしょう。 しかし、ラズベリーパイは基本的にRasbian LinuxというOSが乗っているのでメモリーにアクセスるるためにはメモリデバイス/dev/memを介してアクセスるようにします。 ただ、/dev/mem はrootユーザにしか書込み権が与えられておらず、このデバイスに書込みアクセスるためにroot権限が必要になります。 なので、実際には/dev/gpiomem というデバイスにアクセスします。 (/dev/gpiomem にはrootグループユーザまでに書込み権が与えられています。) このデバイスファイルにCでアクセスるためにはfopenサブルーチンではなくopen システムコールを使います。 open通常のファイルアクセスではなくデバイスファイルにアクセスる場合に使い、ドライバの機能にアクセスるためのファイルディスクリプタを得ることが出来ます。 実際にメモリにアクセスするためにはmmap()関数でGPIOメモリをマッピングし、終了時にはmunmap()関数でアンマップします。 また、Rasbian Linuxでは一般ファイルとしてGPIOにアクセスることも可能で、 /sys/class/gpio 以下の export ファイルにコントロールするGPIOのピン番号を指定するとコントロール用の /sys/class/gpio/gpioxx というディレクトリが出来上がりその下にdevice,value,edge,active_low等の制御用ファイルが出来上がりこれらのファイルにアクセスすることでGPIOピンをコントロールすることが出来ます。 参考 https://www.kernel.org/doc/Documentation/gpio/sysfs.txt   この制御ファイルはC言語からだけではなく、ファイルにアクセスできればどんな言語からもアクセス可能です。

  • らずぱいでIoT

らずぱいでIoT 第11回(C言語で制御するために、その2)

noimage

らずぱいでIoT 第11回(C言語で制御するために、その2)

こんばんわ、かわせです。 ラズパイでIoT前回は現在乗っている、BROADCOMのチップによって制御する方法が変わってくるのでチップセットを知る方法について書いてみました。 RaspberryPi ZeroではBCM2835というチップでこの説明書を読んでみるとラズパイのメモリ配置やペリフェラルデバイスIOマップや各種レジスタの意味が書かれており これを読むことでUARTシリアル通信にかかわるレジスタやGPIOの操作にかかわるレジスタ群の説明が書かれています。 このような説明書をもとにして、C言語で直接ハードウエアを制御することも可能になります。 また、ラズパイでは標準でRasbianというDebian LinuxをベースにしたOSが配布されておりこのOSを使うことが一般的です。 OSでは各種ペリフェラルデバイスをコントロールするためのドライバが用意されておりこれをC言語から制御することで操作する方法もあります。 各種デバイスドライバをRasbian Linuxに組み込むためには raspi-config というコマンドを使います。 raspy-configではそのほかにsshの起動や起動時にGUIを使うかCUIを使うかの設定やlocal設定なども可能で、ラズパイは最も小さいLinuxPCとも言えます。 そこで手前みそではありますが、UNIX Like OSの勉強会を今後開いていこうと考えており下記のアドレスでメンバーを募集しております。 https://bashw.connpass.com/   ご興味のある方はこのURLからメンバー登録お待ちしております。  

  • パソコン関連

Windows Subsystem for Linux

noimage

Windows Subsystem for Linux

毎度!かわせです。 Windows10の10月のアップデートでLinuxがサポートされているようですね! ネタ元 https://headlines.yahoo.co.jp/hl?a=20181107-35128229-zdnet-sci この記事によるとMicrosoftストアでLinuxが配布されているという。 実際にMicrosoftストアでLinuxを検索してみると   DebianやUbuntu、Suse等のLinuxが配布されているようです。 まえまえから、自前のPCにはCygwinを入れているのでシェルはもとよりSSHも使える環境にあるので特に不自由は感じていないのですがCygwinより軽いなら考えてみてもいいのかもしれません。 現在CygwinでXServerも動作しているためX端末としても使えています。   https://youtu.be/rbNM3fqgGGI   X端末化しておくと実機上のXクライアント画面をX端末上(Windows)で表示できるのでとても便利です!!

  • パソコン関連

AWS勉強会

noimage

AWS勉強会

今週に社内で小さなAWS勉強会を行いました。 勉強会の内容としてEC2インスタンスをひとつ作り、WEBサーバーをインストールするという内容でした。 EC2という名前は知っていても実際に使ったことがない、というハードルは簡単に乗り越えることができますよ、というのが開催の主旨です。 AWSのコンソールからほんの数回クリックするだけでAmazon Linuxサーバーのインスタンスが作成され、SSHログインするための用意がほぼ自動的に終わってしまうので本当にそこまでであれば20分も必要でないくらいでした。 そこからSSHログインのためのRSA暗号鍵についての説明や、WindowsのSSHクライアントPuttyでのインストールにはゆっくりと時間をかけて説明できたかなと思います。 RSA暗号鍵について、仕組みさえ分かってしまえば現在最も安全な認証方式と納得してもらるはずなので、その辺りについてはできるだけ話をしておきたいという気持ちはありました。 安全性よりも手軽さを優先させてパスワード、パスフレーズでのログインへは逆行したくないと、今後のサーバ管理を行うメンバーの間では徹底できたら良いなと思っています。 残りの時間はyumによるパッケージのインストールと、その手軽さについて理解してもらうために時間を使いました。 Linuxソフトウエアの導入についてはWindows利用者にしてみると、どのような手続きなのかわからない、あるいはややこしそうという印象を持たれているかもしれないので、全くそのようなことがないというのを理解してもらえていたら嬉しいところです。 基本的にyumコマンドでパッケージを検索したり、依存関係などを解決しながらインストールできることを体験してもらいました。 その他にもAWSのクラウドがどのような機能を備えているか、どのような拡張性があるかを大まかにお話をして、実際に事例などを学んで自分のものとして獲得していってもらえればと思っています。

  • パソコン関連

仮想マシンでLinuxの学習

noimage

仮想マシンでLinuxの学習

Windowsしか普段使わないという開発者も、いちど一通りのLinuxシステム構築を自己学習することをお勧めします。 特にWebサーバーが動作するLAMP環境がどのようなものかを把握するには、LAMP環境を自らの手で構築するのがもっとも手っ取り早い理解につながります。 Windows PCでLinuxを使う方法として、Windowsシステム上で動作する仮想マシンがおすすめです。 安価なVPSをレンタルするというのも良い勉強になりますがそれなりに費用がかかってしまいます。ただNATのことなどを考えずにサイトを公開できるなど可能なため仮想マシンよりも優れていると言えます。 VMware Workstation Playerは個人であれば無償で仮想マシン環境を構築できるので、個人学習であればこちらを利用するのが早道になると思います。 LinuxはOS自体無償ダウンロード・利用ができるものが多いです。標準的なところではCentOSやUbuntuを使うのがよいでしょう。 OSのisoイメージを取得すれば、仮想マシン作成後にインストールが始まります。 Webサーバーへの理解を深めるのであれば、GUIをインストールせずCUIで操作し、環境構築することをおすすめします。 コマンドを入力してコンピュータを操作するという感覚に慣れるまでは時間がかかるかもしれませんが、いちどコマンド一通りを覚えれば簡単に思うことができるようになります。 Linuxはソフトウェアの導入が難しいというイメージがある方もいるかもしれません。ソースコードをダウンロードし、コンパイルするなど複雑な手数がかかるということは必ずしも必要ではありません。 現状ではバイナリパッケージをダウンロードし、ライブラリなどの依存関係を自動で解決する仕組みが整っており、インストーラーを起動して手順通りに行うなどのWindowsよりもソフトウェア導入は簡単という印象さえあります。 Apacheを起動し、PHPと連携し、MySQLをインストール、その後にWordpressをインストールし無事サイトを作り上げることができれば、達成感が得られるはずです。 パッケージインストールできるものだけでも随分と幅があり、グラフィックスの加工、動画のエンコード、音楽サーバーの構築など、業務で利用しないようなものでも色々できることがあり、普段Windowsしか知らないという方にもLinuxの世界を味わって見てほしいと思うところです。

  • パソコン関連

Windowsのリプレースの難しさと今後の動向

noimage

Windowsのリプレースの難しさと今後の動向

Windowsがライセンス体系などの難しさや高額さからLinuxなどのシステムに移行しようという試みが一時期ブームとまではいきませんでしたが、自治体などで実行されたことがありました。 その体制を維持できるところもあれば、維持せずWindowsに回帰したというところも多くあります。 何が難しかったのでしょうか。 Linuxであれば、オープンソースでライセンス契約に伴う費用などがゼロまでに削減することも可能で、整備が進んだ無償のオープンソースOfficeスイートでMS Officeを置き換えることができるという考え方です。 オープンソースでフリーソフトとして公開されているものは、費用は無償ですがサポートについては自助努力あるいは導入企業からのサポートを受けることになります。 操作性や利用できるアプリやハードウェアの制限から、Windowsからの移行と定着には大きなコストが発生しがちです。 導入企業にサポートを依頼する場合は件数が増え、大きなコストになります。 最大のボトルネックが、官公どちらでも通用しているファイルのほとんどがMS Officeを前提にされているところでしょう。 Excel帳票や書式が入り組んだWordドキュメントなどがMS Office以外では正常にひらけないことは非常にネックです。 これについて帳票スタイルをシンプルにすることや、ペーパーレス化も同時にできなければ、Windowsのリプレースの最大の障害になります。 Windowsリプレースが取りざたされた時期は、ペーパーレス化のためのツールやオフィススイートの代替品が少なかったことも少なからず普及に至らなかった原因と考えます。 現在はクラウド基盤を利用したG SuiteやKintone、Salesforceなどのブラウザで動作するアプリが充実して来ています。 Chromebookなど安価なノートパソコンでクラウド基盤を利用したWindowsリプレースも今後は選択肢として浮上してくることになると考えています。

  • パソコン関連

Bash on Windows!

noimage

Bash on Windows!

Microsoftが開催する開発者むけのイベントで、Linuxなどで標準的に利用されているシェル、BashがWindowsで動作することができるようになるアップデートが公開されることを明らかにしました。 オープンソースのLinux開発を行っているUbuntuと協力し、WindowsのコマンドラインからBashを立ち上げ、Ubuntu Linuxと同じコマンドで同じ操作ができるようになります。 aptなどを利用してオープンソースのバイナリパッケージを取得したり、Bashでemacsやvimなどのメジャーなものを含むUbuntu Linuxで動作する様々なツールを利用することができます。 現在でもgccをapt-getで取得し、ソースコードをコンパイルしてBashから呼び出すことが可能になっているようです。 これは仮想マシンとは違い、Linux側からのOS機能の呼び出しをWindowsのOS機能呼び出しに変換しているということで、WindowsのサブシステムとしてLinuxが動いているということになります。 以前OpenSSHがWindows PowerShellでもサポートされる旨の発表があったのですが、一歩前へ進んだWindowsとLinuxの融合と言えるでしょう。 https://www.sys-cube.co.jp/5154 Bash on Windowsの持つ意味 これはサーバーやクラウドの設定に最高のパフォーマンスを発揮します。 Linuxと同じ操作環境やツールを使ってWindowsをリモート操作できるからです。 Windowsからクラウド上のLinuxにSSHを使って安全にログインし、そのLinuxから同じクラウド上にあるWindowsサーバーにシームレスにログインしてリモート操作することができる。 Linuxサーバと同じ設定をWindowsにも境目なく設定することができることは大変な効率化になります。 LinuxはWindowsと比べても非常に先進的かつ堅牢な部分があり、Windowsはそれに互換性を持たない方針でした。 無償のOSである以上にその部分がネックになって、多くのWebサーバーではLinuxが大きなシェアを持っています。 その垣根がここまで大胆に取り払われることになるとは多くの方にとって想定外な出来事でしょう。 最近のMicrosoftはMS SQL ServerのLinux対応、 https://www.sys-cube.co.jp/8556 Visual Studioのマルチプラットフォーム対応、.NETコアのマルチプラットフォーム対応など、非常にアグレッシブな動きを続けています。 従来の保守的なWindowsのためのWindowsの企業という枠組みを捨ててしまえば、様々なプラットフォームで良質なサービスとサポートを行える強力な企業としての存在感が様々な分野で出てきます。 ほとんどのWindowsユーザーにとっては小さな機能追加と思いますが、Windowsの方向性としては大きな変化だと感じています。 Eat own dog foodの精神 Microsoftの社内で、かつてEat own dog foodという言葉が社訓のように用いられていると聞いていました。 自分のドッグフードを食べろ、といういう直訳になるのですが、自分で作ったドッグフードでも自分で一度食べてから商品にしなさいという大まかな意味です。 このところのMicrosoftはユーザーの意向をあまり汲まない方向での製品づくりが主力のWindowsでも目立っていました。 憶測ですがMicrosoft社内でも、Linuxサーバ利用やWebプログラミングをするときはLinuxやMacで、簡単なWebサーバであればLinuxのサーバを利用して、などと自社製品Windowsを使わずに行うことがエンジニアの間で増えていたのかもしれません。 Windowsの開発元としてWindowsに無くて不便な部分を改善しようという思考を持つことは、再びEat own dog foodの精神を取り戻しているのではないかと考えるところです。

1 2