自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Python运行时环境

允许有多个进程(Interpreter)存在,但通常只有一个Interpreter,这个Interpreter维护了一个或多个PyThreadState对象。Python在初始化时会创建一个主线程,所以其运行时环境中存在一个主线程,可以有多个线程。Python实现了对多线程的支持,而且一个线程就是操作系统上的一个原生线程。通过PyThreadState对象实现,所以可以将该对象视为线程本身的抽象。某一个PyFrameObject就是执行环境,一整个为执行环境。注:线程切换之前要保存关于当前线程的信息。

2024-08-29 21:27:06 384

原创 Python虚拟机

运行之前:运行时环境的初始化,与执行环境有区别运行之中:虚拟机的运行框架(具体实现过程)+运行时环境编译----->虚拟机运行Python虚拟机是否就在编译过程中生成PyCodeObject对象上进行所有操作?不是,PyCodeObject对象有字节码指令序列以及关于程序的所有静态信息,但是缺少程序运行的动态信息:名字空间、运行时栈、变长对象等。

2024-08-29 17:57:39 177

原创 栈与栈帧[源码层面]

栈帧是函数调用过程的活动记录,是虚拟机在实现过程/函数调用中使用的一种数据结构,使得虚拟机可以利用EBP寄存器访问局部变量、参数、函数返回值等数据。不是,因为PyCodeObject对象有字节码指令序列以及关于程序的所有静态信息,但是缺少程序运行时的动态信息(名字空间、运行时栈、变长对象)进栈(PUSH指令)会对ESP寄存器的值进行减法运算,使之减去4个字节(32位)或8(64位),然后将操作数写倒ESP指针所指向的内存中。出栈(POP指令)先从栈指针指向的内存中读取数据,然后再将栈指针的数值加上4/8。

2024-08-29 10:50:14 134

原创 python解释器[源代码层面]

/存储me_key的散列值,维护该值是避免每次查询时重新计算entry生存周期的四种状态unused态:me_key/me_value都是null(entry在初始化的时候)。Active态:entry存储了键值对的状态。Dummy态:me_key指向dummy对象(伪删除)。Pending态:键!=空,值=空(仅拆分),尚未插入到拆分表中。/*字典中项的数量*//*表示字典中对象版本*/#else/*表示字典中对象版本*/#endif。

2024-08-28 21:47:52 923

原创 Cpython-Object对象概述

在Python中,对象就是为C中的结构体在堆上申请一堆内存,不能被静态初始化,不能在栈空间上生存。但 Python中的类型对象是例外,都是被静态初始化的。一个对象被创建,在内存中大小是不变的,所以维护容纳一个可变长度数据的对象(如:List类型),就必须在对象内维护一个指向一块可变大小区域的指针。

2024-08-24 21:51:12 355

原创 Linux下的随机数生成器

这两个设备的任务,是提供永不为空的随机字节数据流。很多解密程序与安全应用程序(如SSH Keys,SSL Keys等)需要它们提供的随机数据流。它同样使用熵池来收集随机事件,但在熵池中的随机性不足时,它会通过算法生成伪随机数来填补空缺。它使用熵池(entropy pool)来收集系统中的各种随机事件,如键盘输入、鼠标移动、当这些随机事件发生时,它们会被加入熵池,并由一个算法将其转化为随机数。如果熵池中的随机性不足,读取。一种是/dev/random或/dev/urandom:是Linux系统中提供的。

2024-08-23 16:52:52 344

原创 动态链接库

dlopen是一个在许多操作系统(如 Linux 和 UNIX 类系统)中用于动态加载共享库(共享对象文件)的函数。它允许程序在运行时加载和卸载共享库,从而支持动态链接库的使用。这种机制使得程序可以在运行时根据需要加载特定的功能模块,而不是在编译时就固定所有依赖。

2024-08-20 20:07:45 461

原创 ctypes简单学习

ctypes是Python的外部函数库,提供与C兼容的数据类型,并允许调用DLL或共享库中的函数。可使用该模块以纯 Python形式对这些库进行封装。Linux与Windows平台不同,使用方法也有所不同,本文聚焦于Linux平台。

2024-08-19 20:21:38 311

原创 libname.so.x.y.z

见到了libc.so与lib.so.6,不知道区别何在,需要先了解的概念和。

2024-08-19 13:06:43 135

原创 FT2000

要让飞腾加电之后运行起来,必不可少的的硬件有时钟、供电、内存、调试串口、QSPI flash接口、存储。

2024-08-01 15:39:32 886

原创 [问题解决]win11重新命名网络适配器

1.设置->网络和Internet2.高级网络设置3.选择想要重命名的->重命名

2024-07-29 16:41:33 278

原创 python源码中零碎知识

该文件定义了与随机数生成相关的接口和数据结构,提供了对内核态代码生成随机数的支持。这些随机数生成功能通常用于增强内核的安全性和可靠性,尤其是在需要高质量随机数的场景下,例如加密和安全密钥生成。这些标志组合在一起通常用于安全地打开文件,特别是在处理文件写入操作时。这些函数允许程序在运行时加载和使用共享库,而不是在编译时链接。这个标志可以影响调用的阻塞行为,使得在没有足够熵的情况下,调用不会阻塞。类型是在 POSIX 标准的信号量中定义的,它用于实现线程间同步。是一个配置文件,根据不同的平台和编译选项生成的。

2024-07-26 16:38:20 685

原创 使用docker搭建gitbook

参考:docker搭建gitbook+jenkins+gitlab - 简书 (jianshu.com)

2024-07-17 12:35:16 227

原创 qemu+kvm

参考:KVM学习笔记 - 《QEMU KVM学习笔记》 - 书栈网 · BookStack

2024-07-17 12:33:34 128

原创 树莓派3B+操作系统烧录

最近需要验证再在x86平台上交叉编译后的python代码是否能正常运行在ARM平台,手头刚好有一个树莓派,就拿来装个系统玩玩。

2024-07-17 12:26:48 284

原创 二、python及第三方库编译

在x86-64平台上生成arm平台上可执行的代码,在x86-64平台上编译python和python依赖库与第三方库,使之能运行在arm平台上。

2024-07-17 12:20:06 658

原创 一、ubuntu20.04交叉编译环境配置arm-linux-gnueabihf-gcc

在ubuntu上源码构建python,编译结果适用x86-64平台,接下来需要编译python的C代码,使之适用于arm平台,方便后续操作。

2024-07-16 20:47:47 1340

原创 [问题解决]inux下为arm开发板交叉编译openssl报错arm-linux-gcc.br_real: error: unrecognized command line option ‘-m64‘

1.进入目录后,执行./config no-asm --shared --prefix=/home/zoe/Downloads/arm_python_lib/rely/openssl CC=arm-linux-gnueabihf-gcc。--prefix=/home/zoe/Downloads/arm_python_lib/rely/openssl CC=arm-linux-gnueabihf-gcc:构建路径;3.继续修改Makefile,还要把该文件中的所有-m64标记删除,正常情况下应该有两处。

2024-07-16 10:52:19 323

原创 [工具配置]安装qemu

参考文章:解决问题的灵感;

2024-07-13 13:08:03 151

原创 [问题解决]window和虚拟机ubuntu之间不能进行复制粘贴

最近使用ubuntu20.04,频繁出现复制粘贴有问题。...........回头再补。

2024-07-12 16:02:09 139

原创 [问题解决]ubuntu开机黑屏进入tty模式,无法进入图形化界面

环境:虚拟机 ubuntu20.04执行命令sudo apt-get remove --auto -remove pythoon3.10.12卸载系统自带的python重启之后再进系统就进入tty界面。

2024-07-12 15:19:39 625

原创 wsl的挂载目录

wsl即Windows Subsystem for Linux,是一个运行在windows上的轻量版子操作系统Linux,通过windows的应用商店安装ubuntu,并开启hype-v,即可使用。此时可以将挂载目录当作wsl上的目录,如将文件复制到windows的桌面。wsl中有一个功能,可以将windows的目录挂载到wsl中。

2024-07-12 10:16:24 233

原创 如何写一个makefile

一个工程中源代码不计其数,其按类型、功能、模块分别放在若干个目录中。如src:.c/.cpp源代码include:.h头文件lib:libxx.so/libxx.a库bin:生成的二进制文件obj:生成的.o文件,用于下一步的动态链接makefile制定了一系列规则来指定 哪些文件需要编译,怎么编译的,先后顺序是怎么样的。makefile就像shell脚本一样,可以执行操作系统的命令,只需要make,make clean指令即可实现自动化编译和自动化删除构建的文件,极大提高了开发效率。

2024-07-12 10:04:25 318

原创 Linux系统编程-unistd.h头文件

在Unix类操作系统(如:Linux 、MacOS)中提供对POSIX(可移植操作系统接口)操作系统API的访问。它定义了许多系统调用和库函数,用于与操作系统内核进行交互,包括文件操作、进程控制、环境管理。

2024-07-11 15:49:47 348

原创 VMware Ubuntu重启后网络连接有问题

版本:ubuntu20.04。此方法多次亲测有效!

2024-07-08 20:13:33 94

原创 ubuntu22.04可以make成功,但是不能 bear make

在源码构建python的时候,想借助bear工具观察中间的编译过程。

2024-07-08 18:16:27 325

原创 分布式系统01

自学MIT6.824,随手笔记,便于回顾!

2024-06-25 21:31:39 965

原创 git与Github配合使用

学习使用github

2023-08-01 16:36:03 181 1

原创 Windows下git如何修改本地默认下载仓库地址

git使用技巧

2023-08-01 15:17:28 1294 1

原创 PyQt5学习(二):Buttons and Events(Signals)

在PyQt5学习(一)基础上,封装一个MyWindow类#2.py'''使用类对行为进行封装,具有条理性行为:创建对象时:初始化建立窗口初始化UI界面按钮链接的事件&&执行'''import sysself.label.setText("本车辆目标检测与跟踪系统非常先进")self.b1 = QtWidgets.QPushButton(self) #创建一个buttonself.b1.setText("Click me") #button上的字。

2023-04-13 14:13:48 240

原创 PyQt5学习(一):Setup and basic GUI application

初学PyQt5#1.pyimport syslabel.setText("本车辆目标检测与跟踪系统非常先进")win.show()window()Qt框架的Python语言实现,是最强大的GUI库之一。PyQt提供了一个设计良好的窗口控件集合,每一个PyQt控件都对应一个Qt控件,因此PyQt的API接口与Qt的API接口很接近,但PyQt不再使用QMake系统和Q_OBJECT宏。加油。

2023-04-13 04:00:00 241

原创 requirements.txt问题

requirements.txt问题解决

2023-04-12 22:10:14 3215 3

原创 深度学习(一)

介绍机器学习的基础内容

2023-04-12 21:32:00 164

原创 跑目标检测代码(一)

毕业设计图像处理打打基石

2023-04-05 14:15:21 440 1

原创 毕业设计_K-means聚类算法+聚类先验框

毕业设计-有关图像处理小点子

2023-03-06 12:49:46 1714 1

空空如也

空空如也

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

TA关注的人

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