个中想法会比较幼稚,不过你看我发的这个节点也能原谅我了。
一个是自己的拖延症,第二个要用到的东西自身都还没有达到非常可用的地步,再一个里面有些东西这个时候的我是实现不了的。
So,what is Dame?It's a project name of my ongoing lightwight Linux distro,yet based on
ChromiumOS.It will cotain all those bleeding edge stuff.
我并不是一个纯Linuxer,大多数时候我都在用win,因为我觉着试过各种desktop发行版后根本就没有符合我胃口的。今天上厕所的时候我突然想到,shit,我根本就不要Gnome或者KDE这种又大又笨的桌面环境,我需要的只是一个浏览器和可以执行脚本的shell而已。
那么我需要做的只是一个based on ChromiumOS的mod,只不过问题还是很多的,嗯,比自己想加feature还多。
首先把CrOS内核升级到latest Kernel是必须的,我总是喜欢保持最新的。当然Kernel里面对Dame来说很多东西是没用的,编译的时候应当精简掉一些无用的。其次是默认的CFS,Linux默认的调度器是不适合desktop的,即便是BFS,对Dame也不完全合适,所以要研究怎么写个性能最大化的scheduler。
然后是systemd的集成,CrOS有一套自己的init系统,不过systemd的设计理念绝对是超前的,可借鉴的。同样由Lennart Poettering开发的journal,日志对Dame来说是个无用的东西,收集崩溃等反馈信息可以用breakpad来做,但是如果问题出在系统层面的话,日志仍然是需要的,所以debug模式可以开启journal。同样应该存在一个回滚机制来确保没有经验的使用者可以在不折腾的情况下继续使用。
Wayland,对,下一代的X Window,怎么可以少掉Wayland,CrOS是基于X.org的,那么怎么把Aura和Ash移植到Wayland。不过Aura和Ash自身还都没稳定下来,更不要说现在还只是个玩具的Wayland了。当然,Wayland里面也有对Dame来说无用的东西,kiss原则,没用的代码都精简掉。
嗯,文件系统,Brtfs号称下一代file system,同样还没有稳定下来,在将来SSD愈加普及的年代,Brtfs也不一定适合,NILFS据说在SSD上很快,但是同样的,Dame会是一个非常轻量化的系统,肯定有用不到的特性,通通给我精简了。
Flash,这玩意儿在Linux下面是个很罪恶的东西,通常看个视频,风扇就开始狂转了,我最一开始用Linux的时候记得经常因为Flash把Linux给搞死机了。如果能基于Nacl写个Flash的开源实现就棒了,还有Lightspark可以借鉴。而且Nacl是两层的沙箱结构,从安全方面来说,实在是比Flash不知高到哪里去了。至于Nacl,如果你看过Google的官方文档你就会发现,是个相当有野心的项目。将来打开一个网页,后台下载预编译的代码,本地编译执行,牛逼!当然,我现在只能意淫一下这个东西,如果现在做的话,只能搞个dirty hack
http://www.v2ex.com/t/29892 ,对那些个视频站伪装useragent来用m3u8或者mp4格式播放,这样对发热量和CPU占用率都会有抑制。另外Chromium自身的广告屏蔽能力不够,在中国太多的flash广告了,通通给我毙掉。
还有多媒体方面,Linux下面的播放器太残念了,很多编码器都没有,要你确认下用私有的东西才给下,管它呢,反正要用,集成在里面省的浪费大家的时间。VLC和SMplayer播放的时候有些中文字幕会乱码,这个在Chromium自己的player基础上也要好好调教调教,硬件加速什么的必须得有。
最后还有我今天看到的这个东西
http://en.gentoo-wiki.com/wiki/Using_Graphics_Card_Memory_as_Swap ,这个把显存当swap/内存用很是新颖,但是目前并不实用,限制很多,必须用vesa驱动,而且只能用到256M,作者自己都不知道究竟能用到多少,还可能会造成显示不正常。这种触及到基础架构的hack还是留给社区的开发者做吧,不是我这个水平的人玩的来的。之所以想这个hack是因为chromium太吃内存了,一个空白页开下来都吃内存,这方面你看人家FF的memory shrink project,多有态度。之前试用Vanilla的时候,并不很流畅,这个应该也是显示驱动的问题,不过Linux社区一直在这方面努力。开源驱动和闭源驱动这个和我对编码器的态度是一样的,哪个好用用哪个,我才不管私有不私有纯不纯净呢。
然后是升级,如果你从源码编译CrOS的话,是不好升级的,只有chromebook才能自动升级,就像Chrome之于Chromium一样。如果你要跟上官方开发组,那就得重头编译,把原来的删掉重来,这个是不可接受的,必须有增量升级制度。这个交给开发者就行了,在服务器端Git fetch官方的branch然后diff了编译再分发下去,当然具体并不像我说的这么简单,因为自身是有改动的另外一个灰度发布也是必要的,不能让所有人都来做小白鼠。之前说到breakpad,对,收集的崩溃信息在筛选后找到问题可以反馈给官方的开发团队。
当然一个好的编辑器也是必要的,当然VIM或者Emacs这种,我并不非常来感。我更倾向于有GUI的那种,例如textmate、sublime text或者是网页的cloud9那种。当然系统里面Git是要有的,SVN谁要用自己装吧,CrOS用的gentoo那一套包管理。然后python啊ruby啊nodejs啊什么的运行环境要有,虽然我都没用过ruby,但是这样更developer friendly对吧,我一开始想要不要专门搞个for developer的版本,后来想想太不kiss,到时候小白都不知道下哪个,再说也不会增加很大的体积。至于CrOS的shell,现在有Hterm,命令什么的都好用,不过Cros是精简过的,不少Linux命令没有,到时候加进去就是了。
对了,Dame要有个像wubi那样的在win下面的安装器,我最一开始装Linux的感觉就是,妈的,怎么装个系统这么麻烦,这个分区那个分区的我哪懂,Google的头都大了。现在我还记得装Arch的时候一不小心分区搞乱了,干脆整个盘格掉重来的来着。
最后就是隐身模式了,这玩意就不符合字面意思,本地隐身有个毛用,要在网络里隐身啊。切换到隐身模式就要进tor才好,当然tor本身被某墙搞的半死不活了,这个要实用的话要在tor的协议上做修改。dns encrypt也要有,tor这玩意儿本来就不完全安全。然后就是完全对用户透明的网络访问了,这句话蛮歧义的,但是这事儿不好说太细。除了本地改hosts这种quick&dirty的hack,判断一个站点是否被墙,然后维护一个像HSTS那样的列表,访问的时候如果在这个列表里,那么就走代理,还有速度慢的也走代理好了。一方面是中心节点的服务端代理,SPDY肯定要有的,html、css、js压缩还有webp,如果CPU占用率不高的话可以一并也做了,CPU空闲的时候可以起个cronjob来做,服务端代码稳定下来以后还可以对外提供CDN服务,这样就有钱用于支付服务器的费用了。另外我想的一个加速访问的小技巧就是把一些常访问的网站css、js文件直接缓存到本地。再一方面就是国外的用户可以作为这个类tor网络里的bridge一样,分布式的代理。
嗯,从坐马桶时候的一个想法意淫出了这么多,我果然是YY达人。下午刚买的一包万宝路就快抽光了,Dame!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/31211
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.