查看文章 |
Google的Android
2007-11-20 13:53
by tombkeeper@xfocus.org from http://hi.baidu.com/tombkeeper 看了一下google发布的Android SDK。这个SDK带的模拟器是基于qemu做的,模拟的CPU是ARM926EJ-S。内核是Linux,版本居然是簇新的2.6.23。而且我发现还开启了SELinux,看来想溢出Android是没戏了。网上无数人贴Android的运行界面,我这里贴点内核启动信息让大家看看爽一下: Uncompressing Linux................................................................................. done, booting the kernel. Linux version 2.6.23-gcc3bc3b4 (arve@arvelnx.corp.google.com) (gcc version 4.2.1) #3 Tue Oct 30 16:28:18 PDT 2007 CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00003137 Machine: Goldfish Memory policy: ECC disabled, Data cache writeback CPU0: D VIVT write-through cache CPU0: I cache: 4096 bytes, associativity 4, 32 byte lines, 32 sets CPU0: D cache: 65536 bytes, associativity 4, 32 byte lines, 512 sets Built 1 zonelists in Zone order. Total pages: 24384 Kernel command line: qemu=1 console=ttyS0 androidboot.console=ttyS0 android.checkjni=1 keycharmap=qwerty2 android.ril=ttyS1 Unknown boot option `androidboot.console=ttyS0': ignoring Unknown boot option `android.checkjni=1': ignoring Unknown boot option `android.ril=ttyS1': ignoring PID hash table entries: 512 (order: 9, 2048 bytes) Console: colour dummy device 80x30 Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) Memory: 96MB = 96MB total Memory: 94212KB available (2268K code, 458K data, 96K init) Mount-cache hash table entries: 512 CPU: Testing write buffer coherency: ok android_power_init android_power_init done NET: Registered protocol family 16 NET: Registered protocol family 2 IP route cache hash table entries: 1024 (order: 0, 4096 bytes) TCP established hash table entries: 4096 (order: 3, 32768 bytes) TCP bind hash table entries: 4096 (order: 2, 16384 bytes) TCP: Hash tables configured (established 4096 bind 4096) TCP reno registered checking if image is initramfs... it is Freeing initrd memory: 295K goldfish_new_pdev goldfish_interrupt_controller at ff000000 irq -1 goldfish_new_pdev goldfish_device_bus at ff001000 irq 1 goldfish_new_pdev goldfish_timer at ff003000 irq 3 goldfish_new_pdev goldfish_rtc at ff010000 irq 10 goldfish_new_pdev goldfish_tty at ff002000 irq 4 goldfish_new_pdev goldfish_tty at ff011000 irq 11 goldfish_new_pdev smc91x at ff012000 irq 12 goldfish_new_pdev goldfish_fb at ff013000 irq 13 goldfish_new_pdev goldfish_events at ff014000 irq 14 goldfish_new_pdev goldfish_nand at ff015000 irq -1 goldfish_new_pdev goldfish-switch at ff016000 irq 15 goldfish_new_pdev goldfish-switch at ff017000 irq 16 goldfish_pdev_worker registered goldfish-switch goldfish_pdev_worker registered goldfish-switch goldfish_pdev_worker registered goldfish_nand goldfish_pdev_worker registered goldfish_events goldfish_pdev_worker registered goldfish_fb goldfish_pdev_worker registered smc91x goldfish_pdev_worker registered goldfish_tty goldfish_pdev_worker registered goldfish_tty goldfish_pdev_worker registered goldfish_rtc goldfish_pdev_worker registered goldfish_timer goldfish_pdev_worker registered goldfish_device_bus goldfish_pdev_worker registered goldfish_interrupt_controller Installing knfsd (copyright (C) 1996 okir@monad.swb.de). yaffs Oct 30 2007 16:24:34 Installing. io scheduler noop registered io scheduler anticipatory registered (default) io scheduler deadline registered io scheduler cfq registered allocating frame buffer 480 * 320, got ffc00000 Console: switching to colour frame buffer device 60x40 console [ttyS0] enabled RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize loop: module loaded nbd: registered device at major 43 smc91x.c: v1.1, sep 22 2004 by Nicolas Pitre <nico@cam.org> No IRQF_TRIGGER set_type function for IRQ 12 (goldfish) eth0: SMC91C11xFD (rev 1) at c6800000 IRQ 12 [nowait] eth0: Ethernet addr: 52:54:00:12:34:56 goldfish nand dev0: size 4000000, page 2048, extra 64, erase 131072 goldfish nand dev1: size 4000000, page 2048, extra 64, erase 131072 mice: PS/2 mouse device common for all mice *** events probe *** events_probe() addr=0xc6804000 irq=14 input: goldfish-events-keyboard as /class/input/input0 goldfish_rtc goldfish_rtc: rtc core: registered goldfish_rtc as rtc0 logger: created 64K log 'log_main' logger: created 64K log 'log_events' logger: created 64K log 'log_radio' IPv4 over IPv4 tunneling driver GRE over IPv4 tunneling driver TCP cubic registered NET: Registered protocol family 1 NET: Registered protocol family 17 802.1Q VLAN Support v1.8 Ben Greear <greearb@candelatech.com> All bugs added by David S. Miller <davem@redhat.com> VFP support v0.3: implementor 41 architecture 1 part 10 variant 9 rev 0 goldfish_rtc goldfish_rtc: setting the system clock to 2007-11-20 01:08:55 (1195520935) Freeing init memory: 96K init: HOW ARE YOU GENTLEMEN init: reading config file init: device init init: mtd partition -1, init: mtd partition 0, "system" yaffs: dev is 32505856 name is "mtdblock0" yaffs: passed flags "" yaffs: Attempting MTD mount on 31.0, "mtdblock0" init: mtd partition 1, "userdata" yaffs: dev is 32505857 name is "mtdblock1" yaffs: passed flags "" yaffs: Attempting MTD mount on 31.1, "mtdblock1" eth0: link up # binder_open(c0844300 c0918440) (pid 456) got c5542000 binder_open(c0844300 c0918dc0) (pid 467) got c46fc000 android_power: auto off timeout set to 604800 seconds binder_open(c0844300 c0adcde0) (pid 464) got c473b000 binder_open(c0844300 c0adc460) (pid 503) got c3967000 binder_open(c0844300 c425fcc0) (pid 507) got c3a1c000 binder_open(c0844300 c3541ce0) (pid 515) got c354a000 binder_open(c0844300 c2fa3be0) (pid 604) got c2d8b000 System halted. 以前零星听到关于google要涉足手机市场的消息时,我还有些纳闷:智能手机市场的争夺其实主要是软件的争夺,google如何跟发展了这么多年的WM和Symbian争天下?Moto当年的试水linux的时候,基本就是死在这个原因上。最近我逐渐明白了:有钱,一切皆有可能。 首先,google花钱砸出了一个兼容java的“gava”。也就是说,你用java写的程序,拿gava的编译器可以直接编译,然后就可以在Android上运行。这样既绕过了sun关于java的许可证限制,又解决了以前那么多基于j2ee/j2me开发的手机程序的兼容问题。 第二,google拿了一千万美金作为奖金,搞了一个基于Android的编程竞赛。50个入围的,每人可以拿2.5万;10个银奖,每人10万;10个金奖,每人27.5万(算一下,这好像才500万,还有500万干吗用了呢?)。可以想象一下,那些辛辛苦苦写ListPro、Handstory的程序员们得卖多少份软件才能卖出27.5万啊。此举一定会吸引大批给Windows CE、PALM、Symbian写软件的人们来尝试一下。 解决了软件来源问题,其它就都好办了。作为手机厂商来说,有这么一个不花钱的平台可用,何乐而不为呢?所以包括微软的老搭档HTC在内的几乎所有大手机厂商都和google达成了合作协议。 顺便说一句,我发现Android居然内置了中文字体,我估计应该CJK都可以: ![]() 很多年前,业内就有人说linux未来最大的发展将是嵌入式领域,其次才是服务器。Android的出现,也许会成为Linux嵌入式时代的一个里程碑。 |


