
Linux系统系列
文章平均质量分 88
Linux知识系列
Chester_Carson
每天进步一点点
展开
-
Linux系统调用原理
一 什么是系统调用对于Linux系统开发,系统调用是平常开发工作中算是用的比较多,那什么是系统调用呢?顾名思义,系统调用就是由内核抽象出的一些接口供应用层调用,从而达到应用层访问得以访问内核层资源,之所以需要这么麻烦,是因为Linux系统中分为内核态和用户态,这里简单可以认为不同的内存地址所具有的权限不一样,内核态可以访问用户态内存,用户态不可以访问内核态,但实际如果需要通过内核态访问资源,就需要通过调用系统调用接口间接访问内核态了。二 系统调用实现原理一般来说中断可以分两种,软中断和硬中断系统调原创 2020-08-26 22:30:55 · 387 阅读 · 0 评论 -
线程掌握这几个简单基础用法
多线程编程的好处:处理不同的异步事件时可以为每个事件处理时分配单独的处理线程,每个线程在进行事件处理时可以采用同步编程模式。采用多个线程可以访问相同的存储地址空间和文件描述符。提高程序的吞吐量,多个线程可以使相互独立的任务交叉运行,提高CPU使用率。多线程可以处理用户输入输出的部分和其它部分分开,改善响应时间。线程标识:和进程ID一样,线程也有一个线程ID,只不过是在该进程中是唯一的,为了可移植性,可以使用系统提供的接口进行两个线程ID比较#include <pthread.h>原创 2020-08-18 22:41:11 · 144 阅读 · 0 评论 -
libc glibc 系统调用三者关系
http://blog.chinaunix.net/uid-29401328-id-4859608.html转载 2020-08-14 21:14:31 · 1070 阅读 · 0 评论 -
tcpdump命令抓包神器
一:语法1.1.类型的关键字关键字意义host指定一台主机net指定一个网络地址port指定端口号1.2.确定方向的关键字关键字意义src xx.xx.xx.xxip包源地址是xx.xx.xx.xxdst xx.xx.xx.xxip包目的地址是xx.xx.xx.xx1.3.协议的关键字关键字意义...原创 2020-05-02 11:11:15 · 235 阅读 · 0 评论 -
揭开消息队列相关函数ftok的真面目
消息队列、信号量、共享内存经常用在Linux服务端编程的进程间通信环境中,两个进程需要通过这三种方式去通信,那就需要约定好一个唯一的id号来进行通信,正好文件的设备编号和节点是唯一的,可对其稍加改造以产生一个唯一的编号,这时ftok()函数刚好具备这个条件可以去干这么一件事情函数原型意义key_t ftok(const char *pathname, int id);成功返...原创 2020-03-30 23:02:50 · 1024 阅读 · 6 评论 -
mqtt开源代码移植笔记
官方源码路径,请自行下载:https://mosquitto.org/download/直接执行make编译程序,直接报错,从报错情况看时缺少头文件等依赖安装SSL依赖包sudo apt-get install libssl-dev重新make,编译通过,如下图进入client查看编译出来的程序,如下图进入s...原创 2019-07-23 23:40:21 · 674 阅读 · 0 评论 -
浅谈ubi文件系统制作
ubinfo -a查看所有ubi分区信息制作ubi文件系统#制作UBI文件系统参数,与flash硬件有关# -r:制定文件内容的位置# -m:指定了最小的I/O操作的大小,也就是NAND FLASH一个page的大小# -e:逻辑擦除块大小# -p:物理擦除块大小# -c:最大的逻辑擦除块数量#1、将目录打包成ubifs#2、创建合并配置文件...原创 2019-07-17 21:15:06 · 1201 阅读 · 0 评论 -
用socket编程实现Ping程序
通过socket 编程实现ping程序,传参为ip(或者域名)原创 2019-12-15 11:49:22 · 1091 阅读 · 3 评论 -
TCP三次握手和四次挥手分析
对于socket开发者来说,主要是使用API进行编程,TCP从建立连接到数据收发再到断开这整个过程可以通过几个简单的socket接口进行实现,TCP创建过程和链接折除过程是由TCP/IP协议栈自动创建的.因此开发者并不需要控制这个过程.但是对于理解TCP底层运作机制,相当有帮助.下面的内容主要根据自己对TCP协议的三次握手做下总结:TCP的三次握手:三次握手指的是建立TCP连接,客户端和服...原创 2019-12-08 00:40:44 · 407 阅读 · 0 评论 -
浅谈TCP的三次握手
上一篇文章《浅谈TCP/IP协议栈模型》https://mp.youkuaiyun.com/postedit/95853735简单介绍了标准TCP/IP协议栈的四层网络结构,主要对每一层协议做了简单的描述和网络协议抓包,基于上篇文章的传输层,本篇文章主要对TCP协议的三次握手及四次挥手做一个简单学习总结。TCP的三次握手(Three-way Handshake)三次握手顾名思义就是在TCP建立连接时,...原创 2019-07-14 21:59:43 · 739 阅读 · 0 评论 -
浅谈TCP/IP协议栈模型
TCP/IP协议栈参考模型参考模型:应用层、传输层、网络IP层、链路层链路层:给网络IP层提供访问接口,可以传输IP数据包IP层:将数据包进行分组并发往目的主机或者网络,对分组进行排序,主要提供路由、网际互联和拥塞控制,包含网际控制报文协议ICMP和地址识别协议ARP传输层:主要提供两种协议,传输控制协议TCP和用户数据报协议UDPTCP协议是一个面向连接的,可靠的协议,它利...原创 2019-07-14 10:36:42 · 466 阅读 · 0 评论 -
浅谈Android Recovery升级
在讲解recovery升级前先介绍几个相关概念Recovery: Recovery首先可以指Android的Recovery分区,同时也可以说是一种可以对安卓机内部的数据或系统进行修改的模式,进入该模式可以升级新的AndroidOTA: Over-the-Air Technology,即空中下载技术,是 Android 系统提供的标准软件升级方式。 它功能强大,提供了完全升级、增量升级模式,可...原创 2019-09-08 10:35:45 · 589 阅读 · 0 评论 -
浅谈安卓ADB和fastboot升级
ADB:ADB的全称为Android Debug Bridge,即调试桥,方便调试设备或调试开发的Android APP。 ADB是android sdk里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的android设备。下载ADB和fastboot工具,一般网上下载的工具包两个都在一起介绍一下安卓的分区概念,这对后面讲解fastboot的烧录比较好理解,...原创 2019-07-15 22:40:04 · 6278 阅读 · 0 评论 -
关于使用bitbake构建嵌入式系统的学习总结
1. 什么是bitbake,bitbake可以做什么?BitBake 是一个使用Python 写的用于OpenEmbedded 构建系统时使用的工具,BitBake 与 GNU Make 的关系就像 GNU Make 之于 GCC ,运作方式也类似 GNU Make,但又有所区别:它是一个多任务引擎,可以并行执行 shell 和 Python 任务,每个任务单元根据预定义的元数据来管理源码...原创 2019-10-21 21:57:39 · 1502 阅读 · 0 评论 -
Linux架起通信的桥梁之消息队列
对消息队列的理解消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法,传输的数据块类型可以由消息接收者自行解析,消息队列不仅可以用在不同进程间通信,也可以在不同线程间通信,具体看实际应用linux系统提供了几个系统调用方便应用层调用,以下为消息队列用到的几个系统队列msgget()函数原型意义int msgget(key_t, key, int msgflg...原创 2020-03-28 22:29:53 · 224 阅读 · 3 评论 -
进程间通信-信号
进程间通信有很多种方式,常见的有管道,消息队列,信号量,共享内存,还有信号,这篇文章主要结合实列简单介绍信号函数的使用,以及有哪些常用的信号类型常用的信号类型有以下几种:SIGTERM:可以捕捉,默认执行操作是终止程序,终端执行kill 或者 kill -15发送该信号SIGKILL:不可以捕捉,默认执行操作是终止程序,终端执行kill -9 发送该信号SIGALRM:定时器超时信...原创 2019-11-30 23:26:21 · 160 阅读 · 0 评论 -
进程之wait/waitpid使用
上个博客讲了如何使用fork简单的创建一个新的进程,本篇文章将讲下如何避免僵尸进程的产生,僵尸进程的产生就是因为子进程退出时没有父进程替它"收尸"即没有获取子进程的状态信息,一般我们可以使用wait或者waitpid函数来进行处理下面的代码示例演示了子进程如何成为僵尸进程的过程#include <stdio.h>#include <unistd.h>#incl...原创 2019-11-27 22:41:09 · 390 阅读 · 0 评论 -
进程之fork函数基本使用
fork常用的使用场景在网络服务进程中最常见,父进程等待客户端的服务请求,当请求到达时,父进程调用fork使子进程处理此请求,父进程继续等待下一个服务请求,通过fork创建的进程被称为子进程,该父子进程有如下特点:1. 子进程获得父进程数据空间,堆栈的副本,父子进程并不共享这些存储空间,因为使用了“写时复制”技术,所以当在写时才会制作相应的副本,其它只读默认是同一份副本2. 共享正文段...原创 2019-11-25 23:10:14 · 507 阅读 · 0 评论