![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux 系统
文章平均质量分 93
小米拍客光
喜欢IT,喜欢技术,嗨起来~~~~~~~~~~~~~~
展开
-
Linux 系统应用编程——网络编程(常用命令解析)
1、telnet Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。当我们使用Te原创 2016-06-19 10:04:48 · 391 阅读 · 0 评论 -
Linux 设备驱动开发 —— 设备树在platform设备驱动中的使用
关与设备树的概念,我们在Exynos4412 内核移植(六)—— 设备树解析 里面已经学习过,下面看一下设备树在设备驱动开发中起到的作用 Device Tree是一种描述硬件的数据结构,设备树源(Device Tree Source)文件(以.dts结尾)就是用来描述目标板硬件信息的。Device Tree由一系列被命名的结点(node)和属性(property)组成,原创 2016-06-19 11:40:29 · 1810 阅读 · 0 评论 -
Linux 设备驱动开发 —— platform设备驱动应用实例解析
前面我们已经学习了platform设备的理论知识Linux 设备驱动开发 —— platform 设备驱动 ,下面将通过一个实例来深入我们的学习。 一、platform 驱动的工作过程 platform模型驱动编程,需要实现platform_device(设备)与platform_driver(驱动)在platform(虚拟总线)上的注册、匹配,相原创 2016-06-19 11:41:45 · 427 阅读 · 0 评论 -
进程上下文、中断上下文及原子上下文
谈论进程上下文 、中断上下文 、 原子上下文之前,有必要讨论下两个概念:a -- 上下文 上下文是从英文context翻译过来,指的是一种环境。相对于进程而言,就是进程执行时的环境; 具体来说就是各个变量和数据,包括所有的寄存器变量、进程打开的文件、内存信息等。b -- 原子 原子(atom)本意是“不能被进一步分割的最小原创 2016-06-19 11:42:32 · 350 阅读 · 0 评论 -
Linux 文件系统与设备文件系统 (二)—— sysfs 文件系统与Linux设备模型
提到 sysfs 文件系统 ,必须先需要了解的是Linux设备模型,什么是Linux设备模型呢?一、Linux 设备模型1、设备模型概述 从2.6版本开始,Linux开发团队便为内核建立起一个统一的设备模型。在以前的内核中没有独立的数据结构用来让内核获得系统整体配合的信息。尽管缺乏这些信息,在多数情况下内核还是能正常工作的。然而,随着拓扑结构越来越复杂,以及要支持诸原创 2016-06-19 11:44:26 · 377 阅读 · 0 评论 -
Linux 文件系统与设备文件系统 (一)—— udev 设备文件系统
一、什么是Linux设备文件系统 首先我们不看定义,定义总是太抽象很难理解,我们先看现象。当我们往开发板上移植了一个新的文件系统之后(假如各种设备驱动也移植好了),启动开发板,我们用串口工具进入开发板,查看系统/dev目录,往往里面没有或者就只有null、console等几个系统必须的设备文件在这儿外,没有任何设备文件了。那我们移植好的各种设备驱动的设备文件怎么没有啊?如果要使用原创 2016-06-19 11:46:16 · 1260 阅读 · 0 评论 -
Linux 字符设备驱动开发基础(六)—— VFS 虚拟文件系统解析
一、VFS 虚拟文件系统基础概念 Linux 允许众多不同的文件系统共存,并支持跨文件系统的文件操作,这是因为有虚拟文件系统的存在。虚拟文件系统,即VFS(Virtual File System)是 Linux 内核中的一个软件抽象层。它通过一些数据结构及其方法向实际的文件系统如 ext2,vfat 提供接口机制。 Linux 有两个特性:a原创 2016-06-19 11:47:30 · 503 阅读 · 0 评论 -
vim使用—实现程序的自动补齐(C语言)
使用过Source Insight的人一定对它的自动补全功能印象深刻,在很多的集成开发环境中,也都支持自动补全。vim做为一个出色的编辑器,这样的功能当然少不了。至于如何实现程序自动补全,网上教程很多。这里,我将自己配置过程写下来,只要简单的两步,帮助你实现vim的程序自动补全功能。 vim配置文件包,大家移步(点击打开链接) 下面,我们开始进行配置:首原创 2016-06-19 11:57:24 · 2501 阅读 · 0 评论 -
Linux 命令 ——less命令
less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看,但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!除此之外,在 less 里头可以拥有更多的转载 2016-06-19 11:58:23 · 508 阅读 · 0 评论 -
Linux 应用---make及makefile的编写
Make 在我们做linux 开发中是必不可少的一部分,它在我们编写大型项目工程文件中起到非常大的作用。 Make工程管理器也就是个“自动编译管理器”,这里的“自动”是指它能够根据文件时间戳自动发现更新过的文件而减少编译的工作量,同时,它通过读入Makefile文件的内容来执行大量的编译工作。Make将只编译改动的代码文件,而不用完全编译。 而Makefile是Mak原创 2016-06-18 23:25:55 · 328 阅读 · 0 评论 -
Linux C 内存管理
提到C语言,我们知道C语言和其他高级语言的最大的区别就是C语言是要操作内存的! 我们需要知道——变量,其实是内存地址的一个抽像名字罢了。在静态编译的程序中,所有的变量名都会在编译时被转成内存地址。机器是不知道我们取的名字的,只知道地址。 内存的使用时程序设计中需要考虑的重要因素之一,这不仅由于系统内存是有限的(尤其在嵌入式系统中),而且内存分配也会直接影响到程序的效率原创 2016-06-18 23:28:37 · 188 阅读 · 0 评论 -
Linux 下shell编程
什么是shell?Shell是一个命令解析器,是介于Linux操作系统的内核(kernel)与用户之间的一个绝缘层。shell脚本就是讲各类命令预先放入其中,方便一次性执行的一个程序文件,主要用于方便管理员进行设置或者管理。 序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用原创 2016-06-19 17:44:26 · 279 阅读 · 0 评论 -
Linux环境变量的设置和查看
环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数,比如临时文件夹位置和系统文件夹位置等等。 一、Linux的变量种类 按变量的生存周期来划分,Linux变量可分为两类: 1、永久的:需要修改配置文件,变量永久生效。 2、临时的:使用export命令声明即可,变量在关闭shell时失效。 二、设置变量的三种方原创 2016-06-19 17:45:21 · 231 阅读 · 0 评论 -
linux 目录/sys 解析
今天学习Linux目录时,遇到/sys这个目录,老师怎么讲的,不太清楚,先对/sys目录知识进行一个整理首先,对 /sys目录下的各个子目录进行具体说明:/sys下的子目录内容/sys/devices该目录下是全局设备结构体系,包含所有被发现的注册在各原创 2016-06-19 17:55:12 · 384 阅读 · 0 评论 -
Linux目录/bin、/sbin、/usr/bin、/usr/sbin的区别
/bin、/sbin、/usr/bin、/usr/sbin目录的区别 在linux下我们经常用到的四个应用程序的目录是/bin、/sbin、/usr/bin、/usr/sbin 。 而四者存放的文件一般如下: /bin: bin为binary的简写主要放置一些系统的必备执行档例如:cat、cp、chmod df、dmesg、gzip、kill、ls、mkdir、mo原创 2016-06-19 17:56:25 · 241 阅读 · 0 评论 -
Linux中vi显示中文乱码的问题
linux 下编程,用到的编程工具是VI,编辑编译都方便,但经常出现中文乱码问题,下面可完美解决这个问题由于在windows下默认是gb编码,而我的vim默认是utf-8(gedit默认也是utf-8),所以打开会成乱码。修改了一下配置文件,使vi支持gb编码就好了。$vi ~/.vimrclet &termencoding=&encodingset fileencodings原创 2016-06-19 17:57:04 · 238 阅读 · 0 评论 -
Linux 字符设备驱动开发基础(五)—— ioremap() 函数解析
一、 ioremap() 函数基础概念 几乎每一种外设都是通过读写设备上的寄存器来进行的,通常包括控制寄存器、状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址。根据CPU体系结构的不同,CPU对IO端口的编址方式有两种:a -- I/O 映射方式(I/O-mapped) 典型地,如X86处理器为外设专门实现了一个单独的地址空间,称为"I/O原创 2016-06-19 18:09:15 · 450 阅读 · 0 评论 -
Linux 设备驱动的并发控制
Linux 设备驱动中必须要解决的一个问题是多个进程对共享的资源的并发访问,并发的访问会导致竞态,即使是经验丰富的驱动工程师也常常设计出包含并发问题bug 的驱动程序。一、基础概念1、Linux 并发相关基础概念a -- 并发(concurrency):并发指的是多个执行单元同时、并发被执行,而并发的执行单元对共享资源(硬件资源和软件上的全局变量、静态变量等)的原创 2016-06-19 11:39:05 · 358 阅读 · 0 评论 -
Linux 设备驱动中的 I/O模型(一)—— 阻塞和非阻塞I/O
在前面学习网络编程时,曾经学过I/O模型 Linux 系统应用编程——网络编程(I/O模型),下面学习一下I/O模型在设备驱动中的应用。 回顾一下在Unix/Linux下共有五种I/O模型,分别是:a -- 阻塞I/Ob -- 非阻塞I/Oc -- I/O复用(select和poll)d -- 信号驱动I/O(SIGIO)e -- 异步I/O(Posix原创 2016-06-19 11:36:41 · 405 阅读 · 0 评论 -
Linux---进程调度相关命令解析
进程相关命令1、ps 查看系统中的进程使用方式:ps [options] [--help]说明:显示瞬间进程 (process) 的动态参数:ps的参数非常多, 在此仅列出几个常用的参数并大略介绍含义ps命令常用用法(方便查看系统进程)1)ps a 显示现行终端机下的所有程序,包括其他用户的程序。2)ps -A 显示所有进程。3原创 2016-06-19 10:22:15 · 2700 阅读 · 0 评论 -
Linux下find命令使用
原创 2016-06-19 11:07:55 · 169 阅读 · 0 评论 -
Linux下ln命令使用
n是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。1.命令格式: ln [参数][源文件或目录][目标文件或目录]原创 2016-06-19 11:09:34 · 314 阅读 · 0 评论 -
Linux下tail命令使用
linux tail命令用途是依照要求将指定的文件的最后部分输出到标准设备,通常是终端,通俗讲来,就是把某个档案文件的最后几行显示到终端上,假设该档案有更新,tail会自己主动刷新,确保你看到最新的档案内容。一、tail命令语法tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number原创 2016-06-19 11:12:08 · 270 阅读 · 0 评论 -
Linux下test命令使用
test命令格式: [cpp] view plain copy test condition 通常,在if-then-else语句中,用[]代替,即[ condition ]。注意:方括号两边都要用空格。 1、数值比较 =========================================原创 2016-06-19 11:13:29 · 366 阅读 · 0 评论 -
Linux 驱动面试题总结
1、 Linux设备中字符设备与块设备有什么主要的区别?请分别列举一些实际的设备说出它们是属于哪一类设备。 字符设备:字符设备是个能够像字节流(类似文件)一样被访问的设备,由字符设备驱动程序来实现这种特性。字符设备驱动程序通常至少实现open,close,read和write系统调用。字符终端、串口、鼠标、键盘、摄像头、声卡和显卡等就是典型的字符设备。 块设备:和字符设原创 2016-06-19 11:16:29 · 2150 阅读 · 0 评论 -
Exynos4412 中断处理流程详解
Linux 中,当外设触发中断后,大体处理流程如下:a -- 具体CPU architecture相关的模块会进行现场保护,然后调用machine driver对应的中断处理handler;b -- machine driver对应的中断处理handler中会根据硬件的信息获取HW interrupt ID,并且通过irq domain模块翻译成IRQ number;c -原创 2016-06-19 11:19:08 · 2268 阅读 · 0 评论 -
Exynos4412 中断驱动开发相关问题总结
1、Linux 中如何标识一个外部中断? 在linux kernel中,我们使用下面两个ID来标识一个来自外设的中断:a -- IRQ number CPU需要为每一个外设中断编号,我们称之IRQ Number。这个IRQ number是一个虚拟的interrupt ID,和硬件无关,仅仅是被CPU用来标识一个外设中断。b -- HW interr原创 2016-06-19 11:20:17 · 415 阅读 · 0 评论 -
Exynos4412 IIC 总线驱动开发相关问题总结
一 、问题1、IIC总线上的设备是怎么描述的?struct i2c_client{struct device dev;...};2、IIC总线上的驱动是怎么描述的?struct i2c_driver{struct device_driver driver;};3、IIC总线上的设备和驱动是怎么匹配的1)、对于原创 2016-06-19 11:21:24 · 533 阅读 · 0 评论 -
Exynos4412 IIC总线驱动开发(二)—— IIC 驱动开发
前面在Exynos4412 IIC总线驱动开发(一)—— IIC 基础概念及驱动架构分析 中学习了IIC驱动的架构,下面进入我们的驱动开发过程 首先看一张代码层次图,有助于我们的理解 上面这些代码的展示是告诉我们:linux内核和芯片提供商为我们的的驱动程序提供了 i2c驱动的框架,以及框架底层与硬件相关的代码的实现。原创 2016-06-19 11:22:53 · 1972 阅读 · 0 评论 -
Exynos4412 IIC总线驱动开发(一)—— IIC 基础概念及驱动架构分析
关于Exynos4412 IIC 裸机开发请看 :Exynos4412 裸机开发 —— IIC总线 ,下面回顾下 IIC 基础概念一、IIC 基础概念 IIC(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。IIC总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用原创 2016-06-19 11:24:59 · 1753 阅读 · 0 评论 -
Exynos4412 ADC 设备驱动开发
具体ADC硬件知识及裸机驱动请看: Exynos4412裸机开发 —— A/D转换器1、原理图如下:2、相关寄存器信息ADC_BASE 0x126C0000ADCCON 0x0000 1ADCDLY 0x0008 ADCDAT原创 2016-06-19 11:26:04 · 1216 阅读 · 0 评论 -
Exynos4412 中断驱动开发(三)—— 设备树中中断节点的创建
提到中断就必须了解到GIC,下面先了解一下GIC一、GIC概念 GIC(Generic Interrupt Controller)是ARM公司提供的一个通用的中断控制器。GIC通过AMBA(Advanced Microcontroller Bus Architecture)这样的片上总线连接到一个或者多个ARM processor上。 下面是Ex原创 2016-06-19 11:27:24 · 2100 阅读 · 0 评论 -
Exynos4412 中断驱动开发(二)—— 中断处理流程分析
前面已经学习了中断的注册过程,下面由一张流程图来看一下当中断发生时的处理流程:中断发生之后处理流程a -- 具体的CPU architecture相关模块进行现场保护,然后调用machine driver执行对应的中断处理handler;b -- machine driver对应中断处理handler会根据硬件的信息获取HW interrupt i原创 2016-06-19 11:28:22 · 930 阅读 · 0 评论 -
Exynos4412 中断驱动开发(一)—— 中断基础及中断的注册过程
一、中断基础概念 所谓中断,指CPU在执行程序的过程中,出现了某些突发事件即待处理,CPU必须暂停当前的程序。转去处理突发事件,处理完毕后CPU又返回原程序被中断的位置并继续执行。1、中断分类a -- 内部中断和外部中断 根据中断的的来源,中断可以分为内部中断和外部中断:内部中断,其中断源来自CPU内部(软件中断指令、溢出、除法错误等原创 2016-06-19 11:31:41 · 565 阅读 · 0 评论 -
Linux 设备驱动中的 I/O模型(二)—— 异步通知和异步I/O
阻塞和非阻塞访问、poll() 函数提供了较多地解决设备访问的机制,但是如果有了异步通知整套机制就更加完善了。 异步通知的意思是:一旦设备就绪,则主动通知应用程序,这样应用程序根本就不需要查询设备状态,这一点非常类似于硬件上“中断”的概念,比较准确的称谓是“信号驱动的异步I/O”。信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说原创 2016-06-19 11:35:28 · 260 阅读 · 0 评论 -
Linux 下的DMA浅析
DMA是一种无需CPU的参与就可以让外设和系统内存之间进行双向数据传输的硬件机制。使用DMA可以使系统CPU从实际的I/O数据传输过程中摆脱出来,从而大大提高系统的吞吐率。DMA经常与硬件体系结构特别是外设的总线技术密切相关。一、DMA控制器硬件结构 DMA允许外围设备和主内存之间直接传输 I/O 数据, DMA 依赖于系统。每一种体系结构DMA传输不同,编原创 2016-06-19 11:14:57 · 1381 阅读 · 0 评论