本日の興味深い記事は、Huawei P30シリーズにはすでに『ARK』が搭載されていたです。
Huaweiは、結構、恐ろしい会社でもあります(中国だからという意味ではなく)。これからも増々、重要さを増す、通信の分野で、Googleにも出来ないことを窮地になればなるほど、力を付けてきている様な気がします。
Huaweiは、現在、米国により、通信市場から排除されようとしています。
スマートフォン端末に入っているAndroidのOSについても、Googleがファーウェイの新しいスマホへアンドロイドOSを供給しないと発表。さらにGoogleに続きアーム社も取引停止を発表しています。
<補足説明>——————————————-
アーム(ARM)社は、ソフトバンクの孫ちゃんが、3.2兆円で買収した会社です。
どんな会社か?「組込み型半導体(チップセット)のライセンス提供」をしている会社です。
組込み型半導体(チップセット)? 分かりやすく云えば、CPUです。
PCもスマートフォンもコンピューターですが、コンピューターにはCPUが、必ず必要で、このCPUには、大きく分けて2つの系統あります。
■パソコンやサーバーなどに主に用いられるx86/64系
主に、Intel/AMDの2社が知財から製造・販売まで行っています。
■スマートフォン・IoTなどに主に用いられるARM系
ARM系は、ARM社が知財を有し、その知財を製造メーカーにライセンスし、製造メーカーが実際にCPUチップを製造するという形が取られています。
ソフトバンクの孫ちゃんが、3.2兆円で買収したのがこれです。べらぼうに高いですが、将来の発展を考えると、なかなか抜け目のない買い物だと思います。——————————————————————–
Huaweiとしては、もう独自のOSを作って、生き残りを図るのではないかと予想していましたが、なんと!!もうすでに、P30シリーズでは、すでに「ARK」が動いている様です。
『ARK』とは何ぞや?ですが、Huaweiが新たに開発しているOSの名前は『ARK OS』
P30シリーズではすでにARKが動いている P30シリーズに導入されたのは『ARK Compiler』と呼ばれる、Android OSが行っている無駄な処理項目を省き、効率化をすすめるためのアプリ最適化管理システム
1.スマートフォンは完全に、コンピューターですので、コンピューターがどうやって動くのかちょっと、知識を深めてみましょう。
1)機械語とは
通常、プログラムを作って、コンピューター上で動かす(実行)場合、必ず、CPUが理解できる機械語(2進数)に変換する必要が有ります。 機械語(0と1)しか理解できないのです。
機械語、すなわち、0と1の数値をある単位、32ビット、64ビット単位で区切ったものが、コンピューターに指示を出すための1つの命令文(実行単位)となるのです。
コンピューターは10進数や文字列を読めません。必ず、全部0,1の数値に置き換えてからでないと計算、処理できないのです。
32Bit版、64Bit版とは、CPU(OS)が、命令を処理する単位の事です。
当然ですが情報量は64Bit版が多いに決まっていますよね、32Bitの倍の64Bit有るのですから。 最新のOS「Windows 10」などは通常、64Bit版です。
<32Bit版> 32Bitで構成
0 | 1 | ~ | 1 | 1 |
<64Bit版> 64Bitで構成
1 | 1 | 0 | ~ | 0 | 0 | 0 | 1 |
命令をCPUで実行する最小単位のデータの中の構成は、命令部とオペランド部に分かれていて、これを使って、CPUは命令を実行してゆきます。
人間が分かるように、「Java」というプログラム言語で書かれたプログラムは実行する時には必ず、0,1の数値、すなわち機械語に置き換えてからでないと、計算できないのです。
CPUが直接理解、実行できる言語のことをBinary Code(バイナリーコード)と言います。
もっと分かりやすく云えば、コンピューターは「2進数」しか理解できないのです。
2進数。。。分かりますよね? 2進数と10進数の違い分かりますよね?
これが分からなければ、何とかに付ける薬は有りませんので、理解できないでしょう。
2)機械語にするまでの作業
通常は、0,1の数値に置き換える作業は、「コンパイル」と言います。 意味は、プログラミング言語を0,1の数値に置き換えますので、翻訳とでも言いますか。
通常のC言語などは、C言語で記述された(人間が書いた)プログラムは、「コンパイル」–>「リンク」という工程を通ってプログラム(Windowsで云えば、.EXEファイルとして出来上がります)として機能します。
<プログラムを作る工程>
人間の理解できる言語(C言語、Javaとか沢山あります)で、命令を記述します。
「人間の理解できる言語で記述(プログラム作成)」—->「コンパイル」—>「リンク」–>実行ファイル(.EXEファイル)で完成です。
「コンパイル」も「リンク」作業は、パソコン側で、コンパイラーが実行してくれますので、手間はかかりませんが、もちろん、コンパイルエラー(主に文法ミス)が出れば、人間の理解できる言語に戻って修正作業が必要です。
2.プログラムを実行するには、Javaなどの言語を機械語に翻訳する必要があり、 言語を翻訳する方法は2通りあります。
ほとんどのAndroidをプラットフォームとするアプリケーションは、『Java』と云う言語が用いられています。しかし、そのJavaのコードを処理(実際には0と1に変換)し、最終的に実行しているのは機械語、すなわち、1,0のデータです。
したがって、プログラムを実行するということは、Javaを機械語に翻訳する必要があります。 言語を翻訳する方法は2通り
1)インタープリタ方式
ハードウェアが言語(java)を機械語に翻訳し、1つずつプロセス(命令)を実行していく仕組み。 このやり方は、追時、翻訳を実行しながら行うので、パフォーマンスが悪く、処理をするのに時間がかかります。
2)コンパイル方式
Javaから機械語に、予め一括して直接翻訳してしまう。 これは、C言語などがこの方式で、コンパイル、リンクが取られて、実行可能なプログラム(.exe)が作られる。
このやり方はさらに、コンパイルのタイミングで、2通りのやり方に分類されます。
・AOT(Ahead of time)コンパイル:プログラムを実行する前に言語をまとめて翻訳。
・ JIT(ジャストインタイム)コンパイル:実行前、またはリアルタイムに言語を翻訳。
現在のAndroidシステムは、インタープリタとコンパイルの両方の方式がとられています。
3.ここまで来て、やっと『ARK OS』がどんな仕組みか、説明できるのですが
『ARK COMPILER』で、何が変わるのかと云えば、Javaから機械語に直接「翻訳」が可能だと言うことです。
Androidのシステムは上記のように、インタープリタとコンパイルの両方の方式で動作しているが状態ですが、それをコンパイル方式のみに統一し、高速化を図ったものが『ARK COMPILER』ということです。
これは、googleでも、今すぐやろうとしてもできない技術ですので、これが可能になれば、googleのAndroidのOSも必要なくなるのです。
単独で、OSを開発して、ハードも自分で開発できる体制が整えば、怖いものなしです。
スマートフォンのOSである「Android」や「iOS」より優れたプラットフォームだということが、アプリ開発者にも理解されれば、アプリの移行が進むでしょう。
あとは、売れる(普及する)かどうかだけです。
コンピューター、パソコンの仕組みを知りたければ、下記の記事を参照です。
—関連記事—
・第1回目「初心者向けWindowsパソコンの基礎知識」は「OSとは、仕組みは」です。
・第2回目「初心者向けWindowsパソコンの基礎知識」は「セキュリティについて」です。
・第3回目「初心者向けWindowsパソコンの基礎知識」は「アプリケーションの名称」です。
・第4回目「初心者向けWindowsパソコンの基礎知識」は「ファイル操作」です。
・第5回目「初心者向けWindowsパソコンの基礎知識」は「フリーソフトのダウンロードとインストール方法」です。
Sponsored Links