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

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

107 голосов
/ 24 января 2010

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

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

Ответы [ 5 ]

246 голосов
/ 24 января 2010

enter image description here

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

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

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

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

Загрузите программу с именем sandboxie и вы сможете получить опыт работы с песочницей. С помощью этой программы вы можете запустить любую программу в контролируемой среде.

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

enter image description here

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

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

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

27 голосов
/ 24 января 2010

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

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

12 голосов
/ 24 января 2010

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

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

5 голосов
/ 24 января 2010

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

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

0 голосов
/ 24 января 2010

Чаще мы ссылаемся на другую песочницу .


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

...