自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 (深入理解计算机系统) bss段,data段、text段、堆(heap)和栈(stack)

bss段:  bss段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。  bss是英文Block Started by Symbol的简称。  bss段属于静态内存分配。data段:  数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。  数据段属于静态内存分配。text段:  代码段(code segment/text segment)通常是指用来存放程序执行代码的一块内存区域。...

2020-11-17 17:17:20 277

原创 关于中断的简单理解

什么是中断?为什么需要中断大家知道CPU的处理速度很快,但是外部设备的处理速度就很慢了,为了让这两种不同速度的机器相互配合,就产生了中断。比如:CPU有一个需求需要把硬盘中的数据读取到内存中,这时硬盘中的数据拷贝到内存是一个比较慢的情况,如果没有中断,CPU需要不停的检查读完了没有,但是有了中断,CPU读硬盘比较慢就去处理其他事情了,等它读好了通知我,通知的这个动作就是中断。中断号和中断向量中断号和中断向量其实都是一个数字,因为中断号相对的都是外部设备,0-31的中断向量都分给了内部中断

2020-11-14 18:57:25 609

原创 操作系统讲解linux

操作系统无比的复杂,导致学习到一半就废了,接下来几天里,我就把linux操作系统的业务串联起来。linux内核有5个模块1.内存管理2.进程管理3.进程通信4.文件系统6.网络接口内存管理、进程通信、文件系统、网络接口都属于功能,都是被进程调用,所以linux内核可以分为进程有关的业务、和其他业务。其实只要搞清楚进程的问题,其他的情况就清楚了。进程启动进程时如何启动的呢?看linux内核时,汇编不需要管电脑启动的时候利用汇编做了一堆清理和准备的工作然后

2020-10-22 22:20:13 180

原创 用户抢占和内核抢占的介绍

首先说明下用户进程和内核进程Linux的虚拟地址空间为4GB,其中前1GB称为内核空间,后3GB称为用户空间。用户进程:运行在用户空间称之为用户态。内核进程:进程运行在内核空间时称为内核态。在简单点就是执行前1GB中指令的时候叫内核态,执行后3GB指令的时候叫用户态。一般情况下进程停留的用户态,通过中断和异常或者系统调用的方式可以陷入内核态。用户抢占:当执行系统执行中断或者系统调用是的更...

2020-03-13 11:29:45 327

原创 profile、environment、.bashrc、bashrc区别

/etc/profile为系统的每个用户设置环境信息和启动程序,当用户第一次登录时,该文件被执行,其配置对所有登录的用户都有效。当被修改时,必须重启才会生效。/etc/environment系统的环境变量,/etc/profile是所有用户的环境变量,前者与登录用户无关,后者与登录用户有关,当同一变量在两个文件里有冲突时,以用户环境为准。/etc/bashrc为每个运行 bash s...

2020-02-23 16:19:13 224

原创 linux 4.12内核学习之进程关系

所有的进程都是由一个进程创建的,那么他们之间是靠什么联系在一起的呢一个进程的所有子进程都被链接在一条子进程链表上,头节点是父进程的children,链表节点是子进程的成员sibling。real_parent指向父进程,parent指向跟踪此进程的进程,如果没有进程跟踪,那么也指向父进程...

2020-02-19 13:26:48 100

原创 C++ ostringstream、istringstream区别

ostringstream是输出流,istringstream是输入流,在程序中如何判断使用输出流还是输入流呢?输出流,程序中或者内存中的数据写入的流对象中的操作,所以输出流只支持<<操作输入流,流中的数据写入程序中,所以输入流只支持>>操作...

2020-02-18 22:10:17 303

原创 linux 4.12内核学习之进程命名空间和进程标识符

术语: C标准库进程术语 对应的linux内核的进程术语 包含多个线程的进程 线程组 只有一个线程的进程 进程或者任务 线程 共享用户虚拟地址空间的进程 结构体描述符task_struct结构体路径D:\linux4.12\linux-4.12.1\include\linux\sched.h,里面定义的数据比较多,这里就...

2020-02-18 12:16:42 256

原创 linux 4.12内核学习第一天

D:\linux4.12\linux-4.12.1\arch这个目录下放的是各种CPU上电启动的代码,没有具体研究看不大懂D:\linux4.12\linux-4.12.1\init\main.c这里是初始化的C语言代码,这里的初始化和体系结构无关,起始函数start_kernel(void)asmlinkage __visible void __init start_ker...

2020-02-17 12:17:46 113

原创 json格式介绍

一直在做C++,接触前端比较少,突然发现网络中传输数据,json用的很多,这里给大家介绍下什么是json网络中传输的叫json字符串,这个和普通的字符串没有区别json对象,是用{ "key":value, "key":value, "key":{ "key":value, "key":value ...

2020-02-16 15:44:17 77

原创 使用ACE来封装DLL

首先教大家如何到处函数.h文件#pragma once#include <ace/svc_export.h>extern "C" ACE_Export void fun();.cpp文件#include "dll.h"#include <iostream>void fun(){ std::cout << "void fu...

2020-02-15 23:44:57 224

原创 VS创建动态链接库教程

其实vs创建动态链接库工程非常简单,首先创建普通的C++程序以下这两个都可以更改配置属性的配置类型,动态库.dll,完成,下一节教你如何封装动态链接库。...

2020-02-15 11:00:07 287

原创 VS中调用动态链接库最简单的办法,利用lib文件和头文件方式调用dll,这种方法适合确定需要添加的库

第一步设置头文件目录,将这里的目录设置为你要使用dll库的头文件第二步设置lib库目录,将下列内容设置为包含lib库的目录第三步设置具体需要添加的lib库,这里将具体需要添加的lib库写在上面...

2020-02-14 19:03:28 418

原创 理解windows的消息机制

windows界面会产生很多的消息,消息存放在消息队列中每一个应用程序都有一个主消息循环,getmessage负责从消息队列中获取消息,然后dispatchmessage负责发送给其他具体的窗体来处理,窗体中通过窗体程序通过wndProc回调函数来处理接受到的消息...

2020-02-07 15:26:24 158

原创 VS中的编码,多字节编码和unicode编码是什么意思

我们发现编写C++代码时这里的字符集的修改好像没有什么作用,没错C++的实现是有具体的标准的,不是微软可以改变的,那么这里的字符集有什么用呢?其实这里是指调用windowsSDK时使用的字符集,意思是你调用windowsAPI的时候如果需要用到字符串是必须使用unicode编码,而我们C++中字符串的编码是ANSI,通俗的讲中国就是GB2312。这里可以配置windowsSDK的版...

2020-02-06 17:33:55 896

原创 boost的下载使用教程 windows下

boost官网:https://www.boost.org/下载windows下安装包,傻瓜式安装好,打开vs配置属性添加boost库根目录这里设置lib库目录在就是注意32为和64位的库,32位的boost库只能编译32位的程序,64位的boost库只能编译64位的程序...

2020-02-03 11:34:17 758

原创 快速了解区块链

首先介绍下区块:区块类似与一个个结构体,结构体中保存了各种各样的数据,区块链相当于一个数组,或者可以说是一个集合,那么往区块链上加区块相当于往数组后面添加元素,或者往集合中添加元素。为什么上链的区块中的数据不能修改:这个其实不是绝对的,因为每一个区块都和前一个区块有关系,如果修改了一个区块,那么后面的区块就不满足关系了,需要重新添加。如何去除中心化:区块链应用中每个用户需要下载所有的区块,...

2020-02-02 20:21:57 136

原创 TCP协议为什么是流的形式而UDP不是呢

TCP协议有一个缓冲区,当你需要发送数据时先将数据存储在缓冲区,然后tcp协议按照与服务器约定的滑动窗口的大小从缓冲区取数据发送,这个时候取多少数据时应用层无法控制的,并且取完后还需要等待确认后才可以将数据从缓冲区删除掉,所以有时候使用TCP协议发现,明明发送了一次数据确要接受好多次,要么就是发现TCP协议有数据丢失,TCP取数据的时候会可以避免MTU,来防止IP层分片。那么UDP协议为什么不...

2020-01-29 16:20:26 665

原创 计算机网络之运输层

尽管IP分片看起来是是透明的,但有一点让人不想使用它:即使只丢失一片数据也要重传整个数据报。为什么会发生这种情况呢? 因为IP层本身没有超时重传的机制——由更高层来负责超时和重传(TCP有超时和重传机制,但UDP没有。一些UDP应用程序本身也执行超时和重传)。当来自TCP报文段的某一片丢失后,TCP在超时后重发整个TCP报文段,该报文段对应于一份IP 数据报。没有办法只重传数据报中的一个...

2020-01-26 15:34:44 113

原创 计算机网络之网络层

网络层设计思路:向上只提供简单的灵活的、无连接、尽最大啊努力交付的数据报服务。每个分组独立发送,前后分组不进行编号、分组可能出错、丢失、重复、失序,也不保证交付的时间,如果计算机需要保证可靠的通信,需要运输层负责,网络层的实现尽量简单。互联网中需要把两个网络连接起来的设备物理层使用的中间设备是转发器 数据链路层使用的中间设备叫做网桥或桥接器 网络层使用的中间设备叫路由器 网络层以...

2020-01-26 15:33:37 153

原创 数据链路层协议

PPP点对点协议:将IP层的IP数据包加上头和尾封装成帧。数据链路层不需要控制流量、不需要序列号、不需要纠错。 头和尾必须是IP数据报中没有的字节序列 需要有差错校验功能,把错误的帧丢弃 PPP协议需要设置MTU(最大传送单元),网络层传送下来的IP数据报不能超过MTU,超过MTU自动丢弃,并且返回错误。 PPP需要提供检测连接状态的功能 需要知道两个网络网络层的配置。...

2020-01-25 18:41:17 180

原创 中断和设备驱动的区别

最近在学习驱动程序的编写,对于一些概念有些模糊,这里给大家一一介绍一下中断:硬件设备给CPU发送一个特殊的电信号,让CPU停下手上的工作来处理紧急的事物的过程。中断处理程序或者中断服务例程:这两个叫法是一个意思,当中断发生后CPU通过对应的中断号找到中断向量,然后通过中断向量中的地址找到对应的中断处理函数。驱动程序:刚开始一直以为中断处理程序和驱动程序是一个概念,其实中断处理程序是驱动...

2020-01-21 21:01:55 1648 1

原创 ACE库&ACE相关的书 免费分享

最近在学习ACE方面的知识,在网上看到很多关于ACE方面的东西都是收费的不能免费下载,而且东西特别的少,这里我把我收集到的关于ACE方面的资料整理出来发给大家,不收费的,希望大家喜欢。这个是ACE的官网http://www.dre.vanderbilt.edu/~schmidt/ACE.html刚进去可能有一点疑惑,为什么还有一个ACE+TAO,ACE是一个库,TAO是利用ACE这个库...

2020-01-05 10:16:35 239

原创 C++11新特性

std::move()将左值转换成右值。移动构造函数:只进行浅拷贝,并将之前对象的指针值为空,这样析构的时候就不会将对象释放掉,而且不需要再次拷贝,提高了性能。拷贝构造函数没有将原来的对象指针置空。右值引用:将即将消失的右值保留下来,右值引用其实是左值。将一个左值转换成右值调用移动构造函数,而不是拷贝构造函数。比如vector.push_back的时候。...

2019-12-30 21:39:00 51

原创 C++、python2、python3、GO语言字符串编码介绍

C++:std::string 以gb2312编码,显示的时候也是以GB2312显示的,如果读取其他类型格式的字符串显示乱码python2:python文件头规定的编码格式 # -*- coding: utf-8 -*-,解释器会根据这个编码读取字符串,如果没有指定,默认以asc编码读取,字符串在内存中的编码方式是utf-8的方式,显示的时候会自动转换成unicode编码的格式。pyth...

2019-12-27 22:51:20 145

原创 计算机网络总结

基础概念:报文:需要发送的数据分组:将报文拆分成大小相等的块,并在首部加上相应的信息,每个块加上首部信息叫做分组,也叫包五层协议:应用层:应用层传输的数据是报文,最高层,负责将报文传送给运输层或者从用户层接受数据 http ftp运输层:接受应用层的数据,交付给网络层通过调用网络层将报文传递给对应的进程 tcp udp网络层:将运输层的报文拆分成包,进行传输,选择合...

2019-07-07 22:36:42 89

原创 shell脚本学习

1.判断条件必须卸载[]中,括号里面的必须加空格例:[ $1 != $2 ]这里的所有空格都不能省略2.$?变量是内置变量,保留上一条linux命令或者上一条shell语句执行的结果0:表示成功1:表示失败3.在shell脚本中可以执行linux命令,但是如果要获取执行linux命令后的结果ahr=`pwd`这里不可以加空格4.整数比...

2019-07-07 18:12:38 89

原创 kali 设置静态IP

vi /etc/network/interfacesauto eth0 iface eth0 inet staticaddress 192.168.3.4 netmask 255.255.255.0 gateway 192.168.3.1 dns-nameservers 8.8.8.8service networking re...

2019-07-06 15:57:58 2136

原创 kali启动ssh服务,并开机启动

vi /etc/ssh/sshd_config 1.将 permitrootlogin 前面的注释去掉,并且后面改为yes 如果没有则添加permitrootlogin yes 2.将#PasswordAuthentication no的注释去掉,并且将NO修改为YES //kali中默认是yes 3.按Esc , 同时按shift和冒号键 ,输入wq ...

2019-07-06 15:51:40 3014

原创 ubuntu16.04设置静态ip方法

$ sudo vim /etc/network/interfaces auto ens33         # 使用的网络接口,之前查询接口是为了这里 iface ens33 inet static    # ens33这个接口,使用静态ip设置 address 192.168.2.136    # 设置ip地址为192.168.2.136 ne...

2019-07-06 15:37:34 212

原创 ubuntu apt-get 后Could not get lock 解决方案

网上各种解决方法,这里写出最简单的方式sudo rm -rf /var/lib/dpkg/locksudo rm -rf /var/cache/apt/archives/lock

2019-07-06 15:15:45 626

原创 超级简单的 Python访问Access(2013)教程 pyodbc无需配置数据源

''''# -*- coding: utf-8 -*-# 功能:python连接access2010数据库(.accdb)import pyodbcDBfile = r"D:\DB\123.accdb" # 数据库文件conn = pyodbc.connect( r"Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=...

2019-04-21 17:57:51 2589 1

原创 KALI安装w3af步骤

git clone https://github.com/andresriancho/w3af.gitcd w3af./w3af_gui./w3af_dependency_install.shapt-get build-dep python-lxml

2019-04-06 16:49:41 446

原创 编码小知识

编码分为两大类1. ASCII2.unicode以上的这两种也是编码后面所有的编码都是对这两种编码的扩展unicode代表国际化,可以编码所有的语言ASCII是针对特定的一种或者几种语言ASCII编码代表gbk、gb2312等等Unicode编码代表utf-8、utf-16等等...

2018-12-02 10:04:03 126

原创 vim快捷键设置教程

编辑.vimrc文件,每次使用vim前都会执行.vimrc文本的配置快捷键设置方法:nmap映射normal模式下:imap映射insert模式下&lt;Esc&gt;代表Escape键:&lt;CR&gt;代表Enter键;&lt;D&gt;代表Command键。Alt键可以使用&lt;M-key&gt;或&lt;A-key&gt;来表示。&lt;C&gt;代表Ct...

2018-12-01 21:16:47 214

原创 xargs理解和使用技巧

xargs:将管道的输出作为后面命令的参数如果不加xargs将管道的输出作为后面命令的输入什么是参数什么是输入cat –help为参数cat 回车 –help为输入两种情况下使用xargs后面的命令不支持接受管道的输出 需要将管道的输出作为后面命令的输入...

2018-12-01 13:47:41 1086

原创 芯片 CPU ARM 中央处理器 contentA9 指令集 名词介绍

芯片 CPU ARM 中央处理器 contentA9 指令集 名词介绍芯片是包含了CPU arm contentA9等集成电路组成的处理器中央处理器:CPU的中文称呼指令集:可以理解为芯片中的处理流程...

2018-11-28 19:47:16 237

原创 Metasploit模块介绍

模块总体介绍辅助模块(aux)渗透攻击模块(Exploits)后渗透攻击模块(Post)攻击载荷模块(Payloads)空指令模块(Nops)编码器模块(Encoders)模块功能具体介绍辅助模块(aux)扫描、发掘漏洞、探测信息等工作渗透攻击模块(Exploits)利用已发现的漏洞对远程目标系统进行攻击,植入并运行攻击载荷,从而控制目标系统攻击载荷...

2018-11-17 23:43:34 1995

原创 wan ip 和 lan ip知识

wan ip:外网IP你上网的真实IPlan IP:局域网IP为什么在路由器中查询到的wan IP不是公网IP呢?因为IP数量是有限的,运营商不会给个人分配一个公网IP,所以运营商会利用路由器技术把这个公网划分成很多个局域网IP分给每一个用户(有可能一次划分还不够所以需要多次划分),这个就是为什么很多人明明不在一个局域网中上网但是人多了就会卡,因为只有一个IP轮流使用。那么如何查询...

2018-11-17 20:32:18 12034

原创 域名小知识

域名:网络中的主机名比如www.baidu.com域名服务器:将网络中的主机名解析成IP地址(解析成IP后才可以访问,登录某个网站其实访问的是网络中的一台服务器(也可以说一台主机、电脑))如何解析的呢?首先有一个根域名服务器,里面包含着一些信息类似com对应的IP去那个解析服务器上找对应的ipcn对应的IP去那个解析服务器上找对应的iporg对应的IP去那个解析服务器上找对...

2018-11-17 20:29:21 173

空空如也

空空如也

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

TA关注的人

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