Linux en güvenli işletim sistemleri midir? Anonim İşletim Sistemleri: En İyi En Güvenli İşletim Sisteminin İncelenmesi ve Karşılaştırılması

Çoğu zaman, benzeri görülmemiş güvenlikleri bağlamında. Hatta bazıları Linux'un piyasadaki en güvenli işletim sistemi olduğunu iddia ediyor. Bu, elbette, kanıtlanamaz bir abartı. Aslında, birçok Linux dağıtımının daha güvenli olduğu ortaya çıktı ve çoğu, kendisini en güvenli kullanıcı sistemlerinden biri olarak kabul eden OpenBSD'den bahsetmeye gerek yok, FreeBSD standartlarının gerisinde kalıyor. Ve bu, her türlü RTOS, IBM i, OpenVMS ve TrustedBSD gibi son derece uzmanlaşmış işletim sistemlerini bir kenara bıraksak bile.

Teoride, elbette, böyle bir ifadenin hala var olma hakkı vardır. Çoğu kullanıcının “açık kaynak işletim sistemi” dediğinde (ve hatta bazen Linux'un işletim sisteminin adı olduğunu düşündüklerinde) ilk olarak Linux'u (yalnızca olmasa da) düşündüklerini düşünürsek, o zaman haklılar. Her şey eşit olduğunda, popüler açık kaynak sistemleri, tescilli işletim sistemlerine göre bir güvenlik avantajına sahiptir. Ancak, Linux ailesi, açık kaynaklı işletim sistemlerinin tek örneği olmaktan uzaktır.

eğer sayarsan Linux sembolü açık kaynaklı yazılım ve MS Windows - kapalı sembolü, o zaman tabii ki “Linux en çok güvenli sistemler"hepsi" kavramı, "hepsi" kavramı ise yalnızca iki ürün kategorisini içerir. Ama dünya basit olmaktan uzak.

Aslında, mevcut tüm işletim sistemleri yelpazesini düşündüğünüzde, Linux işletim sistemleri en güvenli olmaktan çok uzaktır. Ve bazı Linux dağıtımları genellikle yalnızca araştırma amacıyla oluşturulmuştur ve bu nedenle standart yapılandırmada kasıtlı olarak minimum düzeyde korumaya sahiptir. Seviyeler tamamen korumasızdan Gentoo's Hardened gibi canavarlara kadar değişir. Eh, ortalama Linux dağıtımı, elbette, ortada bir yerdedir.

Ayrıca, "" hesaplaması ilk bakışta göründüğü kadar kolay değildir. Güvenlik standartları konusunda bilgili olmayan kullanıcıların (ve bu kullanıcıları kendi çıkarları doğrultusunda manipüle edenlerin) yönlendirdiği ana kriter, tespit edilen güvenlik açıklarının sayısıdır. Ama siz ve ben, sistemde bulunan minimum boşlukların, onu güvenilir bir şekilde korunduğunu düşünmek için bir neden olmadığını biliyoruz. Güvenlikten bahsederken göz önünde bulundurulması gereken birkaç faktör vardır:

Bir kod kalite kontrolünün gerçekleştirilip gerçekleştirilmediği;
varsayılan güvenlik ayarları nelerdir;
düzeltmelerin ne kadar hızlı ve verimli yazıldığı;
yetki dağılımı sisteminin nasıl işlediği;
...ve daha fazlası.

Çalışmayan işletim sistemini, örneğin popüler web tarayıcıları (Firefox), e-posta istemcileri (Thunderbird) ve ofis programları(OpenOffice.org) ile grafik arayüzü Intel x86 mimarisine sahip bir bilgisayarda WIMP, ortalama Linux dağıtımı hiçbir şekilde en güvenli işletim sistemi değildir. Ve her durumda, Ubuntu - belki de en yaygın Linux işletim sistemi - kesinlikle bu unvanı talep edemez.

Ve genel olarak, herhangi bir sistem kategorisinde kesinlikle her bakımdan Ubuntu'dan daha iyi bir büyüklük sırası olacak ve genellikle bunlar sadece diğer Linux dağıtımlarıdır. Ancak bazıları arasında - en güvenli olduğunu iddia ediyor. Durum böyleyken ve Linux sistemlerinin genellikle piyasadaki en güvenli sistemler olduğunu varsayarsak, bu Ubuntu'nun OpenVMS'den bile daha güvenli olduğu anlamına gelir. Üzgünüm, bir şeye inanamıyorum.

Siz de "Linux'un en güvenli işletim sistemi olduğuna" inanıyorsanız, görüşlerinizi yeniden gözden geçirmenizi şiddetle tavsiye ediyorum. Diğer birçok işletim sisteminin ortalamadan çok daha güvenli olduğu ortaya çıktı. Linux dağıtımı... Ek olarak, Linux ailesinin prensipte ne kadar çeşitli olduğu ve işletim sistemlerinin güvenlik derecesini değerlendirmek için hangi farklı kriterlerin benimsendiği göz önüne alındığında, böyle bir ifade en azından idealist geliyor.

"Linux işletim sistemleri en güvenli midir" sorusunun cevabı, hangi sistemlerin karşılaştırılacağına ve işletim sisteminin güvenliğini hangi bakış açısından değerlendireceğinize bağlıdır (tabii ki, açık kaynak kodlu soyut bir karşılaştırmadan bahsetmiyorsak). ve kapalı kaynak yazılım). Ancak, asılsız bir şekilde Linux'un en güvenlisi olduğunu ilan edersek, sorunu çok daha iyi anlayan ve bu temelsiz bakış açısını kolayca paramparça edebilecek biriyle karşılaşma riski her zaman vardır.

Açıklamalarınızda daha net olmanız gerekir, aksi takdirde güvenlik sorununa genel olarak yüzeysel bir bakış açısı benimsemek ve bu tür açıklamaları dinlemeye meyilli olanlar için çok fazla sorun yaratma tehlikesi vardır. Diğer her şey eşit olduğunda, popüler açık kaynaklı işletim sistemlerinin popüler kapalı kaynaklı işletim sistemlerinden daha güvenli olduğunu kastediyorsak, o zaman bunu söylemek gerekir. Varsayılan Ubuntu yapılandırmasının varsayılan yapılandırmadan daha güvenli olduğunu kastediyorsanız

Sık sık mobil işletim sistemlerinin güvenliği hakkında yazıyoruz, bulunan güvenlik açıkları hakkında bilgi yayınlıyoruz, açıklıyoruz. zayıf taraflar koruma ve hack yöntemleri. Android kullanıcıları üzerinde casusluk yapmak, doğrudan bellenime gömülü kötü amaçlı uygulamalar ve kullanıcı verilerinin üreticinin bulutuna kontrolsüz sızması hakkında yazdık. Modern mobil platformlardan hangisi kullanıcı için en güvenli - veya en azından en az güvensiz olanı? Anlamaya çalışalım.

güvenlik nedir?

Aslında ne demek istediğimizi tanımlamadan cihazın güvenliğinden bahsetmek mümkün değil. Fiziksel veri güvenliği? Bir bellek yongasının çıkarılmasıyla düşük seviyeli analiz yöntemlerinden koruma mı yoksa sadece şifreyi bilmeyen ve parmak izi tarayıcısını aldatamayan meraklılardan korunma mı? Verilerin buluta aktarılması güvenlik açısından bir artı mı yoksa eksi mi? Ve hangi bulutta, kime ve nereye, ne tür verilerden kullanıcı bunu biliyor ve kapatabilir mi? Bir platformda veya diğerinde bir Truva atı alma ve hesabınızdaki yalnızca parolalarla değil, aynı zamanda parayla da ayrılma olasılığı nedir?

Mobil platformların güvenlik yönleri tek başına düşünülemez. Güvenlik, iletişim ve uygulama izolasyonundan düşük seviyeli koruma ve veri şifrelemeye kadar cihaz kullanımının tüm yönlerini kapsayan kapsamlı bir çözümdür.

Bugün, en azından bir miktar dağıtımı olan tüm modern mobil işletim sistemlerindeki ana avantajları ve sorunları kısaca açıklayacağız. Liste şunları içerir: Google android, Apple iOS ve Windows 10 Mobile (ne yazık ki Windows Telefon 8.1 artık modern olarak adlandırılamaz). Bonus BlackBerry 10, Sailfish ve Samsung Tizen'e gidecek.

Yaşlı Adamlar: BlackBerry 10

Mevcut platformların açıklamasına geçmeden önce şimdiden yarıştan ayrılan BlackBerry 10 hakkında birkaç söz söyleyelim. Neden BlackBerry10? Bir zamanlar, sistem aktif olarak "en güvenli" mobil işletim sistemi olarak tanıtıldı. Bazı açılardan gerçekten öyleydi, her zaman olduğu gibi bir şey abartılmıştı, bir şey üç yıl önce alakalıydı, ama bugün umutsuzca modası geçmiş. Genel olarak BlackBerry'nin güvenlik yaklaşımını beğendik; ancak, başarısız değildi.

  • Mikro çekirdek mimarisi ve güvenilir önyükleme sistemi gerçekten güvenlidir. Sistemin tüm varlığı boyunca hiç kimse süper kullanıcı hakları almadı (bu arada, ciddi ofisler de dahil olmak üzere tekrar tekrar denediler - BlackBerry her zaman bir yabancı olmaktan uzaktı).
  • Cihazın kilidini açmak için şifreyi atlamak da imkansızdır: on başarısız denemeden sonra cihazdaki veriler tamamen yok edilir.
  • Yerleşik bulut hizmetleri ve hedeflenen kullanıcı takibi yoktur. Kullanıcı bulut uygulamasını kendisi kurmaya karar vermediği sürece (OneDrive, Box.com, Dropbox gibi hizmetler isteğe bağlı olarak desteklenir) dışarıya veri aktarılmaz.
  • BES (BlackBerry Enterprise Services) aracılığıyla kurumsal güvenlik ve uzaktan kontrol politikalarının örnek uygulaması.
  • Hem yerleşik depolama hem de bellek kartları için güçlü (ancak isteğe bağlı) şifreleme.
  • Bulut yedeklemesi yoktur ve yerel yedeklemeler BlackBerry ID'ye bağlı güvenli bir anahtar kullanılarak şifrelenir.
  • Veriler varsayılan olarak şifrelenmez. Ancak şirket, çalışanların cihazlarında şifrelemeyi etkinleştirebilir.
  • Veri şifreleme bloğu, eşler arası; koruma sınıfı kavramı ve iOS'taki Anahtarlık'a uzaktan bile benzeyen herhangi bir şey yoktur. Örneğin, Cüzdan uygulaması verileri şuradan alınabilir: destek olmak.
  • BlackBerry ID hesabınızda kullanıcı adınız ve parolanızla oturum açabilirsiniz; iki faktörlü kimlik doğrulama desteklenmez. Bugün bu yaklaşım tamamen kabul edilemez. Bu arada, BlackBerry ID'den şifreyi biliyorsanız, bu hesapla ilişkili oluşturulan yedeğin şifresinin çözüleceği anahtarı çıkarabilirsiniz.
  • Fabrika ayarlarına sıfırlama koruması ve hırsızlığa karşı koruma çok zayıftır. Otomatik yükleyici monte edilirken veya (BB 10.3.3'e kadar) bellenim sürümü indirilirken BlackBerry Protect uygulamasının değiştirilmesiyle bu işlem atlanır.
  • Wi-Fi etkin noktalarını kullanarak belirli bir cihazı izlemeyi mümkün kılan MAC adresi rastgeleliği yoktur.

Başka bir zil: BlackBerry, kolluk kuvvetleriyle isteyerek işbirliği yapıyor ve maksimum olası yardım BlackBerry akıllı telefonları kullanan suçluları yakalamak için.

Genel olarak, uygun konfigürasyonla (ve kural olarak BlackBerry 10'u seçen kullanıcılar, cihazlarını oldukça yetkin bir şekilde kurdular), sistem hem kabul edilebilir bir güvenlik seviyesi hem de yüksek seviye mahremiyet. Ancak, "deneyimli kullanıcılar", akıllı telefonlarına jailbreak yapılmış bir sürüm yükleyerek tüm avantajları geçersiz kılabilir. Google Oyun Hizmetler ve "Big Brother" denetiminin tüm zevklerini almak.

Egzotik: Tizen ve Yelken Balığı

Tizen ve Sailfish, pazarın açık ara yabancılarıdır. Yabancılar, %0,1'in altına düşen Windows 10 Mobile veya BlackBerry 10'dan bile daha fazla. Onların güvenliği, "zor Joe"nun güvenliğidir; Onun hakkında çok az şey biliniyor, çünkü onlar kimseyi pek ilgilendirmiyor.

Bu yaklaşımın ne kadar haklı olduğu, Tizen'de yaklaşık kırk kritik güvenlik açığı bulan yakın zamanda yayınlanan bir çalışma ile değerlendirilebilir. Burada sadece uzun zamandır bilinenleri özetleyebiliriz.

  • Ciddi bağımsız araştırmalar yapılmadıysa, platformun güvenliği hakkında konuşamayız. Platform dağıtılmadan önce kritik güvenlik açıkları ortaya çıkarılmayacaktır. Ama çok geç olacak.
  • Yalnızca platformun düşük yaygınlığı nedeniyle kötü amaçlı yazılım yoktur. Ayrıca, bir şekilde, koruma.
  • Güvenlik mekanizmaları yetersizdir, yoktur veya yalnızca kağıt üzerinde açıklanmıştır.
  • Herhangi bir sertifika, yalnızca cihazın sertifikayı geçtiğini söyler, ancak gerçek güvenlik düzeyi hakkında kesinlikle hiçbir şey söylemez.

Jolla yelken balığı

Yelken Balığı ile durum belirsizdir. Bir yandan, sistem canlı görünüyor: temelinde, zaman zaman bazı cihazlar duyuruluyor ve hatta Rus Postası bile son derece yüksek bir fiyat etiketi ile çok sayıda cihaz satın aldı. Öte yandan, kullanıcılara üç (!) Yıllık ucuz bir Çin akıllı telefonunun özelliklerine sahip olan Sailfish'i çalıştıran bir model için Android'de güçlü bir orta kademe maliyetini ödemeleri teklif ediliyor. Bu yaklaşım tek durumda işe yarayacaktır: Yelken Balığı'ndaki modeller bütçe parası için satın alınır ve daha sonra alt düzey devlet memurlarına dağıtılırsa. Tabii ki, işlemdeki katılımcılar bu yaklaşımla bir tür güvenlik düşünmekle hiç ilgilenmiyorlar.

Ve devlet sertifikalarının varlığı bile, açık kaynağın sağlamadığı şekilde herhangi bir garanti sağlamaz. Örneğin, Heartbeat güvenlik açığı, kaynak kodu içinde bulunan yönlendiricilerin belleniminde bulundu. açık Erişim on yıldan fazla. Aynı zamanda açık kaynak kodlu olan Android işletim sisteminde düzenli olarak yeni güvenlik açıkları keşfediliyor.

Egzotik işletim sistemleri, altyapı eksikliği, son derece sınırlı bir cihaz ve uygulama seti, kurumsal güvenlik politikaları için az gelişmiş kontroller ve şüpheli güvenlikten daha fazlasıdır.





Samsung Tizen

Samsung Tizen, diğer "egzotik" platformlardan ayrılıyor. Ubuntu Touch ve Sailfish'ten farklı olarak Tizen, ortak bir sistemdir. Onlarca akıllı model onun kontrolünde çalışıyor. Samsung TV'ler, ve akıllı saat ve birkaç uygun fiyatlı akıllı telefon (Samsung Z1 – Z4).

Tizen fark edilir bir dağılım elde eder etmez, bağımsız araştırmacılar sistemi ele aldı. Sonuç hayal kırıklığı yarattı: İlk aylarda kırktan fazla kritik güvenlik açığı bulundu. Tizen güvenlik araştırmasını yürüten Amikhai Neiderman'dan alıntı yapmak gerekirse:

Bu muhtemelen şimdiye kadar gördüğüm en kötü kod. Yapılabilecek tüm hatalar yapıldı. Açıkçası, kod, güvenlik hakkında hiçbir şey anlamayan biri tarafından yazılmış veya gözden geçirilmiştir. Bir öğrenciden sizin için yazılım yazmasını istemek gibi.

Genel olarak, sonuç açıktır: Kurumsal bir ortamda egzotik, nadiren kullanılan bir sistemi kullanmak, bilgisayar korsanları için açık bir davettir.


Apple iOS

Elma öveceğiz. Evet, bu kapalı bir ekosistem ve evet, fiyat etiketi teknik yeteneklerle kıyaslanamaz, ancak yine de iOS çalıştıran cihazlar en güvenli ortak ticari çözümlerdi ve öyle kalmaya devam ediyor. Bu, esas olarak iPhone 6s ve 7 nesillerinin (ve belki de SE) mevcut modelleri için geçerlidir.

Eski cihazlar daha az dayanıklıdır. Eski iPhone'lar 5c, 5s ve 6 için, önyükleyicinin kilidini açmanın ve cihaz şifresine saldırmanın yolları zaten var (detaylar için geliştiricilerle iletişime geçebilirsiniz - Cellebrite). Ancak bu eski cihazlar için bile, önyükleyiciyi kırmak zaman alıcı ve ucuz değil (Cellebrite hizmet için birkaç bin dolar alıyor). Sanırım kimse bu şekilde benim veya telefonunuzu kıramaz.

Peki, bugün elimizde ne var. Fiziksel güvenlikle başlayalım.

  1. Tüm iPhone'lar ve iPad'ler iOS 8.0 ve üstü (ve şu anda daha da güvenli olan iOS 10.3.2), o kadar güçlü koruma yöntemleri kullanıyor ki, üreticileri bile hem resmi olarak hem de gerçekte engellenen cihazlardan bilgi almayı reddediyor. Bağımsız araştırmalar (Elcomsoft laboratuvarları dahil) Apple'ın iddialarını doğrulamaktadır.
  2. IOS, cihazın çalınması veya kaybolması durumunda bir veri koruma sistemi sağlar (ve çalışır). Uzaktan veri silme ve cihaz kilitleme mekanizmaları mevcuttur. Saldırgan hem cihazın şifresini hem de hesaptan ayrı bir şifreyi bilmiyorsa, çalınan bir cihazın kilidi açılamaz ve yeniden satılamaz. elma kayıtları Sahip kimliği. (Ancak, Çinli ustalar için her şey mevcuttur ve cihazın donanımını kurcalamak bu korumayı atlayabilir ... iPhone 5'ler ve daha eski cihazlar için.)
  3. Kutudan çıktığı gibi katmanlı veri şifrelemesi mükemmel bir şekilde tasarlanmış ve uygulanmıştır. Veri bölümü her zaman şifrelenir; bir blok şifresi, her bir blok için benzersiz olan anahtarlarla birlikte kullanılırken, bir dosyanın silinmesi karşılık gelen anahtarları siler, bu da silinen verilerin kurtarılmasının temelde imkansız olduğu anlamına gelir. Anahtarlar, Secure Enclave sistemine dahil olan özel bir yardımcı işlemci tarafından korunmaktadır ve bir jailbreak ile bile onları çıkaramazsınız (denedik). Açılış verileri, siz doğru parolayı girene kadar şifreli kalır. Ayrıca, bazı veriler (örneğin, cihaza indirilen web sitelerinin şifreleri) E-posta) ayrıca güvenli Anahtarlık deposunda şifrelenir ve bazıları jailbreak ile bile çıkarılamaz.
  4. Bir iPhone'u bilgisayarınıza takıp ondan veri (fotoğraflar dışında) indiremezsiniz. IOS, bilgisayarlarla güven ilişkileri kurma yeteneği sağlar. Bu, güvenilir bilgisayarın telefonu yedeklemesini sağlayan bir çift şifreleme anahtarı oluşturur. Ancak bu olasılık bile kurumsal güvenlik politikası veya tescilli Apple Configurator uygulaması kullanılarak sınırlandırılabilir. Yedeklemelerin güvenliği, yükleme yeteneği ile sağlanır. karmaşık şifre(Parola, yalnızca bir yedekten verileri geri yüklemek için gereklidir, bu nedenle günlük kullanıma müdahale etmez).
  5. IPhone kilit açma oldukça güvenli bir seviyede yapılır. Kilidi açmak için standart dört basamaklı bir PIN veya daha karmaşık bir şifre kullanabilirsiniz. Cihazınızın kilidini açmanın tek ek yolu parmak izinizdir. Aynı zamanda, mekanizmanın uygulanması, bir saldırganın onu kullanmak için çok az fırsatı olacak şekildedir. Parmak izi verileri şifrelenir ve şuradan silinir: rasgele erişim belleği kapatıldıktan veya yeniden başlatıldıktan sonra cihazlar; bir süre sonra cihazın kilidi hiç açılmamışsa; beş başarısız denemeden sonra; bir süre sonra, kullanıcı cihazın kilidini açmak için şifreyi hiç girmediyse.

    IOS, on başarısız oturum açma girişiminden sonra verileri otomatik olarak silme seçeneğine sahiptir. BlackBerry 10'dan farklı olarak bu seçenek işletim sistemi düzeyinde kontrol edilir; iOS'un eski sürümleri için (iOS 8.2'ye kadar), bu sorunu aşmanın yolları vardır.

Kullanıcı takibi ve sızıntılar ne olacak?

IOS, kendi üzerinden değiştirilebilir bir bulut senkronizasyonuna sahiptir elma servisi iCloud. Özellikle, iCloud genellikle şunları depolar:

  • cihaz verilerinin yedek kopyaları;
  • senkronize edilmiş veriler - iCloud Keychain'deki arama kaydı, notlar, takvimler, şifreler;
  • Safari tarayıcısında şifreler ve ziyaret kaynakları geçmişi;
  • fotoğraflar ve uygulama verileri.

iOS'taki her tür bulut senkronizasyonu, yalnızca iCloud'u kapatıp iCloud Drive'ı devre dışı bırakarak kapatılabilir. Bundan sonra, Apple'ın sunucularına hiçbir veri iletilmez. Bazı mekanizmaların çok sezgisel çalışmamasına rağmen (örnek olarak - aramaların senkronizasyonunu kapatmak için, aslında dosya ve fotoğrafları senkronize etmek için tasarlanmış iCloud Drive'ı kapatmanız gerekir), bulut hizmetlerini tamamen kapatmak tamamen devre dışı bırakır senkronizasyon.

IOS, gözetlemeyi önlemek için bir mekanizma sağlar (sistem, sabit gerçek olanlar yerine dış dünyaya Wi-Fi ve Bluetooth modüllerinin rastgele tanımlayıcılarını sunabilir).

Tamam, peki ya kötü amaçlı yazılım? iOS'ta kötü amaçlı yazılım yüklemek neredeyse imkansızdır. Birkaç izole durum vardı (saldırıya uğramış geliştirme araçları kullanılarak oluşturulan uygulamalar aracılığıyla), ancak bunlar hızla yerelleştirildi ve düzeltildi. O zaman bile, bu uygulamalar fazla zarar veremezdi: iOS'ta, her uygulama hem sistemin kendisinden hem de bir sanal alan kullanan diğer uygulamalardan güvenilir bir şekilde yalıtılmıştır.

İOS'ta, uygulama izinleri üzerinde ayrıntılı kontrolün uzun zaman önce uygulandığına dikkat edilmelidir. Çalışma yeteneği gibi şeyler için her uygulamayı ayrı ayrı etkinleştirebilir veya devre dışı bırakabilirsiniz. arka fon("saf" Android'de bu mümkün değildir!), konuma erişim, bildirimler ve benzerleri. Bu ayarların varlığı, bu tür izlemeyi ana işleri haline getiren uygulamalar tarafından izlemeyi etkin bir şekilde kısıtlamanıza olanak tanır (bu, hem Facebook sınıfı uygulamalar hem de Angry Birds gibi oyunlar için geçerlidir).

Son olarak, Apple, eski cihazlarda bile iOS'u düzenli olarak günceller ve neredeyse anında bulunan güvenlik açıklarını giderir (Android'e kıyasla). Bu durumda, güncellemeler tüm kullanıcılara aynı anda ulaşır (yine "farklı").

İlginç bir şekilde, sürüm 9'dan itibaren iOS, orta sınıftaki adamın saldırılarına karşı müdahale ve sertifika ikamesi ile korunmaktadır. Ve Elcomsoft laboratuvarında, sistemin 8. versiyonunda iCloud yedekleme protokolünü tersine çevirmek mümkün olsaydı, daha yeni işletim sistemlerinde bu teknik nedenlerle işe yaramadı. Bir yandan, iletilen verilerin güvenliğini garanti ediyoruz; Öte yandan, "gereksiz" bilgilerin sunuculara gönderilmeyeceğinden güvenilir bir şekilde emin olmamızın hiçbir yolu yoktur.

Devam sadece katılımcılara açıktır

Seçenek 1. Sitedeki tüm materyalleri okumak için "site" topluluğuna katılın

Belirtilen süre boyunca topluluğa üyelik, TÜM Hacker malzemelerine erişmenizi sağlayacak, kişisel kümülatif indiriminizi artıracak ve profesyonel bir Xakep Puanı kazanmanıza izin verecektir!

Her gün akıllı telefonlar bilgisayar korsanları ve kötü amaçlı yazılımlar tarafından saldırıya uğrar. yazılım bu nedenle, kullanıcının kişisel verilerini korumak için işletim sistemi mümkün olduğunca güvenli olmalıdır.

Bu yazımızda popüler mobil işletim sistemlerine göz atacağız ve hangisinin en güvenli olduğunu öğreneceğiz.

Android

Google'ın mobil işletim sistemi, güvenlik açısından en zayıf olanlardan biridir. Uzmanlar, bir saldırganın sadece bir multimedya mesajı göndererek bir akıllı telefonu hackleyebileceğini bildiriyor. Ancak, üzerinde en son sürümler Android, güvenliğe özel önem veriyor, bu nedenle durum çok kritik değil.

Android açık kaynaklı bir sistem olduğu için geliştiriciler kendi amaçları için ücretsiz olarak kullanabilirler. Başka bir deyişle, Android, bilgisayar korsanları ve kötü amaçlı yazılımlar için büyük bir hedeftir. Geçen yıl, kötü amaçlı yazılımların yaklaşık %97'si özellikle Android cihazlar için oluşturuldu.

Google Play Store, uygulamaları indirirken ve kurarken tam güvenliği garanti edemez ve programları başka kaynaklardan indirirseniz virüs bulaşma riski hızla artar.

Gerçek şu ki, Android dünyada en çok kullanılan mobil işletim sistemidir, bu da hacklemenin daha karlı olduğu anlamına gelir.

Böğürtlen

BlackBerry akıllı telefonların popülaritesi son birkaç yılda önemli ölçüde düştü. iyi geri bildirim en son cihazlar hakkında. Şirket, kendi mobil işletim sistemini Android olarak değiştirdi ve bu da onu hala arızadan kurtarmadı.

Birçok hükümet yetkilisi kullandı. BlackBerry akıllı telefonlarçünkü onlar en güvenli olarak kabul edildi.

BlackBerry işletim sistemi, akıllı telefon modelinden bağımsız olarak uçtan uca şifreleme kullandı. Ne yazık ki, BlackBerry geçmişte kaldı.

Ubuntu Dokunuşu

Geçen yıl Ubuntu çalıştıran ilk akıllı telefonun piyasaya sürülmesinden bu yana, birçok kişi üreticilerin Android'den Android'e geçeceğini tahmin ediyor. Linux sistemi Ubuntu'dur.

Ubuntu Touch hakkında bilgisi olmayanlar için tamamen ücretsiz olan ve Free/Libre Open-Source Software topluluğu ve Canonical Ltd. tarafından desteklenen Android benzeri açık kaynak kodlu bir işletim sistemidir.

Yazılarımızdan birinde, nasıl yapabileceğinizden bahsettik.

Ubuntu'nun yüksek düzeyde virüs koruması vardır, ancak açık kaynaklı bir işletim sistemidir, bu nedenle kötü amaçlı yazılımlar mobil cihazlara yine de girebilir.

Ubuntu App Store, Google Play Store'dan daha güvenlidir. Ayrıca, sahibi mobil cihaz uygulamayı yüklemeden önce belirli izinler vermelidir.

Diğer bir artı, Linux'un bugün en popüler platform olmadığı gerçeğidir, bu nedenle saldırganların bu sisteme girmek için çok az istekleri vardır. Durumu anlamanız için Ekim 2015 itibariyle toplam 15 kişi hack'ten etkilendi.

Netflix, Snapchat ve Dropbox gibi büyük şirketler Ubuntu işletim sistemini kullanıyor. Hala etkilenmediyseniz, Uluslararası Uzay İstasyonu ve Büyük Hadron Çarpıştırıcısı personelinin de Ubuntu üzerinde çalıştığını öğrendikten sonra belki fikrinizi değiştirirsiniz.

Windows Phone ve Windows 10 Mobil

Microsoft mağazasını koruyor Windows uygulamaları Uygulama mağazası kısa bir tasma ile, bu nedenle Windows Phone akıllı telefonunuzun jailbreak'li olmasını istemiyorsanız, uygulamaları indirmek için yalnızca resmi uygulamaları kullanmalısınız. Windows Phone'daki uygulamaların temel özelliği, siz izin vermediğiniz sürece birbirleriyle etkileşime girmemeleridir.

Özellik Yeni sürüm ameliyathane Windows sistemleri 10 Mobil, kaybolması durumunda akıllı telefonunuzu kilitleyen bir cihaz şifrelemesidir. Bunun için kullanılır sofistike teknoloji BitLocker. Şifreleme anahtarınız yoksa dosyalarınız okunamaz. Şifreleme anahtarı, Ayarlar> Sistem> Cihaz şifrelemesine girilmesi gereken bir PIN'dir.

iOS

Tıpkı Google Play Store'un Android uygulamaları için ana mağaza olması gibi, App Store da iOS cihazları için tüm uygulamaları saklar.

İşletme iOS sistemi kapalı. Bu, yalnızca Apple'ın platformda değişiklik ve güncelleme yapabileceği anlamına gelir. Görünüşe göre bu, maksimum güvenlik seviyesini garanti ediyor, ancak tam olarak değil.

Örneğin, Çin mesajlaşma uygulaması WeChat'in yaklaşık 500 milyon kullanıcısı, Apple tarafından onaylanan değiştirilmiş bir Xcode sürümünün yayınlanmasından sonra saldırıya uğradı.

Birçoğunuz ünlü iCloud hesaplarının hacklendiğini duymuşsunuzdur. Daha önce Apple güvenliğin garantörü olsaydı, bugün şirket bu konuda o kadar uyanık değil.

Popülerlik açısından, iOS yalnızca Android'den sonra ikinci sıradadır, bu nedenle saldırganların işletim sisteminde güvenlik açıkları araması şaşırtıcı değildir.

İOS'un olumlu nitelikleri arasında, mobil platformun hacklenmesinin gerçekten zor olduğunu belirtmekte fayda var. Çok uzun zaman önce, FBI bir teröristi gözaltına aldı ve ardından Apple'dan iPhone'undan veri sağlamasını istedi. Şirket reddetti. Sonunda federal servisler, bir iOS cihazını 1,3 milyon dolara jailbreak yapmayı kabul eden bir hacker buldu.İOS'u jailbreak yapmak bu kadar kolay olsaydı, o kadar para vermezlerdi değil mi?

Kazanan kim?

Her işletim sisteminin kendine göre artıları ve eksileri vardır.

Android:İnternetteki eylemlerinizi ve şüpheli bağlantıları, mesajları ve MMS'leri yakından izlerseniz ve ayrıca yalnızca Google Play Store'dan uygulamalar indirirseniz, muhtemelen Android cihazınızdaki hack'leri ve virüsleri asla bilemezsiniz.

Nexus akıllı telefonlar, şimdi Google Pixel, en çok güvenli cihazlar Android'de.

Böğürtlen:İşletim sisteminin eski sürümleri Böğürtlen gerçekten yüksek bir güvenlik seviyesi vardı. Ancak şirket, cihazları için Android platformunu kullanmaya geçti, bu nedenle diğer Android akıllı telefonlarla aynı enfeksiyon riski altındalar.

Ubuntu:İşletim sistemi bugüne kadarki en güvenli sistem gibi görünse de, aktif kullanıcı sayısı arttığında (ve eğer) böyle kalacağından emin değiliz.

Windows Phone: Aynı şey Windows akıllı telefonlar için de söylenebilir. Pazar payı arttıkça hack ve virüs saldırılarının sayısı da artıyor. Ancak, üzerinde şu an sistem çok güvenilir görünüyor.

iOS: Son zamanlardaki bir dizi güvenlik endişesine rağmen, Apple, kullanıcıları arasında yüksek düzeyde bir güvene sahiptir. İşletim sisteminin tescilli olduğu gerçeği göz önüne alındığında, bir şirket kötü amaçlı yazılımları hızla tespit edebilir ve güvenlik açığını kapatmak için gerekli adımları atabilir.

Şu anda önerdiğimiz en güvenli akıllı telefon hangisi? Daha eski bir cihazı tercih ediyorsanız, BlackBerry Priv iyi bir seçenektir. Daha yeni bir şey istiyorsanız, Ubuntu çalıştıran bir cihazı tercih etmelisiniz.

Üyeler kişisel bilgisayarlarözel tercih Windows çeşitleri... Popüler yazılımların çok yönlülüğü ve kullanılabilirliği, Microsoft icatlarını ev ve kurumsal kullanıcılar arasında yaygın hale getirdi. Verimlilik, rahat kullanım ve hızlı problem çözme için önemlidir, bu nedenle en çok hangi sistemin bilindiğini sormaya değer. hızlı pencereler.

Windows işletim sistemleri derecelendirmesi

Microsoft bir dizi yayınladı Windows ürünleri... Çıkış tarihine bağlı olarak, karakteristik performans perspektifleri gösterebilen bireysel yazılım seçenekleri arasında bir ayrım yapılır. Avantajları ve dezavantajları keşfetmek için mevcut seçeneklerin her birini tanımaya değer.

  • Windows 8 (8.1);

En hızlı Windows, teknik parametreleriyle belirlenir. Aynı donanım üzerindeki yazılımın performansını karşılaştırmak için aynı konfigürasyona sahip bilgisayarlara farklı yazılım seçenekleri yüklemeniz gerekecektir.

Temel test katılımcıları özel araçlar işin belirli yönlerinin performansını belirlemeye yardımcı olan görüntüler, hesaplamalar, indirmeler ve diğer işlemler. Birşey üzerine araştırma yapmak bu konu Mevcut derecelendirmeyi basitçe özetlemenizi sağlayan farklı kaynaklar tarafından yürütülür.

Windows'u hızlı yapan nedir

Yazılım paketinin her bir versiyonu, gelişmiş bir işçilik seviyesi ile karakterize edilir. Performansın çoğu, bilgisayarın yerel kaynaklarına bağlıdır - yapılandırma ve parametreler. Donanımın gücü, her işletim sistemini geleceğe yönelik ve üretken hale getirme yeteneğine sahiptir. Ayrıca, optimizasyon sorunları açık kalır - belleği temizleme, önbelleği silme ve diğer hileler. Hızlı işletim sistemlerinin derecelendirmesinin temizliği, yalnızca sistemin çalışmasını aynı ekipman kapasiteleriyle karşılaştırırken mümkündür.

İşletim sisteminin kendisi, kendi optimizasyonu ile performansı etkiler. Donanım kaynakları performans için önemlidir, ancak yazılım özellikleri, mevcut kaynakları kullanmanın doğruluğunu ve faydasını etkiler. Bu, yanıt hızında tutarsızlıkların oluşmasının nedeni olur. farklı sistemler aynı bilgisayarlarda.

Windows Vista, XP'den çok daha sonra 2007'de çıktı. Vista, kullanıcı tercihlerini bulamadı. Vista yavaş ve kararsız olarak bilinir hale geldi, bu nedenle sunulan gelişmeler arasında son sırada yer alıyor. Vista'nın güzel bir tasarımı ve düşünceli bir konsepti var, ancak modern kullanıcı için Vista'yı kurmanın önemli bir avantajı yok.


Windows XP 2001 yılında ortaya çıktı ve hızla yayıldı. Popüler XP'nin öncülleri ME ve 95 idi. Eski sistemler, sonraki yeniliklerle hızla piyasadan çekildi. XP seçeneği, kaynakları zayıf olan eski bilgisayarlar için uygun kabul edilir. Bugüne kadar XP, az miktarda RAM ve küçük bir saat frekansı işlemci.


XP'nin popülaritesi 2012'ye kadar sürdü. Gelecekte, şirket ürünü desteklemeyi bıraktı, ancak güncellemelerin olmaması performansı ve beklentileri etkilemiyor. Yeni yazılım ürünlerinin piyasaya sürülmesi, XP'yi dördüncü sıraya taşıdı.

7 numaralı işletim sistemi 2009 yılında geliştirildi. Yeni sürüm kullanıcılar tarafından kısa sürede beğenildi, bu yüzden popülerlik kazandı ve bilgisayarlara kuruldu. Sürüm 7, güncellenmiş bir alternatif sağlayarak XP'nin yerini alan ilk sürüm oldu.


Yeni sistemönemli yazılım geliştirmeleri aldı, sorunsuz çalıştı ve çekici bir tasarım sergiledi. XP ile işletim sistemi rekabeti hiç şüphe bırakmadı - hızlı ve verimli işletim sistemi herhangi bir şikayet almadı. Şirketin yeni gelişimi, ağlarla bağımsız olarak nasıl çalışılacağını, harici sistemler için sürücülerin nasıl kurulacağını ve virüslere karşı nasıl korunacağını öğrendi.

Güncellenen işlevsellik, Windows 7'yi popüler hale getirdi. Windows'u kullanma 7 bugün bile gerçekleşmektedir. Gerçekleşen faydalar yazılım ürünüİşletim sistemini derecelendirmede üçüncü sıraya koyun ve üretken Windows 7'nin yüklenmesini önermek için neden verin.

2: Windows 8 (8.1)

Windows 8 2012 yılında piyasaya sürüldü. Standart arayüz, hareketli karoların kullanımı için düzenlenmiştir. Başlat düğmesi, bir başlangıç ​​ekranı ile değiştirildi. Başlatma düğmelerini ayarlama ve gruplandırma işlevselliği kullanıcıları memnun etti ve kişiselleştirme olasılıklarını genişletti.


Windows 8, bir uygulama mağazası ve hesap desteği sunar. Microsoft kayıtları cihaz hesaplarını birleştirmek için Windows 8, ilginç bir alternatif olmasına rağmen, sürüm 7'nin popülaritesini alamadı. Ortalama kaynak rezervine sahip bilgisayarlar için OS 8'in yüklenmesi önerilir, çünkü ihtiyaçlar hızlı iş Windows 8, klasik XP'den daha yüksektir.

Varyant, 2015 yılında derecelendirmenin ilk pozisyonunu terk etti. Yeni işletim sistemi birleştirildi güçlü en son seçenekler- 7 ve 8. 10 hızla popülerlik kazandı ve eski varyantların yerine kuruldu. 10'a ücretsiz yükseltme olasılığı, şirketin ek bir kozu haline geldi.


Windows 10 cihazlar tarafından desteklenir: bilgisayarlar, netbook'lar, dizüstü bilgisayarlar, tabletler ve telefonlar. OS 8 arayüzü, masaüstü ve kontroller tanıdık ve rahat hissettiriyor. Çözümlerin yeniliği, günlük süreçlerin, programların ve oyunların anında çalışmasına yol açtı. Geliştiriciler, Windows 10 ve Xbox One'da cihazları bağlamak için işlevsellik uyguladılar.

İyileştirilmiş güvenlik özellikleri, Windows 10'u virüs saldırıları ve kötü amaçlı yazılım... Biyometrik bilgileri ve diğer özel işlevleri kullanma işlevi eklendi. Listelenen özelliklerin kombinasyonu, derecelendirmede kendinden emin bir ilk konumun gerekçesi haline gelir.

TV'niz en son ne zaman aniden kapandı veya kritik bir hatayı düzeltmek için Web'den acilen bir yazılım yaması indirmenizi istedi? Sonuçta, çok eski olmayan bir TV'niz varsa, o zaman aslında aynı bilgisayardır - merkezi bir işlemciye sahip, büyük monitör, radyo sinyallerinin kodunu çözmek için bir tür analog elektronik, birkaç özel giriş / çıkış cihazı (uzaktan kumanda, yerleşik kaset veya DVD sürücüsü) ve RAM'de yazılmış yazılım. Bu retorik soru bizi bilgisayar endüstrisinin konuşmaktan hoşlanmadığı tatsız bir konuya geri getiriyor. Neden TV'ler, DVD oynatıcılar, MP3 oynatıcılar, Cep telefonları ve yazılıma sahip diğer elektronik cihazlar oldukça güvenilir ve iyi korunuyor, ancak bilgisayarlar değil mi? Elbette bunun birçok “açıklaması” var: bilgisayarlar esnek sistemlerdir, kullanıcılar yazılımı değiştirebilir, endüstri Bilişim Teknolojileri henüz yeterince gelişmemiş, vb. Ama bir çağda yaşadığımız için büyük çoğunluğun bilgisayar kullanıcıları teknik konularda bilgili değiller, bu tür "açıklamalar" onlara inandırıcı gelmiyor.

Tüketici bir bilgisayardan ne bekler? TV'den gelenin aynısı. Satın alırsın, prize takarsın ve önümüzdeki on yıl boyunca harika çalışır. BT profesyonellerinin bu beklentileri dikkate alması ve bilgisayarları televizyonlar kadar güvenilir ve güvenli hale getirmesi gerekiyor.

İşletim sistemi, güvenilirlik ve koruma açısından en zayıf nokta olmaya devam ediyor. Uygulama programlarının birçok kusur içermesine rağmen, işletim sistemi hatasız olsaydı, uygulama programlarının yanlışlığı şimdiki kadar ciddi sonuçlar doğurmazdı, bu yüzden bu yazıda işletim sistemlerine odaklanacağız.

Ancak ayrıntılara girmeden önce, güvenilirlik ve koruma arasındaki ilişki hakkında birkaç söz. Bu alanların her birindeki sorunların genellikle ortak bir kökü vardır: yazılım hataları. Bir arabellek taşması hatası, sistem çökmesine (güvenilirlik sorunu) neden olabilir, ancak aynı zamanda akıllıca yazılmış bir virüsün bir bilgisayara sızmasına izin verir (güvenlik sorunu). Bu makalede öncelikle güvenilirlik hakkında konuşacağımız gerçeğine rağmen, güvenilirlikteki bir artışın daha fazla korumaya yol açabileceği akılda tutulmalıdır.

Sistemler neden güvenilmez?

Modern işletim sistemlerinin hem güvenilirliğini hem de güvenliğini kaybetmelerine neden olan iki özelliği vardır. Birincisi, bu işletim sistemlerinin boyutu çok büyüktür ve ikincisi, hata izolasyonu çok zayıftır. Linux çekirdeği 2,5 milyondan fazla kod satırına sahiptir ve Windows XP çekirdeği en az iki kat daha büyüktür.

Yazılımın güvenilirliğini inceleyen bir çalışma, programların her 1000 satırda 6 ila 16 hata içerdiğini buldu. yürütülebilir kod... Başka bir araştırmaya göre, programlardaki hata oranı, modülün boyutuna bağlı olarak her 1000 satırlık yürütülebilir kod için 2 ile 75 arasında değişmektedir. En muhafazakar tahmine göre (1000 kod satırı başına 6 hata), Linux çekirdeğinin yaklaşık 15.000 hata içerdiği görülüyor; Windows XP, boyutun en az iki katıdır.

Daha da kötüsü, kural olarak, işletim sisteminin yaklaşık %70'i, hata oranı normal koddan üç ila yedi kat daha yüksek olan aygıt sürücülerinden oluşur, bu nedenle işletim sistemindeki hataların sayısıyla ilgili yukarıdaki tahmin şudur: büyük ihtimalle fazlasıyla hafife alınmıştır. Tüm bu hataları bulmanın ve düzeltmenin imkansız olduğu açıktır. Ayrıca, bazı hatalar düzeltildiğinde, genellikle yenileri ortaya çıkar.

Modern işletim sistemlerinin büyüklüğü nedeniyle, onları tek başına kimse tam olarak bilemez. Aslında, oluşturmak son derece zordur. iyi sistem eğer kimse gerçekten tam olarak hayal etmezse.

Bu gerçek bizi ikinci soruna getiriyor: hata izolasyonu. Dünyada hiç kimse bir uçak gemisinin nasıl çalıştığı hakkında her şeyi bilmiyor, ancak uçak gemisinin alt sistemleri birbirinden iyi izole edilmiş ve tıkanmış tuvaleti füze fırlatma alt sisteminin çalışmasını hiçbir şekilde etkilemeyecek.

İşletim sistemleri, bileşenler arasında bu tür bir izolasyona sahip değildir. Modern bir işletim sistemi, çekirdek modunda çalışan tek bir ikili programda birbiriyle birleştirilmiş yüzlerce hatta binlerce prosedürü içerir. Milyonlarca çekirdek kodu satırının her biri, ilişkisiz bileşenleri kullanan temel veri yapılarını yeniden yazabilir ve bu da, anlaşılması son derece zor bir sistem çökmesine neden olabilir. Ayrıca, bir virüs bir kere kernel prosedürüne bulaştığında, diğer prosedürlere hızla yayılması ve tüm makineye bulaşması engellenemez.

Gemi benzetmesine geri dönelim. Modern bir geminin gövdesi birçok bölmeye ayrılmıştır. Bölmelerden birinde bir sızıntı meydana gelirse, tüm ambar değil, yalnızca su basar. Modern işletim sistemleri, perdeler icat edilmeden önceki gemiler gibidir: herhangi bir delik bir gemiyi batırabilir.

Neyse ki, durum o kadar umutsuz değil. Geliştiriciler daha güvenilir işletim sistemleri oluşturmaya çalışıyor. İşletim sistemini gelecekte daha güvenilir ve güvenli hale getirmek için alınan dört farklı yaklaşım vardır. Bunları makalemizde daha az radikalden daha radikale doğru “artan” düzende sunacağız.

Güçlendirilmiş İşletim Sistemleri

En muhafazakar yaklaşım olan Nooks, Windows ve Linux gibi mevcut işletim sistemlerinin güvenilirliğini artırmak için tasarlandı. Nooks teknolojisi, yüzlerce veya binlerce prosedürün tek bir adres alanında bir araya getirildiği ve çekirdek modunda çalıştırıldığı monolitik bir çekirdek yapısını korur. Bu yaklaşım, aygıt sürücülerini (tüm sorunların temel nedeni) daha az zararlı hale getirmeye odaklanır.

Özellikle, Şekil olarak. 1, Nooks, her sürücüyü hafif bir koruma alanı oluşturan korumalı bir yazılım katmanına sararak çekirdeği geçersiz aygıt sürücülerinden korur. Bu teknolojiye bazen "korumalı alan" adı verilir. Her sürücünün etrafındaki sargı, sürücü ve çekirdek arasındaki tüm etkileşimleri dikkatlice izler. Ek olarak, bu teknoloji, önyüklenebilir işletim sistemleri gibi diğer çekirdek uzantıları için kullanılabilir, ancak basitlik adına, bundan sadece sürücülerle ilgili olarak bahsedeceğiz.

Nooks projesinin amaçları aşağıdaki gibidir:

  • çekirdekleri sürücü hatalarından koruyun;
  • sürücü arızası durumunda otomatik kurtarma sağlamak;
  • hepsini mevcut sürücülerde ve çekirdekte minimum değişiklikle yapın.

Çekirdeği yanlış sürücülerden korumak asıl amaç değildir. Nooks teknolojisi ilk olarak Linux'ta uygulandı, ancak bu fikirler diğer eski çekirdeklere eşit derecede uygulanabilir.

yalıtım

Çekirdek veri yapılarının yanlış sürücüler tarafından yok edilmesini önlemenin birincil yolu sanal bellek sayfa haritasıdır. Bir sürücü çalışırken, onun dışındaki tüm sayfalar, her sürücü için ayrı bir hafif güvenlik etki alanı oluşturan salt okunur moda ayarlanır. Bu şekilde sürücü ihtiyaç duyduğu çekirdek veri yapılarını okuyabilir, ancak çekirdek veri yapılarını doğrudan değiştirmeye yönelik herhangi bir girişim bir istisna oluşturacaktır. Merkezi işlem birimi bu, Nooks izolasyon yöneticisi tarafından ele geçirilir. Yığınların, yığınların, özel veri yapılarının ve çekirdek nesnelerinin kopyalarının depolandığı sürücünün özel belleği okunur ve yazılır.

uyumlulaştırma

Her sürücü sınıfı, çekirdeğin çağırabileceği bir dizi işlevi dışa aktarır. Örneğin, ses sürücüleri bir ses örneği bloğunu kaydetmek için bir çağrı sağlayabilir. ses kartı diğeri ses seviyesini ayarlamak içindir, vb. Sürücü yüklendiğinde, çekirdeğin herhangi birini bulabilmesi için sürücü işlevlerine yönelik bir dizi işaretçi doldurulur. Ayrıca sürücü, örneğin bir veri arabelleği ayırmak için çekirdek tarafından sağlanan bir dizi işlevi içe aktarır.

Nooks, hem dışa aktarılan hem de içe aktarılan işlevler için sarmalayıcılar sağlar. Şimdi, çekirdek bir sürücü işlevi çağırdığında veya bir sürücü bir çekirdek işlevi çağırdığında, çağrı aslında parametreleri doğrulayan ve çağrıyı yöneten kabuğa yönlendirilir. Kabuk taslaklarının (Şekil 1'de hem sürücünün içine hem de dışına işaret eden çizgiler olarak çizilmiştir) fonksiyon prototiplerine dayalı olarak otomatik olarak oluşturulmasına rağmen, geliştiricilerin kabuğun gövdesini manuel olarak yazması gerekir. Toplamda, Nooks grubu 455 sarmalayıcı yazdı: 329 çekirdeğin dışa aktardığı işlevler için ve 126'sı aygıt sürücülerini dışa aktaran işlevler için.

Bir sürücü bir çekirdek nesnesini değiştirmeye çalıştığında, sarmalayıcısı nesneyi sürücünün güvenlik alanına, yani özel okuma/yazma sayfalarına kopyalar. Sürücü daha sonra kopyayı değiştirir. İstek başarılı olursa, yalıtım yöneticisi değiştirilen nesneleri çekirdeğe geri kopyalar. Bu nedenle, bir arama sırasında bir sürücü hatası veya bir hata, çekirdek nesnelerini her zaman doğru durumda bırakır. İçe aktarma kontrol işlemleri her nesneye özeldir, bu nedenle Nooks grubunun Linux sürücülerini kullanan 43 nesne sınıfını kontrol etmek için manuel olarak kod yazması gerekiyordu.

Kurtarma

Kullanıcı modunda bir hata olması durumunda, bir kurtarma aracısı başlatılır ve ne yapılacağını bulmak için yapılandırma veritabanına erişir. Çoğu durumda, tüm yoğun kaynakları boşaltmak ve sürücüyü yeniden başlatmak yeterlidir, çünkü en yaygın algoritmik hatalar genellikle test sırasında bulunur ve senkronizasyon hataları ve belirli kusurlar kodda kalır.

Bu teknoloji, sistemi geri yüklemenize izin verir, ancak arıza anında çalışmakta olan uygulamalar yanlış durumda olabilir. Sonuç olarak, Nooks ekibi, uygulamaların bir sürücü arızasından sonra bile doğru şekilde çalışabilmesi için gölge sürücüler kavramını ekledi.

Kısacası, normal çalışma sırasında, bu etkileşimin kurtarılması gerekiyorsa, yinelenen sürücü, her sürücü ve çekirdek arasındaki etkileşimleri günlüğe kaydeder. Sürücü yeniden başlatıldığında, yinelenen sürücü, örneğin ses düzeyi gibi parametreleri ayarlamak için bir G/Ç kontrol sistemi (IOCTL) çağrısını tekrarlayarak tüm günlük verilerini yeniden başlatılan sürücüye iletir. Çekirdek, sürücüyü bulunduğu duruma döndürme süreci hakkında hiçbir şey bilmiyor. eski sürücü... Bu işlem tamamlanır tamamlanmaz sürücü yeni istekleri işlemeye başlar.

Kısıtlamalar

Deneylere göre Nooks, ölümcül sürücü hatalarının %99'unu ve ölümcül olmayan hataların %55'ini tespit edebilmesine rağmen, mükemmel olmaktan uzaktır. Örneğin, sürücüler, yapmamaları gereken ayrıcalıklı komutları yürütebilir; yanlış I/O portlarına veri yazabilir ve sonsuz döngüler gerçekleştirebilirler. Üstelik Nooks grubu, çok sayıda mermiyi elle yazmak zorunda kaldı ve bu mermiler böcekler içerebilir. Son olarak, bu yaklaşımla, sürücülerin herhangi bir bellek konumuna veri yazmasını engellemek mümkün değildir. Ancak bu, eski çekirdeklerin güvenilirliğini artırmaya yönelik potansiyel olarak çok yararlı bir adımdır.

Paravirtual makineler

İkinci yaklaşım, sanal makine kavramına dayanmaktadır. Bu konsept 60'ların sonunda geliştirildi. Fikir özel kullanmaktır kontrol programı işletim sistemi yerine doğrudan donanımla çalışan sanal makine monitörü olarak adlandırılır. Bir sanal makine, gerçek bir makinenin birden çok örneğini oluşturur. Her örnek, belirli bir donanım üzerinde çalışabilen herhangi bir programı destekleyebilir.

Bu yöntem genellikle, örneğin Linux ve Windows gibi iki veya daha fazla işletim sisteminin aynı makinede aynı anda çalışabilmesi ve her işletim sisteminin tüm makinenin emrinde olduğunu düşünmesi için kullanılır. Sanal makinelerin kullanımı, iyi bir hata yalıtımı sağlama konusunda haklı bir üne sahiptir. Sonuçta, sanal makinelerin hiçbiri diğerlerinin varlığından haberdar değilse, bir makinede ortaya çıkan sorunlar diğerlerine yayılamaz.

Bu kavramı, korumayı farklı işletim sistemleri arasında değil, tek bir işletim sisteminde organize edecek şekilde uyarlama girişiminde bulunuldu. Üstelik Pentium sanallaştırmayı tam olarak desteklemediği için, işletim sistemini sanal bir makinede hiçbir değişiklik yapmadan çalıştırma ilkesinden sapmak gerekiyordu. Bu imtiyaz, işletim sisteminde sanallaştırılamayan hiçbir şeyi yapamayacağından emin olmak için değişiklikler yapılmasına izin verir. NS bu teknoloji gerçek sanallaştırmadan ayırt edilir, buna denir yarı sanallaştırma.

Özellikle, 90'lı yıllarda, Karlsruhe Üniversitesi'nden bir grup geliştirici, L4 mikro çekirdeğini yarattı. Linux'un biraz değiştirilmiş bir sürümünü (L4Linux) L4 üzerinde sanal makine görünümü olarak adlandırılabilecek şekilde çalıştırabildiler. Daha sonra geliştiriciler, L4'te Linux'un yalnızca bir kopyasını çalıştırmak yerine birden çok kopya çalıştırabileceklerini öğrendiler. Da gösterildiği gibi pilav. 2, bu düşünce sanal ortamlardan birini kullanma fikrine yol açtı. Linux makineleri uygulama programlarının çalışması için ve bir veya daha fazlası - aygıt sürücülerinin çalışması için.

Aygıt sürücüleri bir veya daha fazla sistemde çalışıyorsa Sanal makineler işletim sisteminin ve uygulama programlarının geri kalanının çalıştığı ana sanal makineden izole edilmiş, bir sürücü arızası durumunda, ana makine değil, yalnızca sanal makinesi başarısız olur. Bu yaklaşımın ek bir avantajı, normal Linux çekirdek ortamını gördükleri için aygıt sürücülerinin değiştirilmesine gerek olmamasıdır. Elbette, paravirtualization'ı desteklemek için Linux çekirdeğinin kendisinin değiştirilmesi gerekecektir, ancak bu bir kerelik bir değişikliktir. Ayrıca bu prosedürü her aygıt sürücüsü için tekrarlamaya gerek yoktur.

Aygıt sürücüleri kullanıcı modunda donanım üzerinde çalıştığı için asıl soru, I/O'yu nasıl yapacakları ve kesintileri nasıl ele alacaklarıdır. Fiziksel G/Ç, sürücülerin üzerinde çalıştığı Linux çekirdeğine yaklaşık 3.000 satır kod eklenerek desteklenir ve sürücülerin G/Ç için L4 hizmetlerini kendileri yapmak yerine kullanmalarına olanak tanır. Ek 5.000 satır kod, izole edilmiş üç sürücü (disk, ağ ve PCI veri yolu) ile uygulamaların çalıştığı sanal makine arasındaki etkileşimleri destekler.

Prensipte, bu yaklaşım tek bir işletim sisteminden daha yüksek güvenilirlik sağlamalıdır, çünkü bir veya daha fazla sürücü içeren bir sanal makine arızalanırsa, sanal makine yeniden başlatılabilir ve sürücüler orijinal durumlarına geri döner. Nooks'tan farklı olarak, bu yaklaşım sürücüleri önceki durumlarına (arıza meydana gelmeden önceki durumlarına) döndürmeye çalışmaz. Bu şekilde, ses sürücüsü başarısız olursa, arıza meydana gelmeden önceki ses düzeyi yerine varsayılan ses düzeyine geri yüklenecektir.

Performans ölçümleri, paravirtualized makineleri kullanmanın ek yükünün %3-8 civarında olduğunu gösteriyor.

Çok sunuculu işletim sistemleri

İlk iki yaklaşım, eski sistemlerin değiştirilmesini içerir. Sonraki ikisi gelecekteki sistemlere odaklanıyor.

Bu yaklaşımlardan biri doğrudan sorunun özüne yöneliktir: tüm işletim sisteminin çekirdek modunda tek bir dev ikili program olarak çalışması. Bunun yerine, bu durum işletim sisteminin geri kalanı, kullanıcı modunda çalışan tamamen yalıtılmış sunucu ve sürücü işlemlerinden oluşurken, çekirdek modunda çalışan birkaç küçük mikro çekirdeğe sahip olması önerilir. Bu fikir 20 yıl önce önerildi, ancak çok sunuculu bir işletim sisteminin monolitik bir çekirdeğe kıyasla daha düşük performansı nedeniyle hiçbir zaman tam olarak uygulanmadı. 80'lerde performans en önemli gösterge olarak kabul edildi ve güvenilirlik ve koruma düşünülmedi bile. Tabii ki, bir zamanlar uçak mühendisleri yakıt tüketimini veya silahlı bir saldırıya dayanabilecek kokpit kapıları yaratmayı düşünmediler. Zaman değişiyor ve insanların gerçekten neyin önemli olduğuna dair algıları da değişiyor.

Çoklu sunucu mimarisi

Çok sunuculu bir işletim sistemi fikrinin ne olduğunu daha iyi anlamak için modern bir örneğe bakalım. Da gösterildiği gibi pilav. 3 Minix 3'te bir mikro çekirdek, kesintileri işler, süreçleri yönetmek için temel mekanizmalar sağlar, süreçler arasındaki etkileşimleri uygular ve süreç planlamasını gerçekleştirir. Ayrıca, belirli bir kullanıcının adres alanının belirli bir bölümünü okumak veya yetkili G/Ç bağlantı noktalarına yazmak gibi, yetkili sürücülere ve sunuculara küçük bir çekirdek çağrıları seti sağlar. Saat sürücüsü, mikro çekirdek ile aynı adres alanını kullanır, ancak ayrı bir işlem olarak programlanmıştır. Çekirdek modunda başka hiçbir sürücü çalışmaz.

Mikro çekirdeğin üzerinde aygıt sürücüsü katmanı bulunur. Her I/O cihazının kendi özel adres alanında ayrı bir süreç olarak işlev gören ve bir donanım bellek yönetim birimi (MMU) tarafından korunan kendi sürücüsü vardır. Bu katman, disk, terminal (klavye ve ekran), Ethernet, yazıcı, ses vb. için sürücü işlemlerini içerir. Bu sürücüler kullanıcı modunda çalışır ve bilgisayarın I/O portlarında ayrıcalıklı komutlar yürütemez veya okuma/yazma işlemleri yapamaz. Bu hizmetleri alabilmek için sürücülerin çekirdeğe başvurması gerekir. Bu mimari yükü artırırken, güvenilirliği önemli ölçüde artırır.

Aygıt sürücüsü katmanının üstünde sunucu katmanı bulunur. Dosya sunucusu, okuma, yazma, lseek ve stat gibi Posix dosya sistemi çağrıları için kullanıcı işlemlerinden gelen istekleri kabul eden ve yürüten bir programdır (4.500 satır yürütülebilir kod). Ayrıca, süreçleri ve belleği yöneten ve Posix çağrıları ve fork, exec, brk gibi diğer sistem çağrılarını yapan süreç yöneticisi de bu seviyede bulunur.

Biraz sıra dışı bir özellik, diğer tüm sunucular ve tüm sürücüler için ana süreç olarak işlev gören reenkarnasyon sunucusudur. Bir sürücü veya sunucu başarısız olursa, sonlandırılırsa veya aralıklı ping komutlarına yanıt vermezse, reenkarnasyon sunucusu gerekirse bu işlemleri kaldırır ve ardından bunları diskteki bir kopyadan veya RAM'den yeniden başlatır. Bu şekilde sürücüleri yeniden başlatabilirsiniz, ancak şimdilik yalnızca dahili durumu sınırlı olan sunucular yeniden başlatılabilir.

Diğer sunucular şunları içeren bir ağ sunucusunu içerir: tam TCP / IP yığını; veri ambarı, diğer sunucuların kullandığı basit bir ad sunucusu; hata ayıklama için kullanılan bilgi sunucusu. Son olarak, kullanıcı işlemleri sunucu seviyesinin üzerinde bulunur. Bunun diğer Unix sistemlerinden tek farkı okuma, yazma ve diğer sistem çağrıları için kütüphane rutinlerinin sunuculara mesaj gönderilerek yapılmasıdır. Bu fark dışında (sistem kitaplıklarında gizlidir), bunlar POSIX API'sini kullanabilen normal kullanıcı işlemleridir.

Süreçler arasındaki etkileşimler

Tüm süreçlerin birlikte çalışmasına izin veren süreçler arası iletişim (IPC) mekanizması olduğundan, çok sunuculu bir işletim sisteminde kritik öneme sahiptir. Ancak Minix 3'teki tüm sunucular ve sürücüler, fiziksel olarak yalıtılmış süreçler olarak çalıştığından, birbirlerinin işlevlerini doğrudan çağıramazlar veya veri yapılarını paylaşamazlar. Bunun yerine Minix 3, buluşma ilkesi adı verilen bir şekilde sabit uzunlukta mesajlar ileterek IPC'yi destekler (hem gönderici hem de alıcı değiş tokuşa hazır olduğunda, sistem mesajı doğrudan göndericiden alıcıya kopyalar). Ayrıca asenkron bir olay bildirim mekanizması vardır. Gerçekleştirilemeyen olaylar, işlem tablosunda beklemede olarak işaretlenir.

Minix 3, kesintileri mesajlaşma ile zarif bir şekilde bütünleştirir. Kesinti işleyicileri, G / Ç'nin tamamlandığını bildirmek için bir bildirim mekanizması kullanır. Bu mekanizma, işleyicinin "bekleyen kesme" bit eşleminde bir bit ayarlamasına ve ardından engellemeden devam etmesine izin verir. Sürücü bir kesme almaya hazır olduğunda, çekirdek bunu normal bir mesaja dönüştürür.

Güvenilirlik özellikleri

Minix 3'ün yüksek güvenilirliğinin birkaç nedeni vardır. İlk olarak, çekirdek boyutu 4.000 satırdan fazla olmayan kodu yürütür, bu nedenle 1000 satır başına 6 hatanın muhafazakar bir tahminine dayanarak, çekirdekteki toplam hata sayısının yaklaşık 24 olması muhtemeldir. Bunu Linux'taki 15K hatalarla karşılaştırın ve Windows'ta çok daha fazlası. Saat dışındaki tüm aygıt sürücüleri kullanıcı işlemleri olduğundan, çekirdek modunda hiçbir yabancı kod çalışmayacaktır. Ek olarak, çekirdeğin küçük boyutu, doğruluğunu manuel olarak veya resmi yöntemlerle kontrol etmeyi daha verimli hale getirir.

Minix 3'ün IPC mimarisi, kuyruk veya mesaj arabelleğe alma gerektirmez, bu da çekirdekte arabellek yönetimi ihtiyacını ortadan kaldırır. Ayrıca, IPC güçlü bir yapı olduğundan, her sunucunun ve sürücünün IPC yetenekleri ciddi şekilde sınırlıdır. Kullanılan IPC ilkelleri, mevcut hedefler ve özel olay bildirimleri her süreç için kesin olarak tanımlanmıştır. Örneğin, kullanıcı süreçleri yalnızca randevu bazında etkileşime girebilir veya yalnızca Posix sunucularına mesaj gönderebilir.

Ayrıca, tüm çekirdek veri yapıları statiktir. Tüm bu özellikler kodu büyük ölçüde basitleştirir ve arabellek taşmaları, bellek sızıntıları, zamansız kesintiler, güvenilmez çekirdek kodu vb. ile ilgili çekirdek hatalarından kurtulur. Elbette, işletim sisteminin çoğunu kullanıcı moduna almak, sürücülerdeki ve sunuculardaki kaçınılmaz hataları ortadan kaldırmaz, ancak onları önemli ölçüde daha az tehlikeli hale getirir. Bir hata nedeniyle, çekirdek kritik çekirdek yapılarını yok edebilir, diske çöp yazabilir vb. Çoğu sürücü ve sunucudaki bir hata, bu işlemler net bir şekilde ayrıldığı ve gerçekleştirebilecekleri işlemler kesinlikle sınırlı olduğu için önemli bir zarar veremez.

Kullanıcı modu sürücüleri ve sunucuları, süper kullanıcı ayrıcalıklarıyla çalışamaz. Çekirdek çağrıları (çekirdek tarafından doğrulanan) dışında, kendi adres alanlarının dışındaki bellek alanlarına erişemezler. Ayrıca, çekirdek işlem tablosundaki bitmapler ve aralıklar, her işlem için izin verilen çekirdek çağrıları, IPC yetenekleri ve izin verilen G/Ç bağlantı noktalarını ayrı ayrı kontrol eder. Örneğin, çekirdek, yazıcı sürücüsünün kullanıcı adres alanlarına bilgi yazmasını, disk G/Ç bağlantı noktalarına erişmesini veya ses sürücüsüne mesaj göndermesini engelleyebilir. Geleneksel monolitik sistemlerde herhangi bir sürücü her şeyi yapabilir.

Güvenilirliğin bir başka nedeni de ayrı komut ve veri alanlarının kullanılmasıdır. Bir hata veya virüs eylemi, bir sürücü veya sunucu arabellek taşması hatasıyla ve veri alanına yabancı kod yazılmasıyla sonuçlanırsa, virüslü kod, kontrol aktarılarak veya ona işaret eden bir prosedür kullanılarak yürütülemez, çünkü çekirdek çalışmayacaktır. işlemin salt okunur komut alanında değilse kodu yürütün.

Daha yüksek güvenilirlik sağlayan diğer spesifik özellikler arasında en önemlisi kendi kendini iyileştirme özelliğidir. Bir sürücü geçersiz bir işaretçide veri depolamaya çalışırsa, sonsuz bir döngüye girerse veya diğer geçersiz işlemleri gerçekleştirmeye çalışırsa, reenkarnasyon sunucusu bu sürücüyü otomatik olarak değiştirir ve bir kural olarak, bu durumda, çalışan diğer işlemler olmayacaktır. etkilenir.

Mantıksal olarak yanlış bir sürücüyü yeniden başlatmak hatayı düzeltmese de, pratikte yanlış senkronizasyon ve benzeri hatalar birçok soruna neden olur ve sürücüyü yeniden başlatmak çoğu zaman sistemi doğru duruma getirme fırsatı sağlar.

Performans parametreleri

On yıllardır, mikro çekirdek tabanlı çok sunuculu mimariler, geliştiriciler tarafından monolitik mimarilerden daha düşük performansları nedeniyle eleştirildi. Bununla birlikte, çeşitli projeler, modüler mimarinin gerçekten karşılaştırılabilir performans sağlayabileceğini doğrulamaktadır. Minix 3 performans için optimize edilmemiş olmasına rağmen sistem yeterince hızlı. Sürücülerin kullanıcı modunda çalışması nedeniyle oluşan performans kayıpları, çekirdek modundaki sürücülere göre %10'dan daha azdır ve sistem, çekirdek, jenerik sürücüler ve tüm sunucular dahil (112 derleme ve 11 referans) oluşturulabilir. Athlon / 2.2 GHz makinede 6 saniyeden daha kısa sürede.

Çok sunuculu mimarilerin oldukça sağlam bir Unix benzeri ortamı çok az performans cezası ile destekleyebilmesi, bu yaklaşımı pratik olarak kabul edilebilir kılmaktadır. Pentium için Minix 3, Berkeley Lisansı altında şuradan ücretsiz olarak indirilebilir: www.minix3.org... Diğer mimariler ve gömülü sistemler için sürümler şu anda geliştirilmektedir.

Dil tabanlı koruma

En radikal yaklaşım, oldukça beklenmedik bir şekilde, işletim sistemini çekirdek modunda çalışan tek bir program ve kullanıcı modunda çalışan bir dizi kullanıcı işlemi olarak bırakarak Microsoft Research tarafından önerildi. Bunun yerine, C ve C++ ile ilişkili tüm işaretçi sorunlarından ve diğer hatalardan arınmış, tamamen yeni, tür güvenli dillerde yazılmış bir sistem sunar. Önceki iki yaklaşım gibi, bu yaklaşım da birkaç on yıl önce önerildi ve Burroughs B5000 bilgisayarında uygulandı. O zaman, yalnızca Algol dili vardı ve koruma MMU tarafından desteklenmiyordu (ki bu makinede yoktu), ancak Algol derleyicisinin basitçe "tehlikeli" kod oluşturmaması nedeniyle. Microsoft Research tarafından önerilen yaklaşım, bu fikri 21. yüzyıla uyarlamaktadır.

Genel açıklama

Singularity adı verilen bu sistem, neredeyse tamamen yeni bir tür güvenli dil olan Sing # ile yazılmıştır. Bu dil C#'a dayanır, ancak anlambilimi dil araçlarıyla tanımlanan resmi sözleşmelerle belirlenen mesaj aktarım ilkelleriyle desteklenir. Dil, sistem ve kullanıcı işlemlerini ciddi şekilde kısıtladığından, tüm işlemler tek bir sanal adres alanında birlikte çalışabilir. Bu, hem güvenliği (derleyici bir işlemin diğerinin verilerini değiştirmesine izin vermeyeceğinden) hem de verimliliği (çekirdek tuzaklarını ve bağlam anahtarlarını ortadan kaldırdığı için) artırır.

Ayrıca, Singularity'nin mimarisi esnektir çünkü her işlem kapalı bir varlıktır ve bu nedenle kendi koduna, veri yapılarına, bellek yapısına, çalışma zamanına, kitaplıklarına ve çöp toplayıcıya sahip olabilir. MMU desteklenir, ancak yalnızca sayfaları dağıtır ve her işlem için ayrı bir güvenli alan oluşturmaz.

Singularity mimarisinin temel ilkesi, dinamik süreç uzantılarına izin vermemektir. Ek olarak, bu mimari, ana sürece zarar verebilecek yabancı ve doğrulanmamış kodlar sunabileceğinden, aygıt sürücüleri ve tarayıcı eklentileri gibi yüklenebilir modülleri desteklemez. Bunun yerine, bu tür uzantılar, tamamen izole edilmiş ve standart IPC mekanizması kullanılarak etkileşim halinde olan ayrı süreçler olarak çalışmalıdır.

mikro çekirdek

Singularity işletim sistemi, bir mikro çekirdek işleminden ve tipik olarak paylaşılan bir sanal adres alanında çalışan bir dizi kullanıcı işleminden oluşur. Mikro çekirdek, donanıma erişimi kontrol eder, belleği ayırır ve serbest bırakır, zincirler oluşturur, kapatır ve programlar, semaforlar kullanarak zincir senkronizasyonunu korur, borular kullanarak süreçler arası senkronizasyonu sağlar ve G / Ç'yi kontrol eder. Her aygıt sürücüsü ayrı bir işlem olarak çalışır.

Mikro çekirdeğin çoğu Sing # ile yazılmış olsa da, ayrı bileşenler C #, C ++ veya assembler ile yazılmıştır ve bunların doğruluğunu doğrulamanın bir yolu olmadığından güvenilir olmalıdır. Güvenilir kod, donanım soyutlama katmanını ve çöp toplayıcıyı içerir. Donanım soyutlama katmanı, işletim sisteminin geri kalanına birlikte çalışabilir soyutlamalar sağlamak için G/Ç bağlantı noktaları, kesme istek satırları, DMA kanalları ve zamanlayıcılar gibi kavramları kapsülleyerek düşük seviyeli donanımı sistemden gizler.

Süreçler arası etkileşim

Kullanıcı işlemleri, çift yönlü noktadan noktaya bağlantılar üzerinden mikro çekirdeğe kesin olarak yazılan mesajları göndererek sistem hizmetlerini alır. Aslında bu kanallar süreçler arasındaki tüm etkileşimler için kullanılır. Gönderme ve alma işlevlerine sahip bir kitaplığı olan diğer mesajlaşma sistemlerinden farklı olarak Sing #, biçimsel yazma ve protokol özellikleri dahil olmak üzere dil düzeyinde boruları tam olarak destekler. Bunu açıklığa kavuşturmak için kanal özelliklerine bakalım.

sözleşme C1 (

Mesajda İstek (int x) için x> 0 gerekir;

Çıkış mesajı Yanıtla (int y);

Çıkış mesajı Hatası ();

Rica etmek? -> Beklemede;

Durum Beklemede: bir (

Cevap vermek! -> Başlat;

Hata! -> Durduruldu;

Durum Durdu:;

Bu sözleşme, kanalın üç mesajı kabul ettiğini belirtir: İstek, Yanıt ve Hata. Birincisi parametre olarak pozitif bir tamsayıya sahiptir, ikincisi bir tamsayıya sahiptir ve üçüncünün parametresi yoktur. Sunucuya erişmek için bir kanal kullanıldığında, İstemciden sunucuya İstek mesajları gönderilir ve diğer iki mesaj farklı bir şekilde gönderilir. Durum makinesi, bir kanalın protokolünü tanımlar.

Başlangıç ​​durumunda, istemci, kanalı Bekleme durumuna getirerek bir İstek mesajı gönderir. Sunucu, yanıt olarak bir Yanıt veya Hata mesajı GÖNDEREBİLİR. Yanıt mesajı, kanalı, iletişimin devam edebileceği Başlat durumuna geri yerleştirir. Hata mesajı, kanalı Durduruldu durumuna getirerek kanaldaki iletişimi sonlandırıyor.

Yığın

Diskten okunan dosya blokları gibi tüm verilerin borulanması gerekiyorsa, sistem çok yavaş olacaktır, bu nedenle, her bir işlemin verilerinin tamamen özel ve bu işlemin içinde olduğu temel kuralına bir istisna yapılır. Tekillik, paylaşılan bir nesne yığınını korur, ancak yığındaki her nesnenin her örneği tek bir işleme aittir. Ancak, bir nesnenin mülkiyeti kanal üzerinden aktarılabilir.

Yığının nasıl çalıştığına bir örnek olarak, G / Ç'yi düşünün. Bir disk sürücüsü bir veri bloğunu okuduğunda, o bloğu öbek üzerine koyar. Sistem daha sonra "tek sahip" ilkesine bağlı kalarak, ancak ek kopyalar oluşturmadan verilerin diskten kullanıcıya aktarılmasına izin vererek, verileri talep eden kullanıcıya tutamacı bu bloğa iletir.

Dosya sistemi

Singularity, tüm hizmetler için tek bir hiyerarşik ad alanını korur. Kök ad sunucusu ağacın tepesini kullanır, ancak diğer ad sunucuları kendi düğümlerine monte edilebilir. Özellikle, dosya sistemi yalnızca bir işlem olan , / fs'ye bağlanır, bu nedenle örneğin / fs / users / linda / foo adı bir kullanıcı dosyası olabilir. Dosyalar, blok numaraları anahtar olarak B-ağaçları olarak uygulanır. Bir kullanıcı işlemi bir dosya istediğinde, dosya sistemi disk sürücüsüne istenen blokları öbek üzerine koymasını söyler. Mülkiyet daha sonra yukarıda açıklandığı gibi devredilir.

muayene

Sistemin her bileşeninin bağımlılıklarını, dışa aktarımlarını, kaynaklarını ve davranışını açıklayan meta verileri vardır. Bu meta veriler doğrulama için kullanılır. Bir sistem görüntüsü, bir mikro çekirdekten, sistemin çalışması için gereken sürücüler ve uygulamalardan ve bunların meta verilerinden oluşur. Harici doğrulayıcılar (doğrulayıcılar), özellikle sürücülerin kaynaklar üzerinde çakışmadığından emin olmak için, sistem onu ​​kullanmadan önce sistem görüntüsü üzerinde birçok kontrol gerçekleştirebilir. Kontrol üç aşamadan oluşur:

  • derleyici, tür güvenliğini, nesne sahipliğini, boru protokollerini vb. denetler;
  • derleyici, bir doğrulayıcının kontrol edebileceği taşınabilir bir JVM benzeri bayt kodu olan Microsoft Ara Dili oluşturur;
  • MSIL, ana bilgisayar için koda çalışma zamanı denetimleri ekleyebilen x86 koduna derlenir (ancak mevcut derleyici bunu yapmaz).

Doğrulayıcıların kendilerindeki hataları tespit eden araçlar kullanılarak daha yüksek güvenilirlik elde edilebilir.

İşletim sisteminin güvenilirliğini artırmaya yönelik dört farklı girişimin her biri, hatalı aygıt sürücülerinin sistemin çökmesine neden olmasını önlemeyi amaçlar.

Nooks yaklaşımında, işletim sisteminin geri kalanıyla etkileşimlerini dikkatlice kontrol etmek için her sürücü ayrı ayrı paketlenir, ancak bu yaklaşımda tüm sürücüler çekirdeğin içindedir. Paravirtual makine yaklaşımının uygulanmasında bu fikir daha da geliştirildi. Bu durumda, sürücüler, ana makineden ayrı bir veya daha fazla makineye taşınmış ve bu da sürücünün yeteneklerini daha da sınırlandırmıştır. Bu yaklaşımların her ikisi de mevcut (eski) işletim sistemlerinin güvenilirliğini artırmak için tasarlanmıştır.

Diğer iki yaklaşım, eski işletim sistemlerini daha güvenilir ve güvenli olanlarla değiştirir. Çoklu sunucu yaklaşımı, her sürücünün ve işletim sistemi bileşeninin ayrı bir kullanıcı işleminde çalışmasına ve mikro çekirdek IPC mekanizmasını kullanarak etkileşime girmesine izin verir. Son olarak, en radikal yaklaşım olan Singularity, tip güvenli bir dil, tek bir adres alanı ve her modülün yeteneklerini ciddi şekilde sınırlayan resmi sözleşmeler kullanır.

Dört araştırma projesinden üçü - L4 tabanlı paravirtualization, Minix 3 ve Singularity - mikro çekirdekleri kullanır. Bu yaklaşımlardan hangisinin gelecekte yaygınlaşacağı (başka bir çözüm olmadığı sürece) henüz bilinmiyor. Bununla birlikte, monolitik çekirdeklere kıyasla daha düşük performansları nedeniyle uzun süredir kabul edilemez olarak kabul edilen mikro çekirdeklerin, birçoğunun performanstan daha önemli olduğunu düşündüğü potansiyel olarak daha yüksek güvenilirlikleri nedeniyle işletim sistemlerine geri dönebileceğini belirtmek ilginçtir. Tarihin çarkı döndü.

Andrew Tanenbaum ( [e-posta korumalı]) - Vrije Universiteit'te (Amsterdam, Hollanda) Bilişim Profesörü. Jorrit Çoban ( [e-posta korumalı]) - Vrije Universiteit Bilişim Fakültesi Bilgisayar Sistemleri Bölümü lisansüstü öğrencisi. Herber Bose ( [e-posta korumalı]) - Vrije Universiteit Bilişim Fakültesi Bilgisayar Sistemleri Bölümü Öğretim Üyesi Doç.

Edebiyat
  1. V. Basili, B. Perricone, Yazılım Hataları ve Karmaşıklık: Ampirik Bir Araştırma, Comm. ACM, Ocak 1984.
  2. T. Ostrand, E. Weyuker, Büyük Endüstriyel Yazılım Sisteminde Hataların Dağılımı, Proc. Int? L Semptom. Yazılım Test ve Analizi, ACM Press, 2002.
  3. A. Chou ve diğerleri, İşletim Sistemi Hatalarının Ampirik Bir Çalışması, Proc. 18. ACM Semptom. İşletim Sistemi İlkeleri, ACM Press, 2001.
  4. M. Swift, B. Bershad, H. Levy, Emproving the Reliability of Commodity Operating Systems, ACM Trans. Bilgisayar Sistemleri, cilt. 23, 2005.
  5. M. Swift ve diğerleri, Aygıt Sürücülerini Kurtarmak, Proc. 6. Semptom İşletim Sistemi Tasarımı ve Uygulaması, ACM Press, 2003.
  6. R. Goldberg, Sanal Makinelerin Mimarisi, Proc. Atölye Sanal Bilgisayar Sistemleri, ACM Press, 1973.
  7. J. LeVasseur ve diğerleri, Değiştirilmemiş Aygıt Sürücüsünün Yeniden Kullanımı ve Sanal Makineler Yoluyla Geliştirilmiş Sistem Güvenilirliği, Proc. 6. Semptom İşletim Sistemi Tasarımı ve Uygulaması, 2004.
  8. J. Liedtke, Mikro Çekirdek Yapısı Üzerine, Proc. 15. ACM Semptom. İşletim Sistemi İlkeleri, ACM Press, 1995.
  9. H. Hartig ve diğerleri, The Performance of Microkernel-Based Systems, Proc. 16. ACM Semptom. İşletim Sistemi İlkeleri, ACM Press, 1997.
  10. J.N. Herder ve diğerleri, MINIX 3'te Modüler Sistem Programlama, Usenix; www.usenix.org/publications/login/2006-04/openpdfs/herder.pdf.

Andrew Tanenbaum, Jorrit Herder, Herbert Bos, İşletim Sistemlerini Güvenilir ve Güvenli Hale Getirebilir miyiz?, IEEE Computer, Mayıs, 2006. IEEE Computer Society, 2006, Tüm hakları saklıdır. İzin alınarak yeniden basılmıştır.