« 2020年4月 | トップページ | 2023年9月 »

OS(Linux)のインストール ~ ネットワーク通信機能

Zynqberry ボードに、ネットワーク通信機能を追加した。
左側の青いコネクターが有線LANケーブル、右側の白い部品が WiFi 通信アダプターだ。

Img_20230829_131221

設定にあたっては、ボードとパソコンを USB ケーブル(写真奥のぼやけた黒い線)でつなぎ、パソコンのデータ通信画面上で、何だかんだとコマンド操作を行う必要がある。

一旦、ネットワーク通信が可能になると、インターネットから好きなアプリをダウンロードしたりできる。 試しに WEB ブラウザアプリをダウンロードして、パソコンのデータ通信画面上に WEBサイトを表示してみた。 専用のディスプレイがないので、文字表示だけのブラウザだが、何かコンピュータを手作りしている実感があって少し楽しい。

下図は google の検索ページを表示したもの。

Linux_20230829143201

OS(Linux)のインストール ~ ユーザースペース

OS はカーネルプログラムにより管理されるが、個々のハードウェアに関する機能は、カーネルが多種多様なプログラムやデータを呼び出すことにより実現される。 カーネル以外の、プログラムやデータ(ファイル)の「置き場所」を「ユーザースペース」と呼ぶ。

各種の財団や企業が 「Linux カーネル」 と 「ユーザースペース上の標準的なファイル」 をひとまとめにしたもの(ディストリビューション)を提供しており、無償で利用するすることができる。 高機能な OS の機能が無償で手に入るというのは驚くべきことだが、そこはやはり 「タダほど高いものは~」 という格言通り、使いこなすのは、それなりに面倒くさい。

今回、Ubuntu というディストリビューションの、ユーザースペース部分を流用して Zynqberry ボードで動かせるようにした。 インストール作業にあたり、前回同様、ボードの販売元作成の参考書 「ZYNQで実用的なシステムを構築するための本」 を参考にした。

パソコンで専用のソフトを使って、カーネル書き込み済みの SD カードに、Ubuntu のユーザスペースを追記する。 その SD カードをボード上のソケットに差すことで、カーネル機能が動き、個々のハードウェアが動作可能状態になる。

ボードとパソコンを USB ケーブルでつなぎ、パソコンのデータ通信画面上で、ユーザが各種のコマンドを入力することで、各ハードウェアを操作することが可能となる。通信画面は、こんな感じ。

Linux

OS(Linux)のインストール ~ カーネル (2)

FPGA+CPU ボード Zynqberry に Linux カーネルをインストールにあたり、ボードの販売元作成の参考書 「ZYNQで実用的なシステムを構築するための本」 を参考にした。

パソコンで専用のソフトを使って、カーネル(プログラム)を作成し、できたプログラムを SD カードに書きこむ。 その SD カードをボード上のソケットに差すことで、カーネル機能が動くようになる。 実際にカーネルが動くかどうかを確かめるには、ボードとパソコンを USB ケーブルでつなぎ、ボードからパソコンに送られてくる動作情報を、パソコンのデータ通信画面に表示する必要がある。

こんな感じ。

Kernel_20230824230001

最初の、Startting kernel ... という表示が、カーネルが動きだしたことの証拠だ。当然だが、これだけでは面白くもなんともない。もう少し意味のあることを実現するには、この後、さらに何だかんだ、データやらプログラムやらを SD カードに追加する必要がある。 ああ面倒くさい。

OS(Linux)のインストール ~ カーネル

Te072603m_0今回、OS をインストールしようとしているのは、Zynqberry という製品名の CPUボード(右図)である。 正確には FPGA と CPU を合体したパーツ ( Zynq ) を搭載したボードなのだが、FPGA 関連機能はもっと後で作りこむ予定なので、まずは CPU 機能を使えるようにしたい。 

CPU ボードに Linux などの OS をインストールする場合、機器のハードウェア仕様に合わせて OS の設定をカスタマイズする必要がある。 対象となるハードウェアは、CPU、内部メモリ、入出力デバイス(文字入出力、画像入出力、音声入出力、通信機能、記憶装置など)であり、各ハードウェアに関するデータや制御プログラムは、全て「カプセル化された機能」として管理されることになる。

カプセル化された機能として、最も基本的なものは「カーネル」と呼ばれるプログラムである。 カーネルは、OS の元締めとなるプログラムであって、これが常時動き続けることで OS が動作し、システムの制御を実現できるようになる。 当面は、Linux カーネルを、このボード用に インストールすることが目標である。

OS におけるカプセル化

最近、とある CPU ボードに OS(Linux)をインストールする作業を行っている。 特殊なボードなので、OS の設定をカスタマイズしないといけないのだが、それが面倒くさくて中々先に進まない。 無理して急ぐ仕事でもないので、少し寄り道するつもりで、昨日までの記事で扱った 「カプセル化」の概念と 「OS」 というシステムの関連性について整理しておこうと思う。

例によって助手に頼ることにする。課題(プロンプト)は以下の通り。

「情報処理における "カプセル化" という概念と、"OS" というシステムの間に、どのような関連性があるか考察してください」
------------------------------------
(以下、ChatGPT 生成文)

1. データの隠蔽
:Medicine_capsule_red
カプセル化の中心的な概念は、データをクラスの内部に隠蔽し、外部から直接アクセスすることを制限することです。このようなデータの隠蔽の原則は、OSにおけるリソース管理やセキュリティの概念とも関連しています。例えば、プロセスがメモリ上の任意の場所にアクセスできないように制限をかけることで、他のプロセスのメモリ領域を保護する仕組みなどがあります。

2. インターフェースの提供:
カプセル化は、外部からデータや実装詳細を隠蔽する一方で、そのオブジェクトやクラスとのやり取りのための明確なインターフェースを提供します。同様に、OSも内部のリソースや実装詳細を隠蔽しつつ、アプリケーションに対して一貫したAPIやシステムコールのインターフェースを提供します。これによって、アプリケーションはOSの具体的な実装やハードウェアの詳細を知らなくても、必要なリソースにアクセスしたり、操作を行うことができます。

3. モジュラリティ:
カプセル化によって、システムの各部分が独立して設計・実装されることで、モジュラリティが向上します。このモジュラリティの考え方は、OSの設計にも影響を与えています。例えば、カーネル、デバイスドライバ、ファイルシステムなど、OSの各コンポーネントは独立して機能し、明確に定義されたインターフェースを介して互いにコミュニケーションをとります。

4. 保護機構:
カプセル化の原則は、不正なアクセスや意図しない操作からオブジェクトを保護することにも関連しています。OSにおいても、プロセス、ファイル、デバイスなどのリソースを保護するための様々なメカニズムが実装されています。これらのメカニズムは、カプセル化の考え方と同様に、リソースの安全性を確保するためのものです。

これらの考察から、カプセル化の概念とOSの設計や機能の間には、多くの共通点や関連性が存在することがわかります。
--------------------------------------
(以下、投稿者による補足)

次のような用語については、それぞれの意味を明確にする必要があるが、ひとまず保留にする。

⇒ クラス、リソース管理、セキュリティ、プロセス、オブジェクト、API、システムコール、モジュラリティ、カーネル、デバイスドライバ、ファイルシステム

ソフトウェア設計におけるカプセル化

前の記事では、「カプセル化」という概念についての記事を、助手(ChatGPT)に丸投げしてしまったので、知ってる人には意味が分かるが、知らない人には何のことかよく分からない文章になってしまった気がする。 しかしながら、そこは今時の AI。 「ソフトウェア設計におけるカプセル化の意義について、プログラミング初心者でも理解できるように解説してください」という指示をすると、もうちょい嚙み砕いて解説してくれる。 いっそのこと、これからは AI が勝手にブログの記事を書いてくれてもいいんじゃないだろうか・・・。
--------------------------------------------
(以下、ChatGPT 生成文)

ソフトウェア設計における「カプセル化」は、プログラムのCoffeemachine2285202_1280中のデータや処理を「カプセル」のように包み隠すことを指します。これにはいくつかの大きな意義がありますが、初心者の方にもわかりやすく説明するために、日常生活からの例を使ってみましょう。

想像してみてください。あなたがコーヒーマシンを使ってコーヒーを入れるとき、豆を挽く機械や水の温度、抽出時間などの詳細なプロセスを毎回考える必要はありません。コーヒーマシンのボタンを押すだけで、美味しいコーヒーができあがります。このコーヒーマシンは、内部の複雑なプロセスを「カプセル化」して、ユーザーにはシンプルな操作だけを提供しています。

このコーヒーマシンの例のように、カプセル化の意義は以下の点にあります:

1. シンプルさ :
プログラムの複雑な部分を隠すことで、他の部分からはシンプルに使えるようになります。これにより、エラーの原因を特定しやすくなったり、プログラムの全体の流れを理解しやすくなります。

2. 再利用性 :
一度カプセル化された部分は、他の場所でも再利用しやすくなります。例えば、コーヒーマシンの抽出機能を他のマシンでも使いたい場合、その部分だけを取り出して再利用することができます。

3. 保守性 :
プログラムの一部を変更するとき、カプセル化されていれば、その「カプセル」の中だけを変更すればよく、他の部分に影響を与えにくくなります。

4. セキュリティ :
カプセル化により、不要なデータや処理へのアクセスを制限することができます。これにより、誤ってデータを変更するリスクや、外部からの不正アクセスのリスクを減少させることができます。

要するに、カプセル化はプログラムを整理し、効率的に、安全に動作させるための非常に重要な概念です。

イチジクの実と「カプセル化」概念

今回、助手(ChatGPT)に、「Syconium(イチジク型花序)と、ソフトウェア設計における "カプセル化" の概念を比較して、考察してください」 という指示を与えた所、一考に値する示唆を得たので、紹介したい。
-----------------------------------------------
(以下、ChatGPT 生成文)

「Syconium」 と 「ソフトウェア設計におけるカプセル化」 は、異なる分野の用語であり、直接の関連性はありませんが、比較的な考察を行うことで、興味深い洞察を得ることができるかもしれません。

1. Syconium:

・Syconiumは、イチジクの花と果実の構造を指します。イチジクの内部には多数の小花が含まれており、これらの小花は外部から見ることができない密閉された環境内で育ちます。

・この構造は、特定のイチジクバチがイチジクの内部に侵入し、受粉を助けることを可能にします。この相互作用は、イチジクとイチジクバチの間の共進化の結果として発展しました。

2. ソフトウェア設計におけるカプセル化:

・カプセル化は、オブジェクト指向プログラミングの基本的な原則の一つであり、データとそのデータを操作するメソッドを一つの「カプセル」または「オブジェクト」にまとめることを指します。

・この原則により、データは外部から直接アクセスされることなく、適切なインターフェース(メソッド)を通じてのみ操作されます。これにより、データの整合性が保たれ、外部からの不適切なアクセスや変更が防止されます。

比較的な考察:

隠蔽:
Syconiumは、内部の小花を外部から隠蔽する役割を果たしています。同様に、カプセル化は、データを外部から隠蔽し、直接のアクセスを制限します。

相互作用:
イチジクとイチジクバチの間の相互作用は、特定のインターフェース(入口)を通じてのみ可能です。同様に、カプセル化されたオブジェクトは、定義されたインターフェース(メソッド)を通じてのみアクセスされます。

進化:
イチジクとイチジクバチの関係は、時間の経過とともに共進化してきました。ソフトウェアのカプセル化も、ソフトウェア設計の進化の中で、データの整合性を保つための最良の方法として発展してきました。

このように、異なる分野の概念を比較することで、それぞれの概念の背後にある基本的な原則や考え方をより深く理解する手助けとなることがあります。

Symbiosisbetweenthefigandthefigwaspgenus
https://www.researchgate.net/publication/267514409_Evolution_Coevolution_and_Biodiversity

イチジクの実

イチジクの実は変だ。 実の中にあるつぶつぶが、一個づつの花である。 というか実と思っているのは、植物学的には実ではなくて、特殊な形態の花の集まり(イチジク型花序/Syconium)ということらしい。 何でそんなことになっているのかは、専門の文献をあたる必要がありそうだが、とにかく何らかのメリットがあって、このような形に進化したのだろう。

参考:Metatranscriptome Analysis of Fig Flowers Provides Insights into Potential Mechanisms for Mutualism Stability and Gall Induction
Schematicdiagramofacrosssectionofarecept
 lumen : 内部空間

 fig wall : イチジクの表皮

 seed flower : 種になる雌花

 gall flower : イチジクコバチが産卵し幼虫の餌となるための花
        (虫癭花 )





本来、イチジクは雄の木と雌の木があって、イチジクコバチという蜂が花粉を運んで受粉することになっている。 ところが、ここも良く分からないが、受粉しなくても実(花を包む袋)が熟すことはできるものだから、日本にはイチジクコバチがいないにも関わらず、日本でもイチジクを育てることができるのだそうだ。

バナーネ(白いちじく)

この夏は、庭のいちじくが大量に穫れて、人にあげたり乾燥保存したり、結構な手間がかかってしまった。 ようやく一通り穫り尽くし、一個だけ取り残していた実。 バナーネ種は、見た目緑色でも、完熟してねっとりと甘い。

Img_20230821_145320Img_20230821_150116

とり天とおにぎり 2023-08-19

九四国道フェリー売店の、カップとり天とおにぎり。

Img_20230819_123322

とり天を食べて大分を実感したら、じきに佐賀関港に到着。
バスと JR を乗り継いで大分駅へ。

さらに、豊肥線のディーゼル車の、ぐゎーんというエンジン音が響く中
居眠りしながら熊本へ。

佐田岬半島 2023-08-19

八幡浜から佐多岬半島先端部の三崎までバスで移動。

Img_20230819_115334_object-removal

伊予立川 2023-08-19

伊予市から八幡浜へ。伊予立川駅で行き違いのため 10分間停車。

Img_20230819_094600

いちじく 2023-08-19

伊予市駅前の農産物直売所で売ってたイチジク。さっぱりした素直な甘さ。

Img_20230819_0916161

道後温泉 2023-08-18

8/17 は関から奈良、和歌山、さらにフェリーで徳島に渡りゲストハウスに1泊。

今日 8/18 は、徳島から、ひたすら JR を乗り継いで松山へ。道後温泉本館は改修工事中で、新たに別館ができている。

Img_20230818_194944  

関宿 2023-08-16

上田、長野、名古屋と移動し、さらに三重県の関宿へ。

古民家ゲストハウス石垣屋さんに宿泊。

Img_0921Img_20230816_193437

フェルマータ 2023-08-15

上田からだと、八ヶ岳の反対側にあたる甲斐大泉の高原にあるペンション、フェルマータ。
色んな思い出のある場所なのだが、今回、近くまで来たこともあり、レンタカーを借りて
立ち寄った。懐かしい。

Img_20230815_125109

戸倉上山田温泉 2023-08-14

上田から、しなの鉄道で4つめの戸倉駅を降り、千曲川を対岸に渡ると、
戸倉上山田の温泉街がある。 まるで昭和の残照のような夜景が妖しい。
浴衣姿の客が遊ぶ射的場、50年前だったら各地の温泉街で良く見られた
光景かも...時が止まっている。

Img_20230814_204044 Img_20230814_204149

鹿教湯富士 2023-08-13

富士山という名前の山は、日本中にあるらしい。

松本から上田に抜ける街道沿いの温泉街、鹿教湯の近くに鹿教湯富士という山があって、
街道の途中から望むことができる。標高 1029m。

鹿教湯温泉バス停の近くには、白扇という、小じんまりとしたカレー屋があって美味しい。
年配の親父さんが一人でやっている店なのだが、実は深いいきさつがあったことを知り、
はからずも感動した。

鹿教湯温泉にあった伝説のカレー屋が店主の想いを継いで再始動!
@上田市「カレーの店 白扇(ハクセン)」

Img_20230813_145932 Img_20230813_145301

諏訪湖 2023-08-12

塩尻市の高ボッチ山からの諏訪湖全景。空気が澄んでいると、諏訪湖の向こうに富士山が見えるらしいが、残念ながら今日はかすんで見えない。Img_20230812_170712

影富士 2023-08-11

富士山五合目(奥庭)からの、朝の影富士。

Img_0896

台風(カーヌン)一過 2023-08-10

富士山五合目の奥庭から夕方の富士山。昼間は台風の影響もあってか、全体が雲に覆われて何も見えなかったが、夕方になって空が晴れ渡った。この角度で見上げる富士山もなかなかに雄大で良い。

Img_20230810_181936

カーヌン(2) 2023-08-09

カーヌン台風接近の中、無事、東京まで来れた。

夜まで用事がないので、東新宿駅近くのアジアスーパーストアーで、冷凍カーヌン(ジャックフルーツ)を購入し、宿で試食。

う~ん何か生臭い。味は、パイナップルとかマンゴーみたいなトロピカルな甘さ。食べれないことはないけど・・・。

Img_0871

カーヌン 2023-08-08

果実のカーヌン(ขนุน) はタイ語で、日本語だとパラミツ(菠蘿蜜)、英語だと Jack fruit。正直、食べたことがない。写真で見る限りだと、やたらとでかいな。
https://medium.com/@Rdy2Trvl/jackfruit-health-benefits-and-so-much-more-6dc8511afec8

2023年の台風6号がこの名前。台風のアジア名は wikipedia が詳しくて、全部で 140個の名前を使い回すらしいが、あまりに統一感がなくて、細かく見ていくと中々に興味深い。

気象庁の予報図だと、今日 8/8 の 21:00 に鹿児島が暴風域に入るらしい。 で、熊本 20:00 発の Jet Star 便で東京に行く予定なのだが、まだ欠航にはなっていない。いったい飛ぶのだろうか。

0_zrqcehij1ip_qowx



Img_20230731_164355

 

« 2020年4月 | トップページ | 2023年9月 »

カテゴリー

  • FLASH プログラミング
  • ジグソーパズルBBS
  • パズル
  • 手工
  • 数学的な話
  • 日記・コラム・つぶやき
  • 花・植物
  • 音楽
  • 風景
  • 1日1枚
無料ブログはココログ