linux服务器开发
㈠ linux开发工程师开发什么的
一:C语言:嵌入式Linux开发工程师的学习需要具备一定的C语言基础,C语言是嵌入式领域重要也是主要的编程语言,通过大量编程实例重点理解C语言的基础编程以及高级编程知识。包括:基本数据类型、数组、指针、结构体、链表、文件操作、队列、栈等。
二:Linux基础:Linux操作系统的概念、安装方法,详细了解Linux下的目录结构、基本命令、编辑器VI ,编译器GCC,调试器GDB和 Make 项目管理工具, Shell Makefile脚本编写等知识,嵌入式开发环境的搭建。
三:Linux系统编程:重点学习标准I/O库,Linux多任务编程中的多进程和多线程,以及进程间通信(pipe、FIFO、消息队列、共享内存、signal、信号量等),同步与互斥对共享资源访问控制等重要知识,主要提升对Linux应用开发的理解和代码调试的能力。
四:Linux网络编程:计算机网络在嵌入式Linux系统应用开发过程中使用非常广泛,通过Linux网络发展、TCP/IP协议、socket编程、TCP网络编程、UDP网络编程、Web编程开发等方面入手,全面了解Linux网络应用程序开发。重点学习网络编程相关API,熟练掌握TCP协议服务器的编程方法和并发服务器的实现,了解HTTP协议及其实现方法,熟悉UDP广播、多播的原理及编程方法,掌握混合C/S架构网络通信系统的设计,熟悉HTML,Javascript等Web编程技术及实现方法。
五:数据结构与算法:数据结构及算法在嵌入式底层驱动、通信协议、及各种引擎开发中会得到大量应用,对其掌握的好坏直接影响程序的效率、简洁及健壮性。此阶段的学习要重点理解数据结构与算法的基础内容,包括顺序表、链表、队列、栈、树、图、哈希表、各种查找排序算法等应用及其C语言实现过程。
六:C++ 、QT:C++是Linux应用开发主要语言之一,本阶段重点掌握面向对象编程的基本思想以及C++的重要内容。图形界面编程是嵌入式开发中非常重要的一个环节。由于QT具有跨平台、面向对象、丰富API、支持2D/3D渲染、支持XML、多国语等强大功能,在嵌入式领域的GUI开发中得到了广范的应用,在本阶段通过基于QT图形库的学习使学员可以熟练编写GUI程序,并移植QT应用程序到Cortex-A8平台。包括IDE使用、QT部件及布局管理器、信息与槽机制的应用、鼠标、键盘及绘图事件处理及文件处理的应用。
七:Cortex A8 、Linux 平台开发:通过基于ARM Cortex-A8处理s5pv210了解芯片手册的基本阅读技巧,掌握s5pv210系统资源、时钟控制器、电源管理、异常中断控制器、nand flash控制器等模块,为底层平台搭建做好准备。Linux平台包括内核裁减、内核移植、交叉编译、GNU工具使用、内核调试、Bootloader介绍、制作与原理分析、根文件系统制作以及向内核中添加自己的模块,并在s5pv210实验平台上运行自己制作的Linux系统,集成部署Linux系统整个流程。同时了解Android操作系统开发流程。Android系统是基于Linux平台的开源操作系统,该平台由操作系统、中间件、用户界面和应用软件组成,是首个为移动终端打造的真正开放和完整的移动软件,目前它的应用不再局限于移动终端,还包括数据电视、机顶盒、PDA等消费类电子产品。
八:驱动开发:驱动程序设计是嵌入式Linux开发工作中重要的一部分,也是比较困难的一部分。本阶段的学习要熟悉Linux的内核机制、驱动程序与用户级应用程序的接口,掌握系统对设备的并发操作。熟悉所开发硬件的工作原理,具备ARM硬件接口的基础知识,熟悉ARM Cortex-A8处理器s5pv210各资源、掌握Linux设备驱动原理框架,熟悉工程中常见Linux高级字符设备、块设备、网络设备、USB设备等驱动开发,在工作中能独立胜任底层驱动开发。
以上内容就是linux开发工程师主要会干什么,看上去挺多的吧。事实上linux的学习是一步一步循序渐进的,慢慢的就会发现,一切都顺理成章。还在犹豫要不要学习?赶紧开始吧!
更多Linux知识可参考《Linux就该这么学》。
㈡ 如何搭建一个linux服务器
在开发过程中,必然会出现多人同时工作、协着的情况,在嵌入式开发项目中更为平常,这样可以加快项目周期,为产品上市占得时间先机。目前,使用Linux作为开发产品的操作系统情况越来越多,使用越来越广泛。为了交叉编译,为了最接近开发目标,我们一般都会自己搭建一台Linux开发服务器。Linux开发服务器一些常用的功能必须支持,比如Samba、nfs、tftp、httpd等。
首先我们需要选择合适的Linux操作系统作为服务器的系统,推荐使用Fedora8、Fedora10等,笔者在长期使用的过程中觉得比较稳定吧!如何安装该操作系统就不多说了。 装好系统后,需要增加Linux OS用户,可以使用命令#adser XXX;增加XXX用户,
㈢ 做linux服务器开发的前景怎么样
其实一楼这个机器人说得没错。Linux运维的需求远远比开发人员大。。
现在做后台很少用C、CPP这一类大型编译语言,因为太慢了,没效率,而且维护起来也不容易。通常是中大型公司才用的,胶水语言作为响应层,然后通过C、CPP调用socket分发给各个模块的服务器处理逻辑。
现在绝大多数的公司,都在用PHP,Python,node这一类的后台语言和解决方案。。敏捷开发,维护起来又简单。
所以说,你打算做Linux服务器开发,前景不容客观。
㈣ 如何一步步学习linux服务器编程
1、首先你要懂c++/c的程序结构。内存处理等基础知识。 2、tcp/ip的联网知识 3、linux的一些概念,进程、线程、信号量、同步等等。 4、socket API的知识 5、内核调用等 需要的很多知识。 也可以采用Apache的组织提供的结构来写程序,可能稍简单的。
㈤ linux服务器开发需要哪些知识'
[开发前准备]
在进行linux服务器开发之前,必须很清楚地了解所开发的对象需要考虑的相关问题
比如:
功能架构:提供服务的模块体系结构
稳定性:服务器的出core率,内存泄露情况
性能:请求与返回的速度与正确性
负载能力:能同时访问的最大数量和频度
根据不同服务器对象的环境和应用,服务器开发的对应手段相差甚远。比如就客户端连接时间较短却又比较频繁的服务器(例如HTTP服务器)而言,
在可选的服务器结构中,预先派生进/线程的结构就要比并发式结构高效
总之,在开发服务器之前,必须进行完整的服务器开发需求分析,否则一旦你的服务器开发完成而因为效率或者其他某项事物不能满足你的客户,那么很有可能失败!
[服务器让我明白了这件事情]
服务器一般在后台运行,与客户端的交互通过请求和返回两种方式进行通信。
以epoll为例,一个epoll开发的服务器程序,等待着一百万的客户端用户的请求,轮询观察某个时刻是否有客户端发来的请求;排队依次处理发来的请求,并将结果返回给
客户端应用程序。
涉及到几个技术问题:
第一,客户端访问进入epoll轮询队列的优先级是否需要控制。比如甲是我们的vip白金用户,那么,我始终先处理甲发来的请求,不然白金用户要生气的。
第二,极大可能程度上优化处理请求的速度,这是服务器设计的核心业务。
第三,如果客户端请求了这样一个事情:我需要看这一百年来某企业所有的信息,那么我想这个信息量是很大的,也就是现在很热门的大数据大文件传输问题,如何快速
将服务端的这些结果传给客户端,在带宽允许的情况下当然越快越好!这里会有很多处理措施,当然你可以打成一个包直接扔过去,但是这样是愚蠢的,像蜗牛背着一个
重壳在挪动,用户可等不了这么久;聪明的做法当然很多,根据你的实际需要,比如,你可以压缩,你可以分批,等等。
等等,其实服务器的整个开发,每个细节都决定了你的服务器的成败优劣。在开发linux服务器的项目后,我个人决定,一个让你的服务器变得强大的很重要的因素是——
——你不愿意放弃任何一个可以挺高性能的因素,即使是快0.01ms或者少传1bt的数据!
[流行的服务器模型]
1 PPC/TPC 模型
这两种模型思想类似,就是让每一个到来的连接一边自己做事去,别再来烦我 。只是 PPC 是为它开了一个进程,而 TPC 开了一个线程。可是别烦我是有代价的,
它要时间和空间啊,连接多了之后,那么多的进程 / 线程切换,这开销就上来了;因此这类模型能接受的最大连接数都不会高,一般在几百个左右。
2 select 模型
2.1. 最大并发数限制,因为一个进程所打开的 FD (文件描述符)是有限制的 由 FD_SETSIZE 设置,默认值是 1024/2048 ,因此 Select 模型的最大并发数就被相应限制了。
自己改改这个 FD_SETSIZE ?想法虽好,可是先看看下面吧 …
2.2. 效率问题, select 每次调用都会线性扫描全部的 FD 集合,这样效率就会呈现线性下降,把 FD_SETSIZE 改大的后果就是,大家都慢慢来,什么?都超时了??!!
2.3. 内核 / 用户空间 内存拷贝问题,如何让内核把 FD 消息通知给用户空间呢?在这个问题上 select 采取了内存拷贝方法。
3 poll 模型
基本上效率和 select 是相同的, select 缺点的 2 和 3 它都没有改掉。
4 Epoll 模型
把其他模型逐个批判了一下,再来看看 Epoll 的改进之处吧,其实把 select 的缺点反过来那就是 Epoll 的优点了。
3.1. Epoll 没有最大并发连接的限制,上限是最大可以打开文件的数目,这个数字一般远大于 2048, 一般来说这个数目和系统内存关系很大 ,
具体数目可以 cat /proc/sys/fs/file-max 察看。
3.2. 效率提升, Epoll 最大的优点就在于它只管你“活跃”的连接 ,而跟连接总数无关,因此在实际的网络环境中, Epoll 的效率就会远远高于 select 和 poll 。
3.3. 内存拷贝, Epoll 在这点上使用了“共享内存 ”,这个内存拷贝也省略了。
等等。
在开发你的服务器之前,应根据自己的业务需求和实际情况,恰当地选择服务器的模型,这对这个服务器的功能效率都是具有很重要的意义的
㈥ linux服务器开发常用的开发环境和工具是什么
vi最好还是掌握一下,避免有时候在没有开发工具时应急用。
我习惯在windows下用Notepad++ 写东西。结合winscpd直接
可以把写的文件保存到服务器上进行调试。这个还是看个人喜好
和习惯,没有什么绝对的。
㈦ linux开发还是windows开发有什么区别
一、Windows系统
1、优点:对比其他的服务器操作系统来说,是非常简单易用的,级大程度降低了使用者的学习成本。
2、缺点:对服务器的硬件要求比较高,而且稳定性不是很好。
3、应用:主要应用于中、低档服务器中。
二、Linux系统:
1、优点:Linux系统是免费开源的软件,受到所有开发者共同监督,是非常成熟的服务器系统,同时拥有者一套完整的权限机制,安全和稳定性都非常不错。
2、缺点:Linux系统需要学习一段时间才可以掌握,难度也高一些。
3、应用:Linux系统适用于中、高档服务器中。
三、Linux与Windows之间的区别是什么?
1、Linux运行速度要快很多,安全性要比Windows系统好;
2、有的软件只能在Windows中运行,在Linux中无法兼容使用;
3、Linux适用于在网络方面;
4、Linux系统操作起来要比较复杂,Windows相对于要简单一些。
㈧ 如何搭建一台Linux开发服务器
在开发过程中,必然会出现多人同时工作、协着的情况,在嵌入式开发项目中更为平常,这样可以加快项目周期,为产品上市占得时间先机。目前,使用Linux作为开发产品的操作系统情况越来越多,使用越来越广泛。为了交叉编译,为了最接近开发目标,我们一般都会自己搭建一台Linux开发服务器。Linux开发服务器一些常用的功能必须支持,比如Samba、nfs、tftp、httpd等。 首先我们需要选择合适的Linux操作系统作为服务器的系统,推荐使用Fedora8、Fedora10等,笔者在长期使用的过程中觉得比较稳定吧!如何安装该操作系统就不多说了。 装好系统后,需要增加Linux OS用户,可以使用命令#adser XXX;增加XXX用户,#passwd XXX给其设置登录密码。当然使用图形化创建用户也很直观、方便。在这个环节值得注意的一定要设置好该用户的home目录,一般都会设置到该用户的工作目录,各个用户的工作目录需要私有化、独立开来,这样方便些、安全些。 多用户的账户有了,我们应该来打通网络功能了,Fedora有bug,在图形化配置GATEWAY什么的会不成功,请安装如下方法修改: # cd cd /etc/sysconfig/network-scripts/ # vi ifcfg-eth0 修改配置文件如下: # Marvell Technology Group Ltd. 88E8001 Gigabit Ethernet Controller DEVICE=eth0 HWADDR=00:16:e6:db:c2:96 ONBOOT=yes BOOTPROTO=static //这个应该是“static”,而不是“dhcp”或“none”; USERCTL=yes PEERDNS=yes IPV6INIT=no NM_CONTROLLED=yes//这个应该是“yes”,如不修改,链接仍是disconnected; TYPE=Ethernet NETMASK=***.***.***.*** IPADDR=***.***.***.*** DNS1=***.***.***.*** DNS2=***.***.***.*** GATEWAY=***.***.***.*** step 3: # service network restart 接下来就需要调试一下Samba功能了,这样在windows下编辑Linux下的代码将非常的便利。命令行下操作方法如下: Vim /etc/samba/smbusers # Unix_name = SMB_name1 SMB_name2 … root = administrator admin nobody = guest pcguest smbguest dssun = dssun hmchen = hmchen 增加Samba用户; Vim /etc/samba/smb.conf [dssun] comment = * path = /opt/STM/STLinux-2.3/devkit/dtvkit/dssun writeable = yes ; browseable = yes valid users = bluo, dssun, hmchen, hqian, sbxiang, tsfu, yrli 设置工作路径,可读写性、有效访问的用户等。 在图形化下也有配置菜单,这个就很简单了,不再叙述。 有了Samba就方便很多了!编译编辑都很不错了!接下来要着手你的开发平台软件,这个对于不同平台的SDK有不同的处理方法,根据自己的SDK来处理。 有了SDK后,我们编译通过后,一般都会进行调试,如何方便的调试呢?一般都会想到使用nfs调试。 以Fedora为例,一般默认安装的没有包括tftp功能,可以使用yum来安装,方便! #yum install tftp; #yum install tftp-server 还需要更改一下tftp的配置,如下: vim /etc/xinetd.d/tftp 修改server_args = -s /tftpboot -c,这里的-c一定要加上,否则只能下载不能上传!!! service tftp { disable = no socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot -c per_source = 11 cps = 100 2 flags = IPv4 } # mkdir /tftpboot # chmod 777 -R /tftpboot/ # service xinetd restart 记得要关闭防火墙、seLinux.不disabled seLinux,Samba有可能只能读不能写,切记。
㈨ linux服务器开发(网络游戏方向)都要学什么知识
服务器开发,首要的是一种编程语言,C++或者Java
要深入这门语言的学习,学习内存管理,学习线程控制,对象池,线程池,Socket等
还要学会数据库增删改查
㈩ 为什么要用Linux做服务器
大致三个原因:
1、免费--Linux是免费的,任何人都可获取而无需付费
2、安全--至今为止,尚未发现linux操作系统上的病毒
3、强大--扩展性强, 用户可以自己定义或改变内核,加入自已的应用程序包,使之更符合特定应用的要求,如web/erp/vod等应用服务器, 以下几个方便是windows或unix(如hp-ux, Aix或Solaris)版本所不备有的功能:
A、自动补全功能:在输入命令时可以按TAB补全命令。
B、模块化设计:只要能稍稍学习一下系统的知识,不用担心系统会出问题,出了问题一般也不用重装,在终端将配置修改一下或者直接还原就可以了。
C、对其它系统支持好:可以挂载其它系统的分区,可以在虚拟机中安装运行其它系统如Windows,可以用WINE来运行部分Windows程序。好像Windows从来无法模拟运行Linux程序。
D、可定制:你可以安装自己喜欢的桌面环境,可以将外观换成自己喜欢的样子,如MAC OS X或者Vista等等,可以很简单地定义快捷键起动自己喜欢的程序,甚至可以自行编译内核,使用符合自己需要的内核,在显示版本上加上自己的名字。
E、够用:相当Windows而言,对我们普通用户来说Linux的功能还差点,主要是软件开发商的支持不够,但一般也足够了,办公用OO或Abiword之类,作图有Gimp,矢量的Inkscape 和Xrar LX,3D有MAYA(这是商业软件),浏览器有Firefox和Opera等,多媒体播放器有Mplayer,音乐播放器有BMP、Audacious等,网络电视有gopcast(没有pplive台多),辞典有星际译王,背单词有recideword(黑客背单词)。应该说基本能满足我们的需要了。
F、cool:现在都说Vista的桌面怎样cool,但真正比较起来,还是Linux在这里更胜一筹,安装过beryl的都知道。