摘要: 原子操作原理分析 概念 原子操作是指不被打断的操作,即它是最小的执行单位。最简单的原子操作就是一条条的汇编指令(不包括一些伪指令,伪指令会被汇编器解释成多条汇编指令)。在 linux 中原子操作对应的数据结构为 atomic_t,定义如下: typedef struct { int counter; 阅读全文
posted @ 2020-08-28 14:03 一口Linux 阅读(835) 评论(0) 推荐(0) 编辑
摘要: 浏览器的请求数据包如何到达web服务器? 很多读者对于其中的完整流程不是特别的了解,下面一口君通过这22张图,详细的讲解我们点击浏览器的网址之后,数据包是如何经过重重险阻到达web server的。 LAN网络中的用户要访问位于远程网络中的服务器存储的网页。用户首先激活网页上的链接。 如果该域名对应 阅读全文
posted @ 2020-08-28 13:22 一口Linux 阅读(581) 评论(0) 推荐(0) 编辑
摘要: Ubuntu安装后默认只有ssh客户端,即只能在Ubuntu内去连接其他ssh服务器,若想实现我们的Ubuntu被其他主机远程连接,则需要自己去安装ssh服务端。 安装 进入Ubuntu18.04,打开终端,su进入root,输入命令: sudo apt install openssh-server 阅读全文
posted @ 2020-08-27 18:00 一口Linux 阅读(597) 评论(0) 推荐(0) 编辑
摘要: 概念 scp是secure copy的简写, 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版。 因为scp传输是加密的,可能会稍微影响一下速度。另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsy 阅读全文
posted @ 2020-08-27 17:56 一口Linux 阅读(1461) 评论(0) 推荐(0) 编辑
摘要: 前言 前段时间群里讨论,想实现某个文件定时上传到服务器要怎么来实现。我记得之前做过 一个项目:为高通的iot模组编写FOTA功能:实现模组可以远程下载升级镜像包,实现版本升级功能。并当时使用的一个超级强大的工具cURL。心血来潮,决定专门写一篇文章,送给需要的朋友。 文章分两部分 首先介绍cURL的 阅读全文
posted @ 2020-08-27 08:24 一口Linux 阅读(2201) 评论(0) 推荐(0) 编辑
摘要: 本文目标 什么是文件描述符? 进程打开文件相关信息管理 Linux设备文件三大结构:inode,file,file_operations mknod 做了什么事? 进程打开设备文件 驱动如何支持同类型设备? 如何获得注册的设备结构体私有地址? 什么是文件描述符? Linux 中一切都可以看作文件,包 阅读全文
posted @ 2020-08-25 14:01 一口Linux 阅读(1599) 评论(1) 推荐(0) 编辑
摘要: 在Linux系统中有大量的临界资源需要保护,如何让各个任务有条不紊的访问这些资源,这涉及到Linux中并发访问的保护机制设计相关知识。后面会详细介绍这几个机制。 (据可靠消息,锁的实现经常出现在笔试环节。既可以考察面试者对锁的原理的理解,又可以考察面试者编程技能)。 注:部分代码都是根据ARM64架 阅读全文
posted @ 2020-08-25 12:10 一口Linux 阅读(700) 评论(0) 推荐(0) 编辑
摘要: 在Linux内核中,提供了一个用来创建双向循环链表的结构 list_head。虽然linux内核是用C语言写的,但是list_head的引入,使得内核数据结构也可以拥有面向对象的特性,通过使用操作list_head 的通用接口很容易实现代码的重用,有点类似于C++的继承机制(希望有机会写篇文章研究一 阅读全文
posted @ 2020-08-24 21:47 一口Linux 阅读(3410) 评论(0) 推荐(0) 编辑
摘要: 本文基于三星Cortex-A9架构,Exynos4412讲解I2C原理、以及基于I2C的mpu6050陀螺仪的数据读取实例(包括在裸机模式下数据的读取以及基于Linux驱动的读取)。还会分析Linux内核I2C架构,篇幅过长,绝对干货。 裸机篇 本篇首先详细讲解I2C时序,然后讲解如何基于三星I2C 阅读全文
posted @ 2020-08-24 19:09 一口Linux 阅读(1008) 评论(0) 推荐(0) 编辑
摘要: 前言 在嵌入式开发中,ADC应用比较频繁,本文主要讲解ADC的基本原理以及如何编写基于ARM的裸机程序和基于Linux的驱动程序。 ARM架构:Cortex-A9 Linux内核:3.14 在讲述ADC之前,我们需要先了解什么是模拟信号和数字信号。 模拟信号 主要是与离散的数字信号相对的连续的信号。 阅读全文
posted @ 2020-08-23 09:27 一口Linux 阅读(1460) 评论(0) 推荐(0) 编辑