
2008-2-4 13:18
Roamvalley
【原创】Linux下 - 工作并娱乐着
公司已经放假了,有点属于自己的时间了,我写些自己几年来使用thinkpad和linux的经历,这里会列举不少在linux下工作的工具和为娱乐找到的一些好玩的东西。
选择一种操作系统,并没有什么特别的,我从来都不认为使用Linux就比使用Windows高明。关键只在于选择的系统是否恰当的帮助了我的工作和生活。
这个帖子的内容会被陆续添加,主要看时间了。
发张图片,这是我的小工作桌,嘿嘿,很简陋,我把X24带底座一起放上来了。
[[i] Edited by Roamvalley on 2008-2-4 13:47 [/i]]
2008-2-4 13:30
Roamvalley
我现在用的机型是thinkpad X60,是2007年中换的,这之前一直使用X24,X24大约用了3年多,再之前是用公司的A21,现在还记得那玩意老重。
买了X24后,就和朋友一起搞软件外包之类的活,开始是使用Microsoft .Net环境,但那个时候.Net显然不成熟,相对当时的J2EE差了不少,很多辅助开发的工具都没有,都要自己作。
后来因为项目的关系,转到JAVA平台了。也是那个时候,我的X24上从XP改为和Suse共存的双系统。
第一次转Suse,主要是因为它和Windows相对接近,容易上手些。
那个时候我们主要的开发工具是:
J2SDK1.4
Eclipse
Postgresql
而这个项目还涉及到一些GUI界面的程序,主要是用来协助非编程人员填写一些系统数据用,所以还兼用了Microsoft VC++6,说实话,那个时候要想在Linux下找个能作GUI的工具还真难,都非常难用,考虑考开发效率,就使用了VC6.
2008-2-4 13:46
zzye
好 期待大作 新年学习 呵呵
2008-2-4 13:52
Roamvalley
做个小注,1帖上的照片是用Canon D400拍了后,用digiKam导入到X60上,再用GIMP缩图后发上来的。
惭愧阿,在Gnome下用KDE的digiKam,我到现在都没找到一款在Gnome下好用的类digiKam软件。
2008-2-4 14:06
Roamvalley
Linux下的自身的软件很多,我们通常看Linux用户在鼓吹自己以及嘲笑Windows用户的时候动不动就号称Linux下自由资源的丰富程度,但说句不好听的话,真正常用和好用的软件少之又少,如果不是KDE和GNOME自带的软件族以及OpenOffice之类的适用软件逐渐增多的话,没多少人愿意用它来工作的。
而且个人认为,Linux在企业应用之所以如此普及和达到目前强大的姿态,很大程度上受益于Java的推动,看看现在有多少公司在使用基于Java/J2EE平台的商业系统就知道了。开源组织很大程度上都在为商业应用在服务,正真用于个人环境的软件开发还是不多。
关于和Windows的对比已经没什么好多说的了,因为后来我已经整体移植到Fedora下,因为我们的开发是针对RedHatAS平台制作服务器端系统,所以我要保证开发环境的近似和一致性。
2008-2-4 14:15
馅饼
嗯。俺一般都是拿虚拟机跑linux做,主要都是php+mysql,没整过java啥的东西。主要还得测试win系统下面应用为主。
2008-2-4 14:24
Roamvalley
马上要陪我父母去梅花山,拍拍雪景,呵呵,等回来再继续了。(我在南京)
2008-2-4 18:41
aningstar
偶是在linux下用c++做开发,界面库用qt,呵呵
2008-2-4 20:42
Roamvalley
对于想在Linux下开始学习并打算作些事情的thinkpader我强烈建议安装eclipse,一个很有发展前途的工具,有的时候,在入门学习的初期很迷茫,有个好的IDE可以帮助并引导使用你进入状态,一旦激起开发的兴趣和目标,后面的路就会走得顺利多了。
eclipse有几大好处:
1。完善的开发界面(其它工具如JBuilder和Netbeans等都如此)
2。异常丰富的plugins(这一点其它工具也具备相同机制,但就目前只有eclipse的plugins可以说是热火朝天,很多好用的东西)
3。SWT(IBM力顶的JAVA GUI开发包和底层实现,很快,很强大,比SWING要快)
4。eclipse的框架(eclipse本身只是个“容器”,并包括各类语言的编译和发布环境,正是如此,它构建了一些复杂程序所需的基础,相对IDE的概念更为通用,我所接触的一些行业应用里都使用了它,包括IBM的LotusSymphony)
但我现在不用Eclipse了,目前我在使用Sun的NetBeans,一些具体的原因后面我会提到。但我必须承认,Eclipse很好,而且以后我们可能还要使用到Eclipse。
附上一张早期使用eclipse开发的部分代码快照
2008-2-4 21:11
Roamvalley
如何选择合适的数据库,这个我们在很早的时候就开始琢磨,按照当时的想法:
开发环境和上线环境都必须:
能运行于Linux平台,
开支最小,
稳定
容易维护。
当时的选择主要是MySQL和Postgresql,其它著名的商用数据库都因为开支的问题直接被枪毙了,虽然早期我们的团队熟悉SqlServer和DB2。
MySQL和Postgresql之争不亚于Windows和Linux两大帮派的争论,当时大部分人都认为MySQL的高效率是一个重要筹码。但我们需要的是什么?我们需要数据库能支持较完整的DB Manager的属性,包括Transaction(事务处理)这个重要的功能,从性能上看,Postgresql当时和MySQL的确差距不小,主要表现在数据查询上,但后来我们发现当数据量很大的时候,两者的性能又趋于接近。而且此时Postgresql的插入和更新数据开始占上风。
最后我们还意识到一个很重要的问题:Lincense。就读完并大致理解两者的lincense声明:
MySQL支持两大类:
1。GPL
2。商业应用
而Postgresql的则是:
BSD
我也是第一次明白:开源(OpenSource)并不意味着免费!
我们开发的还是商用系统,如果使用MySQL的License,最终就必须按照商业应用的方式交纳费用。而BSD则自由多了。
所以最终选定Postgresql,后来就我们所经历的过程来看,这个选择是很明智的,我们在Postgresql这个稳定的平台上平滑的开发升级我们的系统,没有遇到任何隐患,而MySQL那几年还在从不完全支持SQL的属性到走上支持Transaction之路,而且是支持这一大堆新功能后,其稳定性和性能和Postgresql已经开始有差距了。
最新版的FreeBSD(一个纯种Unix)将Postgresql的优势又发挥到一个新层次。
MySQL目前被SUN收购,但愿它走得更好,毕竟,对我们而言,更多的选择是好事。
2008-2-4 21:18
Roamvalley
zzye:好 期待大作 新年学习 呵呵
发些感受,算不上什么大作,谢谢捧场了
馅饼:嗯。俺一般都是拿虚拟机跑linux做,主要都是php+mysql,没整过java啥的东西。主要还得测试win系统下面应用为主。
其实你这样就直接在Win下搞更方便阿,弄个虚拟机不是更麻烦吗?是因为PHP还是MYSQL要用虚拟机?
aningstar:偶是在linux下用c++做开发,界面库用qt,呵呵
其实我们最终使用JAVA作界面开发是为了保持团队开发工具的统一性,便于整体维护。TrollTech被Nokia收购了,对QT也许是好事吧。
2008-2-4 21:44
dongmai
光PHP和MYSQL做调试还是可以直接用它们的WIN版,我们有商业系统就在WIN SERVER上跑PHP和MYSQL。
2008-2-5 01:10
buck
现在偶用Fedora-8+XP双系统^:^
2008-2-5 08:26
wm5wolf
^,^ 各取所需。
做嵌入式的时候用Linux,FC3非常顺手,日常只用vi,从来没有用到IDE
现在做其它了,非windows不可,别人上报的资料是xls,跟别人远程手把手要用QQ,数据库要用plsql dev……
2008-2-5 09:46
jason118
我只拿linux来玩玩
不过现在发现一个好处,就是linux下面病毒还不是很多,如果windows中毒了,进linux,帮助杀毒
2008-2-5 14:17
Roamvalley
前面都是当时我们开启项目时对系统和开发工具的选择以及基本理解。
但真正说起我们对Linux自身的理解是很少的。我记得早期我们在Windows下开发C/C++程序时还很有精神的去学习系统内核的介绍和一些底层开发,不过那个时候大多当作对一种“功能系统”的深入态度去学的,并不是以“操作系统原理”的起点来看待它,所以方法比较混乱。
当时我们选择Linux的时候是先入为主的,因为别人告诉我们就服务器而言,Linux有众多优势,而我们当时对最了解的Windows的确是看到了感受到了很多不足。所以并没有作操作系统级的对比,而且当时我们也做不到,就开始使用Linux了。
最初是像很多初学者那样,买本书,从命令行开始学习使用Linux,但当时我们学习是有明确方向的:
1。大致了解LinuxKernel,这一点并不是去看内核代码,而是看如何配置内核,这样就对内核从功能角度有了个感觉。
2。熟悉和用户管理,文件系统以及进程有关的所有操作,因为需要把系统拷贝/解压到目标机器上并安装和运行起来。
3。基本的编译方法,干过GCC写HelloWorld这种无聊的事,但当时最重要的是学会使用
configure,make
编译和安装所需系统。
4。还有些是和Kernel关系不大的操作:认识大部分常用Service,并知道关闭那些,打开那些,还有防火墙配置之类的东西。
其它方面当时就涉及的不多了,毕竟我们不是去学习操作系统原理,而是要先搭出工作环境。在以后的日子里,对Linux使用多了,很多对我们重要的元素都逐渐浮出水面。
[[i] Edited by Roamvalley on 2008-2-5 14:30 [/i]]
2008-2-5 14:52
T22-T22
好贴帮顶。最近也一直再用ubuntu7.10感觉不错。
除了启动的时候慢点。暂时还没有发现什么问题。
应用上基本跟XP区别不是很大。
XP的软件ubuntu上也找到了替代的。
2008-2-5 22:42
imsea1
写的太棒了,08年新年51nb第一牛文即将诞生,希望LZ写经历的期间顺便也把自己的学习历程和学习方法大体阐述一下,期待下文
2008-2-6 00:37
Roamvalley
当我们第一次准备安装数据库和自己的开发程序时,首先就碰到个低级问题:这些程序都要放哪?
看起来很简单,因为如果我们用root用户去作的话,爱装哪就装哪,没什么限制,但这显然会被骂成:一点技术含量都没有!
所以首先要理解linux下的文件目录结构,这是一个好的学习开端,通常我们在windows下安装了新程序都会首先去看看它的目录里都有哪些子目录和程序,从文件的角度对这些新东西有个体会。这个方法同样使用于初学linux的静态结构(尽管不是运行结构)。
这里我不对每个目录和重要文件都作解释,只抛块砖,大家可以google:linux目录结构
附图是我查看本机根目录。
和目录要同时了解的是多用户体系,这源自于UNIX的传统概念,多人同时使用一台计算机。但在如今硬件普遍超强的年代,这个概念不是那么普遍使用于操作系统了,但这个概念的另一个重要意义仍旧存在:
系统安全
简化的说,用户分为系统管理员和普通用户,系统管理员大致的权限是负责操作系统自身的维护和安装(比如系统服务的设置,防火墙的设置,管理其它用户等),而普通用户只负责操作系统之上的各种应用系统的维护和安装(比如我们自己开发的系统,还有数据库管理器等)。
虽然分了两大类用户,但实际通常还是一个人去操作(这个有些公司是不规范的做法),一个人还要用两种帐号?对,因为这为了:系统安全。当应用层程序出了问题,比如你的OpenOffice从一些不安全的站点下载的,而这些OpenOffice被人种了木马和其它可供被黑客控制的后门,那么你运行OpenOffice时,黑客或者病毒就可以普通用户的权限去查这个帐号下的其它重要信息,比如你私藏的A片等等,但多用户系统的机制阻止了它们获得其它帐号的数据!这就是简化后的系统安全概念。
说了一些用户的知识,回头再看linux目录结构,我不一一解释,只列几个典型的:
2008-2-6 00:38
liyang6688
在牛文中留下脚印^u^
写的真是肺腑之言啊----我的短命的ubuntu~~一个月都不到就去取西经了^u^
2008-2-6 00:54
Roamvalley
/boot:你开机后是怎么进入操作系统的?硬盘引导区启动了第一级的booter(MBR),它可以再加载一个linux的原始booter,这个booter并不是linux内核,而是另外一个引导程序,这个2级booter会把/boot目录下的启动内核加载并解压接移交运行正真的内核。
/sbin和 /bin都是存放系统可执行文件的,我们使用的大部分基本命令都位于这两个目录,不同点在于/sbin目录下偏向于给root用户作系统管理用的,很多都涉及:驱动,内核模块,创建文件系统等会直接影响系统能否正常运行的命令。说白了,/sbin下的东西乱用,可能直接导致系统不能用了,需要修复或者重新安装linux。
/dev:linux下把所有设备(device)都映射为file,这个概念在写程序的时候意义更大一些,我除了在安装Wacom这样的不常用设备碰到麻烦时才去看看/dev下的东西外,一般不需要去碰它的
/proc:超强的目录,系统的运行状况都被映射为文件以及文件内容“保存”在此目录下,用cat看看这里面的各级目录下文件,可以看到很多关于硬件和操作系统内的运行状况。
/home:这就是通常我们创建非root用户时所处的目录,每个帐号在此都有一个独立目录。说到这里,回头看一下我上面说到的帐号和系统安全,你可以看到每个用户的正真权限只位于这个/home目录下属于自己的哪一块(以及一些系统命令的查看和运行权限)。
/media和/mnt:当你的系统上插一块U盘时会发生什么情况?不同Linux发行版以及它们各自的版本对这个动作的操作不一定一致,有的“易用”系统会在插上U盘后会被自动挂载(mount)到/media下,而我个人的系统是不允许这么作的,插上后,我会手动mount到/mnt目录下,这和我个人的要求和操作习惯有关。但能看出来,这个两目录从使用角度说都一样。
2008-2-6 08:44
ardan
呵呵,怎么写到后来,变成linux普及帖了?我想这21楼这部分有很多内容是可以略去的,希望楼主的笔墨着重于自己个人的使用体会。
2008-2-6 11:04
aningstar
呵呵,楼主在linux上是做类似mis系统开发,而不是系统级的应用开发,和我做的有很多不同。偶们的项目和数据库几乎不打交道,呵呵!
2008-2-6 13:05
salutes
好文收藏。
顺便问一下:linux下有能进行硬件开发的环境/软件(免费的)吗?
准备好好学学verilog,systemc等。
2008-2-6 13:11
Roamvalley
刚看了大家回帖,我说明一下,这的确是一个个人感受贴,可能我想得多的地方不免写得有些罗嗦,一些记得不清的使用经历就一笔带过了,并不是一个严格的技术贴。看的各位就Linux而言,所处的位置和了解程度各不相同,大家想看到的可能都不太一样。我也顾不上那么多了,想到哪就写到哪,如果大家能参与讨论或者给些建议个更正就很感谢了,希望能成抛砖贴。
顺便回答几个问题:
前面写到目录结构时的确罗嗦了些,本来大家Google就可以看得更详细,后面我就不太罗嗦了。
关于楼上有几位是做到系统级的开发,比我们更加深入Linux的理解和使用,我说下自己的看法:假设有两种编码人员,一个是负责Linux内编写硬件驱动和部分内核模块的,另一位是作银行内某种应用的开发。两者大致的区别在于:
A非常熟悉硬件体系和操作系统,也许在其负责的工作内对一小部分代码做到更加稳定和更快,那么成千上万基于这小部分的代码的其它模块和应用就很感激他了。
B非常熟悉银行内某区域的业务细节和各种现成的应用系统框架,所作的工作通常代码量是要远远大于A的,因为B所处的软件环境和手头的工具和A差别很大,B能在已有上千万行代码的基础上为一次银行业务流程的变化而改作出一个结构清晰运行稳定的新系统,同样会被使用者感激的。
A也许非常适合用VI在一段代码内能做到自认为的终极优化,而B能在大量代码间能整理出行之有效的行业内设计模式,这都是很值得称道的。
因为他们所属的工作区域不同,只是分工不一样罢了。
我们做的事情更接近B,但同时我们对操作系统的一些关键参数需要做到灵活和有效的设置和改造,这就是Linux带给我们的好处。
[[i] Edited by Roamvalley on 2008-2-6 13:27 [/i]]
2008-2-6 14:58
dongmai
关于LINUX下的分区,还是很重要的,很多初学者图方便只建根分区和交换分区,或是完全照书上给的划分方法却不知其所以然,只是这个光说也不一定能理解,还是要从自己应用出发来得出合理值。
2008-2-6 15:45
Roamvalley
salutes:抱歉,你说的问题我不知道,google了一下verilog,好像是设计数字电路用的工具,比较有意思,我中学的时候订过《电子与电脑》,里面开过了几个专题,是关于数字电路基础以及6502和Z80单板机学习系列的,很有意思,估计你所要学的东西也是很好玩的东西,有时间我也打算看看。
dongmai:关于Linux安装时分区的选择,我的个人使用过程中主要是为了系统的安全:
我们自己的系统是数据密集型的,频繁操作硬盘,容易因为硬盘疲劳问题导致系统崩溃,数据损坏,所以开分区时要把操作系统自身的运行部分和我们的系统所需的空间分割开,这样当操作系统自身部分如果损坏的话,数据还是能抢救出来的,这是最基本的分区方式。
当然了,数据库所在的机器安装方法还可以考虑性能,尽量把数据库所占用分区靠前放,也就是位于硬盘的靠外侧,这里磁头访问数据的线速度很快,对处理数据库这种磁盘密集型操作有效。
但我们所打交道的很多公司里都没有专职或者说称职的Linux管理员,针对性能的分区方式基本没人作。
2008-2-6 17:34
salutes
回复 #27 Roamvalley 的帖子
verilog,systemc都是硬件描述语言(HDL),做电路设计时用的,通过他们可以用类似c语言的程序形式描述硬件电路。做IC设计的时候用的较多。这几个语言面向的应用比较窄。
最近刚开始接触ubuntu,以前没有用过其他linux发行版,对linux不是很熟悉。
谢谢楼主回复,关于linux使用中的其他问题,以后可能会咨询您。
同时会继续关注本帖的更新。
2008-2-6 17:38
Redsun
进来向高手学习.
2008-2-6 21:17
gzchenyin
从19楼的贴图看,lz是root敢死队的成员呀...
2008-2-6 22:49
songxin
[quote]Posted by [i]Roamvalley[/i] on 2008-2-4 20:42 [url=http://forum.51nb.com/redirect.php?goto=findpost&pid=9002952&ptid=638261][img]http://forum.51nb.com/images/common/back.gif[/img][/url]
对于想在Linux下开始学习并打算作些事情的thinkpader我强烈建议安装eclipse,一个很有发展前途的工具,有的时候,在入门学习的初期很迷茫,有个好的IDE可以帮助并引导使用你进入状态,一旦激起开发的兴趣和目标 ... [/quote]
在Linux上老搞不好mac界面。。。。是不是我这个T41已经不成了?
2008-2-7 02:17
aningstar
[quote]Posted by [i]salutes[/i] on 2008-2-6 17:34 [url=http://forum.51nb.com/redirect.php?goto=findpost&pid=9010618&ptid=638261][img]http://forum.51nb.com/images/common/back.gif[/img][/url]
verilog,systemc都是硬件描述语言(HDL),做电路设计时用的,通过他们可以用类似c语言的程序形式描述硬件电路。做IC设计的时候用的较多。这几个语言面向的应用比较窄。
最近刚开始接触ubuntu,以前没有用过其 ... [/quote]
呵呵,其实eda各大厂商都在unix平台开发了相应的工具,当然不是免费的。开源的也有一些,但是可能不是很好用,可以去去找找有没有crack的工具吧,比如synosys之类的厂商肯定是有unix版本的eda工具,不过crack的应该很少,就是有,估计也要掏money的,如果仅仅是学习,目前建议还是用windows下的那些crack工具吧
2008-2-7 02:29
aningstar
[quote]Posted by [i]Roamvalley[/i] on 2008-2-6 13:11 [url=http://forum.51nb.com/redirect.php?goto=findpost&pid=9009245&ptid=638261][img]http://forum.51nb.com/images/common/back.gif[/img][/url]
刚看了大家回帖,我说明一下,这的确是一个个人感受贴,可能我想得多的地方不免写得有些罗嗦,一些记得不清的使用经历就一笔带过了,并不是一个严格的技术贴。看的各位就Linux而言,所处的位置和了解程度各不相 ... [/quote]
楼主写的其实不错,偶也不做内核开发,也不做驱动开发,只是做一些应用级的开发而已。偶其实很想知道在linux下如何做企业级的应用开发,谢谢楼主
[[i] Edited by aningstar on 2008-2-7 03:10 [/i]]
2008-2-7 15:35
Roamvalley
songxin:其实Mac界面的模拟方法不难,我用Gnome,在[url]http://www.gnome-look.org/[/url]上搜索T-ish-brushed-overlaid可以找到将系统条和窗口以及图标变为类Mac的资源包。
对于Mac最下方的Dock,我觉得过于花哨了,意义不大,所以后来我改成Gnome自己的面板,把它设成透明,让后把其上的程序快捷启动的图标改为Mac风格的ICON。
因为平时我写程序的时候需要屏幕面积尽可能的被利用,那么这个面板一般都将它隐藏了,毕竟我是X系列的机型。
界面类的东西不必太较劲了,一些适用简单大方的设置可以让你用的很舒心:)
[[i] Edited by Roamvalley on 2008-2-7 16:46 [/i]]
2008-2-7 16:45
Roamvalley
aningstar:
“企业级应用”这个说法不是非常到位,好比别人问你用什么本子,你粗略的回答可以说是:Thinkpad,要想更加表明属于哪个“派系”的,你可以告诉他是T系列还是X系列。
包括前面有位朋友说到MIS系统也是如此,都太笼统了。我有个以前的同事,他在一家大型的通信系统公司内负责一项目,我问了他项目的方向和一些具体情形,然后我总结说:原来你在搞中间件阿。他回了我一句:中间件,概念太笼统,如果我和客户这么描述的话,别人直接会把我当作门外汉。
我个人认为,产生这样的观点很重要的一个原因是:商业系统很无聊导致的。
大部分商业系统代表的是“人治”(尽管像IBM这样的公司要把商业系统吹嘘成“机制”),“人治”用代码来实现,会让技术人员丝毫感受不到成就感,最常见的心态是“最一个工作量很庞大的系统”,所以他们都把兴趣投入到“为这些系统提供支持的技术本身”,比如各种ApplicationServer的设计,数据库的性能压榨等等,而对所处的商业系统的纯“业务领域”不太关心,所以问起他们作什么工作,经常回答是"MIS,ERP,CRM“这类IT的 ”样板名“。
而实际上,没有任何相同的两家公司,不同的“人治”会导致他们所需的系统都有很多差别,甚至是要同名的系统,而业务目标却差别很远。
这样项目作多了,疲劳感会让人提不起兴趣。
回到技术角度来谈,设计人员往往关心的是:
稳定
性能
功能的可扩展性
等等
其中性能是技术人员比较感兴趣的东西,似乎这点能让不少人体会所谓的成就感。而对稳定性的兴趣会由于项目中后期伴随的大量BUG被逐渐消磨。
功能的可扩展性往往就是针对项目需求的认知程度和客户拍脑袋想出得各种点子有密切关系,这世界上的确没有一劳永逸的解决方案,变化总是让人烦恼。
我们选择Linux作为操作系统,在以上种种问题上,通常只能针对“性能”作些有用的贡献,因为LinuxKernel的可调性,这是我们以前在Windows上没法作的事,那些调整对最终系统的改变是很明显的。
[[i] Edited by Roamvalley on 2008-2-7 16:48 [/i]]
2008-2-7 17:10
Roamvalley
目前我所作的工作已经不是“企业应用”了,的确是因为跟不喜欢“业务领域”有关,而实际上对“业务领域”越熟悉,就越有“价值”。我所工作过的第一家公司,业务专家薪酬很高,他们相当于“垮领域专家”,也就是既熟悉技术,也熟悉用户的业务流程和细节,而且这方面从事时间越长,越是宝。而不像纯技术人员,整天要跟进各种“先进技术走向和工具”。
而面向“企业应用”大家惯用的套路是Linux+J2EE。
我目前的工作是基于JAVA的,并不是J2EE,没有使用众多J2EE体系下的框架,工具和技术。因为要作的系统对性能和稳定太敏感,所以很多东西必须自己去写,而不是“拿”现成的J2EE工具。
举个具体例子,能用最简单文本处理的数据我绝对不用XML,更不会为此使用WebService,SOAP之类庞大而低效的做法。
纯JAVA就好比在Linux上简单的包装了一层,有利于我们从上到下的“掌握”代码执行效率。
你可能想到我们为什么不直接在Linux上用C++,道理很简单,JAVA从语言这个层次上比C++简单许多,我们更愿意把精力头投入到设计的角度,但又不至于使用J2EE这个臃肿的体系,所以说是一种折衷反。并且,招能做事的JAVA程序员比招C++程序员好招多了,现在大部分技术人员连Ansi C都不知道怎么去用了。
[[i] Edited by Roamvalley on 2008-2-7 17:15 [/i]]
2008-2-7 18:24
salutes
回复 #32 aningstar 的帖子
好的,目前只能如此了。*.*lll
2008-2-7 22:38
aningstar
[quote]Posted by [i]Roamvalley[/i] on 2008-2-7 17:10 [url=http://www.51nb.com/forum/redirect.php?goto=findpost&pid=9016638&ptid=638261][img]http://www.51nb.com/forum/images/common/back.gif[/img][/url]
目前我所作的工作已经不是“企业应用”了,的确是因为跟不喜欢“业务领域”有关,而实际上对“业务领域”越熟悉,就越有“价值”。我所工作过的第一家公司,业务专家薪酬很高,他们相当于“垮领域专家”,也就是 ... [/quote]
受教了,谢谢。偶一直做相对底层的工作,感谢从你那学到这么多东西。不过现在搞C++的人确实不好找,前几天我手头有个小活,用c++开发一个视频处理的东西,找不到合适人,时间又紧,只好放弃了。看得出你对你的领域很擅长,偶也参加过一个政务系统的开发,现在想想都痛苦不堪啊。向你学习啊!
2008-2-7 22:43
aningstar
[quote]Posted by [i]salutes[/i] on 2008-2-7 18:24 [url=http://www.51nb.com/forum/redirect.php?goto=findpost&pid=9016969&ptid=638261][img]http://www.51nb.com/forum/images/common/back.gif[/img][/url]
好的,目前只能如此了。*.*lll [/quote]
等学好拉,以后进专业的ic公司,就有可能用到专业的eda的正版软件了,呵呵,ic是个很有前途的领域
2008-2-8 13:15
Roamvalley
选择合适的文件系统:
在Windows下,适合作服务器的文件系统只有一种NTFS。但在Linux/Unix环境里,有很多可选项的。
对文件系统的要求通常是要求稳定性>性能,因为一旦运行系统因磁盘或文件系统问题发生崩溃,丢失数据是最让人着急的事。大量用户在等待上系统,而技术人员为系统崩溃会数据丢失/回档搞得手忙脚乱,即使是作了定期备份,仍旧是无法逃脱问题的。
我们在使用RedhatAS服务器的几年中,发生过几次上面说的问题,而且早期那个机房因当地的供电线路问题,有段时间频繁掉点/重启。而当时使用的EXT3文件系统很难应付问题,通常一次开机发现文件有问题,就会马上全盘崩溃,抢救后只能找回部分数据。
文件系统的损坏,是目前任何文件系统都无法解决的问题。即使Raid,也不可避免会有丢失数据。
但不同的文件系统还是有差别,因为它们是为不同目的设计出来的,这一点比只有NTFS可选要好多了。文件系统种类很多,这里只提两个:
reiserfs:适合作Web服务器的文件系统,Web应用大多是些小文件的频繁存取,reiserfs在小文件的操作性能上非常出色。但稳定性比EXT3要差些。
ZFS:呵呵,这个文件系统目前还不成熟,但它有相当多的优势:稳定性,可扩展性,自我修复,安全能力等等。问题是目前在Linux下只能用于FUSE:用户空间,还没能做到Kernel中,我看说明是因为License问题,ZFS是Sun搞起来的,用的是他们的CDDL。目前还有FreeBSD支持ZFS,但仍处测试阶段。支持最好的当然属OpenSolaris了,说到这里,好像已经脱离Linux了,但我们作为开发者,为合适的目的选择合适的解决方法才是最重要的。
我个人觉得ZFS最出色的地方在于:它能在读写数据过程中,碰到硬件(磁盘坏道)问题后,不是简单那的把一个严重的错误抛给应用程序(那会导致应用直接报出一连串问题最后crash),而是能自动发现这些问题后配合Mirror或者Raid重新选取好的硬盘部分进行操作。
我打算年后上班了就安装最新OpenSolaris和ZFS,实际用段时间看看它的稳定性,估计再过个大半年,FreeBSD下也会有比较稳定版本的ZFS了。
[[i] Edited by Roamvalley on 2008-2-8 13:17 [/i]]
2008-2-8 13:30
Roamvalley
接着上面的ZFS继续说。
许多开发人员对应用系统的日志的做法是:一旦应用系统上线后一段时间,就马上把很多日志输出关闭,这样后期看日志觉得很清朗。
日志信息和系统的业务数据不同,业务数据大多入了数据库,日志信息往往个体不大,但数量庞大,会频繁操作IO,这也是为什么大家都希望关闭大部分日志的原因。
但我不建议这么干,日志信息有时是业务数据不能替代的,尤其在反映整体业务系统的性能和一些关键问题时,业务数据并不能考虑代码自身的问题,而日志确是对它们忠实的记录。
如果ZFS确实很好用,我会专门开一台OpenSolaris机器,并将其作为文件系统,主要用于存储日志信息,业务系统将日志直接通过网络输出到这台机器上。这是一个比较好的搭配。
2008-2-8 13:37
Roamvalley
说了这么多工作中的东西,这里穿插几个好玩的小东西。
gTweakUI:一个用来微调Gnome界面的小工具,我主要用它来清理桌面的图标,这样桌面看起来干干净静的。
还可以设置开机时的Splash。
2008-2-8 13:45
Roamvalley
在玩一些Linux下的3D游戏和应用时,常常会因为系统报:不支持OpenGL的S3TC特性而退出。
这个特性是早年S3 Savage定义的纹理压缩功能,用于减小从内存传显存纹理的流量。但好像DRI默认关了这个功能,Linux下没有DirectX,早年的X协议定制的XWindow体系给后来开发高效率的3D程序带来不少麻烦,很少有厂商为这套协议写好自己的驱动程序。导致目前Linux下的3D实现体系比较复杂,DRI就是其中一个环节。
后来我找到这个程序:
driconf,可以用它来关闭打开几个3D属性的小工具,就解决了这个问题。
2008-2-8 14:00
Roamvalley
另外,目前我最喜欢玩的两个3D应用:
GoogleEarth
WorldWind。
在使用googleEarth时,如果你在穿过大气层继续放大地面时发现画面一片白茫茫时,可以把主菜单View下面的Atmosphere(大气效果)关闭就正常了。
WorldWind是NASA用JAVA开发的工具,而且是OpenSource!后来很多这类看卫星照片和地图的工具都是在借鉴WW基础上作起来的,很伟大阿!
2008-2-8 14:12
Roamvalley
我最常用的下载工具:Mldonkey,可以下载donkey,BT等很多种常见资源,最主要的是它本身没有界面,用命令行运行于后台,然后通过浏览器可以控下载,非常好用。
2008-2-8 18:57
aningstar
嗯,不过现在在linux用opengl开发3d程序很方便
2008-2-8 20:24
Roamvalley
[quote]Posted by [i]aningstar[/i] on 2008-2-8 18:57 [url=http://www.51nb.com/forum/redirect.php?goto=findpost&pid=9020738&ptid=638261][img]http://www.51nb.com/forum/images/common/back.gif[/img][/url]
嗯,不过现在在linux用opengl开发3d程序很方便 [/quote]
在Linux下开发OpenGL应用是没什么问题的,否则OpenGL怎么称得上标准。
只是Linux下,为了实现从应用程序到硬件这一过程的加速是比较麻烦的,经过好几个环节,而不像Windows下DirectX体系设计的那么明确有效。这一过程让很多用户都不知道自己的系统是否开启了硬件加速。很多人装完了系统看到能正常进入XWindow就以为显卡正常工作了,而一运行一些3D游戏就发现很卡,想知道自己的显卡是否在正常提供3D加速时却无从下手。好在目前Nvida,ATI和Intel开始对一些比较新的显卡都开始提供Linux下的驱动了。
但这个过程并没有影响OpenGL对上层的标准实现,所以OpenGL的程序开发人员感受不到这个问题的。
2008-2-8 20:57
liyang6688
我前几天顶了一次 现在看来ubuntu或者说linux没有什么优势,至少对于绝大多数人来说是如此的。
1、软件贫乏-----估计你现在还没有用上能够控制cpu频率或者电源方式的东西吧~~power manager
2、有很多东西都是在模仿windows,用一个linux来实现windows的---弄一个桌面,弄一个类似vista界面的东西-----很多人都会兴奋不已~即使桌面能出8D的动画效果---有用吗!
3、很多编程开发等等都必须基于windows,怎么逆转~~我编程用keil c、有时用c++,vb等等。而开发电路板用的是protel有时也用or cad~~有什么好的替代品吗~~
4、ubuntu或者linux只是在为windows做服务罢了---怎么能想办法干掉windows~~
一点点遐想 请楼下拍砖^c^
2008-2-8 21:02
liyang6688
ps:本人是菜鸟,非常非常非常菜的鸟,看到我写的哦谬论后 勿笑啊
2008-2-8 21:28
salutes
回复 #48 liyang6688 的帖子
你还是不了解linux啊,我也很菜,但是不得不说,你比我菜啊:D
1.ubuntu下cpu频率是可控的,电源管理程序也是有的。电源管理做的确实不够好。开源的东西,上升空间很大的哦。
2.vista下的界面效果貌似是仿linux的,搞清楚发展的顺序再发言。另外,linux下3d界面的配置要求要低得多。
3.linux下开发c++的应该很多吧,没做过开发,不太清楚。大型EDA工具有许多linux软件的,我学校里的教研室装的几台redhat和sun的工作站,专门用来做仿真。类似protel和orcad的不清楚有没有。
4.linux是为大众服务,ubuntu的口号俺就比较欣赏。
补充一点:学习linux系统可以加深对操作系统的理解,目前我正在理解中。。。
[[i] Edited by salutes on 2008-2-8 21:29 [/i]]
2008-2-8 21:40
Roamvalley
liyang6688:作为通用系统,目前的Linux的各发行版很难和Windows平分秋色。但这不重要,我开始就说了,看你的需求,如果它满足了你的需求,就基本能用了。非要让它占据你的机器,除非Microsoft调查到你的PC,勒令你删了D版Win。
Linux所占优势的地发是:
企业应用
嵌入式设备
对开发人员来说,Linux的确是个非常好平台。
对普通用户,要看各个发行版是否朝普通用户群这方面努力了。
如果你不是很强求Linux,基本能用,那么把她当作老婆,“用”的越久,越体会她的好处。而不是简单的情人,非要一眼看上去就爱上他。
另外,你的名字让我想起我以前的siemens6688.
[[i] Edited by Roamvalley on 2008-2-8 21:44 [/i]]
2008-2-8 22:17
Roamvalley
通过手机蓝牙上网
刚看到本版有个玩家在问怎么用手机上网。
我这里使用Fedora7,对于有蓝牙的NB,可以很简单的。
1。打开NB和手机的蓝牙,把NB上的蓝牙设置成“对其它蓝牙设备可见”。
2。打开手机蓝牙,然后搜索蓝牙设备,搜到自己的NB后,选择可以同这个NB自动连接
3。查看/dev目录,找到 rfcomm开头的文件名,比如我这里是rfcomm0
4。打开Gnome的网络设置,添加新网络,选择“Modem"类型。,
设备选择"rfcomm0"
供应商随便,我写了个Nokia
拨号号码填:*99***1#
用户名和密码都随便,可以都写成:user
网络连接设置选择:DHCP。
然后DNS填:211.136.18.171
把浏览器的连接改成Proxy模式,ProxyServer填为:10.0.0.172
端口为:80
然后激活这个网络设备,切记,如果手机提示需要网络连接,有的手机要选择APN(接入方式),一定要选择“移动梦网”或者“CMWAP上网”,其它的千万别选,否则会成了CMNET上网,按流量收费的。忘了说,你最好有CMWAP不封顶的包月,要不没必要手机上网了。
最后就可以上网了。当然,只能使用HTTP上网,不能telnet,ftp之类其它协议
[[i] Edited by Roamvalley on 2008-2-8 22:23 [/i]]
2008-2-8 22:49
dongmai
EXT3还是很稳键的,非正常当机有时会自动修复分区通不过,需要进入单用户模式下手工修复。只要不是物理坏道出现,一般都不会有问题,我这几年都还没遇到过修复不了。只是有一次有坏道了,用软件修复硬盘把数据库从备份分区中救出来了。不过你的说ZFS听上去挺不错的,还没接触过。
2008-2-8 22:56
dongmai
回复 #48 liyang6688 的帖子
关于LINUX做桌面系统,并非不能玩,而是没必要,WINDOWS能实现的它都能实现,只是要花一点时间来琢磨。只是我们都是为了简单的用电脑,何必去费那个劲。但有一天WINDOWS完全依靠购买,LINUX就变成了免费的可口午餐。
2008-2-9 02:16
aningstar
只是Linux下,为了实现从应用程序到硬件这一过程的加速是比较麻烦的,经过好几个环节,而不像Windows下DirectX体系设计的那么明确有效
这个不赞同,opengl是工业标准,directx只是微软出的一套3d开发包,当然现在在windows平台下,directx的表现确实很不错。directx用的com接口,在我看来并不是明确有效。我在两个平台下都开发过3d程序的,“为了实现从应用程序到硬件这一过程的加速是比较麻烦的”,这一句不知应该怎么了解,我感觉opengl还是更直接一些,当然这也许是我对com不精通的原因。其实从理论上来说,应用程序到硬件这中间的过程都是一样的,只不过一些厂商在民用显卡上对linux的支持不太好而已。而windows是桌面系统,上面有很多游戏等程序,厂商支持的更好一些。在专业显卡上,大都都有性能很好的unix平台的显卡and驱动,所以现在大多专业的图形工作站都是unix平台的。
2008-2-9 02:34
aningstar
回复 #48 liyang6688 的帖子
1,有的,只是你不知道
2,搞界面属个人爱好而已,你可以选择不搞
3,linux下有编程软件,你所谓的不可替代的是类似vb之类的东东吧,那只是开发windows程序的东西,linux当然可以没有
4,eda的软件unix平台都有,只不过大都是商业的,不是免费的,而crack的很少。你用的那些软件在windows下都是盗版的,eda的工具很贵,如果不猜错,你用的windows可能也是盗版的。偶们公司原来买了一套eda的软件,好像是十几w美金吧。
5,linux不存在替代windows的使命,在中国很难,因为中国没有版权意识。如果你和国外的软件公司合作过,你就知道在windows下的成本有多么高,光是windows+vs就够老板头痛的了。
其实windows确实是个不错的系统,这一点我不否认。但linux也不差,只不过大多数人被盗版的windows惯坏了。
2008-2-9 02:48
stillywud
我同样关注verilog等EDA开发工具在Linux的状况.
2008-2-9 03:04
Roamvalley
OpengGL的确是工业标准。
我前面说的不是很准确,应该是从OpengGL的API层到硬件层,这个过程Linux上比Win下要复杂一些。这是因为X协议的问题,试图让硬件和应用层分割的很开,否则X协议也无法做到“甩屏幕”的功能(程序在A机器上运行,但显示的画面在B机器上),导致后来为了提高硬件加速的能力出现了像MESA软加速,MESA硬加速,DRI这些东西。那些作图形工作站的厂商自己开发了相应驱动,并让3D应用程序直接使用这些驱动,而不去使用第3方的MESA这类开发包。
但我们目前常用的“民用级显卡”享受不到这些待遇,好在Nvida较早的开始提供了Linux下显卡驱动,ATI也是1年内才开始支持,Intel更晚。
但以前MESA,DRI这些东西会导致普通用户配置硬件加速变得麻烦。而OpengGL之上的开发人员不受其苦。
最近几年,好多UNIX平台的3D图形工作站厂商没以前好过了,最典型的SGI,其IRIX不再发展了,硬件平台也在朝INTEL转变。MAYA被作3DMAX的收购了。估计还有些作工业设计的3D软件还在使用UNIX平台。
我也看过不少介绍说一些电影大作使用了Linux系统,但不知道占多少成分。
当然,如果OpengGL如果被广大游戏厂商支持是好事,起码我们在Linux/Unix下有不少好玩的东西了。
[[i] Edited by Roamvalley on 2008-2-9 03:06 [/i]]
2008-2-9 03:12
Roamvalley
其实这个帖子本就不想对Linux和Windows作过多的比较和争论,没太多意义的。
只要每个人能在Linux下找到自己工作领域里好用的免费好用的软件就是很好的事,就像上面提到的电路设计工具,用起来就是好事。
2008-2-9 03:19
aningstar
明白你的意思了,同意你对opengl的看法。玩游戏的话,目前linux是不如windows了,主要是游戏厂商的支持问题,毕竟,windows是在桌面系统上是垄断地位的。
页:
[1]
2
Powered by Discuz! Archiver 5.6.0
© 2001-2006 Comsenz Inc.