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.
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.
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 safety
serwera 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.
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.
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.
źródło
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.
źródło
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/lib
aby przetestować swoją bibliotekę itp.źródło