自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 Linux系统中的POSIX消息队列

消息队列是Linux IPC中很常见的一种通信方式,它通常用来在不同进程(线程)间发送特定格式的消息数据。一个进程向消息队列写入消息之前,并不需要某个进程在该队列上等待消息的到达,而管道和FIFO是相反的,进程向其中写消息时,管道和FIFO必须已经打开来读。IPC的持续性不同。当管道和FIFO最后一次关闭发生时,仍在管道和FIFO中的数据会被丢弃。消息队列是随内核的持续性,即一个进程向消息队列写入消息后,然后终止,另外一个进程可以在以后的某个时刻打开该队列读取消息。

2024-07-11 00:16:57 770

原创 Linux系统中的mmap底层详解

通过上图我们可以知道mmap是操作硬件设备的一种方法,所谓操作设备,比如IO端口(点亮一个LED)、LCD控制器、磁盘控制器,实际上就是往设备的物理地址上读写数据。但是,由于应用程序不能直接操作设备硬件地址,所以操作系统提供了这样一种机制——内存映射,把设备地址映射到进程虚拟地址,mmap就是实现内存映射的接口。操作设备还有很多方法,如ioctl、ioremap等。

2024-07-06 18:24:06 577

原创 Linux驱动基础

也就是说,使用mmap时,通过/dev/mem做了一个巧妙的转换,原本填写文件句柄的参数,只需要填上open /dev/mem之后的文件句柄,就可以直接完成对物理内存的映射。虚拟内存区域是进程的虚拟地址空间中的一个同质区间,即具有同样特性的连续地址范围。[5] 为映射分配了新的虚拟地址区域后,通过待映射的文件指针,在文件描述符表中找到对应的文件描述符,通过文件描述符链接到内核“已打开文件集”中该文件的文件结构(struct file),每个文件结构体维护着和这个已打开文件相关各项信息。

2024-04-23 11:18:49 797

原创 C语言基础八股文

解体要点:malloc能够申请的空间大小与物理内存的大小没有直接关系,仅与程序的虚拟地址空间相关。程序运行时,堆空间只是程序向操作系统申请划出来的一大块虚拟地址空间。应用程序通过malloc申请空间,得到的是在虚拟地址空间中的地址,之后程序运行所提供的物理内存是由操作系统完成的。1、在1G内存的计算机中能否malloc(1.2G),为什么?答:是有可能申请1.2G的内存的。

2023-09-12 19:46:23 2265 1

原创 用node.js取代pyexecjs实现js逆向

如何用node.js执行js代码在爬虫的js逆向项目中,常常会直接在网页的源码中抠出js混淆代码,一般会用pyexecjs库调用执行js代码得到加密参数。但是这个库据作者所说可能会停止更新了,而且pyexecjs执行js代码的效率是很低下的,远不如浏览器的效率。如果在大规模高并发的爬虫的项目中,使用pyexecjs会大大的限制爬虫的性能。因此,本文将介绍用node.js来执行js代码,node.js执行js的效率非常的高,如果把node.js部署在服务器上,直接用接口访问服务器执行js代码返回加密参数是

2021-08-12 20:19:20 2081

原创 Bloom Filter原理及python实现

文章目录一、Bloom Filter存在的意义二、Bloom Filter算法原理三、Bloom Filter的优化哈希函数选择参数设计误判率P(true)Hash Function的数目 kBitSet数组的大小 m四、python代码实现总结一、Bloom Filter存在的意义为了说明Bloom Filter存在的重要意义,举一个例子,也是我学习Bloom Filter的原因:假如我们要写一个爬取微博全站信息的爬虫,由于网络中的链接关系错综复杂,爬虫在微博网站爬取信息的时候肯定会抓取到已经采集过

2021-07-25 09:42:48 1940 1

原创 python logging日志模块

1.日志的作用项目部署上线后,开发者还需要监测程序运行的状态,但是又不能将运行的状态信息直接输出到控制台上,所以开发者可以把这些程序的运行状态信息根据不同的严重级别记录到日志文件中。这样的话当程序运行出现故障时,开发者可以查看日志文件中记录的错误信息快速定位到程序中存在的bug的位置,及时做出修复。2.日志级别logging模块把日志分为5个级别,详细描述信息如下(按照级别递增排序):括号为级别所对应的数值DEBUG(10) INFO(20) WARN...

2021-06-30 12:29:26 240 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除