ATMやテレビなどのマシンのソフトウェアはどのように構築されていますか?


14

初心者プログラマーとして、私はコンピューターベースのアプリケーションのプログラミングでしか仕事をしていませんが、プログラミングを始めてからよく質問があり、適切に答えられません。

機械はそれ自体では動作しません。それはプログラマーの仕事です。彼は何をいつ何をするかを教えてくれますが、私の好奇心はコンピューターの下にあります。この記事ではATMソフトウェアの例を取り上げますが、洗濯機のディスプレイやテレビ、携帯電話など、他にもたくさんあることを覚えておいてください。

この種のマシンのソフトウェアはどのくらい正確に構築されていますか?コンピューターベースのプログラミングと同じになることはないと思います。彼らはそのようなことを機能させるためにどの言語を使用し、どのように仕事を成し遂げますか?この種のプログラミングに特化したプログラマーはいますか?これらのマシンに命を吹き込むプロセスは何ですか?



リンクありがとうございます。あなたのリンクを見つけるまで、私はこれについて何の手掛かりもありませんでした。また、なぜこれがダウン投票されたのですか?どうしたの?
バグスター

3
@ThePlan Peopleは、「この特定の問題をどのように解決するのですか?」というタイプではない質問に投票する傾向があります。
CFL_ジェフ

3
人々はいくつかの理由でダウン投票する可能性があり、自分自身を説明する必要はありませんが、ダウン投票矢印のツールチップには、「この質問は研究努力を示していません。不明または有用ではありません」-最初の文は非常に近いと思います受け取った下票についての十分な説明は、プログラマーに尋ねる前に少なくともいくつかのマイナーな調査を行ってください。
ヤニス

9
私は彼に少したるみを切ったと言います。用語がわからない場合、組み込みプログラミングを研究することは困難です。
カールビーレフェルト

回答:


15

組み込みシステムまたは組み込みソフトウェア開発として知られています。1つのアーキテクチャに過度に取り組むことなく、一般的なプロセスについて詳しく知りたい場合は、この本をお勧めします。リアルタイムのオペレーティングシステムも提供します。

組み込みプログラミングはアーキテクチャに大きく依存しています。通常、深刻な対応、プログラムサイズ、エラー回復、コストの制約の下で作業しています。たとえば、z80(8ビットプロセッサ、どこにでもあります)とおそらく2〜3キロバイトのメモリを使用できます。システムに何をするのか、プログラムをどのようにセットアップするのかを伝えるためのROMしか持っていない場合があります。サイズは数キロバイトにすぎないこともあります。なぜそんなにメモリが少ないのですか?1500万個の小さな吸盤を製造する場合、1ペニーは150,000ドルになります。

あなたがやることによってもっと学びたいなら、ArduinoやScribbler Robotsのようなものをいじることをお勧めします。言語に関しては、C、C ++、およびアセンブリが一般的なセットですが、Javaを使用することもできます(実際、もし考えたならこのドメイン用に元々設計されていました)他のものも間違いなく使用できます。 LispとMLの両方がデプロイされています。

前述したように、メモリの割り当てとビット単位の操作が非常に重要になり始めているため、アーキテクチャについてもできる限り学びます。


おかげで、この答えは、組み込みシステムを簡単に説明し、本の選択肢を提供するので、受け入れられた答えの私の選択です。
バグスター

4
@ThePlan-組み込みの良いところは、それらをテストできることです。入力と出力が3つしかない場合は、何が機能するかを確認するのは非常に簡単です。ウズベキスタン版のFlashを搭載したトルコ語キーボードのヘブライ語Windows XPでコードを実行した場合に何が起こるかをテストする必要はありません。
マーティンベケット

@MartinBeckett:組み込みシステムの開発の難しさをいくらか平凡にしました。最後の1つには、ナノ秒単位の平均応答要件がありました。それはテストできませんでした-それが正しいことを知る唯一の方法は、設計とレビューによってコードが正しいことを証明することでした。最近ユーザーアプリケーションをコーディングするカウボーイとは異なり、その欠陥はオンラインアップデートによって修正されます。
マッテンツ

さらに、これらのシステムは、人間や他の人がアクセスすることなく、数年から数十年にわたって動作する必要がある場合があります。
世界エンジニア

@mattnz-必ずしも簡単ではありませんが、少なくとも実行可能です。カウボーイのデスクトップコードでは、OS上で完全にテストすることはできず、潜在的に対話する他の数千のアプリで完全にテストすることはできません。
マーティンベケット

5

ここには間違いなく角度が埋め込まれています。しかし、最近では、従来は組み込みデバイスと呼ばれていたプラットフォームで、ますます高度なプラットフォームが使用されています。たとえば、LGとSamsung TVの両方にAPIとアプリストアがあります。Sony TVはAndroidを実行します。


3
...および一部のATMはWindowsを実行します。彼らがブルースクリーンに映るとき、写真は通常thedailywtf.comに行き着きます。そして、私の街では、地元の公共交通機関がキオスクからの毎月のパスを販売しています。一度立ち往生したものを見たことがあります-Windows 2000を実行していました(これは約6か月前でした)!
FrustratedWithFormsDesigner

@FrustratedWithFormsDesigner-おかげで、ここでATMを使わないでください。。。
ワイアットバーネット

ATM =自動預け払い機。別名銀行機械。AKA窓口に行かずに口座からお金を引き出すマシン。
FrustratedWithFormsDesigner

私はそれを知っている、ただ顧客として彼らと仕事をしないでください。。。
ワイアットバーネット

4

コロラド州デンバーで2台のATMが開通したのを見ました。両方とも(当時)コンパス銀行ATMであり、どちらもWindows XPでした。技術者に具体的に何が実行されたのかを尋ねると、彼は「XP Embedded」のようなことを言った。

ですから、ATMプログラミングは最近の組み込みプログラミングとは異なり、標準のWindows開発に似ていると思います。


「最近」だけではありません。Windows NT 3またはOS / 2の実行に使用されるATM。また、表示されるUIは、Internet Explorerで表示されるHTMLページである可能性が最も高くなります。プログラミング言語は何でもかまいません-私はVBで書かれたものに取って代わるJavaシステムに取り組んできました。ATMは実際には、通常とは異なるPCと周辺機器やドライバーを備えています。
マイケルボルグワード

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.