博客首页|TW首页| 同事录|业界社区
2009-04-28

今年35了,工作11年了,工作之初,俺头的头就让我们在linux下开发系统,可惜阿,俺这个蠢人懒人由于自己的惰性只肯在windows下用一种傻瓜式的Labview编程平台。傻瓜了这么多年,感觉自己啥都不是,只会在上层搞系统集成,想深入底层做点事简直是制擎的很。

微软的系统变得太快,而且老的系统以后不会再支持,为了俺们自己,也要准备着把所有东西转移到linux下。可惜NI对linux支持的不够,总不能离开labview就不会干活,所以还是要从基本学起,不变应万变。

linux下开发,离不开c语言,虽大学学过,可都忘光了。慢慢从hello world开始吧,发现一个很好的入门的地方:Linux系统下的C语言编程入门,记在这,如果有牛牛来俺的窝溜达,可一定要把经验留下,省得我这只菜鸟胡撞,时间不饶人阿,这么大岁数了还什么都不是,这些基本的技术还要从头学起,哎!

今年35了,工作11年了,工作之初,俺头的头就让我们在linux下开发系统,可惜阿,俺这个蠢人懒人由于自己的惰性只肯在windows下用一种傻瓜式的Labview编程平台。傻瓜了这么多年,感觉自己啥都不是,只会在上层搞系统集成,想深入底层做点事简直是制擎的很。

微软的系统变得太快,而且老的系统以后不会再支持,为了俺们自己,也要准备着把所有东西转移到linux下。可惜NI对linux支持的不够,总不能离开labview就不会干活,所以还是要从基本学起,不变应万变。

linux下开发,离不开c语言,虽大学学过,可都忘光了。慢慢从hello world开始吧,发现一个很好的入门的地方:Linux系统下的C语言编程入门,记在这,如果有牛牛来俺的窝溜达,可一定要把经验留下,省得我这只菜鸟胡撞,时间不饶人阿,这么大岁数了还什么都不是,这些基本的技术还要从头学起,哎!

2008-12-03

前面的都很顺利,后面的和硬件相关的VISA等出问题,需要先装什么kernel Source,不知道怎搞。
The following components will be installed using rpm:
  NI-VISA Runtime
4.0.0             
5703 KB  (in /usr/local/vxipnp)
  NI-VISA Development
4.0.0         
4477 KB  (in /usr/local/vxipnp)
  NI-VISA Configuration
4.0.0        
658 KB  (in /usr/local/vxipnp)
  NI-VISA Server
4.0.0               
227 KB  (in /usr/local/vxipnp)
  PXI Services
1.6.0                 
791 KB  (in /usr/local/natinst/nipxi)
  NI Spy
2.4.0                      
2171 KB  (in /usr/local/natinst/nispy)
  CVI Runtime
8.0                   
8510 KB  (in /usr/local/natinst/cvirte)
  LabVIEW Runtime
8.0.1            
32695 KB  (in /usr/local/lib/LabVIEW-8.0)
  NI-ORB
1.5.0                       
459 KB  (in /usr/local/natinst/.nicore)
  NI-DIM
1.5.0                       
594 KB  (in /usr/local/natinst/.nicore)
  NI-RPC
3.3.0                       
102 KB  (in /usr/local/natinst/.nicore)
  NI-PAL
1.11.1                     
1768 KB  (in /usr/local/natinst/nipal)
  NI-KAL
1.4.0                       
229 KB  (in /usr/local/natinst/nikal)
Total space
required:              
58384 KB
Space
available:                
10807212 KB

Continue? [Yn] y

************************************ ERROR
*************************************
* Kernel source does not appear to be installed for the
2.6.27.5-desktop-2mnb kernel.
*   
Installation of the kernel-source package for kernel
2.6.27.5-desktop-2mnb is
*                  
required to continue this installation.
************************************ ERROR
*************************************

Installation aborted.

Would you like to install NI-GPIB (NI-488.2 2.5.1) for GNU/Linux?
[Ynq] n

View the LabVIEW 8.2 Upgrade Notes now? [Yn] n

Installation complete.
[root@localhost cdrom]#

装之前也有提示这个kernel source:
Beginning hardware driver installation.

Depending on your system configuration, some drivers may require
you to reboot
after installation before you can access the driver.

Note that some drivers may require the Linux kernel source to be
installed.
This can be found on your Linux distribution install CD as a
package called
‘kernel-source’.  Make sure to install the version
matching the kernel you are
running.  If you need to install kernel source,
press ‘q’ to abort installation,
and re-run this install script after you have installed the kernel
source.

2008-08-03

IT—信息产业,包罗太广的一个领域,涉及信息处理,计算,测量,控制。。。,等等,以我的眼界根本罗列不清,那就让我以一个外行人的视角,去谈些内行人才能说清的事情,不求能说得准确和深入,这本身对我来说就做不到,只求能跳出一个斛笼,远远的端详,看个大概的轮廓,不求深入细节以至于迷途。

从中国远古的算盘,到近几百年的机械运算机器,再到上个世纪的电子二极管搭配的庞大的原始的计算机,后来晶体管,集成电路,集成度越来越高,性能越来越强大的CPU,录入方式从原来的手动开关,打孔纸带,到后来的键盘,鼠标,以及当今和以后的触摸屏,即指即画的智能识别,核心和外围终端都在提升性能和更加方便。计算机从无到有,开始的集成度不高,在现在看来简单的声卡,网卡,显卡等等外围终端的连接处理都需要单独的板卡来实现,以至于计算机要实现一个完整的功能,不得不考虑在内部实现通用的扩展,在我们眼中,计算机就是那样的一个大机箱,里面充满了扩展槽和空间。人类传递信息的方式从远古的烽烟,驿马,到后来的电报,电缆,发展到现今的光缆,以及3G,4G,以及以后会更高的带宽,网络把所有的孤立计算单元连在一起,我们每个人更加方便的和远方交流,共享着整个网络的资源。这些改变着我们的生活,教育,工作等等的方式,人类文明的进程类似于指数方式的上升。回想着一百年前的今天和当今的对比,再遥想一百年前和一千年前对比,这两个比较的差别不知是否能让我们感觉到文明进程的飞速。

计算机和网络经历了原始,从无到有,从大公司封闭的框架到标准的统一和开放,很多高端的应用不再是被一家公司垄断,人们有更多的选择,也不再接受实力强劲技术领先的公司再像以前那样制造壁垒,漫天要价,随意引领某个方向。这些人们回看IT近年的历史就能清楚地感受(引个例子http://baike.baidu.com/view/730006.htm)。本人前几篇提到计算机的集成和扩展,展望未来,这里再重复一下,芯片的集成度越来越高,一个小小的盒子就能实现以前一个大机箱计算机的全部功能,资源紧张的未来,我想必然会向这样的方向发展,通用的外部扩展接口,这样的小盒子可以随意的替换,外部扩展接口和机箱的发展,不必再受小盒子内部发展的制约,更高速,更开放,更方便,软件移植性更好的标准会有更强的生命力。这样的小盒子可以放在仪器内部,示波器,频谱仪等等,通用性,信号处理,将不局限于专用的DSP电路板,对于设计,开发产品工作量和繁琐程度都将减轻(现在就有了这样的仪器);PDA现在用的也很多了,机器人等等。技术的发展和普及,让小孩子都可以使用最新科技,游戏机,手机等等。制作越来越真实的游戏让小孩子沉迷,荒废好时光,真是可惜,我想以后最基本的编程也会慢慢得容易,完全可以从娃娃做起,不至于被游戏吸引。本人学过一些高级语言,可惜一直不会编程,想想那些繁琐的语句就头疼,更别说深入进去,直到碰到一个叫做Labview的图形化编程语言,让我也能够做一些外人看来很难的工作,实际上稍稍学学,很快就能够用起来,数据采集,仪器控制等等都变得很容易。当然这种傻瓜式编程有其局限,越容易编的东西,性能往往不如其他高级语言,精通一门高级语言的程序员往往不喜欢用这个。用顺手了,就更不愿意去尝试学学c,java等等一直感兴趣的东西,所以一直担心在系统集成级做惯了,人的惰性就很难让人深入到驱动,源码,电路设计等底层,这种很容易让小孩子学会的东西,是否会让小孩子以后不愿意去考虑底层最基础的东西?一直这么担心,不过后来发现自己担心是多余的,我们从小教育之路就是从形象到抽象,搭积木,看图识字等等,这样的过程并没有让我们变成傻瓜,相反,我们慢慢的可以考虑更加复杂的事情,挑战着我们人类智力的极限。这样的图形化编程,我想以后将不只局限在Labview这一种,只要有一个种子,就能够被GNU,GPL这样的土壤不断的催生,长大,而不至于被一个公司所垄断。

网上发现现在还有汉语编程,但感觉内核是封闭的一小群人在做,这样的敝帚自珍,不知道以后是否能做大做强,如果能摈弃短期的经济利益,我想不会这样一直处于边缘状态。毕竟现在的各种系统平台,各种各样的编程语言,已经不再是从原来的无刚刚到有,在这样充足的有的状态,要想发展,短期的利益就要舍弃。其宣传中提到什么汉语cpu,我就觉得有些搞噱头了。我们知道,不管什么样的语言要执行,最终都要翻译成机器语言,最底层都是在做着繁复的布尔运算,我们可控的输入的0,1经过繁复的与或非门,其中又不断的反复叠带。。。最后给出结果,这里只有一种语言,世界通用,什么汉语,英语等等,仅仅是我们能够容易的去操作,理解而已,就象数学,物理的教科书,里面的公式就是我们的通用语言,所有点缀其间的各国语言仅仅是让我们能够去理解。汉语编程的好处我想能够让我们不懂英语的人也能够容易的去编程就足够了,这就是最大的贡献,没必要为了宣传去搞其他什么噱头。而且程序中的变量代号,已经失去了语言的含义,拉丁字母的简单有其优点,没必要完全用汉字代替。

高级语言是一维编程,图形化编程是二维编程,也许以后的逼真的三维显示投影技术可以让我们更形象的三维设计和编程。不过不管怎样的逼真,光怪离陆,在最底层,都可以用一维的代码流表示。这些不管怎么发展,还囿于布尔运算,图灵机的模型,也许计算机的革命,编程语言的革命只有等到量子计算机萌芽的那一天。现在的量子纠缠态的光路,远程的传输,各种各样的势阱也许就象我们刚刚发明电子管那样,做着这样最原始的尝试和组合。也许未来的能够实现量子态操作的集成电路或光路还很遥远,但至少在密码,安全等领域,可以配合传统的计算机。我们传统的通信,是一方到另一方,未来人类不知道会怎样,也许可以在星球之间随意的游走,彼此关联的飞向两个方向的粒子对就是我们通信的媒介,当知道了一个粒子的状态,另一个粒子就确定了,这本身就让人感觉不可思议,可是量子的基本理论和事实就是这样的发生。测量和控制,这本身就是相对的概念,当我们通过测量确定了一个粒子的状态,另一个粒子实际上就受控的确定了。如果我们能够让粒子态向我们想要的方向塌缩,是否能实现控制的革命。编程,也许里面的循环,赋值,判断,这些基本的元素都将以我们现在难以想象到的方式改变。

生物技术的发展,干细胞,神经元的培植,也许未来的生物计算机就这样的萌芽,当然这样的路还太遥远,毕竟一个初生的婴儿,完美的大脑都一片懵懂,更何况几个神经元原始的连接。不过至少我们的记忆,思想等等这些都有了一个研究的原始的物质基础。当最终这样的根基于营养液的超脑有了意识,并且有了喜怒哀乐,有了思想,我们将如何定义这样的东西?我们是否应该把它看成一个生命?和我们的区别是否仅仅是没有手脚,不能独立的行走和代谢生存?当最终我们也象我们现在的计算机那般的小型化,把这样的生物脑配上外围的扩展,这样的东西我们是否能把他们看成生物?所有这些,都将不仅仅是计算机,编程,IT行业内所能讨论的事情,必将涉及到伦理,以及人类对生命的思考。

附上一些论坛的讨论:
acectl(www.mitbbs.cn):
Labview没有你说的那么神奇。其实它本质上和C/JAVA没多大区别,和JAVA更类似点,只不过是采用了dataflow的设计方法而以,别的语言的基本要素labview也是一一对应的。

Labview能“让我也能够做一些外人看来很难的工作,实际上稍稍学学,很快就能够用起来,数据采集,仪器控制等等都变得很容易”简单的控制仪器的关键是人家公司生产从板卡到GUI整个流程的所有软硬件,自然一切都好办,点一个按钮什么都出来了。换了任何一个其他的高级语言也完全能这样,只要你有API,什么不能办?labview能控制别的公司的仪器也是靠大家都通过的控制协议才行的。

而且,labview的这些“傻瓜”功能其实也就是给初学者看看的,你真的要开发实用的软件最后自己还是要用基本for、while这种模块搭起来的。labview其实也就是提供了一些高级的API,没什么大不了的。Labview是公司独有的软件,是不可能象你希望的GNU方向发展的。话又说回来,我看labview的dataflow设计方法是很适合现代CPU的发展趋势的。现在labview的公司里有很多这方面的讨论。 

顺便再说说你的"计算机集成和扩展的思考
"文章,就是你的blog上的http://blog.sina.com.cn/goofegg。
NI可绝对不是从PXI系统发展出来的。你可以看一看http://en.wikipedia.org/wiki/National_Instruments,NI最早是做GPIB的板卡出身的,后来弄出了Labview,就开始做系统整合。NI以前是有很多VME,VXI的总线的产品的,同时也做PXI,只不过后来这些东西淘汰了PXI才突出起来的。NI的强项和PXI没有什么关系,只不过现在PXI的东西好卖NI就多做点,以后PXI淘汰了NI很简单的就能跳到新的系统上。再说,我是看不出来VME/VXI怎么可能“紧随PC机的发展”,标准就是标准,定了以后就不改了,现在PCI一统天下,别的总线当然没活路了,有什么好奇怪的?就好象你的CGA显示器,不可能发展成VGA的。

回复:
是的,我觉得labview实际上就是把源码形式的编程翻译成比较形象的图形化流程,程序面板上的一条条线实际就是一个个变量,运算阿之类的用一些模块来代替。这和我们传统的编程方式还是有很大差别的,现在的其他语言集成开发环境,比如vc,builder等等,仅仅是界面的模块方便的搭来搭去,我们补一些函数里面的操作源码,这只是做到了labview控制面板而已,后台的程序流程没有做到labview那样。

对于for,while等,程序流程面板这些都是最基本的元素,只要现在高级语言能实现的,labview都可以做到,扩展也很方便,activex,dll,cin。。。和其他高级语言的接口都很方便。

可惜啊,是一家公司的产品,vi文件翻译成形象化的程序框图,这些都是内部保密的,如果能做成gnu,gpl就好了,我想这些对牛人都没有难度,多少超级黑客的智慧用错了地方啊,如果能做一些这样的事情就好了。 

毕业工作10年了,由于头比较英明的眼光,工作开始就接触NI的产品,labview,vxi的板卡,gpib。。。
10年前,仪器领域hp是老大,NI和其相比,不知道我拿现在的微软和google类比合不合适,希望google不要让人失望才好。那时候PXI刚出来,仪器领域编程,hp的vee和labview并驾齐驱。开始的时候NI就主推PXI,hp那时候估计还在犹豫不决,这些年过去了,估计vee快被人遗忘了。同一段历史,每个人的视角不一样,观点就会很大的不同。NI除了labview,当然有更多的牛的地方,但是我还是抱着由于其紧随pc机的扩展标准,成就了他能这么快速的发展。现在的agilent在业界的地位,估计和NI没法比了(或者是我接触他的产品越来越少),可是十年前,情形完全不一样,不知是否能说明这样的问题。