自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 python使用的一些小方法

my_str = ‘123and456’number = filter(str.isdigit, my_str )number = 123456使用正则表达式:import rere.findall(r’\d+’, ‘hello 42 I’m a 32 string 30’)[‘42’, ‘32’, ‘30’]...

2021-05-13 09:11:43 140

原创 C实现队列数据结构

与栈相似,队列是另一种顺序存储元素的线性数据结构。栈与队列的最大差别在于栈是LIFO(后进先出),而队列是FIFO,即先进先出。一个完美的队列现实例子:售票亭排队队伍。如果有新人加入,他需要到队尾去排队,而非队首——排在前面的人会先拿到票,然后离开队伍。Enqueue()——在队列尾部插入元素Dequeue()——移除队列头部的元素isEmpty()——如果队列为空,则返回 1op()—...

2020-02-23 19:32:36 237

原创 C实现析栈结构

栈是一种操作受限的线性表只允许从一端插入和删除数据。栈有两种存储方式,即线性存储和链接存储(链表)。栈的一个最重要的特征就是栈的插入和删除只能在栈顶进行,所以每次删除的元素都是最后进栈的元素,故栈也被称为后进先出(LIFO)表。每个栈都有一个栈顶指针,它初始值为-1,且总是指向最后一个入栈的元素,栈有两种处理方式,即进栈(push)和出栈(pop),因为在进栈只需要移动一个变量存储空间,所以它的时...

2020-02-23 15:03:49 211

转载 Celery浅析,带你入门

原文链接:https://my.oschina.net/vhacker/blog/790300Celery 简介Celery是一个异步任务的调度工具。 可以提供消息队列的后台执行方式,也可以提供跟进时间的计划任务。 官方文档 Celery 用消息通信,通常使用中间人(Broker)在客户端和职程间斡旋。这个过程从客户端向队列添加消息开始,之后中间人把消息派送给职程。broker是一个消息传...

2019-07-31 22:15:17 170

原创 开源的UML工具小结

1. StarUMLStarUML是一个开源UML项目,可以开发快速,灵活,可扩展,多功能并且免费的UML/MDA平台。此项目运行在Win32平台之上。StarUML项目的目标是成为Rational Rose、Together等商业UML工具的替代者。2. Netbeans UML PluginNetBeans UML插件目前支持以下UML图:活动图,类图,序列图,状态图,以及用例图。你可以...

2019-07-24 15:52:00 785

转载 Linux内核模块简解

简单示例一个很简单的 helloworld 程序,可以参考 github LKM helloworld 。如下是 Makefile 文件。ifneq ((KERNELRELEASE),)obj−m:=hello.oelseKERNELDIR:=/lib/modules/(KERNELRELEASE),)obj-m := hello.oelseKERNEL_DIR := /lib/mod...

2019-07-24 10:57:48 1366

原创 浅析python argparse

1. argparse介绍是python的一个命令行解析包,用于编写可读性非常好的程序,方便开发人员根据不同的需求,灵活配置输入参数。2. 基本用法prog.py是我在linux下测试argparse的文件,放在/tmp目录下,其内容如下:#!/usr/bin/env python一、常规参数读写方式sys.argv适合解析简单的命令行filename = arg_sys.py‘...

2019-07-19 15:27:41 128

转载 MySQL运行机制原理&架构

MySQL的逻辑构架MySQL服务器逻辑架构最上层:链接处理,授权认证,安全等处理第二层:查询解析、分析、优化、缓存以及内置函数(如:日期,时间,数学和加密函数)第三层:包含了存储引擎,存储引擎负责数据的存储和提取。链接管理和安全性每一个客户端链接都在MySQL服务器进程中拥有一个多线程,在CPU中轮询运行,服务器会负责缓存线程,因此不需要为每一个新建的链接创建或者销毁线程。MySQ...

2019-07-16 21:23:37 199

转载 磁盘IO基准测试方法

**当有新服务进行部署时,基准测试是必要的,这样的话能了解到系统的极限性能,可以选择更合适的方式去部署服务,或者当服务遇到性能瓶颈时,也有好的参照,是需要进行优化还是增加资源。I/O 的真实性能比较难以测试,会涉及到两个方面,一个是文件系统 I/O, 一个是磁盘 I/O, 文件系统会有缓存操作,如果误用测试文件系统性能,往往会得到很好的结果,实际上与真实的磁盘性能相差甚远。在做磁盘 I/O 测试...

2019-07-16 15:57:19 908

转载 详解操作系统分配内存

计算机体系结构和内存层次操作系统中内存的最小访问单位是 字节 ,也就是8bit。通常我们所说的计算机系统是32位的总线,所谓的32位总线就是说一次读写可以从内存当中读或者写32位(也就是4字节)。因为一次读写是32位,所以需要地址对齐,访问的时候不能从任意地方开始。在CPU中可以看到高速缓存,由于指令执行和访问数据都需要从内存里读数据,如果此时有大量数据要读写而且会重复利用的话,那么在CP...

2019-07-15 21:56:02 896

转载 Linux 中的各种栈:进程栈 线程栈 内核栈 中断栈

栈是什么?栈有什么作用?首先,栈 (stack) 是一种串列形式的 数据结构。这种数据结构的特点是 后入先出 (LIFO, Last In First Out),数据只能在串列的一端 (称为:栈顶 top) 进行 推入 (push) 和 弹出 (pop) 操作。根据栈的特点,很容易的想到可以利用数组,来实现这种数据结构。但是本文要讨论的并不是软件层面的栈,而是硬件层面的栈。栈结构大多数的处理...

2019-07-15 15:15:28 216

原创 How to root Motorola G6 play

#How to root Moto G6 play and install android8.0##Tool : use fastboot , adb ,Twrp , Magsik#The first step#install android8.0##1.download android8.0 ROM (zip file)###Link android8.0 ROM url -&g...

2019-07-11 15:52:58 357

转载 TWRP Recovery 编译适配教程

TWRP Recovery的强悍,使得它成为了刷机领域当之无愧的首选。很多设备刷机的第一步,正是选择一款适合的TWRP,然后刷上去。目前,多个品牌的热门机型都有官方适配了,且一些开发者也给官方未覆盖的机型适配了自己的非官方版本。然而,开发者们并不是万能的,总有那么一些机型,并没有哪一位开发者前来适配。在这样的情境下,你是愿意痴痴地等,等到哪位大神有时间做适配,还是马上动手丰衣足食呢?当然...

2019-07-05 18:18:26 8150

原创 通俗易懂的Android Framework原理

Android系统架构Android本质就是在标准的Linux系统上增加了Java虚拟机Dalvik/ART,并在Dalvik/ART虚拟机上搭建了一个JAVA的application framework,所有的应用程序都是基于JAVA的application framework之上。android分为四个层从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层。系统...

2019-07-05 18:12:41 1596

转载 [教程] [经验技巧] 任意手机移植ROM 教程,超详细ROM 技术学习

从内核基于linux开始整个系统就运行在一个虚拟机上,这是安卓的一大特征!!那么我们移植的时候要修改哪一部分?这就是我们这个帖子的重点了参考本链接http://www.miui.com/thread-3660267-1-1.html交流学习通俗易懂的流程,主体框架不会改变。固定的目录结构,移植不同设备,根据不同的需求对几个特定文件进行修改。最后重新进行压缩zip,zip包名改为upd...

2019-07-05 17:20:15 20073 2

原创 在linux环境中去掉文件中的^M符号的命令

第一种方法:cat -A filename 就可以看到Windows下的断元字符 ^M要去除他,最简单用下面的命令:dos2unix filename第二种方法:sed -i ‘s/^M//g’ filename#注意:^M的输入方式是 Ctrl + v ,然后Ctrl + M第三种方法:vi filename:1,$ s/^M//g^M 输入方法: ctrl+V ,ctrl+...

2019-07-04 20:24:23 226

原创 通俗易懂的Android root 原理

前序知识渗透Android的内核就是Linux,所以Android获取root其实和Linux获取root权限是一回事儿。你想在Linux下获取root权限的时候就是执行sudo或者su,接下来系统会提示你输入root用户的密码,密码正确就获得root权限了。Android本身就不想让你获得Root权限,大部分手机出厂的时候根本就没有su这个程序。所以你想获得Android的root权限,第一步...

2019-07-04 20:15:22 1826

转载 程序管理与 SELinux 初探

在进入了 CentOS 5.x 之后,SELinux 已经是个非常完备的核心模块了!CentOS 5.x 提供了很多管理 SELinux 的命令与机制, 因此在整体架构上面比以前的版本要单纯且容易操作管理!所以,在这一版以后,我们建议大家千万不要关掉 SELinux 这玩意儿! 让我们来仔细的玩玩这家伙吧!转载资源,我不是搬运工,我只是优质资源的发掘者。http://cn.linux.vbir...

2019-07-04 20:07:03 138

翻译 至高无上的安全机制! —— SELinux 入门

一、前言安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。SELinux 主要由美国国家安全局开发。2.6 及以上版本的 Linux 内核都已经集成了 SELinux 模块。SELinux 的结构及配置非常复杂,而且有大量概念性的东西,要学精难度较大。很多 Linux 系统管理员嫌...

2019-07-04 20:04:31 317

转载 一文看懂Python多进程与多线程编程

进程(process)和线程(thread)是非常抽象的概念, 也是程序员必需掌握的核心知识。多进程和多线程编程对于代码的并发执行,提升代码效率和缩短运行时间至关重要。小编我今天就来尝试下用一文总结下Python多进程和多线程的概念和区别, 并详细介绍如何使用python的multiprocess和threading模块进行多线程和多进程编程。重要知识点 - 什么是进程(process)和线程(...

2019-07-02 15:56:44 164

原创 Linux开机启动过程浅分析

开机过程指的是从打开计算机电源直到LINUX显示用户登录画面的全过程。分析LINUX开机过程也是深入了解LINUX核心工作原理的一个很好的途径。启动第一步--加载BIOS当 你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。这是因为BIOS中包含了CPU的相关 信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。在此之...

2019-04-22 00:03:37 122

转载 各种服务常用端口号汇总

端口号标识了一个主机上进行通信的不同的应用程序。1.HTTP协议代理服务器常用端口号:80/8080/3128/8081/90982.SOCKS代理协议服务器常用端口号:10803.FTP(文件传输)协议代理服务器常用端口号:214.Telnet(远程登录)协议代理服务器常用端口号:23HTTP服务器,默认端口号为80/tcp(木马Executor开放此端口)HTTPS(securel...

2019-04-21 23:43:09 3472

转载 gdb调试当前运行的程序

为什么使用gdb调试正在运行的程序?因为有时候bug很难复现、或者环境搭建起来比较困难,所以在出现bug的时候可以使用gdb的attach功能调试正在运行的GCC编译出来的程序,注意编译选项要加-g,否则没有符号表。调试步骤?1. 编译时候带-g选项。2. 运行程序。3. ps找到进程号。4. 启动gdb,使用attach选项,这时gdb会停止在程序的某处。5. 按照GDB调试方法调...

2019-04-18 15:43:17 4768

原创 平衡二叉树、红黑树、B+树简述

1 二叉树二叉树binary tree是指每个节点最多含有两个子树的树结构。特点: 1.所有节点最多拥有两个子节点,即度不大于2 2.左子树的键值小于根的键值,右子树的键值大于根的键值。因为二叉树只是定义了简单的结构,所以存在多种深度可能,导致二叉树的效率低,所以引入了平衡二叉树。2 平衡二叉树2.1 avl树平衡二叉树,基于avl算法,即是avl树(avl tre...

2019-04-14 09:51:52 257

原创 C语言回调函数解析

回调函数通俗理解:函数指针作为某个函数的参数函数指针变量可以作为某个函数的参数来使用的,回调函数就是一个通过函数指针调用的函数。简单讲:回调函数是由别人的函数执行时调用你实现的函数。以下是摘自知乎作者常溪玲的解说:你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,过了几天店里有货了,店员就打了你的电话,然后你接到电话后就到店里去取了货。在这个例子里,你的电话号码就叫...

2019-04-10 21:10:03 238

转载 Linux的任务调度机制

通用Linux系统支持实时和非实时两种进程,实时进程相对于普通进程具有绝对的优先级。对应地,实时进程采用SCHED_FIFO或者SCHED_RR调度策略,普通的进程采用SCHED_OTHER调度策略。在调度算法的实现上,Linux中的每个任务有四个与调度相关的参数,它们是rt_priority、policy、priority(nice)、counter。调度程序根据这四个参数进行进程调度。在S...

2019-03-19 20:51:00 173

转载 [各种面试题】任务调度-拓排序

有n个任务需要完成(编号1到n),任务之间有一些依赖关系,如果任务a依赖于任务b和c,那么只有当任务b和任务c完成之后才能完成任务a。给定所有的依赖关系,判断这些任务是否能够完成。如果能够完成,请给出一个合法的任务完成序列。样例:n=51->2,33->4上述样例中任务1依赖于任务2和任务3,任务3依赖于任务4,那么存在合法的任务完成序列4,3,2,1,5读完题就发现是个拓...

2019-03-19 20:47:03 1361

转载 git rebase 的作用

git rebase,顾名思义,就是重新定义(re)起点(base)的作用,即重新定义分支的版本库状态。要搞清楚这个东西,要先看看版本库状态切换的两种情况:我们知道,在某个分支上,我们可以通过git reset,实现将当前分支切换到本分支以前的任何一个版本状态,即所谓的“回溯”。即实现了本分支的“后悔药”。也即版本控制系统的初衷。还有另一种情况,当我们的项目有多个分支的时候。我们除了在本地开发...

2019-03-18 20:20:02 1796

转载 经典的生产者消费者模型(Linux C++实现)

学习了几天Linux多线程,大多是看的别人的博客,并试着写了个小例子,现在也把学到的一些东西记录下来,供以后查阅,属于初级入门的范围,望共勉。进程是系统中程序执行和分配资源的基本单位,每个进程都有自己独立的数据段,代码段和堆栈段。而线程是系统中独立运行的最小单位,可以说操作系统分配CPU时间的最小单位,可以叫轻型的进程。一个进程可以有多个线程,在多进程情况下,每个进程都有着自己的地址空间,消耗资...

2019-03-17 23:31:03 472

转载 Come On通俗理解ip地址,子网掩码,网关

首先把互联网看做一个「城市」,这个城市有很多交错的「街道」,每个街道是构成网络的通信媒介。这些「街道」的以及周边的每个住户是互联网中的一个局域网络。街道中每家的门牌号就是「IP地址」。「子网掩码」决定了是那个街道 。也就是说街道代表了这个局域网。两条街道的交点就是「网关」,现在不这样叫,叫路由器因为垮街道交流涉及垮局域网交流。因为你要从一条街道走向另外一条街道必须经过两条街道的交点,当然这个「交点...

2019-03-16 16:39:58 173

转载 浅谈NOR flash 和NAND flash区别深入分析

闪存芯片读写的基本单位不同应用程序对NOR芯片操作以“字”为基本单位。为了方便对大容量NOR闪存的管理,通常将NOR闪存分成大小为128KB或者64KB的逻辑块,有时候块内还分成扇区。读写时需要同时指定逻辑块号和块内偏移。应用程序对NAND芯片操作是以“块”为基本单位。NAND闪存的块比较小,一般是8KB,然后每块又分成页,页的大小一般是512字节。要修改NAND芯片中一个字节,必须重写整个数据...

2019-02-16 18:07:22 1304

转载 Centos7编译安装Python3

centos7 自带有 python,但是却是 python2 版本,如果你想安装个python3怎么办呢?难道要从github上把源码clone下来进行编译安装么?没错!因为 yum 源中并没有现成的 python3 程序,所以必须要自己手动编译安装。1.首先,你要知道系统现在的python的位置在哪儿:[root@root ~]# whereis pythonpython: /usr/b...

2019-01-30 23:29:49 193

原创 嵌入式5种精简操作系统

基于STM平台且满足实时控制要求操作系统,有以下5种可供移植选择。分别为μClinux、μC/OS-II、eCos、FreeRTOS和rt-thread。下面分别介绍这五种嵌入式操作系统的特点及不足,通过对比,读者可以根据自己的应用需求选择合适的平台。TOP1: μClinuxμClinux是一种优秀的嵌入式Linux版本,其全称为micro-control Linux,从字面意思看是指微控制...

2019-01-10 21:10:38 1749

原创 Centos7 中下载安装 gcc资源 解决make: *** 没有指明目标并且找不到 makefile错误

解决make: *** 没有指明目标并且找不到 makefile错误。 停止。执行一下安装keepalived语句报错:./configure --prefix=/usr/local/keepalivedmakemake install报错信息:configure: error:!!! OpenSSL is not properly installed on your system....

2019-01-08 22:30:46 7572

原创 云计算运维mysqladmin常用用法解析

mysqladmin 工具的使用格式:mysqladmin [option] command [command option] command …参数选项:-c number 自动运行次数统计,必须和 -i 一起使用-i number 间隔多长时间重复执行0)每个两秒查看一次服务器的状态,总共重复5次。[root@test-huanqiu ~]# mysqladmin -uroot -...

2019-01-07 22:12:10 104

原创 Centos7 Mysql8.0版本修改密码

1:免密码登陆找到mysql配置文件:my.cnf,在【mysqld】模块添加:skip-grant-tables保存退出;2:使配置生效重启mysql服务:service mysqld restart3:将旧密码置空mysql -u root -p //提示输入密码时直接敲回车。//选择数据库use mysql;//将密码置空(使用下面指令需要先选择数据库,使用"...

2019-01-06 18:25:19 1291

原创 C语言数据类型分类

一 C 语言包含的数据类型short、int、long、char、float、double 这六个关键字代表C 语言里的六种基本数据类型。在不同的系统上,这些类型占据的字节长度是不同的:在32 位的系统上short 占据的内存大小是2 个byte;int占据的内存大小是4 个byte;long占据的内存大小是4 个byte;float占据的内存大小是4 个byte;double占据...

2019-01-04 16:49:42 708

原创 Centos7 修改MySQL5.7 的Root密码

参考博文:http://www.jb51.net/article/100211.htmhttps://www.cnblogs.com/wangbaobao/p/7087032.html1.vim /etc/my.cnf2.在[mysqld]中添加skip-grant-tables例如:[mysqld]skip-grant-tablesdatadir=/var/lib/mysql...

2018-12-26 21:49:50 199 3

原创 智能家居无线方案ZIGBEE、Z-Wave、WIFI、蓝牙、红外、GPRS以及NB-IOT之间优缺点比较

无线取代有线已经成为一个不可逆转的趋势,在智能家居行业最流行的是四种无线技术,即WiFi、Z-Wave、ZigBee、SmartRoom。其中WiFi技术和ZigBee这两种技术最值得竞争。那么WiFi和ZigBee到底哪个更有优势呢?未来谁才会成为主流呢?蓝牙蓝牙,是一种基于2.4GHz频段的、短距离通信技术,能在手机、平板、笔记本电脑等智能设备中进行无线信息交换。通过蓝牙技术,可以将原本没...

2018-11-25 21:41:33 12330 1

原创 智能家居系统智能联动控制

目前,智能家居控制方式有本地控制、远程网络控制、定时控制和一键情景控制等4种方式,且每种都有自己的特色。本节笔者将为大家介绍智能家居的这4种控制方式。本地控制本地控制是指在智能家电附近,通过智能开关、无线遥控器、控制屏等对智能家电进行各种操作。基本智能控制模式:  1.智能开关控制智能开关在前面有所介绍,智能开关控制是指利用智能面板、智能插座等智能开关对家庭照明器具或家电进行控制。它的...

2018-11-25 20:39:49 4571

空空如也

空空如也

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

TA关注的人

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