İşletim sistemi cihazın donanımıyla kullanıcı etkileşimi arasında ki yönetimi sağlayan yazılımdır. iOS işletim sistemi Apple tarafından ilk olarak 2007 yılında iPhone, iPod Touch ve Apple TV için yayınlandı. Apple bilgisayarlarda kullanılan OS X işletim sisteminin mobil versiyonudur. App Store ve apple sertifikalı uygulamalar haricinde cihaza uygulama kurulamamasından dolayı kapalı bir kutu olarakta bilinir. Diğer mobil işletim sistemlerine göre güvenlik seviyesi çok daha fazladır. iOS işletim sisteminde geliştirilen uygulamalar tersine mühendislik (Reverse Engineering) ile deşifre edilemez.

iOS işletim sistemi Face ID ile yüz tanımayı çok başarılı bir şekilde kullanmayı başarmıştır. Tuş kilidi açma, alarmı susturma ve kimlik doğrulama özelliklerini etkin bir şekilde yüz tanıma ile entegre edildiğini görüyoruz. Yurt dışında Apple Pay ile yüzünüzü tanıtarak ödeme işlemlerini gerçekleştirebiliyorsunuz fakat; ülkemizde henüz izinleri olmadığı için bu özellik hizmette değil.

iOS uygulamaların yayınlandığı ve indirildiği platform olan App Store’da yaklaşık 2,1 milyon uygulama mevcuttur. Android uygulamaların yayınlandığı platform olan Play Store’da ise uygulama sayısı 2018 haziranda 3,6 milyona ulaşmıştı ancak Play Store’un son zamanlarda uygulamaya başladığı kurallar ile beraber bu kurallara uymayan uygulamalar yayından kaldırıldı ve şu anda mevcut uygulama sayısı 2,6 milyon civarında.

 

iOS işletim sistemi Objective-C, C, C++, Swift dillerini destekler. Bu makalenin devamında iOS işletim sistemi katmanlarını ve teknik detaylarını inceleyeceğiz.

 

iOS işletim sistemi mimarisini incelediğimiz zaman 4 katmandan oluşmaktadır.

ios işletim sistemi katmanları

 

Core OS Katmanı

 

Core OS katmanında bulunan teknolojiler ve frameworkler; donanım ve network (ağ) ile alakalı alt seviye (low level) servisler sunar. Bu servisler Kernel ve cihaz sürücü katmanlarında yer alır.

 

core os katmanı

 

Core OS Katmanınında bulunan teknolojiler aşağıdaki gibidir:

 

Gatekeeper

 

Kullanıcıların App Store’da yayınlanan uygulamalar haricinde uygulama yüklemesini engeller. Sadece geçerli geliştirici kimliği (Developer ID) ile imzalanmış uygulamaların indirilebilmesini sağlar.

 

App Sandbox

 

Zararlı bir kod uygulamanızı ihlal ettiği durumda devreye giren verilerinizin çalınmasını, silinmesini ve bozulmasını önleyen son savunma hattı App Sandbox’dır.

 

App Sandbox uygulamanızın işletim sistemi ile nasıl etkileşim halinde olacağını tanımlar. Böylece sistem uygulamanın sadece ihtiyaç duyduğu özelliklere erişim verir.

 

Code Signing

 

Apple code signing (kod imzalama) teknolojisi ile uygulamanın kimin tarafından oluşturulduğunu sertifikalar. Bir uygulama kod imzalı olduktan sonra; sistem uygulamaya yapılan değişiklikleri tespit edebilir. Böylece uygulamada ki değişikliğin zararlı bir kod ya da hata ile mi gerçekleştiği anlaşılır.

 

Core OS Frameworkleri

 

Aşağıdaki teknoloji ve frameworkler Core OS katmanında yer almaktadır:

 

Accelerate

 

Accelerate framework komplike işlemleri hızlandırmaya sağlayan API’ları(Application Programming Interface) bulundurur ve performansı arttırır. Donanım tabanlı vektör birimler kullanılarak veri paralelliğini hızlandırarak uygulama performansı yükseltilir. Böylelikler 3D grafik gösterimi, görüntü işleme, ses sıkıştırma ve yazılım tabanlı iletişim hızlanır.

 

Disk Arbitration

 

Disk Arbitration framework bildirimlerin hayat döngüsünü ve durumunu kontrol eder.

 

OpenCL

 

OpenCL (Open Computing Language) ekran kartının yüksek performans paralel işlem gücünü genel hesaplama işlemleri için kullanılmasını sağlar. Sinyal işleme, görüntü manipülasyonu ve çok boyutlu dizi üzerinde işlemler yapmak için kullanılır.

 

Open Directory (Directory Services)

 

Network ve yerel cihaz veri tabanında bulunan bilgilerin/verilerin elde edilmesini sağlayan dizin/klasör servis mimarisidir.

 

System Configuration

 

Uygulamaların ağ (network) konfigürasyonlarını sağlar ve ağa bağlanmadan önce erişilebilir olup olmadığına karar verir. Wi-fi, hotspot gibi ağlara bağlanmadan önce kullanıcı izni alınmasını yönetir. Uygulamaları ağ konfigürasyonlarında ve erişilebilirliklerinde olan değişiklikler hakkında bilgilendirir.

 

Core Services Katmanı

 

Bu katmanda bulunan teknolojiler çekirdek servis olarak adlandırılır. Çünkü uygulamaların ihtiyaç duyduğu temel servisleri sağlar fakat kullanıcı ara yüzüne doğrudan bir etkisi yoktur. Çekirdek katmanı ve kernel ile bağıntılı çalışır.

 

core services katmanı

 

Core Data

 

Uygulamaların veri modelini MVC (Model-View-Controller) tasarım mimarisini kullanarak yönetir. Veri yapılarını kod kullanarak oluşturmak yerine XCode içerisindeki görsel araçları kullanarak şema oluşturulması buna bir örnektir. XML’ den SQLite’a kadar farklı yapılarda verinin yerel hafıza da saklanabilmesini sağlar. İşlemi geri alma veya tekrar yapma gibi hamlelere olanak sağlar.

 

Core Foundation ve Foundation

 

2 framework’ün de temel hedefleri aynıdır.

 

Nesne davranışlarını, nesne sıkıştırılması, bildirimlerin tanımlanması. Nesne devamlılığını sağlamak. String, ates, data, numbers, collections gibi temel nesne tiplerini tanımlamak.

 

Security

 

Güvenlik çözümlerini basitleştirmek için yüksek seviyeli servis sağlayan frameworktür. Kodu bozmadan güvenlik önlemleri alınmasını sağlar. Certificate, key chain, key, trust services gibi özellikleri bizlere sunar.

 

WebKit

 

WebKit frameworkü uygulamanın HTML içerik göstermesine olanak sağlar. Web Core ve JavaScript Core olmak üzere 2 alt frameworkten oluşur. Web Core HTML içeriği gösterirken JavaScript Core ise javascript kodlarını çalıştırır.

 

Social Framework

 

Social frameworkü http çağrı yapısını tanımlayıp bizlere sunarak uygulamalarda sosyal ağ servislerinin entegre edilmesini sağlar. Bu framework sayesinde uygulamaya sosyal ağ hesap verilerinin çekilmesi sağlanır.

 

 

Media Katmanı

 

2D ve 3D grafikleri, animasyonları, görsel efektleri, yüksek kalite ses ve video özelliklerini uygulamaya entegre edilmesini sağlar. OS X 100’e yakın medya dosya tipini destekler. Bu listenin bir kısmı aşağıdaki gibidir:

 

Image formats PICT, BMP, GIF, JPEG, TIFF, PNG, DIB, ICO, EPS, PDF
Audio file and data formats AAC, AIFF, WAVE, uLaw, AC3, MPEG-3, MPEG-4 (.mp4, .m4a), .snd, .au, .caf, Adaptive multi-rate (.amr)
Video file formats AVI, AVR, DV, M-JPEG, MPEG-1, MPEG-2, MPEG-4, AAC, OpenDML, 3GPP, 3GPP2, AMC, H.264, iTunes (.m4v), QuickTime (.mov, .qt)
Web streaming protocols HTTP, RTP, RTSP

 

media katmanı

 

Core Animation

 

Komplike 2D render ve animasyon için kullanılan Objective-C sınıflarıdır. Core Animation kullanarak basit bir pencereden, slaytta kadar kullanıcı ara yüzleri oluşturulabilir.

 

Core Image

 

Core Image uygulamaların komplex görsel davranışları yapmasını sağlayan framework’ü sunar. Kırpma, blurlama, renk efektleri, resim ve video geçiş efektleri, yüz tanıma gibi özellikleri destekler.

 

AV Foundation

 

Görsel ve işitsel medya elemanlarını oynatma, düzenleme, inceleme ve yönetme erişimlerini sağlar.

 

OpenGL

 

Endüstride sıkça kullanılan 3 boyutlu uygulamaların geliştirilmesinde büyük rol oynar. Performans ve güç gerektiren uygulamalar da genellikle oyunlarda kullanılması için tasarlanmış bir frameworktür.

 

Cocoa Application Katmanı

 

Cocoa Application katmanı uygulamanın görünümünden ve kullanıcı aksiyonlarından asıl sorumlu katmandır.

 

cocoa katmanı

 

AppKit

 

Cocoa’nın en önemli framework’dür. Bu framework içerisindeki sınıflar pençelere, dialoglar, kontroller, menüler ve eventler gibi kullanıcı ara yüzünü tanımlar. AppKit engelliler için API sunar ve uygulamayı engellilerin kullanabileceği şekilde geliştirilmesine olanak tanır.

 

Bu makaledeki bazı bilgiler Apple dokümanından referans alınarak yazılmıştır. Detayla bilgi için apple dokümanını inceleyebilirsiniz: