おっさんプログラマーがウケた話13『修士論文「Linux: 移植性の高いオペレーティングシステム」』 [パソコン]
アラフィフの私ですが、現役プログラマーをやっています。
そんな私は情報科学を学んでいない若者には、できれば基礎から学ぶことを勧めています。
さて、その情報科学の話ですが、リーナス・トーバルズはLinuxに関する修士論文「Linux: A Portable Operating System(Linux: 移植性の高いオペレーティングシステム)」を書き、計算機科学の修士号を得たという話もしています。
情報科学の大学・研究機関から生まれた技術が現在を支えているんですね。
しかし、意外と博士論文ではないんですよ・・・(´・ω・`)
それは、アンドリュー・タネンバウム教授が指摘していたLinuxは今後、正統派となるマイクロカーネル(Linuxの影響与えたOS教材MINIXはマイクロカーネル)ではなく、古典的なモノシックカーネルで実装されていたことも一因です。
博士号を取ろうとおもったら、アンドリュー・タネンバウム教授のような博士課程の指導教員に逆らってはならないんですね・・・(´・ω・`)
https://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%B3%E3%83%89%E3%83%AA%E3%83%A5%E3%83%BC%E3%83%BB%E3%82%BF%E3%83%8D%E3%83%B3%E3%83%90%E3%82%A6%E3%83%A0%E3%81%A8%E3%83%AA%E3%83%BC%E3%83%8C%E3%82%B9%E3%83%BB%E3%83%88%E3%83%BC%E3%83%B4%E3%82%A1%E3%83%AB%E3%82%BA%E3%81%AE%E8%AD%B0%E8%AB%96
しかし、あの当時の異端とされたリーナス・トーバルズの主張が後に主流になるとは皮肉なことです。
アンドリュー・タネンバウム教授が予言したようなコンピューターの進化にはならず、もっと歪な進化だったため、例としてWindowsNTは当初マイクロカーネルで実装されましたが、WindowsXP(2000)
の頃には、ハイブリッドカーネルと言われるモノリシックカーネルの高速性・単純性とマイクロカーネルのモジュール性・拡張性を組み合わせたものが商用OSの主流となりました。
特に高速であることを要求されるグラフィックがマイクロカーネルの普及を妨げた一因でした。
ちなみに、高速性・単純性を追い続けるLinuxはモノシックカーネルのまま現代も続いています。
岡山県 ブログランキングへ
おっさんプログラマーがウケた話12『謎のメーカーNVIDIA?』 [パソコン]
日経で「謎のAI半導体メーカー」と紹介されたときに、確かに一般の人には馴染みのないメーカーだよなぁ・・・(´・ω・`)
と、思ったもんです。
2022年の現在、CPUの処理速度は停滞していますが、GPUは今のところ進歩は止まってません。
いや現行のハイエンド『GeForce RTX 3090 Ti』の消費電力が450Wに達しているので、実はそろそろ限界に近いところにあります。
今やCPUよりも高価となったGPUのスタートにはマイクロソフトが関与しています。
1990年代、グラフィックチップは各社独自規格で乱立していましたが、マイクロソフトがDirectXがDirect3Dの機能強化としてハードウェアT&Lのサポートを発表します。
CG向けの3次元の座標計算やポリゴンの陰影処理を行う専用の演算チップの仕様を統一しようとしました。これで同じ規格で性能を競うことになりました。
ここで、今も現在もトップシェアとなるNVIDIAのGeForceシリーズが発売されます。
GPU (Graphics Processing Unit) という用語を提唱したのも、この時です。
CGの演算は今でも並列処理が有効なのでトランジスタ数は製品毎に増加していき、最初のチップの集積トランジスタ数は2,300万ですが、今は集積トランジスタ数は283億にまで達しています。
しかしCG用途だけだったのなら、こんなに有名な企業にはなっていないと思います。
2006年に発表したGPGPUソフトウェア開発基盤「CUDA」が汎用並列コンピューティングプラットフォームとして、CG以外にも並列処理が有効な演算に採用されることとなったのです。
AIの一分野であるディープランニングは集積したデータの特徴をベクトル演算を繰り返して抽出するのですが、これがCUDAで高速に処理することが可能でした。
また、 仮想通貨の信頼性を担保するブロックチェーンも同じく高速に処理することが可能でした。
これでパソコンで重要かつ、CPUよりも利益率が高いビジネスとなってしまったんですね・・・(´・ω・`)
さて、私もGeForce256を買って、Visual C++とDirectXでゲーム開発しました。ハードウェアT&LについてはPlayStationで経験していたので、パソコンでもこんなに簡単に使えるようになったのか?
と、驚いたものです。
そして、今はUnityで開発してますがモバイル用のチップでも、CGが普通に使えるようになりました。
AppleもAndoridのSoCを発売しているQualcommも、AI機能を実装しています。
もはやGPU専用メーカーじゃなくてもじゃくても、よくない?
と、思いつつ、私も高いと思いながらGeForce3070を去年買いました・・・(´・ω・`)
岡山県 ブログランキングへ
玄人志向 NVIDIA GeForce RTX3070Ti 搭載 グラフィックボード GDDR6X 8GB GALAKURO GAMINGシリーズ GG-RTX3070Ti-E8GB/TP
- 出版社/メーカー: 玄人志向
- 発売日: 2017/06/14
- メディア: Personal Computers
GIGABYTE NVIDIA GeForce RTX3060 搭載 グラフィックボード GDDR6X 12GB 【国内正規代理店品】 GV-N3060GAMING OC-12GD R2.0
- 出版社/メーカー: Gigabyte
- 発売日: 2021/06/12
- メディア: Personal Computers
MSI GeForce RTX 3070 Ti SUPRIM X 8G グラフィックスボード VD7700
- 出版社/メーカー: MSI COMPUTER
- 発売日: 2021/06/11
- メディア: Personal Computers
おっさんプログラマーがウケた話11『日本製で最も売れた8ビットパソコンはMSX』 [パソコン]
ファミコンが世界的にヒットしたことは知っている若者は多くても、日本発のパソコンアーキテクチャーが世界的にヒットしたことを知る若者は少ない・・・(´・ω・`)
そんな小話です。
1983年にマイクロソフトとアスキーが日本の家電メーカーに巻き込んでMSX規格のパソコンが一斉に発売されました。
パソコン市場に出遅れていたパナソニック、ソニー、日立などがMSX規格でパソコンを発売しました。IBM PCのように既存の汎用半導体製品を採用していて、仕様は平凡ですがそれゆえに安価で本体が5万円台ぐらいが中央値で、より3万円で買える機種もあれば、高級機もあるというラインナップでした。
マイクロソフトが提供するMSX-BASICやCP/M互換のMSX-DOSなど、8ビットパソコンですが実用性も高いということで、世界的にもヒットしました。
特に冷戦時代だったこともあり、IBM PCを輸入できないソ連を中心とした東側諸国は大量に輸入されて、デファクトスタンダードとなりました。
日本ではMSXといえば、ファミコンより劣るゲーム機というイメージがありますが、特に東側諸国では当時パソコンといえばMSXというイメージです。
しかし1990年代にはIBM PC/AT互換機が急速に安価になっていき、構成しだいでMSXより安価に買えるようになります。
そうなると、そっち買いますよね・・・(´・ω・`)
私も子供のころに親に買ってもらうパソコンにMSXも候補の一つではありました。
がっ、その当時の8ビットパソコンの記憶媒体は録音テープという時代ですが、プログラムしたかった私は、安価にディスクが標準装備されたMZ-1500を選択します。
しかし、友達の多くがMSXを買いカートリッジのゲームで遊ぶのを横目で見て、そんな使い方だったらパソコンの意味がないだろう、BASIC使えよ!
と、内心では思いつつ、ゲームを遊ばせてもらうという子供時代でした。
岡山県 ブログランキングへ
MSX BASIC プログラム初心者のためのアクションゲームの作り方: 大人になった今なら出来る! (ニャオニャオ21世紀)
- 作者: ニャオニャオ21世紀
- 出版社/メーカー:
- 発売日: 2021/09/22
- メディア: Kindle版
MSX BASIC超初級解説: 大人になった今ならできます!MSX BASICでゲームを作ってみませんか?
- 作者: ニャオニャオ21世紀
- 出版社/メーカー:
- 発売日: 2021/03/25
- メディア: Kindle版
おっさんプログラマーがウケた話10『最初のCPUを設計したのは日本人』 [パソコン]
嶋正利先生といえば、私達の世代では有名人ですが、若者は知らない人が多いみたいです。
特に、最初期のインテルのCPUを設計したのは、日本人だというと、驚かれます。
それは電卓を開発販売していたビジコンがLSIの設計と生産を委託したインテルがリソースがないのに、受託してしまったことからこの話は始まります。
日本側の設計は、複数の専用LSIを組み合わせて、電卓を実現するという手堅く、当時としても先進的な性能を持つものでした。
しかし、そんな複数の専用LSIを開発することが出来ないインテルはあるアイディアを提案します。
いっそ、4ビットの汎用CPUを作れば電卓を少ないLSIで実現できる!
良いアイディアだと、思われましたがここでも最大の問題が発生します。
「アメリカのCPU開発者を雇おうとしたら、仕事の内容が4ビットCPUの設計だと伝えると全員が断ったというものです」
当時のCPUはメインフレームは32ビット、ミニコンピュータでも8ビット~16ビットで、そういったコンピュータの設計者から見れば、4ビットは「おもちゃ」でした。
と、いうわけで、仕事の穴であるCPUの論理設計を発注先であるビジコンの嶋 正利先生がやることになってしまったという日本の会社の文化ならではですね。
これが世界初のマイクロプロセッサ「Intel 4004」です。
その後、「Intel 8080」、「Z80」の開発にも関わり、特にZ80は未だに使われ続ける極めて息の長いCPUとして、今も使われ続けています。
世界初のマイクロプロセッサは日本の専門家じゃなくても、仕事をやらされるという文化の賜でもあるわけです。
もっとも、マイクロプロセッサがLSIで実現するのは、時間の問題でもあったのですが、この行き当たりばったりの電卓開発が、後のCPUシェアトップのインテルを作ったのですから、将来なにが起こるかわかりませんね。
岡山県 ブログランキングへ
おっさんプログラマーがウケた話9『不評だったWindows』 [パソコン]
今でこそ、WindowsってパソコンOSの代表格ですが、Windows1.0は不評でした。
1985年11月20日にリリースされたのですが、その当時はGUIのOSを各社が発表していて、MacintoshやAmigaなどが実現しているGUIのOSが求められていた時期ではありました。
しかし、MS-DOSが圧倒的なシェアを誇り、それが長年続いていたPC/AT互換機 にとってGUIと互換性を両立することが不可能に近かったのです・・・(´・ω・`)
それにIBMとOS/2というUnixライクなOSを開発してもいたので、Windowsは繋ぎにすぎないとかいう話もあったりしました。
x86系のCPUが世代を重ねるごとに、問題なく互換性と性能アップを両立するという時代ではなく、8086の後継CPUの80286用にOSを開発すると、互換性に問題があったのです。
それにジョブズがAppleを去ったときに、チャンスだと思ったビル・ゲイツはMacintoshのOSを他社にライセンス販売することをAppleに提案したこともあって、もしこの提案が通っていたらWindowsは確実に終わっていました。
そんな状況でマイクロソフトは不評なOSの開発を続けます。
Windows/386 2.11では、80286の後継CPUの80386で仮想86モードを利用してWindows上のDOS環境をマルチタスクで同時に実行できるようになったのです。
そして、ようやくヒットといえるWindows3.1の頃には、マルチタスクでメモリーもより自由に使えるGUIのOSといえるぐらいにはなりました。
インテルのCPUも80486が発売された頃に、ビル・ゲイツは決断を下し、MS-DOSを開発をやめ、Windows95の発表を行います。
ようやく、互換性もGUIも双方ユーザーに満足させるOSがようやくリリースされました。Windows1.0のリリースから、10年経過した頃のことです。
あの当時の状況はWindowsっていつ開発が終わってもおかしくないOSだったのです・・・(´・ω・`)
色んな事情がありましたが、結局はマイクロソフトによるMS-DOSの完全互換のOSしかユーザーが求めていないことが、よくわかった市場の反応でした。
より先進的なOSが発表されても、結局は使いづらくてもMS-DOSが使われ続け、その完全互換を達成するまで、GUIのOSは待ち続けたわけですね。
そして、Windows11の今でも、結構昔のアプリがそのまま動作します。
岡山県 ブログランキングへ
【Amazon.co.jp 限定】Microsoft Windows 11 Home (日本語版) 64bit ( DSP OEI DVD ) バッファローLANボード LGY-PCI-TXD 付属
- 出版社/メーカー: マイクロソフト(DSP)
- 発売日: 2021/11/11
- メディア: DVD-ROM
おっさんプログラマーがウケた話8『そしてx86しかいなくなった』 [パソコン]
パソコンやスマホで一番高額な部品はCPU(SoC)です。
これは、パソコンの登場時から変わりません。
ビジネスとして一番の利益率を誇る半導体のシェアを巡って争い続けているのですが、今現在はインテルのx86系と言われるCPUのシェアがトップです。
しかし、そのアーキテクチャー(設計)はとても褒められたものではないのです。
もともと、初期のパソコンに使われた8080という8ビットCPUと互換性を保ちつつ、16ビットCPU化されたのが8086です。
この設計により、日本パソコンゲーム業界ではPC-88とPC-98の縦マルチがたくさんでました。
私もアセンブラで開発するとプログラムが8ビットっぽい8086が嫌でした。
モトローラーのMC68000が普及しないかなぁ、とか思ったものです。
その当時、パソコンと業務で使われるワークステーションは分かれており、それ以上に高度な業務には汎用機が使われておりました。
そういう状況だと、パソコンはあくまで、オフィスや家庭で使われる安価なコンピューターであって、コンピュータービジネスの主流ではありません。
パソコン業界の雄であるAppleが本格的にビジネスに参入すべく、失敗を繰り返していたのもこのころです。
さて、8086に話を戻しますが、あくまで8ビットの延長線上のCPUであると、インテル自身もそのように思っていたし、ワークステーション用のCPUは別に開発してました、その後に売れませんでしたが、iAPX 432やItaniumを発売しました。
皮肉なことにパソコンのCPUはAMDやNECなどの互換CPUメーカーなどとの激しい競争にさらされ続けた結果、32ビットCPUの80386からインテルが自ら製造を行うことを宣言し、その莫大な利益を半導体技術開発に投入して、動作周波数は年々高まり、1978年に発表された8086は5Mhzでしたが、2000年に発表されたPentiumⅢは1Ghzに到達しました。
性能はワークステーション用として開発されたCPUたちを上回り、次々と他のCPUの開発中止が発表されていったのが、2000年代です。
こうして、x86系が市場を席巻したのですが、伏兵は思わぬところにいました。
組み込み用として生き残っていたARM系です。
iPhoneもARM系を採用したことで、スマホのCPU(SoC)はARM系がトップシェアになりました。
Andoridではx86系の採用もあったのですが、ちょうどインテルの半導体技術の向上が停滞した時期になったため、シェアを握れませんでした。
アーキテクチャーは後発のARM系のほうが優れているので、サーバーやパソコンにARM系が進出しようとしています。
同じ半導体技術で開発されたものであれば、アーキテクチャーが優れたほうが性能が高いのですが・・・(´・ω・`)
今後、ARM系がシェアをとるのか、それとも結局はx86系がシェアを取り続けるのか?
激しい競争は今も続いています。
岡山県 ブログランキングへ
Intel Corei7 プロセッサー 12700K 3.6GHz( 最大 5.0GHz ) 第12世代 LGA 1700 BX8071512700K
- 出版社/メーカー: Intel
- 発売日: 2021/11/04
- メディア: Personal Computers
インテル INTEL CPU Core i5-12400F / 6/12 / 2.5GHz / 6xxChipset / BX8071512400F 【 国内正規流通品 】
- 出版社/メーカー: Intel
- 発売日: 2022/01/05
- メディア: Personal Computers
Intel Corei5 プロセッサー 12600K 3.7GHz( 最大 4.9GHz ) 第12世代 LGA 1700 BX8071512600K
- 出版社/メーカー: Intel
- 発売日: 2021/11/04
- メディア: Personal Computers
おっさんプログラマーがウケた話7『Windows Vistaの悲劇』 [パソコン]
2000年代の初め、インテルはイキってました!
「PentiumⅣはすぐに動作周波数10Ghzに到達しますよ!」
と、・・・(´・ω・`)
1990年代の性能向上のペースが電子の速度の限界値である10Ghzまでは続くと思っていたのです。
これを真に受けたマイクロソフトは、その性能に見合うOSを開発します。
『Windows Vista』は従来のWindowsにはない新機能が多数搭載されました。
さて、現実はどうだったか?
リリース時の2006年で、改良に改良を重ねた第五世代のPentium 4の動作周波数3.60GHzにとどまり、発売当初の第一世代のPentium 4の動作周波数2.00GHzの二倍にも達することができませんでした。
これで市場は混乱しました。
あきらかにオーバースペックのOSで、最新のCPUでも動作が重かったのです。
これが2001年に発表した『Windows XP』が長年において使い続けられた理由です。
CPUの動作周波数を上げる障壁となったのは、量子力学のトンネル効果として知られたリーク電流で、結果として動作周波数を上げれば上げるほど、より強力な電力が必要になり、その発熱により半導体が溶けてしまいました。
電子の速度の前に、リーク電流による動作周波数の限界が見えたのです。
インテルも互換CPUメーカーのAMDも動作周波数を向上させることでの性能向上ではなく、まだ半導体の微細化は進められたので、マルチコアによる性能向上を目指すことになりました。
この現実を見据えて、発表された『Windows7』はVista を基盤にしてカーネル設計やコンポーネント化のモデルの改良され、軽いOSへと設計変更されその思想は今も続いています。
私もWindowsXPを使い続けて、Windows8の頃にようやく切り替えました。
それぐらい、CPUの性能が停滞していたのですよ・・・(´・ω・`)
岡山県 ブログランキングへ
インテル INTEL CPU Core i5-12400F / 6/12 / 2.5GHz / 6xxChipset / BX8071512400F 【 国内正規流通品 】
- 出版社/メーカー: Intel
- 発売日: 2022/01/05
- メディア: Personal Computers
AMD Ryzen 5 5600X with Wraith Stealth cooler 3.7GHz 6コア / 12スレッド 35MB 65W【国内正規代理店品】 100-100000065BOX
- 出版社/メーカー: AMD
- 発売日: 2020/11/06
- メディア: Personal Computers
インテル INTEL CPU Core i7-12700F / 12/20 / 2.1GHz / 6xxChipset / BX8071512700F 【 国内正規流通品 】
- 出版社/メーカー: Intel
- 発売日: 2022/01/05
- メディア: Personal Computers
AMD Ryzen 9 5900X without cooler 3.7GHz 12コア / 24スレッド 70MB 105W【国内正規代理店品】 100-100000061WOF
- 出版社/メーカー: AMD
- 発売日: 2020/11/06
- メディア: Personal Computers
おっさんプログラマーがウケた話6『JavaはなぜWebアプリケーションでバズったのか?』 [パソコン]
今も客先で私はJavaで開発しておりますが、登場時は色々と騒動がありました。
今でもそうですが、Java以外のプログラム言語は各社実装や仕様が異なるというのが普通です。
GNU C++とVisual C++は同じところもありますが、違いがありますよね。
もっと極端な話だと、Visual BasicとN88 Basicはまったく違います。
プログラム言語は時代や動作するハードウェアによって、違うことが当たり前だったのです。
しかし、Javaは違います。
Javaは開発元のサン・マイクロシステムズが権利を主張して、「100% Pure Java」という認定制度を実施して、標準として定義されている範囲の仕様のみを用いて開発することを求めました。
そのため、マイクロソフトが開発したVisual Jなどの他の開発環境を販売していたメーカーは開発を止めてしまいました。
サン・マイクロシステムズが公式の開発環境を開発していれば良かったのですが、Javaの前途は暗雲に包まれてしまいました。
さて、そういう特殊な事情を持つJavaなのですが、Webアプリケーションの開発では今も人気のあります。
その理由は、2000年前後にWeb アプリケーションをまともに開発できるプログラム言語が、Javaぐらいしかなかったのです。
まだ、マイクロソフトのC#の登場前夜で、JavaScriptはまだサーバーサイドで動作させることができません。
その隙間をつけたことで、Javaが生き残りました、そしてIBMが統合開発環境のEclipseをオープンソース化して、一気にメジャーなプログラム言語となり、今も開発し続けられています。
私の場合、最初のJavaの開発はテキストエディターの秀丸エディタで、DOS窓でJavacをコマンドで打ち込んで、開発していました。
あの頃はWebアプリケーションの開発環境をマイクロソフトがリリースすれば、すぐにそちらにシェアーが移ると思っていたのですが、出遅れたおかげで今もJavaの後塵を拝しているわけです。
岡山県 ブログランキングへ
プロになるJava―仕事で必要なプログラミングの知識がゼロから身につく最高の指南書
- 出版社/メーカー: 技術評論社
- 発売日: 2022/03/16
- メディア: Kindle版
2週間でJava SE Bronzeの基礎が学べる本 徹底攻略シリーズ
- 作者: 志賀澄人
- 出版社/メーカー: インプレス
- 発売日: 2017/10/17
- メディア: Kindle版