sinds wanneer is android geen linux meer dan?
Ik weet niet hoe vaak deze opmerking nog gemaakt moet worden, maar het feit dat Android bovenop de Linux kernel draait wil nog niet zeggen dat je er daarom Linux applicaties op kunt draaien. Adobe AIR heeft helemaal niks met de Linux kernel te maken, maar met de userland die Linux-distro's bovenop die kernel draaien. Android heeft die userland niet, Android heeft in plaats daarvan een Java VM + frameworks die op de Linux kernel draaien.
Ergo, los van semantiek (ja ik ben me er van bewust dat voor puristen 'Linux' alleen op de kernel slaat), valt in de praktijk de vraag 'sinds wanneer is Android geen Linux meer dan' te beantwoorden met: sinds zo lang als het bestaat.
Edit: @dmantione
Android is niet 'een Linux systeem met een andere grafische schil', en de vergelijking met een GP2X of een Dreambox loopt mank, want die systemen (dreambox ken ik niet overigens, GP2X wel) beschikken gewoon over een min of meer volwaardige Linux userland. Dan kun je Android beter met een linux-based router vergelijken: een linux kernel met een bare-bones userland die er alleen maar toe dient om een shell te kunnen openen en dergelijke. Daarbovenop draait dan het Java gedeelte, dat zo'n beetje alles implementeert dat interessant is aan Android, behalve interfacing met de hardware.
Dus inderdaad, het gaat iets verder dan alleen de kernel, maar een stuk software als de Adobe AIR runtime zal op 10-tallen libraries gebaseerd die simpelweg niet aanwezig zijn op Android en om allerlei redenen niet zomaar toe te voegen zonder heel je telefoon te verbouwen. Dit is nog even buiten beschouwing gelaten dat er ook nog eens grote verschillen zijn in wel of niet ondersteunde kernel features, vooral die kernel features die een combinatie van een kernel module en een userland library vereisen (denk aan dingen als hal, udev, procps, audio libraries, etc). Technisch *kan* dat allemaal op Android draaien, maar in de praktijk zal Google dit soort dingen er allemaal uitgesloopt hebben omdat het niet nodig is voor Android als smartphone OS, of omdat ze daar hun eigen alternatieven voor hebben. Zelfs de standard C library op Android is volkomen anders dan op Linux systemen vanwege het feit dat glibc en uclibc een incompaitble license hebben.
[Reactie gewijzigd door johnbetonschaar op donderdag 16 juni 2011 18:46]
ik draai irssi op mijn linux-based router, ik draai daar mijn normale firewall regels op, iets uitgebreider dan op mijn pc, maar dezelfde code staat aan de basis. Ik draai daar ook een torrent client op mijn router. Ik zie eigenlijk (buiten de grafische schil) geen verschil met een linux-based desktop hoor.
Net als mijn android telefoon (SGS), ik draai daar ook mijn eigen firewall op, en werk even zeer in de console met de standaard shell commando's. "su" maakt mij even zeer root dan op een linux-based desktop en dmesg enzovoorts geeft mij allemaal hetzelfde.
Dus Android is wel gewoon een standaard linux distributie, gewoon wat meer "getuned" dan wat je gewoon bent, maar in wezen is het een linux kernel , met een afgeslankte libc en een hoop standaard applicaties. Het enige verschil is enkele modules en de userland applicaties.
ps. het is geen enkel probleem om 10tallen libraries toe te voegen, zolang ze maar compatibel zijn...