初识linux端c++程序开发

  关于linux端程序开发,我以前一直不知道是做些什么,只是感觉听高端的。最近接触了一些,有了一些初步的认识。

  首先,linux是一个操作系统,跟windows一样:接通电源、按下电脑开机,电脑就会自动加载运行的系统软件。操作系统是电脑不可缺少的一部分。操作系统是你的电脑实体和实用方便的软件中间的媒介。linux也是这样,而我做的,就是编写一些能在linux上面编写、编译、生成一些可以在linux上面运行的软件。

  windows这么好用,为什么我们还要用linux系统呢?这两个操作系统是有区别的。同一台电脑,你可以选择安装windows或者安装linux,那么区别在哪呢?

  首先,同一台电脑,装上windows或者linux之后。这台电脑的硬件是不会有什么改变的。1000元的电脑配置还是1000元,5000元的还是5000元。我就拿1000元的来说,既然硬件资源是有限的,它没有5000元的速度快,但我想让它更快一些,那我可以在操作系统上动一些手脚。比如说我装个linux而不用windows。说不定速度就比装windows快一些。windows比较注重图形化界面,用户交互性好,所以家用和个人电脑大多数人都选择安装它(当然也有人用linux或者苹果的操作系统)。而windows就必须把大量电脑的硬件资源用于运行它的图形化界面,对运算可能就冷落了一些,毕竟1000元的电脑,硬件资源实在有限。而linux系统刚开发出来时并没有各种窗口,没有windows直观,但是它的优点就是“我不需要图形化界面也能运行”,而windows没有图形化就根本无法工作。每一个操作系统,在有限的硬件资源上,都有自己的侧重点。而用户可以随便选择。

  linux操作系统好在它是开源的。开源就是编写它时的源代码倍放在网上,可供大家免费观看。windows的源代码微软公司是不会放在网上的,因为他们公司是卖操作系统的嘛,几百块钱一个。在中国盗版比较严重,所以我们很多人并不知道操作系统也是需要花钱购买的,也许我们在购买电脑的时候,卖家就已经帮我们装好盗版系统了。而linux是开源的,自然就不用花钱购买了(除非你享受了别人的其他服务)。

  我们为什么有这么多人学习linux呢?我认为原因有两个,第一是它开源免费,大公司如果选择用windows的话肯定需要花很多钱去微软购买安装系统(在公司起步时谁也不会想花这么多钱),它还安全稳定,源代码在我手里,哪里不安全我可以自己改,哪里不稳定我可以自己改。第二是它的重心放在了数据处理和计算上,而不是与用户的交互,公司的服务器并不需要用户用起来好用,毕竟工作人员都是电脑高手,处理速度快就行。所以现在大多数企业选择用linux,而不用其他操作系统。这样一来他们便需要大量的程序员来维护这个系统。所以学的人就多了。

  公司里怎么用这个系统呢?比如说我们用的聊天软件QQ,我发一条消息给我朋友,其实我是把消息发给了腾讯公司的某台服务器了,那台服务器再帮我把那条消息发给我的朋友,并告诉他是我发的。在这个互联网时代,服务器就是做着这么重要的工作。以前大家玩单机游戏不需要服务器,在自己电脑上运行就行,或者用蓝牙、wifi可以和周围的小伙伴一起玩。而现在的互联网时代就不同了,我们喜欢分享自己的快乐,打游戏也喜欢与其他人一起玩。服务器就是一个信号的中转站。我们现在用的各种云存储,服务器就充当了一个远程的硬盘给我们存东西。还有云计算等多种多样的服务。我们甚至可以这样来想,我们把输入信息传递给服务器,服务器帮我们处理解决以后再把输出信息发给我们,而我们需要的就只是一个输入器、输出器和良好的网络。

  可见服务器的作用是多么强大。而服务器用的是linux系统。我们就很有必要去了解它,了解怎么在上面编写一个软件来处理用户发过来的消息。

  那我们应该怎么去系统的学习呢?已经有前人帮我们总结好了。学习这个方面的知识分为这几个模块:c\c++语言;linux操作系统;计算机网络;数据结构与算法;操作系统。

  首先我们要写程序,要把自己的思想写在计算机,就要能说一口流利的计算机语言,所以必须学会计算机语言。我学习的是c\c++,其实我感觉c和c++是分不开的,你不可能学会了c++而不会c,也不可能学会了c学不会c++。c\c++可谓一把锋利的巨剑,手持巨剑,就算不会武功也有一定的震慑力。更何况没有剑怎么打得过拿剑的人呢?这是基础,打牢基础必然不会有什么坏处。

  而c\c++写出来的程序需要在操作系统上运行,并且写程序时很多时候要和操作系统交流,给它借东西用。那就必须的学习一下操作系统是怎么运行的,它的内部原理和外部接口都学一遍,也就相当于了解一下你比武的场地,占地形优势了。这块场地并不比c\c++简单,linux也是用c写的(为什么不用c++呢?当时还没有c++)。当然,学习linux的同时能接触到很多计算机的精华,能加强自己的c\c++语言能力,能了解很多别人编写这系统时用到的思想和设计思路。

  计算机网络,网络能把客户端和服务器端链接起来。我们肯定需要了解数据是怎么传输的,并要熟练的写出发送数据和接收数据的代码。哈哈,虽然网络路线为我们铺好了,但它留给我们的接口我们还是要学会使用的。

  学完以上这3个部分,你就可以工作了。嗯,我觉得就是这样的。学校总是要我们打好基础再往上学,上课总是喜欢先上数据结构和操作系统,最后再来学linux这些具体的、真正能做事的。我就不喜欢这样学习,没人告诉我数据结构、数据库有什么用,直接就开始学了,我也不知道学了有什么用,也许学到一半我就对编程失去了兴趣了,往后的内容我可能再也不想学了。所以我个人认为应该先学前面那三块实用的。

  如果学完上面3部分内容,那你已经能作一些开发了,如若觉得思维不太清晰,那就好好研究研究数据结构;如若觉得对操作系统的运行原理不太理解,那就好好研究下操作系统;如果对数据的存储与读取感到苦恼,那就多看看数据库。学习就应该这么简单,喜欢什么学什么,什么不会学什么。

  在学习上,对自己保持一定的自信也是有必要的,要懂得坚持。因为学习编程并不是一个简短的过程,毕竟那么多人呕心沥血研究出来的东西,短时间想把它学透是不可能的。热爱编程的人,都是在这条路上走走停停、走走停停,对计算机科技的理解越来越深、越来越深。

时间: 2024-10-24 21:46:01

初识linux端c++程序开发的相关文章

Linux及Arm-Linux程序开发笔记(零基础入门篇)

Linux及Arm-Linux程序开发笔记(零基础入门篇)  作者:一点一滴的Beer http://beer.cnblogs.com/ 本文地址:http://www.cnblogs.com/beer/archive/2011/05/05/2037449.html 目录 一.Arm-Linux程序开发平台简要介绍... 3 1.1程序开发所需系统及开发语言... 3 1.2系统平台搭建方式... 4 二.Linux开发平台搭建... 5 2.1安装虚拟工作站... 5 2.2安装Linux虚拟

Linux及Arm-Linux程序开发

一.Arm-Linux程序开发平台简要介绍 Arm-Linux程序的开发并不像我们以前接触的Windows程序开发那样,关于平台的搭建就繁琐很多,所以在正式进入程序开发之前先对这种开发模式进行简要介绍,让一个即使没有任何Linux开发经验的程序员也能够看懂后面的内容. 1.1程序开发所需系统及开发语言 开发arm-linux程序至少需要三种系统: Windows系统.     主要用来文件传送和一些简单的文本文件编辑.这个系统其实并非必需,只是因为目前PC机上最流行的系统仍然是Windows系统

linux下java程序开发

在linux终端下敲击:java(用于java程序的执行) 如果有一大串的字符输出说明已经安装好了.(linux程序默认是安装java的,但是javac好像不是默认) 敲击:javac(用于程序的编译) 如果有一大串的字符输出说明已经安装好了. 如果没有就要先安装.(应用程序都要先安装再使用的) 程序的安装:前面说了,计算机系统里面唯一东西就是文件,程序的安装就是下载文件,说白了就是把文件下下来,放在你的硬盘上就可以了.(cp) 下载:jdk最新版本:jdk-7u71-linux-x64.tar

linux微信小程序开发

https://github.com/Tencent/wepy https://github.com/cytle/wechat_web_devtools 原文地址:https://www.cnblogs.com/ziyouchutuwenwu/p/11399330.html

小程序开发前准备

小程序开发前准备 小程序是微信生态的一部分,它提供了一种更加方便和高效的用户交互方式 小程序的优点 用户使用的便捷性 远好于公众号和H5页面的体验 相对来说手机内存空间小 一端开发,多端运行(iOS端.Android端) 小程序开发主要分成三个部分 开发前准备 申请AppID(测试AppID有些功能做不了) 登陆微信公众平台:https://mp.weixin.qq.com/ 小程序注册 下载开发工具 官方微信Web开发工具(调试作用) 小程序界面点击文档 点击工具 点击链接 微信开发者工具 尽

linux上安装eclipse并配置mapreduce程序开发环境

我们打算在linux(centos)上安装eclipse,并配置好mapreduce程序开发环境. 第一步:下载并安装eclipse(前提是已经安装好JDK) 在linux系统中打开浏览器,输入网址:http://archive.eclipse.org/eclipse/downloads/我们选择3.7.2版本. 下载下来后,文件存在于: [[email protected] Downloads]$ ll total 178052 -rw-rw-r--. 1 liuqingjie liuqing

linux网络编程 基于TCP的程序开发

面向连接的TCP程序设计 基于TCP的程序开发分为服务器端和客户端两部分,常见的核心步骤和流程: 其实按照上面这个流程调用系统API确实可以完全实现应用层程序的开发,一点问题没有.可随着时间的推移,你会觉得这样子的开发毫无激情.为什么TCP的开发就要按照这样的流程来呢?而且一般出的问题几乎都不在这几个系统调用上,原因何在?当我们弄清网络开发的本质,协议栈的设计原理.数据流向等这些问题的答案也就会慢慢浮出水面了.接下来这几篇博文主要是围绕网络编程展开,目的是引出后面对于Linux下TCP/IP协议

linux应用程序开发-文件编程-系统调用方式

在看韦东山视频linux驱动方面有一些吃力,究其原因,虽然接触过linux应用程序编程,但是没有深入去理解,相关函数用法不清楚,正好看到国嵌视频对这一方面讲的比较透彻, 所以把学习过程记录下来,也作为linux应用程序开发的一个系列吧! 文件编程有两种方式,一是系统调用方式,二是库函数调用. 前者依赖特定的平台,后者不依赖平台. 系统调用:创建 int creat(const char *filename,mode_t mode); filename:要创建的文件名 mode:创建模式 S_IR

Linux 程序设计学习笔记----进程管理与程序开发(下)

转载请注明出处:http://blog.csdn.net/suool/article/details/38419983,谢谢! 进程管理及其控制 创建进程 fork()函数 函数说明具体参见:http://pubs.opengroup.org/onlinepubs/009695399/functions/fork.html 返回值:Upon successful completion, fork() shall return 0 to the child process and shall re