红岗花园地下室的空气里,除了原本的霉味和烟味,现在又多了一股酸涩的电解液味道。
陈景明那块软包电池的成功,像是一针强心剂,扎进了这群快要猝死的工程师心口。
但这股兴奋劲儿没撑过十二小时。
“崩了。”
孙强把键盘一推,整个人往椅背上一瘫,椅子发出不堪重负的嘎吱声。
屏幕上是一串红得刺眼的报错代码:`Stack Overflow`。
“内存溢出。”孙强抓着本来就不多的头发,指着屏幕上的数据条,“一共就512KB的内存。操作系统内核占了120K,TCP/IP协议栈占了200K,剩下的空间连加载字体库都不够,更别说跑图形界面。”
他转过头,看着坐在角落里敲代码的苏晓月。
“晓月,听我一句劝。砍掉图形界面吧。做成纯字符终端,就像DOS那样。虽然丑点,但能跑通。咱们只有二十天,现在已经过去一半了。”
苏晓月没理他。
她盯着屏幕上那个死循环的内存分配函数,眼圈黑得像被人打了两拳。
“不行。”
“为什么不行?诺基亚也是字符界面,爱立信也是!咱们凭什么非要搞图标?这硬件根本带不动!”
“因为老板说了,这是电脑,不是电话。”
苏晓月终于停下手,转过身。她手里捏着半块干硬的面包,那是昨晚剩下的。
“如果是字符界面,老百姓看不懂,那就只能卖给工程师。要想卖给所有人,就必须是图形化。”
“那是理想!”孙强急了,拍着桌子上的开发板,“物理限制摆在这儿!512KB就是512KB,你就是把这芯片磨出火星子来,它也变不成1MB!”
屋子里的气氛降到了冰点。
赵立在一旁不敢说话,他是做应用的,底层崩了,他写再好的应用也是空中楼阁。
张汉玉推门进来的时候,正好听到这句咆哮。
他手里提着一袋刚买回来的冰镇可乐,瓶壁上挂满了水珠。
“吵什么?”
张汉玉把可乐分给众人,自己拉过一把折叠椅,坐在孙强对面。
“内存不够?”
“不够。差得远。”孙强指着那个红色的报错条,“除非把协议栈砍了,或者把GUI砍了。二选一。”
张汉玉拧开盖子,喝了一口,凉气顺着喉咙冲下去,激得人一激灵。
“都不砍。”
他拿起那支黑色马克笔,走到白板前。白板上已经密密麻麻写满了待办事项,他在角落里擦出一块空白。
“孙工,你觉得内存是什么?”
“存储数据的容器啊。”
“不,是仓库。”张汉玉画了一个方框,“数据是货物。现在货物太多,仓库塞不下了。常规的思路是扩建仓库,但我们没钱,也没硬件支持。”
他在方框门口画了一个小圆圈。
“既然仓库扩不了,那就把货物变小。”
孙强愣了一下:“压缩?”
“对。动态内存压缩。”
张汉玉在圆圈里写了几个字母:`Z-RAM`。
“数据写入内存之前,先经过这个压缩算法。读取的时候,再解压。用CPU的算力,换内存的空间。”
孙强和赵立对视一眼,都从对方脸上看到了“这人疯了”的表情。
“老板,你知不知道这会增加多少CPU负担?”孙强把可乐顿在桌上,“ARM7的主频只有33MHz!它跑系统都已经气喘吁吁了,你还要让它实时压缩解压?那系统会卡成PPT的!”
“不会。”
张汉玉回答得很笃定。
“因为我们要用的数据,大部分是重复的。比如屏幕上的像素点,大片的白色背景,用行程编码(RLE)压缩,几百个字节能压成几个字节。文本数据用哈夫曼编码
