Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?

Open-Source-Projekt Magenta teilweise kompatibel zu iOS 5.0

Mit Magenta ist ein ungewöhnlicher Open-Source-Nachbau entstanden, welcher auf Basis des Linux-Kernel binärkompatibel zum aktuellen iOS 5.0 sein soll. Hierfür hat Entwicklerin Christina Brooks das BSD/Darwin-System mit dem Linux-Kernel kombiniert und um verschiedene Komponenten wie die CoreFoundation ergänzt. Das ARMv7-kompatible System ist allerdings nicht zu iOS-Apps kompatibel, da hierfür weit mehr Frameworks implementiert sein müssen, die von Apple zudem nicht einmal dokumentiert sind. Momentan handelt es sich bei Magenta also nur um eine interessante Machbarkeitsstudie mit Zukunftspotenzial. Zudem wurden momentan auch keine Optimierungen vorgenommen, sodass die Geschwindigkeit hinter den Erwartungen zurückbleibt. Sofern sich weitere Entwickler zusammenfinden, könnte sich Magenta aber zu einem offenen iOS-kompatiblen System mausern, welches auch zu gewöhnlichen Apps kompatibel wäre. Neben dem Jailbreak gebe es dann noch eine weitere Möglichkeit, um von Apple nicht akzeptierte iOS-Apps nutzen zu können. Momentan zumindest ist dies aber nicht das Entwicklungsziel von Magenta.

Weiterführende Links:

Kommentare

sierkb11.06.12 15:04
0
ExMacRabbitPro11.06.12 15:09
Zukunftspotential? Wie sollte das aussehen?
0
johnnyb11.06.12 15:09
Und in vier Tagen dann die Meldung: Apple geht gerichtlich gegen Magenta vor...
0
baoxiong11.06.12 15:13
@exmacrabbitpro: Open-source Handy? ich verweigere mich iPhones und Androiden, würde bei einem freien OS sicher schwach werden.
0
Christoph_M
Christoph_M11.06.12 15:14
johnnyb
De telekom macht bestimmt auch mit, kann ja nicht sein dass das ding magenta heißt..
0
sierkb11.06.12 15:33
ExMacRabbitPro:

Christina Brooks auf :
##############################################################
# General
##############################################################

Magenta is an implementation of Darwin/BSD on top of the Linux kernel. It is made
up of a number of kernel and userland components that work together. It is fully binary
compatible with iPhone OS 5.0 (as in, it uses the same binary format).

So far, it includes the following libraries:
* CoreFoundation
* libstdc++
* libobjc
* libc++abi
* libicucore
* libncurses

* As part of libSystem
* libmath
* libunwind
* libsystem_blocks
* libC

All libraries are compiled for vanilla Darwin, so nothing is compiled for Linux. The only
exception is libC (which resides inside the dynamic linker) as it serves as the main bridge
between the userland and the kernel.

The final goal is probably recreating the iPhone OS 1.0 stack. I think this is a pretty feasible
goal, considering the fact that there are so many open source libs that can be used to replace
the proprietary libs used by Apple. Just as an example:
* CoreGraphics Cairo
FreeType
libpng/jpg
* Celestial Various open source media decoding libs.
* UIKit Chamelleon

This is a very weird project. You may ask, why am I doing this? The answer is: no fucking idea

This project is actually far more complicated than it sounds. *Far* more complicated.

Und weiter in der Q/A auf derselben Seite:
##############################################################
# Q/A
##############################################################

* Which platforms does it run on?
* ARMv7 only. Nothing else is planned right now.

* Which SDK do I use?
* iPhoneOS5.0 (apple-arm-darwin)

* Why is libSystem built into the linker?
* I don't know, it just seemed more convinient.

* Is it open source?
* Yep. Check my website. (crna.cc)

* Why not use the FreeBSD kernel instead?
* I thought about using FreeBSD (or rather NetBSD) kernel instead of using Linux.
However, in this case, I prefer Linux due to the extensive features supported by
the kernel and the hardware compatibility (NetBSD offers limited support for ARM
hardware and it doesn't support my dev board (Arm RealView) and I can't be bothered
to make it myself).

* Will it run iPhone OS apps?
* No, because I'm not aiming to have compatible high level frameworks. Just think
about how much work is required to have a 100% compatible implementation of UIKit
or Celestial. HOWEVER, the CoreOS part should be 100% (or 99%) compatible. Just not
the higher level OS. If you're just interested in this because it will "run iOS apps"
please go away.

* Who are you?
* I'm Christina, a very obscure developer obsessed with embedded hardware. I really
like the ARM architecture.

Warum trotzdem? Weil es offenbar geht und weil es Christina Brooks offenbar Spaß bringt, das zu tun bzw. zu versuchen.

Zukunftspotential? Bislang noch unbekannt. Einfach mal schauen, was machbar ist und was nicht und wohin es das Projekt treibt.

Auch Apples Intel-Port von MacOSX hatte einmal als reines Machbarkeits-Experiment, als Spielwiese, angefangen. Und auch Apples MKLinux , war mal eine Machbarkeitsstudie, eine Spiel- und Experimentierwiese mit ungewissem Ausgang, und die daraus gewonnenen Erkenntnisse flossen dann später ein in Darwins/MacOSX' Kernel, dem jetzigen jetzigen Monolith-/Hybrid-Kernel namens XNU.
0
unrath
unrath11.06.12 15:41
Interessanterweise wurden bei den üblichen Diskussionen Mikrokernel < - > Monokernel stets gern Zahlen genannt, die beweisen sollten, daß der Linux-Kernel gerade sehr viel schneller ist als MACH. Liebling war dabei der Aufruf getpid(), der naturgemäß im wesentlichen nur einmal in den Kernel hüpft, dort die "process id" abfragt und sofort zurück zum Aufrufer springt. Das war in Linux drastisch viel schneller, weil MACH dort eine ganze Menge Verwaltungsarbeit braucht ("überkopf"). Dementsprechend müßte jetzt Frau Brooks' Lösung prinzipiell schneller sein können als Apples.
0
sierkb11.06.12 16:08
unrath:

Apples jetziger Kernel XNU ist ja nicht ohne Grund kein reiner Microkernel mehr wie Mach einer ist, sondern XNU ist ein Hybrid-Kernel, zusammengesetzt sowohl aus dem Microkernel Mach als auch aus dem monolithischen FreeBSD-Kernel, erweitert um einen 3. Kernel-Bestandteil, I/O-Kit, zur Treiberkommunikation mit der Hardware.

Insgesamt und unterm Strich ist XNU also alles andere geworden als ein schlanker Microkernel. Er ist nicht nur ein Hybride, der beide Welten (Microkernel und Monolithischer Kernel) in sich vereint (inklusive der jeweiligen Vor- und Nachteile beider Philosophien und Ansätze), sondern er ist letztendlich nach außen hin auch wieder ziemlich monolithisch geworden, wenn man alles zusammenzählt, auch wenn ein Bestandteil seiner selbst eben der Microkernel Mach ist (der aber eben nicht alleine und um eben um einen Teil des monolithischen FreeBSD-Kernels ergänzt bzw. dieser wurde Mach an die Seite gestellt und mit diesem verschmolzen, um die mit einem Microkernel einhergehende stark erhöhte Inter-Prozess-Kommunikation (IPC) und daraus folgende Verlangsamung zu kompensieren. Was den aus dieser Verschmelzung resultierenden XNU-Kernel insgesamt und nach außen hin wiederum sehr aufbläht und ihn im Grunde wieder monolithisch gemacht hat (im Vergleich zu dem reinen Mach Microkernel).

Siehe dazu auch hierzu der hervorragende CCC-Vortrag im Rahmen der 24C3 2007:

24C3: Inside the Mac OS X Kernel

24C3: Inside the Mac OS X Kernel (PDF)

24C3: Inside the Mac OS X Kernel (Youtube-Video, Dauer: 42:05 Minuten)
0
sierkb11.06.12 16:18
unrath:

Nachtrag:
Vom damals reinen Mach- Microkernel abzurücken, wie er in NeXTStep noch verwendet wurde und diesen Hybriden names XNU (XNU = X ist Not Unix) zu erschaffen, den Microkernel also zu ergänzen um einen monolithischen Bestandteil, um nicht zuletzt die IPC-Kommunikation im Zaume zu halten und den Kernel insgesamt dadurch zu beschleunigen, weil ein reiner Mach Microkernel sich selber wohl zu sehr ausbremst durch eben die ihm eigene und im Vergleich zu Monolithen drastisch erhöhte IPC, das dürfte eine direkte Folge und Lehre des MKLinux-Projektes gewesen sein, an dem Apple damals zusammen mit der OSF forschte und experimentierte, wo sie dem Mach Microkernel einen Linux-Kernel aufpflanzten, auf dem dann der Rest des Systems lief.
0
o.wunder
o.wunder11.06.12 16:19
Da ist nix iOS kompatibel, lediglich das binäre Format der Dateien ist gleich. Da werden niemals iOS Apps drauf laufen können, weil dazu viele Api's kompatibel implementiert werden müssten, was Apple mit Sicherheit nie zulassen wird.
0
ExMacRabbitPro11.06.12 16:21
sierk

ja - lesen kann ich auch. Aber mehr wie eine blinkende console bringt die Sache noch nicht. Das wollte ich schon immer auf dem Handy haben...

AT DT 09458.....



Ne, jetzt ohne Witz - das ist sicher ein lehrreiches Projekt aber bis daraus eine wirklich funktionierende, einsetzbare Pattforn würde, fehlt noch ca. 98% was ein modernes Smartphone ausmacht. Das das in vertretbarer Zeit erstellbar ist, kann als unmöglich angesehen werden. Zumal die Dinge die Fehlen nicht mehr OSS sind.
0
ExMacRabbitPro11.06.12 16:23
Da ist nix iOS kompatibel, lediglich das binäre Format der Dateien ist gleich. Da werden niemals iOS Apps drauf laufen können, weil dazu viele Api's kompatibel implementiert werden müssten, was Apple mit Sicherheit nie zulassen wird.

genau so sieht es aus. Das ist Darwin auf eine ARM Platform gepackt.
0
MarkInTosh11.06.12 16:25
Womit sich Leute alles so beschäftigen... (kopfheftigschüttel!)
0

Kommentieren

Sie müssen sich einloggen, um die News kommentieren zu können.