其实只是第二次到圣淘沙岛,回首在新加坡的一年
Siloso Beach - Sentosa - Singapore - 2010.10 |
福禄寺 四面佛 |
印度庙 Sri Krishnan Temple 正在举行大型庆祝140周年活动,对面观音堂佛祖庙固自门庭若市 |
2010/5/7 Liang Guo <bluestonechina at gmail.com>: > > 在 2010年5月7日 下午4:47,Avanpak <slevin.van at gmail.com>写道: >> >> Linux下有很多Java应用,如openoffice, >> 为什么不把JVM加入Kernel,让这些应用跑起来更顺畅呢? >> >> There're many Java applications on Linux, such as openoffice. >> Why not add JVM into Kernel, and let them run better. > > Why do you think JVM in kernel space is better in user space ? 我个人觉得:除了法律、GPL的要求之外,没有什么技术上的理由说 JVM 不可以放进内核, 我想真正唯一的理由是:谁去做它? 谁有能力、有需求的人士不妨可以去尝试, 但当前有没有谁想去接上这个活儿,这是个问题, 当时 03,04 年我们还在 linuxsir 的内核区讨论 “把 XWindow 移进内核让它像 运行Windows图形一样快, 如何?”, 支持和反对者辩论了很久,支持者认为会提高性能 让Linux图形和Windows一样快,反对者认为会引入BUG让Linux像Windows一样不稳定, 经常崩溃;这样的辩论在各 Linux 社区都时常可见,但都没什么结果,因为没有人真正 去做,全部都是空谈没有意义, http://www.linuxsir.org/bbs/thread147361-1.html 我们当时确实没有能力去实现 内核态XWindow 这么一件大工程,现在来看,内核模式设定 KMS 可以被 内核接受,被各Linux发行版引用,其本质就是把一部分 XWindow代码移进了 内核态运行 (Xorg 的显卡驱动的一部分,), 证实了这个方向确实是可行的, @Avanpak, 你说的内核态JVM是目的让 内核态直接能运行 Java应用程序的class 文件? 这样以后运行 Eclipse 确实应该快些, 位于 杭州 - 浙大网新 - 毛德操老师引领的 Longene 项目与此目的倒是有些类似, 让 Linux内核直接运行Windows的PE格式exe可执行程序, http://www.longene.org/ 初期版本的方案是内核模式的wine, 但0.3版以后实现有改变?其git仓库还是没变化,Jack能否发布点文档? "longene-0.3初步定于5月底发布,新版本将去除wineserver,所有功能在内核模块中完成。敬请期待!" "整体移植wineserver至模块中,所有发往wineserver的请求通过系统调用方式直接进入内核, 在wine中去掉wineserver进程。移植完成后,预计完成后性能会有较大地提高。" http://www.longene.org/newslist.php http://www.longene.org/forum/viewtopic.php?f=2&t=4159 http://www.longene.org/gitweb/?p=unifiedkernel.git 回到 JVM 和 Logene 问题本身,技术上没有什么不可以做的,有了需求,有了 motivation, 还要有人坚持不懈把它做出来才行,Avanpak 您愿意开始 内核JVM 工作吗? > > -- > Liang Guo > http://bluestone.cublog.cn -- Cheng Renquan
suseuser@linux-2.6.33-uk> PAGER= git log --no-merges --pretty="%h %s" v2.6.30..v2.6.33 -- kernel/fork.c fabf318 sched: Fix fork vs hotplug vs cpuset namespaces 9cd80bb do_wait() optimization: do not place sub-threads on task_struct->children list 6580807 ptrace: copy_process() should disable stepping 569b846 memcg: coalesce uncharge during unmap/truncate 1d61548 sched: Convert pi_lock to raw_spinlock b69f229 block: Fix io_context leak after failure of clone with CLONE_IO 0cf55e1 sched, cputime: Introduce thread_group_times() d99ca3b sched, cputime: Cleanups related to task_times() 8e7cac7 core: Fix user return notifier on fork() 1d51075 Correct nr_processes() when CPUs have been unplugged 322a2c1 futex: Move exit_pi_state() call to release_mm() fc6b177 futex: Nullify robust lists after cleanup 801460d task_struct cleanup: move binfmt field to mm_struct 858f099 aio: ifdef fields in mm_struct 123be07 fork(): disable CLONE_PARENT for init d899bf7 procfs: provide stack information for threads 1f10206 getrusage: fill ru_maxrss value 28b83c5 oom: move oom_adj value from task_struct to signal_struct 1c2fb7a ksm: fix deadlock with munlock in exit_mmap 9ba6929 ksm: fix oom deadlock f8af4da ksm: the mm interface to ksm c6a7f57 mm: oom analysis: Show kernel stack usage in /proc/meminfo and OOM log output cdd6c48 perf: Do the big rename: Performance Counters -> Performance Events e0e8173 CRED: Add some configurable debugging [try #6] 4ab6c08 clone(): fix race between copy_process() and de_thread() f41d911 rcu: Merge preemptable-RCU functionality into hierarchical RCU 0753ba0 mm: revert "oom: move oom_adj value" 9c8a822 execve: must clear current->clear_child_tid 42c4ab4 itimers: Merge ITIMER_VIRT and ITIMER_PROF 9f498cc perf_counter: Full task tracing 933b787 mm: copy over oom_adj value at fork time ed900c0 perf_counter: Log vfork as a fork event b43f3cb headers: mnt_namespace.h redux 72a1de3 copy_process(): remove the unneeded clear_tsk_thread_flag(TIF_SIGPENDING) 2dff440 kmemcheck: add mm functions 60313eb perf_counter: Add fork event 226f62f perf_counter: Add a comm hook for pure fork()s f7e8b61 function-graph: move initialization of new tasks up in fork bbbee90 perf_counter: Ammend cleanup in fork() fail 6ab423e perf_counter: Propagate inheritance failures down the fork() path e4cbb4e perf_counter: Move child perfcounter init to after scheduler init a63eaf3 perf_counter: Dynamically allocate tasks' perf_counter_context struct ad8d75f tracing/events: move trace point headers into include/trace/events a8d154b tracing: create automated trace defines 0f48140 x86, ptrace: add bts context unconditionally 0793a61 performance counters: core code
$ ./a.out 0xffe80358, ffe80374 0xffe80354, 0 *** stack smashing detected ***: ./a.out terminated ======= Backtrace: ========= /lib32/libc.so.6(__fortify_fail+0x48)[0xf76dd228] /lib32/libc.so.6(__fortify_fail+0x0)[0xf76dd1e0] ./a.out[0x80484fd] [0x41414141] ======= Memory map: ======== 08048000-08049000 r-xp 00000000 08:09 130818 /home/gektop/tmp/test/a.out 08049000-0804a000 r--p 00000000 08:09 130818 /home/gektop/tmp/test/a.out 0804a000-0804b000 rw-p 00001000 08:09 130818 /home/gektop/tmp/test/a.out 085d1000-085f2000 rw-p 00000000 00:00 0 [heap] f75f6000-f75f7000 rw-p 00000000 00:00 0 f75f7000-f7734000 r-xp 00000000 08:0a 5808 /lib32/libc-2.9.so f7734000-f7736000 r--p 0013d000 08:0a 5808 /lib32/libc-2.9.so f7736000-f7737000 rw-p 0013f000 08:0a 5808 /lib32/libc-2.9.so f7737000-f773a000 rw-p 00000000 00:00 0 f773e000-f774a000 r-xp 00000000 08:0a 5784 /lib32/libgcc_s.so.1 f774a000-f774b000 r--p 0000b000 08:0a 5784 /lib32/libgcc_s.so.1 f774b000-f774c000 rw-p 0000c000 08:0a 5784 /lib32/libgcc_s.so.1 f774c000-f774e000 rw-p 00000000 00:00 0 f774e000-f774f000 r-xp 00000000 00:00 0 [vdso] f774f000-f776b000 r-xp 00000000 08:0a 5810 /lib32/ld-2.9.so f776b000-f776c000 r--p 0001c000 08:0a 5810 /lib32/ld-2.9.so f776c000-f776d000 rw-p 0001d000 08:0a 5810 /lib32/ld-2.9.so ffe6d000-ffe82000 rw-p 00000000 00:00 0 [stack] Aborted
$ curl -v www.sun.com
* About to connect() to www.sun.com port 80 (#0)
* Trying 72.5.124.61... connected
* Connected to www.sun.com (72.5.124.61) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.19.7 (i386-redhat-linux-gnu) libcurl/7.19.7 NSS/3.12.4.5 zlib/1.2.3 libidn/1.9 libssh2/1.2
> Host: www.sun.com
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
< Server: Sun-Java-System-Web-Server/7.0
< Date: Fri, 29 Jan 2010 05:38:56 GMT
< P3p: policyref="http://www.sun.com/p3p/Sun_P3P_Policy.xml", CP="CAO DSP COR CUR ADMa DEVa TAIa PSAa PSDa CONi TELi OUR SAMi PUBi IND PHY ONL PUR COM NAV INT DEM CNT STA POL PRE GOV"
< Location: http://www.oracle.com
< Content-length: 0
< Connection: Keep-Alive
< Age: 0
<
* Connection #0 to host www.sun.com left intact
* Closing connection #0
http://webblaze.cs.berkeley.edu/