精华内容
下载资源
问答
  • Linux应用领域

    千次阅读 2017-02-10 22:55:58
    (1)linux应用于后台服务器,yongyu网站开发, (2)嵌入式领域,andorid,ios系统底层都是linux , (3) linux 与windows 区别 1:Linux区分大小写 2:Linux中一切皆文件 3:linux 不区分扩展名,压根没有扩展名...

    (1)linux应用于后台服务器,yongyu网站开发,

    (2)嵌入式领域,andorid,ios系统底层都是linux ,

    (3) linux 与windows 区别

    1:Linux区分大小写

    2:Linux中一切皆文件

    3:linux 不区分扩展名,压根没有扩展名,,Linux不靠扩展名区分文件类型,他考权限区分文件类型,

    展开全文
  • Linux应用开发自学之路

    万次阅读 多人点赞 2018-06-09 21:33:27
    在 「关于我 」那篇博文里,朋友们应该知道了我不是科班出身,是由机械强行转行到Linux应用开发方向。下面我就详细向大家介绍自己这一路上的转行历程,希望对大家有所启发。   我是学机械专业的,对于机械专业我...

     

    前言

     

     

     

     

    在 「关于我 」那篇博文里,朋友们应该知道了我不是科班出身,是由机械强行转行到Linux应用开发方向。下面我就详细向大家介绍自己这一路上的转行历程,希望对大家有所启发。

     

    我是学机械专业的,对于机械专业我还是很感兴趣,而且当年这个专业也是我自己选择的。本科时成绩没排第一,但也排专业前列。硕士时成绩一直是专业第一,还拿过国家奖学金。由此可见,我还是挺热爱机械的,考研时甚至还想去中科院深造(可惜落榜了),想成为一名机械砖家。

     

     

    转折点

     

     

     

    但转机在我毕业之后。本来我就想一直踏踏实实的做机械,但阴差阳错的,第一份工作由机械工程师调剂到电子工程师。虽然是电子工程师,但做了很多代码工作,那时候学了一些Verilog,以及C#,并且用C#开发了一个测试工具及一个生产用的上位机,据说那个测试工具现在还在电子部门使用。也就是那时,我真正接触到了编程,并深深的被编程世界所着迷。

     

    可是,我在学校学的是机械啊,跟软件相关的东西顶多是C语言及汇编语言,但C语言是十年前(那时候)学的,早就还给老师了。因此,为了工作的需要,我硬着头皮开始学习编程。我每天早上6点起床,学习一个小时后7点去赶班车,晚上下班回来再继续学习。在这样的条件下我学会了Verilog及C#,同时对STM32有个大概的了解。

     

    但那个岗位毕竟不是完全做软件工作,还需要做电子方面的工作。做软件的都知道,写代码的时候需要一个不被打扰的环境,而我那个岗位,一天可以接到十几个电话,严重干扰我的软件开发进度,因此,我决定离开公司,去做真正的软件工程师。

     

     

    入门

     

     

     

    第二份工作,我是嵌入式工程师。在去公司之前,我系统的学了一遍51,看的是 「郭天祥十天学会51单片机」,对单片机有个初步的入门。真正入职后,再利用一个月的时间系统学习一遍C语言,看的是C语言之父写的 「C程序设计语言」。这本书虽然写于80年代,但现在看来依然不过时。而且这本书比较薄,容易看完,比较有成就感。

     

    看完 「C程序设计语言」之后,最好再看 「C和指针」 ,「C专家编程」,「C陷阱与缺陷」。这三本书号称「C语言三剑客」 ,学完它们你的C语言水平绝对是非常之高了。做我们这行,C语言是基础语言,一定要把C语言完全拿下。

     

    之后为了工作的需要,开始接触了Marvell 88MC200及88MW300。这两款是WIFI芯片,但本质是单片机,采用的是ARM M3内核。底层驱动已经由厂家写好了,我们要做的工作就是在SDK基础上做应用做二次开发。在这个过程中,我对敏捷开发有了初步的认识,看了 「高效程序员的45个习惯:敏捷开发修炼之道」这本书。

     

    在第二家公司里,我知道了物联网的整体解决方案,对于物联网的整体框架有了更深入的了解。同时对嵌入式开发所需的技能有了全面的掌握,达到能够独立做一个物联网项目的水平。当然,期间还学会了版本控制工具git,看的是 「Pro Git」及 「git权威指南」。同时再进一步系统学习了STM32,看的书是野火的 「STM32库开发实战指南」,但看的视频却是正点原子的。这里强烈推荐正点原子的视频,真的是做的非常好。

     

    由于我是转行,我自知底子薄,起点比别人落后很多,因此我很刻苦学习。我就住在公司附近,公司8点上班,我依然6点起床,12点睡觉。平时没事的时候就在公司学习,看代码,写代码,调代码,甚至好几个周末也是在公司度过。为了转行我一心扑在了学习上,放弃了一切娱乐活动,只为能赶上同事一点半点。这个状态一直持续了我在这个公司的整个过程。

     

     

    新挑战

     

     

     

    可惜,一年之后我不得不离开了,因为我老婆在广州,我去广州追随我老婆了。由于我面试时的不错表现,以及我不错的英语口语,我顺利的被广州一家外资世界500强录用。我的新岗位是Linux应用开发工程师,使用C++开发。而在那时,我既不会Linux,也不会C++,所以公司敢录用我真的是勇气可嘉。

     

    从单片机到Linux又是一个比较大的跨度。Linux主要有三个方向:运维、应用、底层,而我选择的是应用方向。为了工作的需要,我必须先拿下C++。好在公司是外企,几乎不加班,于是我有充足的时间学习。可是,每天坐班车的时间加起来有三个小时,这么好的时间我不能浪费啊,于是,我买了个iPad,下载一套视频,在班车上也进行学习。当然,我也注意保护眼睛,在班车上绝不看书,看视频的时候也经常往窗外看看。

     

    这里讲讲自学过程中是采用看书还是看视频的方式。我采用的是先看视频再看书的方式。为什么要这样?因为我个人觉得,很多技术书都是很厚的一本,自己看下来要花费很多时间精力,而且很多知识点在工作中很少会用到,可以暂时先略过的。视频一般会比较短,一般是几天就能看完,而且老师一般只挑重点的讲。我们时间都很宝贵,我建议先把老师讲的知识完全掌握了以后,再利用书籍进一步扩展其它知识。但是,不管是看书还是看视频,一定要写代码,一定要写代码,一定要写代码,否则非常容易造成眼高手低!!

     

    我这家公司里我依然保持着早上6点起床,晚上11点睡觉的习惯。这样早上有1个小时,晚上3个小时,班车上3个小时,一天总共有7个小时可以用于学习。而周末我会睡个懒觉,7点起床,依然11点睡觉,周末几乎不出门,所以周末又有大量的时间可以用来学习。

     

    C++实在是太难了,我用了一个多月才将视频里的知识完全拿下来。之后,在工作中,陆续开始看「C++ Primer」 进一步巩固。其它书籍推荐:「Effective C++」,「C++语言的设计与演化」,「C++ 标准程序库」。在stackoverflow上有个C++必读书单,可以去看看。

     

    学完C++我再学习了Linux系统编程,同样采用的是先视频后书籍的方式进行。不管是视频还是书籍,一定要看最经典的。市面上有太多良莠不齐的视频和书籍,如果选择了一个质量不好的材料来看,不仅会浪费很多时间,而且有可能还会被误导。对于视频的选择,可以去各大培训机构,里面通常有一些免费视频资料供我们下载。

     

    对于Linux应用的学习,主要有六部分:1. 环境搭建;2. 基本操作;3. 系统编程;4. 网络编程;5. 数据库编程,6. Shell编程。下面一一详细介绍。

     

    1. 环境搭建

    作为Linux工程师,毋庸置疑一定需要Linux环境。对于Linux环境的获取,我们通常有两种方式:

    • 将电脑整体安装为Linux系统;

    • 在电脑里安装一个虚拟机,跑Linux电脑;

    • Window+Linux双系统。

    得到Linux环境后还不够,还要知道如何配置、如何远程连接Linux电脑、如何与Linux电脑互传文件、如何在主机上阅读Linux电脑中的代码,等等。

     

    2. 基本操作

    众所周知,Linux很少或几乎没有界面,所有的操作几乎都可以通过命令行来完成。对于运维人员来说,需要掌握相当大量的Linux命令。而对于应用、驱动方向的人员来说,只需掌握一些基本的常用的命令即可。对于这部分很多人建议看 「鸟哥的私房菜」 ,但我觉得这个更适合运维人员,我们无需掌握那么多命令。

     

    3. 系统编程

    在学系统编程之前,一定要先学习Makefile,这会为后续的学习提高很大效率。之后的系统编程,主要有几大块:IO编程、进程、线程、进程间通讯(包括管道、信号、信号量、共享内存等)。这几部分学完了,基本也就差不多了。

     

    4. 网络编程

    网络编程主要就是socket,poll,epoll,以及对TCP/IP的理解,同时要学会高并发式服务器的编写。

     

    5. 数据库编程

    数据库的内容其实并不属于Linux,但在项目中经常要用到。这部分主要要学会数据库的基本操作,以及如何写一套接口去操作数据库。

     

    6. Shell编程

    Shell是Linux下的脚本语言,功能虽然不如高级语言强大,但它可能做很多事,在某些场合甚至比高级语言要方便得多。当然除了Shell脚本,还有Python脚本。

     

    Linux应用编程书籍推荐:

    • UNIX环境高级编程。简称APUE,号称程序员的圣经。它不是一本API字典,它还讲述了很多操作系统的细节,内存,文件系统等方面,是一本难得的好书。但是它起点有点高,不适合初学者。

    • Linux程序设计。如果觉得APUE有点难入门的话,可以选择此书进行入门。

    • Unix/Linux系统编程手册。这本书号称是一本超越APUE的书,它是一本比较新的书,里面新增了APUE所没有的Linux/Unix新特性。而且对于一些概念性的东西讲的确实比APUE好。但至于能否超载APUE,还有待历史的考验。

    • UNIX 网络编程。也是一本非常经典的书,主要是网络编程方向的。

    • MySQL必知必会。本书在Amazon上长期排在数据库销售榜首,建议想快速了解数据库原理和MySQL的新手阅读。快餐性质,简洁明快,小开本,而且很薄,比较好阅读。

    • Linux Shell脚本攻略。这本书很薄很精华,它追求的不是全,而是精,所以用它来入门再适合不过了。

     

    学完以上六部分,基本就有能力完成Linux环境下的应用编程了。当然,在有些场合我们可能还需要用到Python脚本。像我公司的项目部分脚本就是用Python完成的。对于Python的入门,可以参考 「简明Python教程」。但如果想进一步提高的话,那就需要阅读大量书籍了。对于Linux层级的脚本应用,掌握一些基础的足够了。

     

    以上就是我的Linux应用开发自学之路,虽然我离高手还有很长的距离,但我还是将自己的这段自学经历分享出来,希望能够帮助朋友们少走一些弯路,同时也期待和高手一起学习、提高。好了,今天的分享就至此为止。

    ---------------

    我是良许,世界500强外企 Linux 开发工程师,专业生产 Linux 干货。欢迎关注我的公众号「良许Linux」,回复「1024」获取最新最全的技术资料,回复「入群」进入高手如云技术交流群。

     

     

     

     

    展开全文
  • 本课程讲解linux中线程,首先使用多进程解决上个课程中提出的并发式读取按键和鼠标的任务,然后引出多线程并讲解多线程的优势,后详细讲了多线程的同步技术...学习本课程的目的是学会在linux应用编程中使用多线程技术。
  • Linux 应用编程框架

    千次阅读 2018-08-12 19:23:42
    粗略的复习下linux应用编程的一些知识,画个导图记录总结下:

    粗略的复习下linux应用编程的一些知识,画个导图记录总结下:
    这里写图片描述

    展开全文
  • 安卓运行linux应用程序

    千次阅读 2019-05-01 14:58:31
    安卓是可以运行linux应用程序的,安卓系统原来就基于Linux。但是安卓已经把linux改头换面了。具体方法是安装Termux软件,然后就可以运行pkg命令安装软件包了,希望可以帮助到大家。 ...

    安卓是可以运行linux应用程序的,安卓系统原来就基于Linux。但是安卓已经把linux改头换面了。具体方法是安装Termux软件,然后就可以运行pkg命令安装软件包了,希望可以帮助到大家。

    展开全文
  • 《嵌入式Linux应用程序开发标准教程》下载12章

    千次下载 热门讨论 2014-09-23 10:12:25
    华清远见嵌入式培训教材!《嵌入式Linux应用程序开发标准教程》完整版PDF,共12章。
  • 嵌入式linux应用开发完全手册 第2版面市

    千次阅读 多人点赞 2020-11-16 19:07:18
    嵌入式linux应用开发完全手册>>,虽然有些内容过时了,但丝毫不影响它的销量。 10多年来陆陆续续有太多人希望我们对这本书进行更新,刚好最近正在录升级版嵌入式视频,全新的学习方式,适配多款主流开发板,...
  • linux应用程序内存布局

    千次阅读 2015-11-10 18:15:44
    1.linux应用程序内存布局 从低地址到高地址分别为:代码段、数据段、BSS段、堆、栈 对向高内存地址生长,栈想低内存地址生长 linux中所有的应用程序都是这个布局,每个应用程序都是从0x80480000这个地址开始的,这样...
  • 嵌入式linux的开发流程以及linux应用层内容

    万次阅读 多人点赞 2019-04-01 18:19:21
    嵌入式linux开发流程: 1.搭建前期的开发环境,例如搭建linux主机环境,交叉编译器的安装,还有一些常用的开发辅助软件如source insight等等。 2.学习对硬件的直接操作,这里和单片机操作类似,我们需要查看原理图...
  • Linux应用层的定时器Timer使用详解

    万次阅读 2017-12-29 16:17:23
    Linux应用层的定时器Timer使用详解
  • 下面汇总了一系列的 Linux 应用程序,这些应用程序都能够在 Linux 系统上安装,尽管还有很多其它选择。-- Martins D. Okoi有用的原文链接请访问文末...
  • 本人从事嵌入式软件开发多年,结合自己的经验,推出了《嵌入式软件工程师技术面专题》,预计会有40篇,分成硬件协议、多进程多线程编程、网络编程、linux基础、C/C++等几大模块,每一篇在末尾都总结了相关提问,其中...
  • linux应用开发:日志记录

    千次阅读 2018-04-01 11:07:05
    在开发linux应用或者库程序时,有两种方法可以记录程序日志,日志消息可作为分析或调试的一种手段。1. 使用fprintf()将日志打印到指定文件中,有很高的移植性。int fprintf (FILE* stream, const char*format, ...
  • 嵌入式Linux应用开发完全手册.pdf 作者:韦东山 这是一本非常不错的,Linux嵌入式相关的书籍写的通俗易懂。这本书的电子版本,找了一圈找不到。 最终在他们官网找到相关线索。其实,他们的企业云盘中就有免费的完整...
  • 《从实践中学嵌入式Linux应用程序开发》 内容简介: 《从实践中学嵌入式linux应用程序开发》结合大量实例,讲解了嵌入式linux应用程序设计各个方面的基本方法及必要的核心概念。主要内容包括搭建嵌入式linux开发...
  • Linux应用层直接操作GPIO

    千次阅读 2016-06-06 10:19:59
    Linux应用层直接操作GPIO 在一个老手的指导下,应用层可以直接操作GPIO,具体指设置GPIO的输入输出以及输出电平高或者低。这个大大地提高了灵活性,官方的文档有GPIO Sysfs Interface for Userspace,GPIO Sysfs。 ...
  • 这是因为工作写的一个文档,主要是我们开发人员都不会Linux不会vi也不会命令行,于是研究了一下...本文提供了一种能够在Windows系统下编译、调试Linux应用程序的方法,可大大简化Linux软件开发环境的搭建难度,...
  • 本课程是网络编程实践部分,带大家使用socket接口及其相关函数,从头编写一个服务器和客户端的通信程序,并且引出了应用层协议和业务逻辑的概念,本课程的目的是带领大家进入网络编程的世界,为大家后续的持续学习...
  • linux应用程序中的延时和定时器

    千次阅读 2014-08-11 15:09:19
    笔记:在linux应用程序中延时有sleep()、msleep()和usleep()函数之类的延时,也有如下形式的延时: struct timeval delay; delay.tv_sec = sleepSecond; delay.tv_usec = 0; select( 0, NULL, NULL, NULL, &delay...
  • Linux应用程序开发采用与Linux内核一致的menuconfig图形配置,方便功能组件裁剪。   2、准备工作 下载:Kconfiglib源码(https://github.com/ulfalizer/Kconfiglib)   3、环境搭建 为实现make menuconfig...
  • Linux应用场景

    千次阅读 2016-10-13 20:58:55
    Linux将不会取代Windows成为主流的桌面操作环境, 但它很有可能在信息接入设备中独霸天下。 为什么Lin
  • 第一个嵌入式QT应用程序 在成功安装 Qt Creator 开发环境后,我们通过一个简单的... 嵌入式Linux开发环境搭建-(5)安装和配置Qt Creator开发工具 目标:了解 Qt Creator 如何构建和编译工程,如何把应用程序...
  • Linux应用层的i2c读写

    万次阅读 2016-09-02 10:35:13
    i2c通道在开发过程中使用是非常的方便的,主要...实现上述时序,便可以轻松通过i2c读写寄存器了,接下来看看i2c下在Linux应用层中实现读写,主要是通过O_RDWR IOTCL读写i2c设备,写函数如下: static int iic_write(int
  • 偷个懒,不安装虚拟机,直接在Windows下开发 ...ARM Linux应用程序。 友情提醒1:本篇适合在嵌入式软件开发已经有一定基础的读者。 1 缘由 在嵌入式行业摸爬滚打了八年有余,一直都没在Linux进行...
  • linux应用层获取时间函数(纳秒级) 头文件: #include <time.h> 函数原型: int clock_gettime(clockid_t clk_id, struct timespec *tp); 功能:获取时间函数 参数: clk_id : 检索和设置的clk_id指定的...
  • 本课程主要讲解linux中的文件读写和IO处理,包括API的概念、open函数的重要flag、linux内核管理文件的原理、inode和vnode、文件共享、标准IO等。终目的是让大家理解并掌握在linux中使用API和库函数进行文件操作的...
  • 本课程对linux中进程及其相关的各种知识做了系统性讲述,包括:进程的起始和环境、父子进程、exec族函数、守护进程、进程间通信等。学完本节后学生可以对进程的概念有更深入理解和更全面认识。
  • 嵌入式Linux应用程序访问物理地址的实例 2013-05-28 14:09:25 来源:EEWORLD 关键字: Linux 驱动 可移植 接口 前言  按照Linux分层驱动思想,外设驱动与主机控制器的驱动不相关,主机控制器的驱动...
  • Linux 应用程序应用 localhost 的问题

    千次阅读 2015-02-06 09:47:34
    陈科肇 ...我在win7下在tomcat里部署了与Linux部署的是同一个应用程序,然后访问了Linux里的Oracle数据库,这个测试是成功了,应用程序能正常运行。 然而当我转到Linux环境下Tomcat部署应用程序时,应
  • Linux应用程序应该存放在什么位置

    万次阅读 2015-09-09 11:19:33
    Linux应用程序通常存放在系统为之保留的特定目录中。系统为正常使用提供的程序,包括用于程序开发的工具,都可在目录/usr/bin中找到;系统管理员为某个特定的主机或本地网络添加的程序通常可在目录/usr/local/bin或/...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 155,141
精华内容 62,056
关键字:

linux应用

linux 订阅