Windows技術者のためのLinuxの概念と操作
SI Forum Windows技術者のためのLinuxの概念と操作
0. はじめに
Windowsを良く知っている技術者でもLinuxを初めて使おうとすると、その概念の違いや操作性の違いに戸惑うことも多いものです。このドキュメントは、オペレーティングシステムの持つ機能項目にそってWindowsとLinuxにおける概念の相違と操作の違いについて対比させ、Linuxの操作の情報源を示すことで、Linuxについての全体像をより早く理解していく手助けになることを目的にしています。
1. 全体
Linuxのオペレーティングシステム(OS)としての基本機能はWindowsと大きな差はありません。しかし、Windowsが一社でOSから上位のアプリケーションまで、全ての製品を供給しているのに対して、Linuxでは、ディストリビュータがカーネルと言われるOSにいろいろな上位アプリケーションを選択・付加してデストリビューションという形態で配付しています。デストリビューションにはDebian、Ubuntsなどオープンソースコミュニティのもののほか、MIRACLE LINUX,Red Hat Enterprise Linux,SUSE LINUX Enterprise Server,turbolinuxなどの商用ディストリビューションがあります。本ドキュメントでは、特に断りのない場合は、これらのLinuxデストリビューション一般を指すものとします。
操作性の面においては、どのLinuxディストリビューションでも基本的な運用管理機能はGUI操作がサポートされており、Windowsと同等の操作を行うことができます。
また、Linuxでは、全ての運用管理機能が、GUI操作と同時に、単純なコマンドとしても用意されているので、それらをスクリプト言語(シェル)によって組み合わせることにより、柔軟なシステム操作の処理系を簡単につくれることが大きな特徴になっています。
<参考資料>
OSS推進フォーラムサポート インフラワーキンググループの2004年度の活動概要「オープンソース ソフトウェアが開発コミュニティからユーザーに届くまでの仕組み」の紹介ページの絵( http://www.ipa.go.jp/software/open/forum/support/index.html )より引用
2. ユーザー管理
2.1 アカウント管理
アカウントは、ユーザーの識別やセキュリティのために使われるもので、ユーザー毎に一意のIDとパスワードを持ちます。
アカウントは、WindowsとLinuxとでは共通の概念であり違いはありません。Linuxでは、アカウントの新規作成、変更、削除などのアカウント管理を、GUIで行うことができます。また、コマンド(usradd,usrmod,usrdel)とシェルを活用することにより、アカウントの一括処理(新規作成、変更、削除)を容易に行うことができます。
2.2 アカウントグループ管理
アカウントグループ管理は、複数のコンピュータ上のアカウントを1つのコンピュータで集中管理する機能です。
現在、このアカウントの集中管理にはLDAP(Lightweight Directory Access Protocol)というプロトコルを実装したソフトウェアが利用されています。LinuxではOpenLDAPというオープンソースソフトウェアを利用することにより、アカウントの集中管理を当初から行っています。
一方、Windowsでは、Active Directoryを利用することにより、LDAPを利用したアカウントの集中管理が可能です。ただし、WindowsNTまでは、LDAPプロトコルは標準ではサポートされていませんでした。
<参考資料:OpenLDAP情報>
OpenLDAP ソフトウェア 2.3 管理者ガイド(日本語) :http://www5f.biglobe.ne.jp/~inachi/openldap/admin23/index-ja.html
OpenLDAP 2.3 MAN ページ(日本語) : http://www5f.biglobe.ne.jp/~inachi/openldap/man23/index.html
OpenLDAP 公式サイト : http://www.openldap.org
- トピックス Windowsのワークグループについて
LDAPによるアカウントの集中管理に加え、Windowsではワークグループと呼ばれる分散管理機能があります。ワークグループは、コンピュータ毎に相互のユーザーを登録することにより、少人数グループにおけるアカウントを管理する機能です。Windowsは当初、スタンドアローンでの利用を前提に開発されてきましたが、ドメインやワークグループと呼ばれる機能が提供され、ネットワークOSとしての機能が徐々に拡大されて来ました。
一方、Linuxでは、コンピュータ相互での連携した利用形態を実現するため、ネットワークの利用を前提にしたアカウントの相互利用が行えます。ファイル共有を行うリモートマウント機能(NFS)、リモートログイン機能(telnet)(rlogin)や、ファイル転送機能(ftp)などネットワークOSの機能は最初から実装されています。
<参考資料:Linuxのネットワーク機能>
telnet: http://www.linux.or.jp/JM/html/netkit/man1/telnet.1.html
rlogin: http://www.linux.or.jp/JM/html/netkit/man1/rlogin.1.html
ftp: http://www.linux.or.jp/JM/html/netkit/man1/ftp.1.html
3. 資源管理
3.1 ファイル・ディレクトリ管理
Linuxでも、Windowsと同様に、ユーザーが使用する通常のファイルの他、システムの情報もすべてファイル形式で保存されています。Windowsのフォルダは、Linuxではディレクトリと呼んでおり、ファイルを束ねるために使用します。Linuxのシステムでは、ファイルは「/ディレクトリ名/・・・/ファイル名」のような形式で表し、「/」を区切りの文字として使用します。LinuxではWindowsで使用しているドライブという考え方はなく、すべての周辺機器はルートディレクトリを最上位とした階層構造の任意のディレクトリに接続され組み込まれるようになっています。また、Linuxではファイル名の大文字と小文字を区別します。
ファイルやディレクトリを他のユーザーに操作されないように、パーミッション(アクセス権)を設定することができます。
Windowsでは、ファイルやフォルダに対してユーザやグループ単位でアクセス許可の設定を行います。
Linuxでのパーミッションの設定は所有者、所有グループ、その他の3つの要素に対し設定することができます。
- 所有者:そのファイルを所有するユーザー
- 所有グループ:そのファイルを所有するグループ
- その他:所有者や所有グループ以外
また、パーミッションの指定には、「読み取り」「書き込み」「実行」の3つの権利を設定することができます。
ファイルに対して設定した場合には、以下のような権利が与えられます。
- 読み取り:ファイルを読み取ることができる
- 書き込み:ファイルの上書き保存ができる
- 実行:バイナリファイルやスクリプトファイルを実行することができる
ディレクトリにもファイルと同様にパーミッションを設定することができますが、ファイルの場合と多少異なります。
ディレクトリに対して設定した場合には、以下のような権利が与えられます。
- 読み取り:ディレクトリに存在するファイルを確認することができる
- 書き込み:ディレクトリにファイルを作成することができる
- 実行:ディレクトリへアクセスすることができる
パーミッションの表示や変更を行なうにはchmodコマンドを使用します。
<参考資料:ユーザーとパーミッションにみるLinuxの設計思想>
http://www.atmarkit.co.jp/flinux/rensai/theory04/theory04a.html
http://www.atmarkit.co.jp/flinux/rensai/theory04/theory04b.html
パーミッションの指定と比べ、より柔軟なアクセス制御を提供するアクセス制御リスト(ACL:Access Control List)の機能があり、Linuxカーネル2.6でもWindowsと同様に提供されています。
Linuxカーネル2.6では、ext2/ext3/JFS/XFSの4種類のファイルシステム上でACLがサポートされていますが、ext2/ext3でACLを使用するためには、aclオプションを付けてマウントする必要があります。
<参考資料:ext2/ext3でACLを利用する場合の注意>
http://www.itmedia.co.jp/enterprise/0403/06/epn01_2.html
3.2 ファイルシステム
ハードディスクに新たに領域を設定し、そこでデータの読み書きできるようにするには、ファイルシステムの作成を行う必要があります。
Linuxでは、ext、ext2、ext3、JFS、XFSなどのファイルシステムを使用することができます。Linuxでは標準的にはext2またはext3が使用されます。
ファイルシステムを作成するためには、mkfsコマンドを使用します。
<参考資料:ファイルシステムについて>
概要http://japan.linux.com/kernel/03/10/14/0235259.shtml
詳細http://www.linux.or.jp/JF/JFdocs/The-Linux-Kernel-10.html
ext、ext2、ext3 http://www.linux.or.jp/JF/JFdocs/Filesystems-HOWTO-6.html
JFS http://www.atmarkit.co.jp/flinux/rensai/fs06/fs06a.html
XFS http://www.atmarkit.co.jp/flinux/rensai/fs07/fs07a.html
3.3 プリンタ管理
Linuxのサーバ環境では、Windowsと同様に、GUIを使用して印刷を行う事が出来ます。
Linuxの印刷システムではLPD(Line Printer Daemon)を使用していましたが、最近ではLPDの代わりにCUPS(Common Unix Printing System)を使用することが多くなっています。CUPSはLPDに比べ、ネットワーク印刷やプリンタ管理機能が充実しています。
<参考資料:Linux上での印刷について>
Linux上での印刷 http://www.linux.or.jp/JF/JFdocs/Printing-Usage-HOWTO-2.html
ファイルの印刷 http://www.linux.or.jp/JF/JFdocs/Printing-Usage-HOWTO-3.html
LPDを使用した印刷について http://www.linux.or.jp/JF/JFdocs/Printing-HOWTO-6.html
CUPSを使用した印刷について http://bazaar.turbolinux.co.jp/~yama/Printing/CUPS/cups-flow.html
- トピックス Sambaを使用した印刷
LinuxにSambaを組み込むことで、Windows互換のファイルサーバやプリントサーバの機能をもたせることができます。Sambaを利用することでLinuxサーバをWindowsのファイルサーバやプリントサーバとして使用することができます。
<参考資料:Sambaとは>
http://www.samba.gr.jp/doc/whatsamba.html
<参考資料:Windows NT/2000との機能比較>
http://www.samba.gr.jp/doc/func_2.2.html
<参考資料:Linux上でのプリンタの共有設定>
http://itpro.nikkeibp.co.jp/members/LIN/oss/20040108/1/
4. 運用管理
運用管理については使用するツールやアプリケーションが異なるだけでWindowsとLinuxで基本的に内容は同じです。Linuxでも殆どの作業をGUIを使用して行うことが可能で、各ディストリビューションで提供しているほかオープンソースの管理ツールではWebminが有名です。また商用ソフトウェアも多数あります。
LinuxのGUI管理ツール
起動トラブル時の調査項目
GNOME系 (※注1)
システム管理・モニタツール
| 名称 | プログラム名 | 機能 | |||
|---|---|---|---|---|---|
| システムのログ | redhat-logviewer | ブートログ、Cronのログ、カーネルの起動ログ、etc… | |||
| システムモニタ | gnome-system-monitor | CPUの使用率リツ、メモリ/スワップの使用量、プロセス一覧、etc… | |||
| ディスク管理 | usermount | デスクのマウント/アンマウント、ファイルシステムのフォーマット | |||
| ネットワークデバイスのコントロール | redhat-control-network | ネットワークの設定、起動/停止 | |||
| ハードウェアブラウザ | hwbrowser | ハードウェア情報 | |||
| 印刷マネージャ | gnome-print-manager | プリンタの設定 | |||
| カーネルチューニング | redhat-config-proc | カーネルパラメータの変更 | |||
| パッケージの管理 | redhat-config-packages | アプリケーションの追加・削除 | |||
| セキュリティレベルの設定 | redhat-config-securitylevel | ファイヤウォールの設定 | |||
| ネットワーク設定 | redhat-config-network | ネットワークの設定 | |||
| プリンタ設定 | printconf-gui | プリントサーバの設定 | |||
| RedHatユーザ管理 | redhat-config-users | ユーザとグループの管理・設定 | |||
| ルートパスワード | redhat-config-rootpassword | ルートパスワードの設定 | |||
| 日付・時間のプロパティ | redhat-config-date | 時間の設定、ntpクライントの設定 | |||
| 認証の設定 | redhat-conifig-authentication | 認証先の設定、LDAP、SMB認証 |
サービス設定ツール
| 名称 | プログラム名 | 機能 | |||
|---|---|---|---|---|---|
| Domian Name Service | redhat-config-bind | Bindの設定 | |||
| HTTP | redhat-config-httpd | Apacheの設定 | |||
| NFSサーバ設定 | redhat-config-nfs | NFSの設定 | |||
| Sambaサーバ設定 | redhat-config-samba | Sambaの設定 | |||
| サービスの設定 | redhat-config-service | サービスの起動・停止、ランレベルの編集 |
KDE系 (※注2,注3)
システム管理・モニタツール
| 名称 | プログラム名 | 機能 | |||
|---|---|---|---|---|---|
| KDEシステムガード | ksysguardd | CPUの使用率リツ、メモリ/スワップの使用量、プロセス一覧、etc… | |||
| Kディスクフリー | kdf | デスクのマウント/アンマウント、ファイルシステムのフォーマット | |||
| K Systemモニター | ksim | システム情報のモニター |
※注1
GNOME(GNU Network Object Model Environment)はLinuxに洗練されたグラフィカルユーザインターフェース(GUI)を構築するプロジェクト。
GNOMEを使うことにより、WindowsやMac OSに似たユーザインターフェースでLinuxを操作できます。
※注2
KDE (K Desktop Environment)は、X上で動作するフリーなデスクトップ環境の一つです。
Kにはたいした意味は無くアルファベットでLの一つ前の文字というだけです。
LはLinuxを表します。この文字が選ばれたのは、KDEがLinux以外の多くのUnixライクなOS(FreeBSDなど)でも動作するからです。
※注3
GNOMEとKDEでツールの数に差がありますが、KDEは1つのツールで多数の機能を持っているため性能にはほとんど差はありません。
1)パフォーマンス
マシンのパフォーマンスを見るためにはCPUの使用率、メモリ/スワップの使用量、プロセス一覧等を見ることで判断することができます。GUIが使用できる環境であれば下記のツールを使用して確認します。
gnome-system-monitor, ksysguardd
コマンドラインでは下記を使用します。
sar ,ps ,top, jobs, free,df
2)データバックアップ
データのバックアップを行なうためにはファイルの圧縮、解凍を行ないます。
Webブラウザが使用できる環境であればwebminを使用してバックアップ操作を行なうことが可能です。webminを使用するためにはwebminのパッケージがインストールされている必要があります。パッケージは下記URLから入手可能です。
http://www.webmin.com/
コマンドラインでは下記を使用します。
tar ,dump ,restore, gzip, bzip2, cpio
3)ソフトウェアRAID構築
ソフトウェアRAID構築を行なうためにはディスクデバイス上でのパーテョション領域の作成、ソフトウェアRAID領域の作成を行なう必要があります。
Webブラウザが使用できる環境であればwebminを使用してソフトウェアRAIDの構築を行なうことが可能です。
コマンドラインでは下記を使用します。
fdisk, sfdisk, mkfs, tune2fs, raidstart, raidstop, raidhotadd
4)クラスタ
Linuxでも一般的には商用のクラスタソフトを使用して構築を行います。
オープンソースソフトウェアではHigh-Availability Linuxプロジェクトで開発が進められているheartbeatがあります。
heartbeatのパッケージは下記URLから入手できます。
http://www.linux-ha.org/download/
Webブラウザが使用できる環境であればwebminを使用してheartbeatを利用したクラスタの構築が可能です。
5)リモート管理
リモート管理はコマンドラインのtelnetやsshを一般的に使用します。
xhostを使用することでXの画面をリモートで使用することも可能です。
6)コンピュータ管理
ハードウェア情報を確認するにはdmesgコマンドでの確認を行ないます。また、/proc以下のファイルでの確認も可能です。
例:CPUの情報確認
# cat /proc/cpuinfo
アプリケーションの追加、削除ためのツールとしてredhat-config-packagesやKpackageを使用することが可能です。コマンドラインではrpmコマンドを使用して行うことも可能です。
ファイヤーウォールの設定するためのツールとしてredhat-config-securitylevelやWebminを使用することが可能です。コマンドラインではiptablesコマンドを使用して行うことも可能です。
7)パッチ配布
セキュリティアップデート方法はディストリビューションよってコマンドが変わってきます。コマンドを実行することでインターネット上からパッケージのダウンロード行いアップデートを行ないます。RHELではup2dateを使用します。
その他にもyumやaptコマンドがあります。
5. ネットワーク
概念の差はなく、設定方法の差のみ異なります。Linuxでの設定方法については多くの情報がWebから提供されています。
http://www.linux.or.jp/JM/html/iptables/man8/iptables.8.html
http://www.miraclelinux.com/technet/library/winbind/
http://www.apache.jp/
http://www.isc.org/index.pl
http://www.squid-cache.org/
http://www.sendmail.org/jp/
http://www.qmail.jp/qmail.html
1)TCP/IP概要
TCP/IPの設定にはredhat-control-networkやnetconfなどの設定ツールを使用します。
ifconfigコマンドでネットワークインターフェースにIPをアドレスを設定することも可能ですが、サーバの再起動時に設定が消されてしまうので通常は設定ツールを使用します。
2)ポート
ポートの設定にはredhat-config-securitylevelやWebminなどの設定ツールを使用します。
また、使用可能なポートをiptablesコマンドで制限することも可能です。現在使用されているポートはnetstatコマンドやpsコマンドで確認することが可能です。
3)DHCPサーバ構築
動的にIPアドレスをクライアントに割り当てるためのサーバです。
Webminを使用して設定することが可能です。コマンドラインからでもdhcpd.confファイルに設定することが可能です。
4)WINSサーバ構築
NetBEUI同様にSambaも初期設定のままではルーターの向こう側のコンピュータを表示できません。
Sambaの設定のなかでWINSサーバを有効にすることでルーターの向こう側のコンピュータを表示させることが可能です。ツールとしてはWebブラウザベースのSamba構築ツールであるSWATが使用可能です。
5)WWWサーバ構築
Linuxでは一般的にApacheを使用して構築します。設定ツールのredhat-config-httpdやWebminを使用して行うことが可能です。コマンドラインからでもhttpd.confファイルに設定することで可能です。
6)DNSサーバ構築
名前解決のためのサーバで、Linuxでは一般的にbindを使用して構築します。
設定ツールのredhat-config-bind-guiやWebminを使用して行うことが可能です。
また、コマンドラインからでも、エディターでnamed.confと正引き、逆引きのファイルに設定することが可能です。
7)ルーター構築
ルーターの設定にはredhat-control-networkやWebminなどの設定ツールを使用します。
routeコマンドを使用して設定することも可能ですが、サーバの再起動時に設定が消されてしまうので通常は設定ツールを使用します。
8)リモートアクセスサーバ構築
リモートアクセスサーバはダイヤルアップ用のPPPやVPN用のPPTP等があります。
GUIツールとしてWebminでの設定が可能です。
9)証明書サーバ構築(ネットワーク暗号化)
ネットワークの暗号化にはsshやsslを利用します。sshを利用するとtelnetやftpと同様な機能を暗号化して使用することが可能です。sslはApacheの設定で利用することが可能になっています。Webminでの設定が可能です。
10)Proxyサーバ構築
Linuxでは一般的にsquidを使用して構築します。設定はsquid.confファイルに行ないます。
Webminを使用して行うことが可能です。
11)メールサーバ構築
Linuxでは一般的にsendmail、qmail、postfixのいずれかを使用して構築します。
GUIツールではWebminを使用して行うことが可能です。
6. データベース
Linux上ではPostgreSQL、MySQLのようなオープンソースのデータベースとOracleやDB2のような商用データベースを使用することができます。
PostgreSQL http://www.postgresql.jp/
PowerGres Plus http://software.fujitsu.com/jp/powergresplus/
MySQL http://www.mysql.gr.jp/
<!--
<<トピック:データベースの管理概要>>
-->
1)データベースインストール
データベースのインストールの方法は、ディストリビューションにより異なり、GUIによるセットアッププログラムを用意しているものもありますが、RPMを使用するものもあります。
2)データベース構築
データベースを構築する場合、SQL文を使用すればWindows上でもLinux上でもデータベースサーバによる差は基本的にありません。ただしディストリビュータごとに独自の機能を追加しているものがあるため、独自に拡張した機能は他のディストリビュータでは使用できません。商用データベースにはGUIによる管理ツールを独自に提供している場合が多くなっていますが、オープンソースのデータベースの場合は、標準では用意されていない場合もあります。しかし、pgAdmin、phpPgAdmin、phpMyAdminなどのツールが提供されており、それを使用すればオープンソースのデータベースもGUIによる管理作業を行うことができます。
3)データベースオブジェクト作成
データベースオブジェクト(テーブルやビュー等)を作成する場合、SQL文を使用すればWindows上でもLinux上でもデータベースサーバによる差は基本的にありません。ただし、製品によって存在しないオブジェクトがあります。また、SQL文に独自の機能を追加しているものもあり、それは製品が異なれば使用することはできません。
4)データベースバックアップ
データベースバックアップを行なう場合の対応方法は製品ごとに異なります。
5)データ変換サービス
データ変換の機能は、製品ごとに対応が異なります。文字コードの変換であればnkfコマンドなどで対応可能です。
6)レプリケーション
レプリケーションの機能は、製品により機能を持っているものと持っていないものがあります。
7)ジョブ
ジョブの機能は、製品により対応が異なりますが、Linux上のcrondを使用して自動実行することもできます。また、niceコマンドを使用することで優先順位の設定が可能であり、atコマンドで実行する時間の指定をすることができます。
7. トラブルシューティング
トラブル発生時に、原因究明のための各種情報を収集したり、原因分析や切り分けを行う作業をトラブルシューティングと呼びます。コンピュータ利用時の代表的なトラブルとして、OSが正常に動作できない状態になるパニック(Windowsではブルースクリーンと呼んでいます)や、アプリケーションの異常終了などがあります。
Linuxではパニックが発生した場合は、各種コマンドを使い、発生時のメモリ情報を採取して原因を調査することが可能です。サポート契約を結んでいるディストリビュータなどがある場合は、採取した各種情報を契約先に送付し、調査を依頼します。また、アプリケーションの異常終了が発生した場合は、OSとは関係なくアプリケーションの問題であるならば、原因究明のための情報を添付した上、アプリケーションの開発元へ調査を依頼することが必要になります。
このほか、トラブルにはネットワークトラブル、起動トラブルなどがあります。それぞれトラブルが発生した場合には、下記のような対応を行います。
7.1 ネットワークトラブル
LinuxでもWindowsでもTCP/IPをベースにしてネットワークが構築されているため、トラブル時の調査対象はともに類似しています。例えば、ネットワークトラブルとして考えられる代表的なものとして、ネットワーク上の別のホストに接続できない状況があります。この場合、通信機器などが動作しているか、TCP/IP構成は正しいかなどを確認します。Linux では、GUIツールを使ってこれらの調査を行うことができます。また、ifconfig コマンドやpingコマンドを使って調査することもできます。トラブルシューティング時に調べる調査項目と調査手段(ツール、画面など)は下記の通りです。
ネットワーク・トラブル時の調査項目
| 調査項目 | Linuxでの調査 |
|---|---|
| 通信機器が正常に動作しているか。 | ・「システム設定」-「ネットワーク」にてネットワーク接続が有効か確認します。(Red Hat Enterprise Linux v.3) |
| TCP/IP構成は正しいか。 | ifconfig コマンドにてTCP/IP構成を確認します。 |
| IPアドレスで通信できるか。 | ping コマンドにて疎通確認を行ないます。 |
| ポートが利用可能か。 | ・iptables コマンドを使用してサーバのポートがブロックされていないか確認します。 ・netstat コマンドを使用してサーバのポートがブロックされていないか確認します。 ・「システム設定」-「セキュリティレベル」にてポートがブロックされていないか確認します。(Red Hat Enterprise Linux v.3) |
| アプリケーションで通信できるか。 | ・サービスの起動状況を /etc/init.d/サービス名 status で確認します。 ・「chkconfig --list 」コマンドでサービスの起動設定を確認します。 ・「システム設定」-「サービスの設定」にてサービスが開始されているか確認します。(Red Hat Enterprise Linux v.3) |
7.2 起動トラブル
LinuxでもWindowsでも起動のしくみは類似しているため、トラブル時の調査対象も類似しています。例えば、起動トラブルとして考えられる代表的なものとして起動ディスクが見つからない、OSが起動しないなどの状況があります。この場合、Linuxでは、起動ディスクの情報を保存しているブートローダ(GRUB、LILO)の設定ファイルの確認、カーネルファイル(vmlinuz)の有無の確認を行います。起動トラブル時に調べる主要項目は下記の通りです。
起動トラブル時の調査項目
| トラブル項目 | Linuxでの調査 |
|---|---|
| 起動ディスクを認識しない。 | ・ブートローダの設定ファイル(grab.conf/lilo.conf)の確認をします |
| ブートローダが読み込めない。 | ・起動ディスクを使用して起動確認をします。 ・レスキューCDから起動確認をします。 |
| カーネルが読み込めない。 | |
| サービス(デーモン)が起動しない。 | ・「/etc/init.d/サービス名 status 」で確認をします。 ・「chkconfig --list 」コマンドでサービスの起動設定を確認をします。 ・「システム設定」-「サービスの設定」にてサービスが開始されているか確認をします。(Red Hat Enterprise Linux v.3) |



