主题:关于Linux的推广——普通用户篇 -- 万斤
其实习惯就好了,当然VC的debug看齐来容易些。R就有点儿这意思,它的那个debug有点像简易版的gdb。俺还是偏爱跨平台的东西,C/C++,Perl/Python,R,可惜汇编好像不行,没在Mac上用过。
好象忽然好多公司都要赶这个时髦了。
但有一点SPS一直没有大的改进,就是我一进去就找不着北。 世上的web site 千千万,只有SPS有这个能耐,而且从第一版开始就是这样。比如本部门推出了个SPS把所有文档材料都放在上面,然后经常听到人们问得就是,你能把那个文件的SPS link email 给我么? 反正只大概说个方位,没有人能自己进去找得着。
就冲这一条,那个设计sharepoint的人脑子就进了不少水,这波忽悠过去后,估计SPS是秋后的蚂蟑长不了。
而且界面很漂亮。似乎Solaris也可以的,但是应用软件不太熟悉。其他的似乎比较挑显卡,我的稀奇古怪的电脑和以上两个可以和平共处,另外Debian也可以用,不过显卡驱动似乎不太优秀,分辨率不可以调的很高。3D的支持,似乎都不太好。
桌面是在C盘吧,我身边的绝大多数同学都是在桌面上新建好Office文档后再操作的。
默认情况下,我的文档、网页收藏夹都是在放在C盘,安装软件,同样默认在C:\Program Files里面。
常用的下载软件迅雷、快车,默认的下载文件夹同样放在C盘。
还有众多的软件的相关信息,比如杀毒软件的病毒库之类的,一样放在C:\Documents and Settings里面。
当然这些东西都是可以修改的,可是谁会改呢?
懂得改的人已经不需要别人来帮忙维护电脑了;不懂得的人,更让你郁闷。
不好意思,我把unix 和linux一起批了,不过我觉得两个人的问题差不多,也不算冤。
嘿嘿,我用的是这个官方渠道的"quick" guide
http://www.netlib.org/lapack/lawn81/index.html
光是下面这段我就觉得这些东西就该扔
http://www.netlib.org/lapack/lawn81/node12.html
我们组里的机器什么样子的都有,lapack我在solaris上调过了,到alpha上要再来一回,到sparc上在搞一搞,到了linux上再来一趟。一弄就是几个小时几天,这些东西又没啥技术含量,不能往thesis里写, 老板在后面催,我心里当时对这些不友好的玩意心里真是烦透了。还有我最讨厌这些一弄就几百页的manual,让人无从下手。这个就好像发paper,不能把notes给发上去了。那么长的paper, 谁有时间看哪,不是浪费大家时间么。
那么长的manual知道的说不用全看,看第几页第几行就搞定了。如果不是别人告诉你的,就是google告诉你的,要不然就是总有人把它得全看了告诉你的。
关于调程序,我后来用过一个叫totalview,比ddd好用多了,但是慢,效率太低了。gdb,ddd我用过,但是对混合编程的支持我是没弄通过,而且还是慢。
我也有朋友天天喜欢linux,我表示理解,也相信可能他真得挺爽.虽然如果我会用linux会让我觉得自己更professional一点,如果让我花时间学那个,我觉得不值得。如果不是为了做大计算或并行,我才不会碰那些非windows的机器。
我一般用Debian GNU/Linux系统,一条命令就能搞定安装问题。
sudo apt-get install lapack3 lapack3-dev
lapack3 是动态连接库,lapack3-dev是静态连接库。通常5分钟不到就搞定了。
我们也有一台 Compaq AlphaServer,现在也是装的Linux系统。所以安装程序是一样的。
Debian也支持SPARC平台。
还有,gdb一般不单独使用,一般都和emacs/vim这样的编辑器挂在一起用。感觉和windows下面的ide差不多,只不过一般修改是用键盘来控制。
我猜你在windows下面用的比较习惯,对unix编程本身不熟悉。我自己从netlib下载了一个lapack安装了一下,你给的链接确实是一份快速安装指南,相当直接了当,我花了5分钟看了一眼手册,花了半个小时测试各种可能性(每次编译大改需要7-8分钟)。
1. make.inc
基本上,在linux上面,如果你gcc是装好的,make.inc参数我修改的就是把库文件的_LINUX后缀给取消了。
BLASLIB = ../../blas.a #这个下面有解释
LAPACKLIB = lapack.a
TMGLIB = tmglib.a
EIGSRCLIB = eigsrc.a
LINSRCLIB = linsrc.a
如果你想对lapack的编译进行优化,你可以指定CPU,比如我的cpu(Core 2 Duo E6750),在OPT后面加上 -march=nocona 。
2.使用自带blas库:
如果你要用LAPCK自带的refblas.a 库(就是不更改../../blas.a 这一行),你需要更改根目录下的 Makefile,把
lib: lapacklib tmglib
#lib: blaslib lapacklib tmglib
改为
#lib: lapacklib tmglib
lib: blaslib lapacklib tmglib
就可以了(就是说,先编译refblas库,生成blas.a文件,然后再编译其他程序)。
3. 使用优化的BLAS库,比如ATLAS
如果你有优化的BLAS库,比如机器优化的atlas,可以用比如 -lf77blas -latlas 来替换第一个 ../../blas.a ,同时,保持2)步里面的 lib: 行为原始状态(不包含 blaslib)
BLASLIB = -L/usr/lib/atlas -lf77blas -latlas
当然,这个只是测试用途。你甚至可以不管它。
4.
下面就是 make ,我一般用普通用户在emacs下面编译,有什么错误一眼能看见,最后sudo make install 来安装。
最后,希望对你的工作有所帮助。谁也不喜欢看几百页的手册:)
那个应该是五年以前的事情了, 但是我是不愿意重新回去搞这个了。而且我相信现在在学校里我的师弟师妹们没人会对这些东西感冒。他们大部分时候还是来问我。我可能当时主要的抱怨还是给unix,平台太多而且互不兼容,what the heck.
还好我门公司所有的东西现在只用windows开发。
楼主好文。既然楼主在上一篇里谈到了Linux和Windows在开发环境下的区别,那么我正好可以在这里说几句。
第一,Eclipse因为一开始主要是用于Java开发,所以是跨平台的。Linux和W32都有各自的版本。但是Eclipse的C语言模块需要GCC支持,所以如果在Windows上使用需要加装Cygwin或其他GCC实现。
第二,CVS现在在Windows下也有了很不错的实现。WinCVS,CVSNT,我都是用这些从SourceForge上下载源码。虽然一开始有些摸不着头脑,但是摸索了之后就很好用了。
第三,Linux在国内没有普及开,其实很大程度上是因为国内Windows的市场(包括Z版D版)太大了。以至于从客户那里就有巨大的惯性。所有系统几乎都是仅仅基于Windows开发的,因为客户那里根本就没有在其它平台上工作的需求。在这种情况下,你让程序员改Linux,根本就是自寻死路嘛。毕竟开发时候是按照对方的需求来做,如果对方要求在W32上开发,你就算是Unix程序员也得逼迫自己改回来。
但是我倒是觉得,目前推广Linux的契机不是没有,而是正在来临。因为Web Application的时代即将来到,而开发Web Application对于Linux系统是有优势的。在下本科时候学习Web编程就是通过远程登录到学校的Linux机器上来完成作业,能够使用shell脚本编程的Linux很多情况下能够很方便地使用系统API完成原本需要写无数代码的功能。而且Python,Java,Perl,Ruby,这些新兴的热门语言无不是跨平台的,在学习上并没有什么障碍,使用开源数据库+开源/免费编程语言+开源开发工具对于广大中小规模的软件开发实体来说是成本最低的解决方案。甚至现在连.net都有了跨平台的部分实现。
回顾一下自己使用Linux的经验,往往都是因为某个课程需要在Linux上完成课程实习于是就被迫去安装并且使用。在使用初期真的是相当痛苦,在Windows中形成习惯如臂使指的一些动作,在Linux下完全无法做到。但是时间久了会觉得Linux还是不错的,特别是以后如果对于知识产权更加看重的话,趁早熟悉Linux的开发,能够在其他客户改用Linux的时候更加有优势。
至于楼主对于过渡期的看法,我相当同意。
边想边写的,可能有些地方有错误或者逻辑不通,请大家见谅。
不要忘记那个时候如果没有Windows,Macintosh也是GUI了。技术进步的大潮你就算想阻挡也没有用。
其实也是属于老兄你知识不了解
1。很多软件默认安装在C盘,你当然可以在安装的时候设置安装位置到其他磁盘。
2。Windows Update很频繁,而这些update文件会缓存在C盘。这个没法设置,但是你可以通过清理安装文件和过时的Restore文件来获得硬盘空间。
3。其实Linux也是一样的,只不过Linux里把所有空间放在一起,只是分不同的Volume,所以这个问题不明显。
在鼓吹用Linux替代Windows的时候您可没说一定要在Linux下找到Windows里软件的完全对应,怎么现在又变成和非Linux软件相同的不可了?
既然Linux中的软件可以替换Windows中软件的功能,那么反过来也成立才对。我觉得您可能只是没有留意找而已。
比如我想用evince——一个看pdf的软件,这个包括全屏双页显示,Acrobat reader我上次检查了,好像还不行。比如links2啊,lynx啊什么的,我也经常使用。比如Linux-on-CD啊,XFS文件系统啊(这个对我比较有用)。比如compiz cube啊,比如ssh server啊,比如apt/dpkg啊。比如jail啊。比如evolution啊(这个win下面有,但是版本很老)。比如FAM啊等等。随便一想就是一堆。
补:Acrobat双页全屏的方法(Adobe Acrobat 8 Pro):
Edit->Preference,Full Screen选项卡,把"Fill screen with one page at a time"取消,然后用双页模式浏览文件,切换到全屏就可以了。
送您一个Lynx for Win的链接,其他的我慢慢找。外链出处
Links for Win32
因为Kavin兄问我Linux下面什么软件windows上面没有。我只好说了一些常见的工具。我已经很久没有比较windows和Linux了,反正别人用windows与我关系不是很大。
像我们行业很有些软件,标明了就是在Unix/Linux平台上开发的,当然你要在windows上面重新编译一次不是不可以。但是相关的支持非常少。还有一些软件虽然有win版本,但是用起来和Linux感觉差别有点大。
比如说,windows目前还没有 1)直接在光盘上运行系统2)Apt/yum包管理系统。所以完全反过来,目前还不成立。
多谢阅读。
至少在Windows下也不至于觉得不知所措了。
直接在光盘上运行系统我认为是MS不肯开发,不排除以后会有专门用于教学的Win-On-CD。Apt/yum……也许没有common的,但是各个软件自己的“查找更新”功能能算是一个,而且Microsoft Update也提供了部分yum或者Apt的功能。