Что такое песочница?

118

Я прочитал статью в Википедии , но не совсем уверен, что она означает и насколько она похожа на контроль версий .

Было бы полезно, если бы кто-нибудь мог очень просто объяснить, что такое песочница.

Lazer
источник

Ответы:

266

введите описание изображения здесь

Песочница или песочница является низкой, широким контейнером или мелкой депрессией заполнен песком , в котором могут играть дети. Многие домовладельцы с детьми строят на заднем дворе песочницы, потому что, в отличие от большинства игровых площадок, их можно легко и дешево построить. «Песочница» может также обозначать песчаную шахту открытого карьера.

Ну, программная песочница ничем не отличается от песочницы, созданной для детских игр. Предоставляя ребенку песочницу, мы имитируем среду реальной игровой площадки (другими словами isolated environment), но с ограничениями на то, что ребенок может делать. Потому что мы не хотим, чтобы ребенок заразился, или мы не хотим, чтобы он доставлял неприятности другим. :) Какова бы ни была причина, мы просто хотим наложить ограничения на то, для чего ребенок может делать Security Reasons.

Теперь, переходя к нашей программной песочнице, мы позволяем любому программному обеспечению (ребенку) запускаться (играть), но с некоторыми ограничениями на то, что оно (он) может делать. Мы можем чувствовать себя в безопасности в отношении того, что может делать исполняемое программное обеспечение.

Вы видели и использовали антивирусное программное обеспечение. Правильно? Это тоже своего рода песочница. Он накладывает ограничения на то, что может делать любая программа. Когда обнаруживается вредоносная активность, она останавливается и сообщает пользователю, что «это приложение пытается получить доступ к таким-то ресурсам. Разрешить?».

Загрузите программу под названием sandboxie, и вы сможете испытать ее на себе. Используя эту программу, вы можете запускать любую программу в контролируемой среде.

Красные стрелки указывают на изменения, поступающие от запущенной программы на ваш компьютер. Поле с надписью Hard disk (no sandbox) показывает изменения, внесенные программой, работающей нормально. Поле с надписью Hard disk (with sandbox) показывает изменения, внесенные программой, работающей в Sandboxie. Анимация показывает, что Sandboxie может перехватывать изменения и изолировать их в песочнице, изображенной желтым прямоугольником. Это также показывает, что группировка изменений позволяет легко удалить их все сразу.

введите описание изображения здесь

Теперь с точки зрения программиста песочница ограничивает API, доступный для приложения. В примере с антивирусом мы ограничиваем системный вызов (API операционной системы).

Другой пример - арены онлайн-кодирования, такие как topcoder. Вы отправляете код (программу), но она выполняется на сервере. Для safetyсервера они должны ограничивать уровень доступа API программы. Другими словами, им нужно создать песочницу и запустить в ней вашу программу.

Если у вас есть подходящая песочница, вы даже можете запустить файл, зараженный вирусом, остановить всю вредоносную активность вируса и посмотреть, что он пытается делать. Фактически, это будет первый шаг исследователя антивируса.

когти
источник
31

Это определение песочницы в основном означает наличие тестовых сред (интеграция разработчика, обеспечение качества, этап и т. Д.). Эти тестовые среды имитируют производственную среду, но они не разделяют какие-либо производственные ресурсы. У них есть полностью отдельные серверы, очереди, базы данных и другие ресурсы.

Чаще всего я видел, что песочница относится к чему-то вроде виртуальной машины - изолирует некоторый работающий код на машине, чтобы он не мог повлиять на базовую систему.

Калеб Браси
источник
1
Хорошо, по сути песочница - это тестирование программного обеспечения в контролируемой среде перед его практическим использованием. право? кстати, почему это называется «песочница»?
Lazer
>> Почему это называется «песочницей» @eSKay, потому что люди играют с программным / аппаратным обеспечением, как дети в своих песочницах ( thefreedictionary.com/sandbox - определение №3).
Дармен Аманбаев
Итак, в чем разница между песочницей и промежуточной средой?
Мохаммад Джамал Даштаки
15

Конкретный пример: предположим, у вас есть приложение, которое занимается денежными переводами. В производственной среде обмениваются реальные деньги. В изолированной среде все работает точно так же, но деньги виртуальные. Это для тестирования.

Paypal предлагает, например, такую ​​изолированную среду.

JRL
источник
6

Для «песочницы» в разработке программного обеспечения это означает изолированное развитие, не мешая другим.

Это не похоже на контроль версий. Но некоторый метод контроля версий (например, ветвление) может помочь в создании песочниц.

Фрэнсис
источник
0

Чаще мы говорим о другой песочнице .


В любом случае, песочница часто означает изолированную среду . В песочнице можно делать все, что угодно, но за пределами песочницы эффект не распространяется. Например, в разработке программного обеспечения это означает, что вам не нужно возиться с чем-то, /usr/libчтобы протестировать свою библиотеку и т. Д.

kennytm
источник