我就是做LINUX下的C开发的。
准确的说,LINUX下C才是主要的开发语言,但是写应用程序还是要用面向对象的,尤其是图形界面的,不如QT和X和GTK等等。下面说的必须要求你C语言学的很好而且会使用LINUX的情况下。LINUX常用命令要熟悉。
要学LINUX下的C编程,先看一两本LINUX下C的书比较好,这个你自己选择,但是经典的书还是好一些,比如《LINUX程序设计》、《UNIX环境高级编程》,看这些的时候把书上的例子选择一些自己编译一下,哪怕是照着敲进去,事半功倍。
看完一本这样的书,你对LINUX系统编程的知识就足够了,这时候你可以开始阅读一些LINUX下的源代码来锻炼和提升能力了,LINUX下有很多开源的软件,你可以搜一下,应用程序也很多,但是最好的源代码还是LINUX内核。
推荐一本简单的内核书《linux内核完全剖析012》,这个讲的是012内核,代码量只有1万多行的内核,现在的26估计一千万,一辈子看不完。这个书讲了很多X86体系结构的知识,这时理解内核必备的,汇编你要能看懂。
能看懂内核代码了,就说明你至少不是初学者了,现在肯定能开发项目了,有了经验后,恭喜你,你就成为一名LINUX程序员了。
再由这些基础后,你就可以选择一些具体的开放方向了,比如底层一点,驱动,协议等、或者嵌入式应用等、或者是QT等。不过这就是后话了,呵呵
我自己的一些体会,希望能对你有用。
C语言在Linux上的应用主要是三种,Server端应用、内核应用和嵌入式应用。Server端应用就写各种服务器,了解各种通讯协议,在具体实践中按项目需要学习。内核应用一般是数据包处理和驱动开发,知识点和嵌入式开发有重叠。嵌入式开发是编写非x86的异构平台上的应用,通过交叉环境,在PC上开发,在目标芯片上运行。Linux开发是嵌入式开发最常用的一种。通过学习嵌入式Linux开发,能掌握交叉编译环境的搭建和使用、Linux内核编译和剪裁、硬件驱动及应用程序开发等。学习方法是买套嵌入式开发板,最好有配套的视频教程,按教程一步一步学习。C语言很枯燥,没有UI,如果单纯的按书本学习编程很难坚持下去,只有跟硬件结合才能提高趣味性。
Java跨平台是因为Java的运行是在Java虚拟机上,而Java虚拟机可以运行在各种 *** 作系统上,所以Java程序也就能运行在不同的 *** 作系统环境下。
至于在Linux下开发Java,就关系到你用Java做什么项目了,Java的swing技术也就是图形界面编程基本已经被微软的NET所取代。所以现在Java存在的价值主要是Java对于Oracle数据库的完美支持,而Oracle数据库被大型公司和国企所青睐,也就是说Java现在主要应用于编写服务器端程序,例如我知道的有:中国电信Dms系统,某车载导航系统,大唐电信某系统,某银行存取款系统等等。
既然如此,要知道服务器的系统基本都是Unix和Linux,如果你不熟悉Linux,会给你编程带来很大的麻烦。
在公司招聘Java程序员时,会要求你熟悉Linux系统环境及Linux命令,当然据我所知,有的公司会用Linux系统来开发Java,如非微软阵营的企业:IBM、Google等等。要知道大多数外企都是不会用微软的 *** 作系统的,因为他们本身就是互相对立的。
所以我建议你,要熟悉Linux的终端命令,熟悉vi的使用,了解Linux *** 作系统。会给你日后工作和进入外企带来很多方便。
用c,linux下基本是不用ide的,即使有ide比如eclipse之类的,也是需要配置使用编译器的,因为gcc是标准编译器无论如何都需要使用到他。
所谓ide就是集成开发环境,简而言之就是将代码编辑器,编译连接工具,还有调试工具集成到一起的一个软件
而就c语言开发来说,linux下的编译工具主要是gcc,而调试工具为gdb,另外代码编辑工具就比较多了,比如vi,emacs,eclipse都是比较好用的代码编辑工具,这些代码编辑工具加以配置都可以作为ide来使用,只是配置较为麻烦而已。
由于Linux具有稳定、可拓展、开放及低成本的特性,近年来脱颖而出,一举成为全球各地快速增长的 *** 作系统,市场占有率几欲与Windows平台一争高下
Linux应用范围从Web服务器、防火墙一直到快速缓存的网页服务器,已经走出科研实验阶段,开始步入关键业务领域
然而运行在Linux下的应用软件偏少,让诸多用户对此平台犹有疑虑
其实并不能怪软件厂商和程序开发者的惫懒
用于Linux平台得心应手的开发工具匮乏,使开发效率降低
如今,Kylix3的出现,有望使这种状况彻底改变
从其近期产品发布会上,人们争相要求得到试用版的热闹场景可见一斑
RAD原来有历史大多数Linux发放版本,自身捆绑了诸如Java、G、Perl、Python等常用开发工具
然而遗憾的是多数还处在字符界面的命令行状态下,需要设置大量参数编译、调试,对于像企业级应用和团队开发,则更是难上加难
Windows环境的快速开发工具(RAD),像Borland的CBuilder、Delphi等可视化开发环境,通过简单的用户界面设计、方便的拖拽式开发,促成了Windows平台应用软件的极大丰富
为帮助Linux软件开发人员提高效率,2001年,Borland将在Windows平台上获得成功的Delphi,移植到Linux平台,推出Kylix
如果说,Kylix2还是将Delphi从Windows搬到了Linux,那么最新推出的Kylix3则进一步整合了高性能的CBuilder及Delphi程序语言,为Linux平台开发者提供了一个快速开发电子商务应用的解决方案
据称,无论是建立图形用户界面、数据库或是Web及WebServices应用程序,Kylix3都将带来更快速、更简单的使用经验
似曾相识的CBuilderKylix3具有Windows平台下CBuilder程序开发人员熟悉的工作界面,并同时支持ANSI/ISOC标准,在结合应用软件设计与开发环境中,Kylix3整合了多种可视化设计工具,内包含BorlandCLX组件库,结合CodeInsight技术的编辑器,配合图形调试器和内码编译器,功能经过调整,可以快速开发包括数据库、用户图形界面及Webservices程序在内的各类Linux平台应用
Borland跨平台组件库(CLX)提供了数百个可重复使用、定制化、自由拓展的组件和类,方便CBuilder或Delphi编程人员快速开发应用程序
由Kylix3开发的基于Linux的应用程序,将其源代码经CBuilder或Delphi重新编译之后即可在Windows环境下顺利执行,提高了应用程序的可用性
而跨Web服务器的兼容性,使专为Apache开发的服务器端应用程序,在Windows平台经过编译后,可供MSIIS、Apache、Netscape等不同Web服务器使用
可视化C编译环境和组件式的开发方式,使原本对Linux平台不熟悉的开发者,也能够顺利进行开发,从而大大缩短产品进入市场的时间
WebServices的三大利器今天,Webservices已成为全球电子商务的主要手段
任何一个应用解决方案,只要通过Internet连接,就可以整合分布全球不同环境中的资源
Kylix3拥有三大法宝可以使得用户的应用解决方案建立和使用Webservices
BizSnap是Kylix的WebServices开发平台,应用业界通用标准SOAP/XML,提供整合B2B的Webservices,将Linux *** 作系统和Apache服务器能力延伸到电子商务、XML与Webservices应用领域,并无缝连接到各类支持WebServices的应用系统
WebSnap是Kylix以组件为基础的Web应用程序开发平台,将ApacheWeb服务器变成数据库驱动的企业级Web应用程序服务器
配合HTML制作环境、可视化工具以及组件结合方式,WebSnap使开发者能够快速开发Web应用程序并整合到企业门户中
DataSnap则遵循分布式计算标准,将已有电子商务的企业数据库、应用和对象完美集成,是建立高扩展性、企业级数据访问的中间件解决方案
系统调用:linux内核通过一组称为系统调用(systemcall)的接口呈现给用户,系统调用把应用程序的请求传给内核,调用相应的的内核函数完成所需的处理,将处理结果返回给应用程序;
下面是使用系统调用的具体技术,冒号后面是使用这个技术获取内核服务的一些具体命令
ioctl:ifconfig
neilink:route
setsockopt:iptables
以上就是关于linux下的c/c++开发全部的内容,包括:linux下的c/c++开发、Linux系统下的C语言开发都需要学些什么、需要了解linux环境下开发Java吗(linuxjava环境)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)