Co to jest piaskownica?

118

Przeczytałem artykuł w Wikipedii , ale nie jestem do końca pewien, co to znaczy i jak bardzo przypomina kontrolę wersji .

Byłoby pomocne, gdyby ktoś mógł w bardzo prosty sposób wyjaśnić, czym jest piaskownica.

Lazer
źródło

Odpowiedzi:

266

wprowadź opis obrazu tutaj

Piaskownica lub piaskownicy jest niski, szeroki pojemnik lub płytkie zagłębienie wypełnione piaskiem, w którym dzieci mogą grać. Wielu właścicieli domów z dziećmi buduje piaskownice na swoich podwórkach, ponieważ w przeciwieństwie do większości urządzeń do zabaw, można je łatwo i tanio zbudować. „Piaskownica” może również oznaczać odkrywkową kopalnię piasku.

Cóż, piaskownica programowa nie różni się niczym od piaskownicy zbudowanej dla zabawy dla dziecka. Dostarczając dziecku piaskownicę, symulujemy środowisko prawdziwego placu zabaw (innymi słowy isolated environment), ale z ograniczeniami dotyczącymi tego, co dziecko może zrobić. Ponieważ nie chcemy, aby dziecko zostało zarażone lub nie chcemy, aby powodowało kłopoty innym. :) Jakikolwiek jest powód, po prostu chcemy nałożyć ograniczenia na to, co dziecko może zrobić Security Reasons.

Przechodząc teraz do naszej piaskownicy oprogramowania, pozwalamy dowolnemu oprogramowaniu (dziecku) wykonywać (bawić się), ale z pewnymi ograniczeniami co do tego, co może (on) zrobić. Możemy czuć się bezpiecznie chodzi o to, co potrafi wykonać oprogramowanie.

Widziałeś i korzystałeś z oprogramowania antywirusowego. Dobrze? To także rodzaj piaskownicy. Nakłada ograniczenia na to, co każdy program może zrobić. Po wykryciu złośliwej aktywności zatrzymuje się i informuje użytkownika, że ​​„ta aplikacja próbuje uzyskać dostęp do takich i innych zasobów. Czy chcesz zezwolić?”.

Pobierz program o nazwie sandboxie i zdobądź doświadczenie w piaskownicy. Za pomocą tego programu możesz uruchomić dowolny program w kontrolowanym środowisku.

Czerwone strzałki wskazują zmiany zachodzące z uruchomionego programu na komputerze. Pole oznaczone Dysk twardy (bez piaskownicy) pokazuje zmiany wprowadzone przez program działający normalnie. Pole oznaczone jako Dysk twardy (z piaskownicą) pokazuje zmiany wprowadzone przez program działający w środowisku Sandboxie. Animacja pokazuje, że Sandboxie jest w stanie przechwycić zmiany i wyodrębnić je w piaskownicy, przedstawionej jako żółty prostokąt. Pokazuje również, że grupowanie zmian razem ułatwia usunięcie ich wszystkich naraz.

wprowadź opis obrazu tutaj

Z punktu widzenia programisty, piaskownica ogranicza API, które jest dozwolone dla aplikacji. W przykładzie antywirusowym ograniczamy wywołanie systemowe (API systemu operacyjnego).

Innym przykładem mogą być areny kodowania online, takie jak topcoder. Przesyłasz kod (program), ale działa on na serwerze. Dla safetyserwera powinni oni ograniczyć poziom dostępu API programu. Innymi słowy, muszą utworzyć piaskownicę i uruchomić w niej program.

Jeśli masz odpowiedni program Sandox, możesz nawet uruchomić plik zainfekowany wirusem i zatrzymać całą złośliwą aktywność wirusa i samemu przekonać się, co próbuje zrobić. W rzeczywistości będzie to pierwszy krok badacza oprogramowania antywirusowego.

pazury
źródło
31

Ta definicja piaskownicy zasadniczo oznacza posiadanie środowisk testowych (integracja programisty, zapewnienie jakości, scena itp.). Te środowiska testowe naśladują produkcję, ale nie współdzielą żadnych zasobów produkcyjnych. Mają całkowicie oddzielne serwery, kolejki, bazy danych i inne zasoby.

Częściej widziałem, że piaskownica odnosi się do czegoś w rodzaju maszyny wirtualnej - izolowania części działającego kodu na maszynie, aby nie wpływał na system podstawowy.

Kaleb Brasee
źródło
1
okej, w zasadzie piaskownica polega na przetestowaniu oprogramowania w kontrolowanym środowisku przed użyciem go. dobrze? przy okazji, dlaczego nazywa się to „piaskownicą”?
Lazer
>> dlaczego nazywa się to „piaskownicą” @eSKay, ponieważ ludzie bawią się oprogramowaniem / sprzętem jak dzieci w swoich piaskownicach ( thefreedictionary.com/sandbox - definicja nr 3).
Darmen Amanbayev
Jaka jest więc różnica między środowiskiem piaskownicy a środowiskiem przejściowym?
Mohammad Jamal Dashtaki
15

Na konkretny przykład: załóżmy, że masz aplikację, która zajmuje się przekazami pieniężnymi. W środowisku produkcyjnym wymieniane są prawdziwe pieniądze. W środowisku piaskownicy wszystko działa dokładnie tak samo, ale pieniądze są wirtualne. To jest do celów testowych.

Paypal oferuje na przykład takie środowisko piaskownicy.

JRL
źródło
6

Dla „piaskownicy” w tworzeniu oprogramowania oznacza rozwijanie bez przeszkadzania innym w izolowany sposób.

Nie jest to podobne do kontroli wersji. Ale niektóre metody kontroli wersji (jako rozgałęzienia) mogą pomóc w tworzeniu piaskownic.

Francis
źródło
0

Częściej odwołujemy się do drugiej piaskownicy .


W każdym razie sandbox często oznacza izolowane środowisko . W piaskownicy możesz robić wszystko, co zechcesz, ale jej efekt nie rozprzestrzeni się poza piaskownicę. Na przykład w przypadku tworzenia oprogramowania oznacza to, że nie musisz mieszać w różne rzeczy, /usr/libaby przetestować swoją bibliotekę itp.

kennytm
źródło