ArozOSとは?主な内容は以下になります。実際に試したのですが、ブラウザで操作できることが一番便利でした。ほかにも多数応用がきくと思います。
インストール前に特徴を述べておきます。ArozOSは、オープンソースのWebベースのデスクトップ環境とファイル管理システムです。主にLinuxやBSDシステムで動作し、簡単に設置して使えるのが特徴です。以下にその主な特徴をまとめます。こちらは初心者にはもってこいの機能がそろっています。
ArozOSの特徴
- マルチプラットフォーム対応:
- 多様なオペレーティングシステム(OS)上で動作します。特にLinuxやBSD系統のOSでの利用が一般的です。
- Webベースのデスクトップ環境:
- ブラウザを介してアクセスできるグラフィカルなデスクトップインターフェースを提供します。これにより、どこからでもインターネット経由でシステムにアクセスできます。
- ファイル管理:
- 高度なファイル管理機能を備えており、ファイルのアップロード、ダウンロード、編集などがWebインターフェースから直接行えます。
- モジュール性と拡張性:
- 様々なモジュールやアプリケーションを組み込むことができ、カスタマイズ性が高いです。ユーザーは独自の機能を追加することも可能です。
- IoTデバイスとの連携:
- IoT(Internet of Things)デバイスとの連携機能もあり、遠隔からデバイスを管理・制御することができます。
- 低リソース要件:
- 比較的低いシステムリソースで動作するため、古いハードウェアやリソースが限られた環境でも利用できます。
まとめ
ArozOSは、遠隔地からでもアクセス可能なWebベースのデスクトップ環境を提供し、ファイル管理、システム管理、IoTデバイスの統合など、多岐にわたる機能を備えています。その柔軟性とカスタマイズ性は、特に技術者やDIY愛好家にとって魅力的な特徴です。
ArozOSは多機能性と柔軟性を持っているため、さまざまな視点から説明することができます。このように、ArozOSについての説明は、ターゲットとなる聴衆や文脈によって異なる側面が強調されることがあります。技術者向けの説明では開発に関する詳細が、一般ユーザー向けには利用のしやすさや基本機能が中心となるため、説明に相違が生じるのです。以下は技術者向けの説明です。
ArozOS Webアプリ開発
- AGI(ArozOS Gateway Interface):ArozOSのWebアプリのバックエンド開発を容易にするためのインターフェース。OttoというJavaScriptの仮想マシンに基づいており、モダンなJavaScript構文と互換性があります。
Webアプリの作成
- 新しいWebアプリを作成するには、ArozOSルート下の
./web/
フォルダ内に新しいフォルダを作成し、必要なファイル(例:init.agi
,index.html
)を配置します。 - 起動スクリプト(init.agi):ArozOSにこのフォルダがWebアプリであることを認識させるための設定と環境チェックを含むスクリプトです。
フロントエンド開発
- ArozOSのフロントエンド開発は、通常のWebアプリ開発と変わりません。
- 異なるモードでアクセス可能(Webデスクトップモード、モバイルデスクトップモード、スタンドアロンモード、PWAモード)。
バックエンド開発
- AGIスクリプトの実行:フロントエンドのJavaScriptコードからAGIスクリプトを実行するために
ao_module.js
ラッパーのagi_run
関数を使用します。
AGI関連ライブラリ
- システム:AGIランタイムで使用できる関数群。
- ユーザー:ユーザースコープで使用できる関数群。
- サーバレス:外部AGI呼び出しによる動的プログラミングが可能。
- ファイルライブ:ファイルシステムとのインタラクションに使用。
- アプリデータ:Webフォルダ内のファイルへの読み取り専用アクセスを提供。
- イメージライブ:基本的な画像処理機能を提供。
- HTTP:GET、POST、HEAD、ダウンロードリクエストの実行に使用。
- Websocket:通常のHTTPリクエストからWebSocket接続へのアップグレードに使用。
- IoT:IoTデバイス制御エンドポイントへの簡単なアクセスを提供。
- シェア:ArozOS共有インターフェイスへのアクセスと、共有ファイルに基づくUUIDの生成に使用。
応用例
- テレグラムボット(サーバレス):サーバレス機能を使用して、外部HTTPリクエストを処理する。
- ユーザースペース実行(サーバレス):ユーザースペースでの動的スクリプトインポートと実行に使用。
ArozOS上でWebアプリを開発する際の概要や、AGIを利用した様々な機能、およびフロントエンドおよびバックエンドの開発方法について説明されています。この便利なOSをCUIベースのubuntuにインストールします。
以下のページを参考に進めます。
説明によると、GO言語のバージョン1.20以上が必要であり、さらにffmpeg(おそらくWindowsの場合)も必要としています。オプションとして、wpa_supplicantまたはnmcliも必要とする場合があります。
自宅のCUIベースのubuntu22.04にインストールします。液晶が見えにくいのでSSH接続して作業をします。
まずは、Go言語のインストールをします。Linux用のダウンロードリンクを公式ページで取得しておきます。
https://go.dev/dl/
Go言語(通称:GoまたはGolang)は、Googleによって開発されたプログラミング言語です。以下に、Go言語の主な特徴とその便利さについて簡単に説明します。
Go言語の特徴
- コンパイル言語:
- Goはコンパイル言語であり、ソースコードは実行前にバイナリコードに変換されます。これにより、実行速度が速くなります。
- 静的型付け:
- 静的型付けを採用しており、変数の型はコンパイル時に決定されます。これにより、実行時のエラーを減らすことができます。
- シンプルで読みやすい構文:
- Goの構文はシンプルであり、読みやすく、理解しやすいです。これにより、コードの保守が容易になります。
- 並行処理のサポート:
- 「ゴルーチン(goroutines)」という軽量なスレッドの概念を使って、効率的な並行処理をサポートします。
- 豊富な標準ライブラリ:
- ネットワーキング、暗号化、データ処理など、多くの標準ライブラリが提供されており、多様なアプリケーション開発に利用できます。
- クロスプラットフォーム対応:
- Windows、Linux、macOSなど、多くのオペレーティングシステムで動作します。
便利さ
- 高速な開発と実行:シンプルな構文と高速なコンパイル、実行速度により、迅速な開発が可能です。
- 並行処理の容易さ:ゴルーチンを使用した並行処理の実装が比較的容易で、マルチコアプロセッサの効率的な活用が可能です。
- 安定した動作:静的型付けと強力な標準ライブラリにより、安定したアプリケーションを構築できます。
- マイクロサービスとの相性:軽量で高速な特性から、マイクロサービスアーキテクチャと相性が良いです。
まとめ
Go言語は、そのシンプルさ、高速な実行、並行処理の容易さなどにより、現代のソフトウェア開発において非常に便利な言語とされています。特に、Webサービスやクラウドベースのアプリケーション、マイクロサービスなどの分野で広く使われています。
こちらのコマンドはLinux環境でのGo言語のインストール手順です。それぞれのコマンドの意味は以下の通りです。
wget https://go.dev/dl/go1.21.6.linux-amd64.tar.gz
- このコマンドは、インターネットからGo言語のバイナリファイルをダウンロードします。ここでのURLは、Go言語のバージョン1.15.3をARMv6アーキテクチャのLinux用にダウンロードするためのものです。
wget
はウェブからファイルをダウンロードするためのコマンドです。
- このコマンドは、インターネットからGo言語のバイナリファイルをダウンロードします。ここでのURLは、Go言語のバージョン1.15.3をARMv6アーキテクチャのLinux用にダウンロードするためのものです。
sudo tar -C /usr/local -xzf go1.21.6.linux-amd64.tar.gz
- このコマンドは、ダウンロードしたGo言語のアーカイブ(tar.gzファイル)を解凍してインストールします。
sudo
は管理者権限でコマンドを実行するためのコマンドです(必要な場合)。tar
はアーカイブの作成と解凍に使われるコマンドです。この場合、-C /usr/local
オプションで解凍先のディレクトリを指定し、-xzf
オプションで圧縮されたアーカイブを解凍します。
- このコマンドは、ダウンロードしたGo言語のアーカイブ(tar.gzファイル)を解凍してインストールします。
echo 'export PATH=$PATH:/usr/local/go/bin' >> .bashrc
- このコマンドは、シェルの起動時にGo言語の実行ファイルのパスを環境変数PATHに追加します。
echo
は指定した文字列を表示するコマンドですが、ここでは>> .bashrc
と組み合わせて、.bashrc
ファイルの最後に文字列を追加しています。これにより、新しいターミナルセッションでGoコマンドが利用可能になります。
- このコマンドは、シェルの起動時にGo言語の実行ファイルのパスを環境変数PATHに追加します。
source ~/.bashrc
- このコマンドは、変更された
.bashrc
ファイルを読み込み、現在のシェルセッションに反映します。source
コマンドは指定したファイル内のコマンドを現在のシェルセッションで実行します。
- このコマンドは、変更された
go version
- このコマンドは、インストールされたGo言語のバージョンを表示します。これにより、Goが正しくインストールされているかを確認できます。
これらの手順を実行することで、LinuxシステムにGo言語をインストールし、使用する準備が整います。ダウンロードしたファイルは不要になりましたので削除します。
sudo rm go1.21.6.linux-amd64.tar.gz
次にarozosをソースコードでビルドします。内容はGitHubの記述内容とと同様です。
git clone https://github.com/tobychui/arozos
cd ./arozos/src/
go mod tidy
go build
./arozos
#sudo ./arozos for enabling hardware and WiFi management features
上記のコマンドシーケンスについて解説します。GitHubから「arozos」というプロジェクトのソースコードをクローンして、ビルドし、実行する一連の手順です。以下に各コマンドの解説を記します。
git clone https://github.com/tobychui/arozos
:- このコマンドは、GitHub上にある「arozos」というリポジトリからソースコードをコピー(クローン)します。
git clone
は、リモートリポジトリのコピーをローカルマシン上に作成するために使用されます。
cd ./arozos/src/
:cd
(change directory)コマンドで、クローンしたリポジトリ内のsrc
フォルダに移動します。- このフォルダには、ビルドするためのソースコードが含まれています。
go mod tidy
:- Go言語のプロジェクトで使われるコマンドで、プロジェクトの依存関係を整理し、必要なモジュールをダウンロードします。
- このコマンドは、プロジェクトの
go.mod
ファイルとgo.sum
ファイルを整理し、必要な依存関係を自動的に解決します。
go build
:- Go言語のコマンドで、ソースコードをコンパイルして実行可能なバイナリファイルを生成します。
- このプロセスは、ソースコードから実際にプログラムを実行するためのファイルを作成します。
./arozos
:- これは、ビルドされた実行可能ファイル
arozos
を実行するコマンドです。 - ビルドが成功していれば、
arozos
プログラムが起動します。
- これは、ビルドされた実行可能ファイル
sudo ./arozos
:- このコマンドは、
arozos
をスーパーユーザー権限(root権限)で実行します。 - スーパーユーザー権限で実行することで、ハードウェアやWiFi管理機能など、特別な権限を必要とする機能が利用可能になります。
- このコマンドは、
この手順は、ソースコードから直接プログラムをビルドし、実行する一般的な方法です。Go言語やソフトウェア開発における基本的な理解が必要になります。
以上の操作によりArozOSをブラウザで操作できる準備ができます。
http://マシンのIPアドレス:8080
初回でユーザー名とパスワードを決定します。
その後、このアカウントでログインすると、ArozOSを操作することができます。
ファイル転送もホストとArozOSの間で可能です。試しに、音楽ファイルを転送して聴いてみると音が出ました。サーバー側でなるのではなく、操作しているPCで音が出ます。
また、ファイルサーバーとしてセットアップすることができ、ファイル転送プロトコルにはWebDAV、SFTPなどから選択することができます。
ArozOSには基本的なアプリケーションとして、テキストエディタやペイントソフトなどが装備されています。これらのツールは、ArozOSのWebベースのデスクトップ環境内で直接利用できるようになっています。具体的には以下のような機能が含まれています。
- テキストエディタ:
- シンプルなテキストファイルの作成や編集に使える基本的なテキストエディタが提供されます。コードの編集など、基本的なテキスト処理に対応しています。
- ペイントソフト:
- 基本的な描画や画像編集機能を備えたペイントアプリケーションがあります。これを使って、簡単なグラフィック作成や画像の修正が可能です。
- ファイルマネージャー:
- ファイルやフォルダの管理、ファイルのアップロードやダウンロードなどが行えるファイルマネージャーがあります。
- その他のユーティリティ:
- カレンダー、電卓、音楽プレイヤーなど、日常的に使える基本的なユーティリティが含まれていることが多いです。
ArozOSは、これらの基本的なアプリケーションに加えて、さまざまな追加機能やカスタマイズが可能です。開発者やユーザーは、独自のモジュールやアプリケーションを追加して、システムの機能を拡張することができます。
Windows版もあるようですが、VirtualBoxにUbuntu Serverをインストールして、上にあるインストール方法と同じことをすれば動作します。ポートフォワーディングの設定もしておきます。アクセスするのはPCだけでなく、スマホでもブラウザがあるので動作します。