サンドボックスとは何ですか?


118

私はWikipediaの記事を読みましたが、それが何を意味するのか、それがバージョン管理にどれほど似ているのか本当にわかりません。

誰かがサンドボックスとは何かを非常に簡単な言葉で説明できたら助かります。

回答:


266

ここに画像の説明を入力してください

砂場やサンドボックスは、子供たちが遊ぶことが可能な砂で埋め低い、広い容器や浅いうつ病です。子供がいる多くの住宅所有者は、多くの遊具とは異なり、簡単かつ安価に建設できるため、裏庭に砂場を建設しています。「砂場」は露天掘りの砂山を表すこともあります。

ソフトウェアサンドボックスは、子供が遊ぶために構築されたサンドボックスと同じです。サンドボックスを子供に提供することにより、実際の遊び場(つまりisolated environment)の環境をシミュレートしますが、子供ができることには制限があります。子供が感染したり、子供が他の人に迷惑をかけたりしたくないからです。:)その理由が何であれ、私たちは子供ができることを制限したいだけですSecurity Reasons

ソフトウェアサンドボックスに移動すると、任意のソフトウェア(子)に実行(再生)を許可しますが、ソフトウェア(子)が実行できることにはいくつかの制限があります。実行中のソフトウェアができることについて、私たちは安全で安心できると感じることができます。

アンチウイルスソフトウェアを見て使用しました。正しい?これも一種のサンドボックスです。それはどんなプログラムでもできることに制限を課します。悪意のあるアクティビティが検出されると停止し、ユーザーに「このアプリケーションはリソースにアクセスしようとしています。許可しますか?」と通知します。

sandboxieという名前のプログラムをダウンロードすると、サンドボックスを実際に体験できます。このプログラムを使用すると、制御された環境で任意のプログラムを実行できます。

赤い矢印は、実行中のプログラムからコンピューターに流れる変更を示します。[ハードディスク(サンドボックスなし)]というラベルの付いたボックスには、正常に実行されているプログラムによる変更が表示されます。Hard disk(with sandbox)というラベルの付いたボックスは、Sandboxieで実行されているプログラムによる変更を示しています。アニメーションは、Sandboxieが変更を傍受し、黄色の長方形として示されているサンドボックス内でそれらを分離できることを示しています。また、変更をグループ化すると、一度にすべてを簡単に削除できることも示しています。

ここに画像の説明を入力してください

プログラマーの観点から見ると、サンドボックスはアプリケーションに許可されるAPIを制限しています。ウイルス対策の例では、システムコール(オペレーティングシステムAPI)を制限しています。

もう1つの例は、topcoderのようなオンラインコーディング分野です。コード(プログラム)を送信しますが、サーバーで実行されます。以下のためにsafety、サーバーの、彼らはプログラムのAPIのアクセスレベルを制限する必要があります。つまり、サンドボックスを作成し、その中でプログラムを実行する必要があります。

適切なサンドックスがある場合は、ウイルスに感染したファイルを実行して、ウイルスのすべての悪意のある活動を停止し、それが何をしようとしているのかを自分で確認できます。実際、これはアンチウイルス研究者の最初のステップです。


31

このサンドボックスの定義は、基本的にはテスト環境(開発者の統合、品質保証、ステージなど)を持つことを意味します。これらのテスト環境は本番環境を模倣していますが、本番環境リソースを共有していません。サーバー、キュー、データベース、その他のリソースは完全に独立しています。

より一般的には、サンドボックス化が仮想マシンのようなものを参照するのを見てきました-ベースシステムに影響を与えないように、マシンで実行中のコードを分離します。


1
さて、基本的にサンドボックス化とは、ソフトウェアを常時使用する前に、制御された環境でソフトウェアをテストすることです。正しい?ところで、なぜ「サンドボックス」と呼ばれているのですか?
Lazer、2010年

>>サンドボックス(thefreedictionary.com/sandbox-定義#3)で子供たちのようにソフトウェア/ハードウェアで遊ぶので、なぜそれは「サンドボックス」@eSKayと呼ばれるのですか?
Darmen Amanbayev、2010年

では、サンドボックス環境とステージング環境の違いは何ですか?
Mohammad Jamal Dashtaki

15

具体的な例として、送金を処理するアプリケーションがあるとします。本番環境では、実際のお金が交換されます。サンドボックス化された環境では、すべてがまったく同じように実行されますが、資金は仮想的です。テスト用です。

たとえば、Paypalはそのようなサンドボックス環境を提供しています。


6

ソフトウェア開発の「サンドボックス」にとって、それは孤立した方法で他の人を邪魔することなく開発することを意味します。

バージョン管理と同じではありません。ただし、いくつかのバージョン管理(分岐として)メソッドは、サンドボックスの作成に役立ちます。


0

多くの場合、他のサンドボックスを参照します。


とにかく、サンドボックスはしばしば孤立した環境を意味します。サンドボックスで好きなことができますが、その効果はサンドボックスの外には伝わりません。たとえば、ソフトウェア開発では/usr/lib、ライブラリをテストするために何かをいじったりする必要はありません。

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