Systemy operacyjne
Singularity, czyli lepsze Windows
Zupełnie nowatorski system operacyjny Microsoftu nazywa się Singularity. Nigdy się nie zawiesza, jest odporny na wirusy i dużo szybszy niż Windows, Mac OS czy Linux. Co więcej, można go całkowicie za darmo pobrać z Sieci. Niestety, tak naprawdę, to mało kto będzie miał z niego pożytek. CHIP wyjaśnia dlaczego.
|
Sześć lat temu Microsoft postanowił rozwijać nowy system operacyjny – projekt otrzymał nazwę kodową Singularity. W rezultacie programiści z Microsoft Research napisali zupełnie nowy system, mając na uwadze tylko jedno: by był on niezniszczalny. Gdy rok temu Singularity został po raz pierwszy zaprezentowany na targach techniki TechFest, Microsoft ogłosił następujący komunikat: Singularity nie będzie następcą Windows, lecz ma służyć jako generator pomysłów na innowacje technologiczne. Tym stwierdzeniem gigant z Redmond z pewnością chciał poskromić apetyt fanów Windows na nowy system operacyjny. Powód? Windows nie obsługuje niczego, co Singularity wnosi za sprawą swojej nowatorskiej architektury. Dotyczy to także Windows 7. Jeśli ktoś chciałby sprawdzić to sam, może za darmo pobrać system z www.codeplex.com/singularity. Ci, którzy instalują Windows 7, zadają sobie pytanie: w jaki sposób najlepiej zabezpieczę system? Niepewność zmienia się w ulgę, jeśli przynajmniej nowy skaner AV działa na Siódemce, nie eksploatując nadmiernie jej zasobów. Takie zachowanie użytkowników jest dziś w pełni uzasadnione – praktycznie wszystkie współczesne systemy mają prastarą architekturę. Ich koncepcje pochodzą z czasów, gdy nie było Internetu ani wirusów, a pojedynczy komputer miał wielkość trzydrzwiowej szafy. Większość tradycyjnych systemów operacyjnych, zaś w szczególności ich jądro, jest pisana w języku C. Dzisiaj programiści już tak nie postępują. Dzieje się tak, ponieważ polecenia w C i jego następcy C++ operują bezpośrednio na rejestrach procesora i mają fizyczny dostęp do RAM-u. Jeśli weźmiemy pod uwagę tylko wydajność, będzie to oczywiście zaleta. Z drugiej strony w takim układzie systemowi trudno reagować na błędy w programie, ponieważ nie może on kontrolować, co robi dany fragment kodu. Najbardziej znany przykład to błąd wykonania typu przepełnienie bufora: program lub procedura próbuje coś zapisać w pamięci innej procedury czy innej aplikacji. Jest to typowy sposób działania malware’u – dzięki przepełnieniu bufora może on zdobyć uprawnienia administratora w atakowanym systemie. Podobnie rzecz ma się z nieudolnie napisanymi aplikacjami: stara architektura systemu sprawia, że luka w zabezpieczeniach programu staje się jednocześnie luką w systemie. Kod systemu: Bezpieczne języki programowaniaW Singularity ten problem został rozwiązany: w systemie dozwolony jest jedynie bezpieczny kod generowany przez języki, które zapewniają własne środowisko wykonawcze. Nazywa się ono runtime i funkcjonuje jak wirtualna maszyna na poziomie aplikacji. Dobrze znane języki z runtime’em to przede wszystkim Java oraz wszystkie narzecza z rodziny .NET, na przykład C#. Także kod Singularity składa się prawie całkowicie z C#, a dokładniej z jego opracowanej na użytek tego systemu wersji zwanej Sing#. W przeciwieństwie do C i C++ kompilator języków wymagających runtime’a nie przekłada kodu bezpośrednio na język maszynowy, lecz przekształca go w tzw. kod bitowy. Zaleta: w czasie wykonywania system może sprawdzać poprawność kodu, by np. nie dopuścić do ingerencji w zabronione obszary pamięci. Odbywa się to jednak kosztem wydajności. Jak Singularity to nadrabia, przeczytacie w akapicie „Wydajność”. Ochrona aplikacji: Izolacja wszystkich procesówW przeciwieństwie do tradycyjnych systemów Singularity może izolować i chronić procesy już na poziomie programów. W tym celu dla każdej uruchomionej aplikacji wraz z przynależącymi do niej bibliotekami tworzy on tzw. SIP (Software Isolated Process – proces izolowany programowo) i przydziela mu niezbędne zasoby (patrz grafika po prawej stronie). SIP samodzielnie zarządza pamięcią roboczą, którą ma do dyspozycji. Runtime każdego SIP-a pracuje niezależnie od systemu i daje się przystosowywać do potrzeb uruchomionej aplikacji. W Windows i Linuksie jest inaczej: jeden runtime obsługuje wszystkie programy – nawet jeśli uruchomimy kilka apletów Javy, nadzoruje je tylko jedna instancja Java Runtime Environment (JRE). Gdy aplet się zawiesi w taki sposób, że unieruchomi JRE, również pozostałe uruchomione programy Javy przestają działać. Inaczej jest w Singularity – jeśli jakiś SIP nie działa, nie ma to wpływu na pozostałe uruchomione procesy. Ba, Singularity tworzy odrębne SIP-y nawet dla rozszerzeń aplikacji: np. kontrolki ActiveX uruchamiane przez Internet Explorera to popularna brama dla szkodników, które mogą zawiesić system. W Singularity w takim wypadku zawiesiłby się tylko SIP kontrolki, a przeglądarka i system działałyby dalej bez zarzutu. |


Kup Najtaniej
W całkowitą "wirusoodporność" nie wierzę, w "piaskownicy" też się pewnie dziury znajdą a jak wiadomo Microsoft i szybkie łatanie to oksymoron.
Heh a słyszałes o takiej grupie jak programiści? Albo pasjonaci? Nie wszyscy mają kompa w domu tylko po to żeby sprawdzić pocztę, wejść na Facebooka i posłuchać muzyki ;]
Bardzo zaciekawiła mnie koncepcja tego systemu. Co prawda już słyszę krzyk użytkowników Mac OS że Micro$oft nigdy nie zrobi niczego dobrego, but hell, fajna ciekawostka.
1) sterowników
2) oprogramowania
obie te rzeczy są niezależne od Microsoftu (ten może co najwyżej naciski wywierać, coby takowe powstały,a i to z wyczuciem, bo sobie jeszcze developerzy przypomną że przecież na jednym komputerze można mieć kilka systemów). Pozatym jest jeszcze kwestia programistów, mogło by się okazać że na rynku jest za mało takich którzy znają któryś z "akceptowanych" języków.