红联Linux门户
Linux帮助

8问8答,为初学者拨云雾

发布时间:2011-12-12 14:46:53来源:红联作者:tuhaihe
下面是Stephen 童鞋对Linux Deepin 论坛里面的一位网友qiansen1386热情回答:
1-Q

近些天学习Linux,积累了好多问题。一次性爆发一下,大家不必都回答,找一两个自己擅长的写一下就好。这些问题谷歌也不好找,不如在社区里问一下了。
学JAVA的能给linux开发程序么,一般像LD的linux会内置JRE么?如果能内置的话,在win平台的那些java程序不都是给linux写的了?

Stephen’s A

当然可以,Linux下也可以使用Java开发。大部分Win下的Java程序在Linux下都可以直接运行,但也有一些程序,因为使用了Win下特有的库,而无法不经修改在Linux下跑。出于ISO体积的限制,目前不会预装JRE,在软件中心里可以方便的安装jre。(将来可能会出DVD版,那时候可能会带JRE)

2-Q

linux有可执行文件么?一般win下就是一个exe调用一堆dll。可是linux开发是什么结构呢?
python在linux开发中一般充当什么作用,为什么在系统文件夹中能找到好多python的脚本?

Stephen’s A

Linux下的概念跟Win下的概念大致相同,但是在说法上又很大的区别。首先要注意的是,在Linux下,许多情况下系统并不会根据文件的后缀来判断文件的类型,而是根据文件的实际内容。在Linux下,通常说的可执行文件分成两大类,一类是ELF格式的(通常没有后缀,或者后缀是.bin),令一类是各种脚本(如.sh,.py等等)。ELF格式与.exe对应,.so与.dll对应是动态链接库,.a与.lib对应是静态链接库。Python是一种脚本语言,现在在Linux下大量使用,因为它的开发效率非常高。现在也有许多图形程序都是用Python开发的,比如软件中心。虽然Python的运行效率不如C程序,但是用Python开发的GTK程序的性能并不差,因为GTK底层的库都是用C实现的,Python只是做了一个绑定,因此实际上程序的主要部分还是C。

3-Q

VB、C#等.NET语言是不是微软独占的。一般给linux开发都用C++么?
Stephen’s A

.NET不是一门语言,而是一个运行时环境,你可以认为跟JRE是差不多的东西。VB实际上是Basic语言+一些图形化的库。在.NET出来之后,用Visual Studio开发的程序,无论是用C++、C#、VB还是F#等语言写的程序,都是调用.NET的库来跑的(当然,也可以不用.NET)。你需要理解、区分的几个概念,比如C++和VC++这样的概念。

.NET不仅在Windows下可以用,在Linux下也有实现(mono项目),也就是说在Linux下也可以使用C#开发,比如gnome-do就是用C#开发的。

在Linux下,C++其实用的分量也不能算很大。底层的开发几乎全是C,上层的应用都用脚本语言了,比如Python。当然,C++的量还是很大的,比如QT的库就是用C++实现的。你要学习Linux开发的话,建议直接学习Python,C语言在这个年代,只有开发底层的人才需要掌握,也只有开发底层的人能够用的好,一般人其实是学不好的。

4-Q

一般学linux是不是都是为了配置服务器?
Stephen’s A

Linux在服务器方面是强项,Win是比不了的。但是学习Linux当然不都是为了配置服务器,我们学校就有许多人用Linux做桌面系统的。

5-Q

deb和rpm等包都是把一个软件存在不同的文件夹的么?为什么不能像win平台的Program file文件夹一样划一个app专区。(好像win平台也有一个叫AppData的文件夹)

Stephen’s A

你可以简单的认为,/usr/share/就是Program Files文件夹,/usr/lib/是Common Files文件夹。而你的$HOME就是AppData文件夹。这方面其实Linux做的比Win要好多了。你需要了解一下Linux下各个目录分别放的都是什么文件,然后会发现Linux下比Win整齐多了。

6-Q

Linux中(比如LD)的图形化界面和终端究竟是什么关系。能完全用图形化界面代替终端么?一般的认知都是图形界面比指令高效指令的效率体现在哪里呢?批处理么?

Stephen’s A

图形和终端都只是工具,爱用什么用什么。普通用户根本不需要使用终端,请不要把Linux跟终端联系在一起。大众用户常用的功能,都是与终端无关的。

7-Q

linux有类似windows的系统库么?或者说独占库,比如DirectX。

Stephen’s A

Linux下常用的图形驱动是OpenGL。(八卦一下,OpenGL是由侏罗纪公园的那帮人开发的,最早微软也参与了OpenGL的开发,后来微软退出了,自己搞了一套图形驱动,叫WinG,这东西需要额外配置一块图形加速卡,因此大家都不使用,就很快淡出市场了,大多数人都没有听说过这个东西。然后在NT的年代,微软推出了DirectX。)

不知道你指的“独占库”是什么意思?是指只能在Linux下跑的东西吗?可以说没有,但又很多。说没有,因为Linux下的核心的库都是开源的,只要有人做,都可以移植到Win下(当然,严格的说有许多底层的还是无法移植的)。要说很多,也确实很多,因为许多库都没有人去移植,或者移植没有意义。

8-Q

高手路过时能推荐一些基础类的书或是开发文档看看么?最好是中文,繁体也行

Stephen’s A

学习编程,最忌讳的就是一下子给你一大堆书,那样什么都学不好。我学习的时候,一次只让别人推荐一本书,把这本书一点点看完,里面的例子都尝试一遍之后,再去吭下一本书。书不在多,而在于自己能不能沉下心来读。

VIA[Linux Deepin 官方博客:Planet Linux Deepin]
文章评论

共有 336 条评论

  1. happyrain 于 2012-06-13 15:16:59发表:

    顶N下,做任务

  2. happyrain 于 2012-06-13 15:16:53发表:

    顶N下,做任务

  3. happyrain 于 2012-06-13 15:16:50发表:

    顶N下,做任务

  4. happyrain 于 2012-06-13 15:16:46发表:

    顶N下,做任务

  5. Lslltl 于 2012-06-13 08:13:58发表:

    我觉得,很有用,谢谢。

  6. fcyyy 于 2012-06-04 12:22:09发表:

    cba

  7. fcyyy 于 2012-06-04 12:21:50发表:

    rer

  8. fcyyy 于 2012-06-04 12:21:31发表:

    ree

  9. 手心的太阳 于 2012-05-28 18:55:42发表:

    顶起来~~~?~~~~~

  10. 手心的太阳 于 2012-05-28 18:55:13发表:

    顶起来~~~?~~~

  11. 四夕alex 于 2012-05-24 16:55:38发表:

    {:2_103:}帽子新手入门顶楼主

  12. feiqilai123 于 2012-05-24 15:31:40发表:

    ding{:3_118:}

  13. o_oxiaocai 于 2012-05-23 15:46:11发表:

    好贴,虽然好几点看不懂,Phthoy真的用的这么多吗,是在吃惊

  14. tiffanyZ 于 2012-05-18 12:02:15发表:

    刚接触,所以会有很多的不明白,毕竟win用了那么多年,帖子不错,有收获

  15. red_aloha 于 2012-05-17 11:07:41发表:

    我也是初学者,但是我觉得初学者的定义有好几种:
    1,了解系统操作型,就是用鸟哥的书(基础篇)了解linux这个操作系统怎么操作,用户怎么管理自己的操作。这种人底子往往比较薄弱。
    2,搭建服务器型,有些人为了要搭建服务器或者以后想在服务器方向发展,所以会看一些基本操作的书,然后就直接直接选定了一个方向发展----架站
    3,了解系统内核型,有些人是想了解整个OS怎么运行来“初学”linux的,这种人是有很强的底子的,很快可以直入主题。
    不知的这样分得有没有道理,请高手指正,而我现在暂时属于第一种,好悲催啊

  16. yihai1221 于 2012-05-16 22:24:34发表:

    谢谢分享~~~

  17. yihai1221 于 2012-05-16 22:24:29发表:

    谢谢分享~~~

  18. lionly2008 于 2012-05-16 21:58:25发表:

    强力顶贴.本人菜鸟 请多多帮助,谢谢.

  19. 于 2012-05-10 09:42:33发表:

    还是怕不习惯,先看看双系统的。

  20. hitnetman 于 2012-05-07 01:17:09发表:

    好东西啊,谢谢楼主

  21. serven 于 2012-05-06 16:23:26发表:

    受教了,谢谢

  22. sheng7625 于 2012-05-04 21:48:35发表:

    值得我学习

  23. larmbr 于 2012-05-04 14:51:39发表:

    感谢分享,学习了,谢谢!!!

  24. ediad 于 2012-04-25 16:29:41发表:

    工作肯定是终端好了,当然前提是熟悉,这样运行效率高,配置也灵活多变。娱乐则是图形界面好,毕竟看起来舒服,操作简便!

  25. comsiongod 于 2012-04-25 10:18:51发表:

    新手上手 学习学习

  26. zhouyuanjing 于 2012-04-24 22:01:47发表:

  27. 于 2012-04-23 10:30:17发表:

    很精彩,初学者看了真的很受用。

  28. liangbin107 于 2012-04-20 11:38:02发表:

    收藏先!!谢谢楼主!!!

  29. wihf 于 2012-04-20 09:59:59发表:

    说得非常好

  30. first6120c 于 2012-04-19 16:05:35发表:

    留个脚印表示来过

  31. 237762121 于 2012-04-17 15:24:21发表:

    正在学习C语言的飘过,不错不错

  32. xiaozhg 于 2012-04-10 09:20:20发表:

    GREEN HAND

  33. fate3008 于 2012-03-30 10:47:05发表:

  34. providence2712 于 2012-03-28 15:34:09发表:

    谢谢

  35. 菜鸟的梦想 于 2012-03-26 23:36:20发表:

    书不在多,而在于自己能不能沉下心来读。
    说到我心里了!

  36. newenlove 于 2012-03-26 16:26:15发表:

    学习linux,就不要套用windows的思想,好好学习

  37. Mendax 于 2012-03-26 00:02:58发表:

    顶起!

  38. xujianghai 于 2012-03-22 14:00:43发表:

    必须顶

  39. lhj6105 于 2012-03-21 13:11:18发表:

    Stephen’s 太高了,我也学习了很多

  40. tyuifqo19jj 于 2012-03-21 04:40:25发表:

    也是支持,我代表大家顶你了