课程学习与Linux

作为Linux兴趣小组的同学,不管是哪个专业,对于课程学习和上机,建议全部在Linux环境下,这样使得Linux学习与课程学习完全的融合起来。

1.微机原理与汇编语言课程。大家现在学的是8086下16位的汇编语言,这样的机型已经只能在博物馆找到了。但是,为什么还给大家讲8086(16位)而不是80386(32位),这是因为,作为教学,8086比较好入门,课堂教学的作用是把大家领入门。但是,作为学生,如果仅限于学8086下的汇编,工作以后根本找不到这样的应用场景,因此,建议汇编语言的上机在Linux环境下。但是Linux下的汇编是AT&T格式,关于intel汇编与AT&T汇编的差异,在Linux内核之旅网站上,《深入分析Linux内核源代码》的第二章有一节给出了比较。要想看到Linux下的汇编是什么样的,把你编译后的目标代码反汇编。比如,你你写了一个简单的C程序hello.c,用Gcc和ld对其进行编译和连接后,得到的可执行程序为hello,然后用Linux的实用程序objdump可以对其反汇编:

$ objdump –d hello

那么,如何用GCC编译汇编语言,很简单:

Gcc –o test test.S

2.C语言课程:C语言的教学是在DOS下(简单的环境有助于大家把精力放在语言本身),一个16位的编程环境,可是,在现实应用中,同样很难找到这样的应用场景了,因此,C语言的编程环境同样需要延伸。Linux下的C,除了遵循标准C,还遵循GNU 扩展C,因此,在Linux用C,会觉得C知识的缺口还依然很大。Linux下的应用场景:

场景之一:嵌入式开发,C首当其冲了,其中,vim+gcc+gdb为字符界面的开发工具。嵌入式图形界面,比较好的选择是MiniGUI-清华大学毕业的魏永明领头的开源项目,已经有多个年头了,而且有较好的应用基础了。

场景之二:图形化开发。在DOS下做图形界面,意义很小了。在Linux下,基于C的图形化界面开发环境主要是基于GTK和GLAD,新近的IDE为Anjuta,据说相当不错。

还有其他的应用场景和开发环境,大家补充一下了。

3.C++课程:作为面向对象的基础语言,应用场景宽泛多了,开发环境也很多,大家可以补充。在Linux下的开发环境与C基本相同。

4.Java语言课程:Java本来跨平台,无所谓什么在操作系统下进行开发。但是,选择Linux下的elipse开发环境,是否可以一举几得。

5.数据结构课程:数据结构本是与语言无关的,主要关注的是算法。但是,因为现在的教材用C语言描述(过去用类Pascal描述),算法的重要性无法凸显了,反到成了C语言的延续。既然是上机用C,那大家何不在Linux下编写32位的C程序呢。

6.操作系统课程。上机环境选择Linux几乎是没有任何疑异了。

7.数据库课程。随着oracle等大公司力挺Linux,以及开源的Mysql数据库,那么,在Linux下进行数据库的学习似乎也没有任何障碍了。

8.课程设计:两周的课程设计,在Linux下去做,看看你能做到什么程度,以上是即兴想到的关于各门课程学习中用到的Linux环境,大家可以补充。

也许,有的同学说,任课老师不提倡在Linux环境下怎么办。其实,我们小组的实验室与系里的教研室在同一楼,可以邀请老师去实验室检查上机结果,所以建议大家尽量把机子放在实验室,在完全Linux的环境下,如果你不进步,似乎可能性太小了。

作者陈老师 出处http://groups.google.com/group/x ... ad/5a676b75705473c4