Yazar | Deng Fanping
Editör | Tu Min
Menşei
Birkaç gün önce CSDN, hakkında bir makale yayınladı.
Hongmeng OS
Makalenin, kendi geliştirdiği işletim sistemini tartışan son makalelerden çok alakalı olduğunu düşünüyorum. Bir keresinde Android işletim sistemini 2012'de tanıttım ve hala modası geçmiş. Teknik bir kişi olarak, bir şeyin geleceğini tartıştığımızda, onu her zaman biraz anlamalıyız. Bu makale Android işletim sistemine çok basit bir giriş niteliğindedir. Android'in ilk birkaç yılında (2011'den önce ve civarında), birkaç üreticiyle birlikte Android ve Intel'in geliştirilmesine de bahse girdik. Meego Ve dayalı Linux için Gömülü İşletim Sistemi . O zamanlar China Mobile'ın OMS'si de çok popülerdi ve OMS bile Borqs adında bir şirket çıkardı. Borqs'ta, çoğu Çin'in cep telefonu endüstrisindeki Huangpu Askeri Akademisi olan Motorola'dan gelen birçok yetenek var. Bu açıdan bakıldığında, Android işletim sistemi de ilk günlerde öngörülemezdi ve kimse bunun kesinlikle başarılı olacağını düşünmedi.
Android sonunda başarılı oldu. Kişisel olarak bunun tamamen teknik bir faktör olmadığını düşünüyorum, ancak teknolojiyle ilgili birkaç temel faktör var:
Geçmişte, CSDN "Programmer" dergisine katkıda bulunan bir kişi vardı. Kişisel tanıtımında ilginç bir cümle vardı. Linux bayrağını yükseltmek için . Bu nedenle, Android'in başarılı olmasının nedeni, çok fazla insanın onun için tezahürat yapmasıdır. Yazılım ve donanım geliştirme, eğitim ...
Android pazarı tamamen işgal ettikten sonra, H5 tabanlı işletim sistemi başka bir doruk noktasına ulaştı.
2013-2014 civarında bir Firefox OS vardı ve birçok makine yurtdışında kuruldu. FireFox OS, Android ile tamamen uyumludur. Sözde uyumluluk, Android işletim sistemine ait orijinal işlevlerin korunduğu ve daha sonra H5 Uygulamasına bazı işlev uzantılarının sağlandığı anlamına gelir.
Android ile karşılaştırıldığında, çok daha az kişi Firefox OS için bayrağı yükseltiyor. Ve Android işletim sistemi ile uyumlu olmalı - o zaman, Android işletim sistemi her güncellendiğinde, Firefox uyum sağlamalı ve değişmelidir. Bu iş yükü çok çok büyük. Sonunda Firefox OS öldü.
Yukarıdakiler tarihsel durumdur - hiçbir işletim sisteminin kazanan doğmadığını ve durumun değiştiğini göstermektedir. Ek olarak, Çoğumuz, bir işletim sisteminin sürecini sıfırdan bu kadar güçlü bir hale getirebildiği için Android'e teşekkür etmek isteriz. Zaman aralığı çok kısadır ve yedi ya da sekiz yıl sürmüştür.
Şimdi Android işletim sisteminde bazı popüler bilimleri tanıtacağız.
Genel video
PPT'den dönüştürülen video:
Yukarıdaki videoda tanıtılan dört bölüm var:
Her bölüm uzun değil. Önce aşağıdaki içeriği okuyabilir, ardından tamamını okuduktan sonra yukarıdaki PPT videosunu izleyebilirsiniz.
Android sistem mimarisi-dikey perspektif
Aşağıdaki şekil Android işletim sisteminin genel mimarisidir. Android kullananların% 99,999'u şunları bilir:
Dikey bir bakış açısına göre, Android işletim sistemi dört seviyeye ayrılmıştır (bu benim bölümüm, diğer insanların ifadeleri benzer, bazıları nispeten eski, örneğin Dalvik sanal makinesi ART ile değiştirildi, ancak bu mimari anlayışımızı etkilemiyor anlayış):
Yukarıdaki dört seviye arasında Kernel en uzun geçmişe sahiptir ve bugün muhtemelen üç dev vardır: Windows, Linux ve macOS (Unix, Linux ve macOS ile ilgilidir ve tüketici elektroniğinde nadiren görülür, bu nedenle Unix tartışılmaz) :
Yukarıdakiler, bir şirkete özgü olmayan tek Linux'tur. Bu nedenle, Linux kullanan Android kaçınılmaz bir seçimdir. Yerel olarak üretilmiş bir işletim sistemi geliştirmek istiyorsak, en büyük olasılık, mevcut Unikylin ve önceki kırmızı bayraklar gibi Linux'a da dayanmaktadır.
Bu, teknolojinin iyi olup olmadığı sorusu değil, Linux Çekirdeği, tüm insanlık tarafından paylaşılan yazılım zenginliği olarak kabul edilebilir. Gereksinimlerine uyun, bağımsız bir krallığa girmeyin, sadece birlikte kullanın. Ayrıca, Linux Çekirdeği onlarca yıldır geliştirildi ve birçok kişi (birçok yerli şirket dahil) ona çok büyük katkılarda bulundu. Söylendiği gibi, selefler bir ağaç dikti ve torunlar gölgenin tadını çıkarabilir. Baştan sona, yukarıdan aşağıya "özerk" olmamız gerekiyorsa, o zaman bilgisayar programlama dillerinin kullanımı konusunda da endişelenmemiz gerekir.
Tartışmamıza devam edin.
Android Framework-hiyerarşi yok
Çoğu insanın gözünde, Android işletim sisteminin mimarisi yukarıdaki gibi dikey ilişkidir - bu anlayış yanlış değil, ancak tamamen doğru değil. Fonksiyonel modülü gözlemlemek için bir birim olarak alırsak Android Çerçevesi (Native Framework ve Java Framework için toplu bir isim), şöyle bir resim elde edeceksiniz:
Android Framework'ü işlev açısından incelemek için:
Bu bölüm aracılığıyla şunları biliyorsunuz:
Bunları bilmenin ne yararı var? Sonra bak.
Android işletim sistemi bir mikro çekirdek işletim sistemidir
Çekirdekle ilgili olarak, her zaman olmuştur Mikro çekirdek ile Makro çekirdek Puan. Windows ve Mac mikro çekirdek kullanır ve Linux makro çekirdek kullanır. Öyleyse, mikro çekirdek nedir ve makro çekirdek nedir? Aşağıdaki şekil mikro çekirdeği kısaca açıklamaktadır:
Mikro çekirdek ile makro çekirdek arasındaki farkı kısaca açıklıyorum (durdurmak için tıkla, teknik olmayan katı):
Mikro çekirdek ve makro çekirdek arasındaki farkı anladıktan sonra, Android'e tekrar bakalım. Android'in bir işletim sistemi olduğunu düşünürsek (Android'in neden daha sonra bir işletim sistemi olarak görülebileceğinden bahsedeceğiz), bu bir mikro çekirdek mi yoksa bir makro çekirdek mi? Ardından aşağıdaki resme bakın:
Yukarıdaki şekil, Android'in dört seviyesi arasındaki etkileşimi göstermektedir:
Yukarıda bahsettiğimiz şeyle birleştirildiğinde, Android Çerçevesindeki işlevsel modüllerin hepsi tek bir süreçte sıkıştırılmış değil, farklı süreçlere dağılmış ve işlevsel modüller süreçler arası iletişim yoluyla etkileşim halindedir. Bu nedenle, uygulama açısından Android işletim sistemi bir mikro çekirdek olmalıdır.
Şimdi, Android'in neden bir işletim sistemi olarak adlandırılabileceğine bir göz atalım - bu sorunun cevabı aslında yukarıda üstü kapalı bir şekilde yanıtlanmıştır, yukarıdaki cümle " Uygulamayı Android'de bu kadar benzersiz kılan Android Framework'e dayanmaktadır. "
Evet, Android'in bir işletim sistemi olduğunun söylenebilmesinin nedeni, yeni bir uygulama geliştirme ve etkileşim kurallarına sahip olmasıdır.
Bu kuralla ilgili olarak, işte iki basit örnek. Biri, uygulama başlatıldığında kaynak Activity ile Android Framework arasındaki etkileşim sürecidir:
Bu resim için herkesten belirli etkileşimin ayrıntılarını anlamasını istemiyorum. Bu resme baktığınızda, bu şeyin Android'e özgü olduğunu göreceksiniz.
Elbette Android'de buna uymayan bir uygulama da yapabilirsiniz. Örneğin, bir cep telefonundaki önyükleme animasyonu bir Linux uygulamasıdır - program adı bootanimation'dır, herhangi bir dört ana bileşeni yoktur ve bir Manifest gerektirmez. Animasyonları / resimleri oynatan saf bir Linux programıdır.
Bir zamanlar 2010 civarında UI kontrolüyle ilgili uygulamalar yapmak için doğrudan libskia'yı kullanarak pratik yaptım - Android'deki bu kontroller, iki boyutlu grafik kitaplığı olarak libskia'yı kullanıyor (üç boyutlu render için OpenGLES). libskia artık Flutter'ın temel oluşturma motorudur.
O zamanki fikrim çok basitti. Android sistemini mobil olmayan cihazlar için kullanmak istedim (bir soda almak için bir kartı kaydırmak gibi basit sahneli cihazlarda kullanılıyordu. O zamanlar, bu cihazların performansı çok kabaydı ve çalışamıyordu. Tam Android seti, kırpılmalıdır), UI çizmek için özel libskia görüntü kitaplığı tabanlı kontrolleri kullanabilirsiniz. Çünkü çoğu durumda, yalnızca kullanıcı arayüzünü çizmeniz gerekir ve gerisi sürücüyü arayacaktır. Dört ana bileşenden hiçbiri gerekli değildir.
Flutter sayesinde, libSkia artık bir miktar popülariteye sahip, ancak değeri hala çoğu insan tarafından hafife alınmaktadır. Şu anda bunu tanıtan profesyonel bir kitap olmadığını biliyorum. Yerleşik sistem (yüksek gecikme gerektiren, tam bir Android setinin kullanımının hız üzerinde büyük bir etkisi vardır ve çoğu zaman kesilmesi gerekir) veya hangi şirketin işletim sistemi ile uğraşmak istediği, iki boyutlu bir oluşturma motorunun geliştirilmesi çok önemlidir - açık bir şekilde ifade etmek gerekirse, uygulama geliştirmenin büyük bir kısmı Oranların tümü UI'dir. Arayüzün Windows ile aynı görünmesini sağlayan birkaç Linux dağıtımı olduğunu hatırlıyorum. BTW ve 3B oluşturma motorlarının bunu önemsemesine gerek yok çünkü çok zor ve korkarım ki herkes uğraşacak, bu yüzden zaten bir OpenGL standardı var ...
Ardından başka bir örnek oynatma videosuna ve sese bakın:
Android'de, bir uygulama video ve ses oynatmak isterse, MediaPlayerService, SurfaceFlinger, AudioFlinger, donanım codec modüllerine vb. Bağlıdır. Bu tür şeyler Linux tarafından değil, Android tarafından getirilir.
Windows'ta bir oynatıcı yaptığımda, uygulamanın DirectX kullanarak codec ve oynatma işlevlerini tek başına eklemesi gerektiğini hatırlıyorum. Bu, her uygulama için özel bir hiledir. Daha fazla formatı destekleyenler daha güçlü olacaktır.
Android'e koyun, kodlama, kod çözme ve oynatma işlevlerinin tümü sistem tarafından sağlanır ve uygulamanın artık bunlar için endişelenmesine gerek yoktur. Bu şüphesiz büyük bir gelişmedir.
Yukarıda çok basit iki örnek vermiştim, muhtemelen artık Android işletim sistemini özgürce arayabiliriz. Çünkü Linux Kernel üzerinde çok sayıda olağanüstü, bağımsız işlev gerçekleştirdi. Dürüst olmak gerekirse, Android uygulamaları için, Android Framework yeterli olduğu sürece Linux'ta çalışıp çalışmadığı önemli değildir. 2011 gibi erken bir tarihte, CSDN blog yazımda "Transplantation Random Talk" (https://blog.csdn.net/Innost/article/details/6954556), birisi tüm Android Çerçevesini Windows'a aktardı. Sanal makineleri kullanan mevcut öykünücüyle aynı olmadığını unutmayın! (Makaledeki video hala mevcut gibi görünüyor, böylece herkes bir göz atabilir.)
Android telefon yayınlama ve güncelleme süreci
Birçok kişi Android cep telefonu sisteminin yayınlanma ve güncelleme sürecini anlamıyor ve AOSP'nin yeni sürümü çıktıktan sonra cep telefonlarının yeni sürüme güncellenmesi uzun zaman alacak. Bu sorunun açıklaması aşağıdaki şekilde gösterilmektedir:
Yukarıdaki resim Android cep telefonu sisteminin yayınlanma ve güncelleme sürecidir.Resim uzun zaman önceydi ve durum şimdi daha iyi olacak, ama kabaca şöyle:
Yukarıdaki durumu bir test perspektifinden anladıktan sonra, kaynak kodu Google'dan son cep telefonuna yayınlanır ve test iş yükü çok büyüktür - bu nedenle son tüketicilere ulaşma hızı çok daha yavaş olacaktır. Üreticinin çözümü, sistemin yeni sürümünü doğrudan yeni telefonlarda kullanmaktır.Eski telefonların yeni sürüm yükseltme paketini yayınlamadan önce genellikle bir süre beklemesi gerekir.
Kısacası, Android cep telefonu dünyasında, Google, çip üreticileri, terminal üreticileri ve operatörlerin tümü ekolojik zincirdeki kilit oyunculardır ve dördü birbirini etkiler. Terminal üreticileri açısından, çip üreticilerinin terminal üreticileri üzerindeki etkisinin daha kritik ve ölümcül olduğunu düşünüyorum. En basit ifadeyle, Qualcomm güncelleme yapmaz ve çipleri iyileştirmezse, birçok cep telefonu satıcısının ürünleri durgunlaşacaktır.
Apple ile karşılaştırıldığında, çipten işletim sistemine kendi çipleri var ve operatörleri ciddiye almıyor. Bu nedenle, Apple'ın yayınlanma ve kapsama hızı nispeten hızlıdır ve parçalanma sorunu kesinlikle Android'den birkaç kat daha düşüktür. Elbette, iletişim yongası Apple için büyük bir sorundur, bu nedenle insanlar her zaman iPhone'un kötü sinyalinden şikayet eder. Bu sorun, Apple'ın kendi iletişim çipini geliştirmesiyle çözülebilir mi? Teorik olarak mümkün, ancak gerçekçi değil çünkü uğraşılması zor birçok patent sorunu var.
Yerel otonom işletim sisteminin geleceği
Yurtiçinde üretilen işletim sistemiyle ilgili bazı görüşlerim ve yargılarımdan bahsedeyim.
Yazar hakkında: Üst düzey Android teknoloji uzmanı olan Deng Fanping, Android teknolojisi araştırma ve geliştirme ile uğraşan ilk yerli mühendislerden biri. "Shennong ve Arkadaşları Deneme Koleksiyonu" (ID: alashhennong_gh) kişisel genel hesabı çalıştırın.
Şu anda, Finans alanında Nesnelerin İnterneti gibi yeni teknolojilerin uygulamasını incelediği ve araştırdığı Bilim ve Teknoloji Bakanlığı, Minsheng Bank'ın İnovasyon Teknolojisi Araştırma Enstitüsü'nde çalışıyor. Altta yatan sanal makineden orta sistem katmanına ve çerçeve katmanına ve ardından üst katmanın çeşitli uygulamalarına kadar, tüm Android sisteminin kaynak kodunu çok derinlemesine araştırıp anlıyor. Planlandı ve yazdı " Android "serisi kitapların derinlemesine anlaşılması (şimdiye kadar 8 kitap yayınlandı) , 100.000'den fazla kopyanın kümülatif satışı, Android mühendis sisteminin çoğunluğu, Android sistem kaynak kodunun derinlemesine anlaşılmasıdır.