自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

核桃

分享创造乐趣

  • 博客(14)
  • 收藏
  • 关注

原创 进程和线程的区别与联系

1. 共同点 功能上都是用于实现多任务并发程序设计的技术手段,两者的创建最终都是调用系统函数clone(),线程的状态包括就绪、执行与阻塞,与进程类似。2. 区别 进程是资源分配的基本单位,线程是系统调度的基本单位,进程维护资源,线程是真正的执行体。定义 进程是一个用户程序在同一数据集合上的一次执行过程,而在不同数据集合上或者同一数据集合的不同运行都是不同的进程。线程是进程上的一个...

2018-07-18 09:52:58 5365

原创 Linux 常用命令脚本源码查看方法总结

Linux 常用命令脚本源码查看方法总结下载相关软件包 以32位Ubuntu14.04下,获取ls命令的源码为例,能够使用例如以下的方法下载源码: 1)使用which命令查看ls命令的位置,例如以下: which ls # 输出:/bin/ls 2)使用dpkg命令查询ls命令所属的包。例如以下: dpkg -S /bin/ls # 输出:coreutils: /bin/ls 因...

2018-07-10 10:48:13 3661

原创 makefile 语法 /usr/bin/ld: cannot find -lxxxx

GCC编译错误1./usr/bin/ld:/tmp/ccd/UkmoA.o :undefined reference to symbol ‘ERR_free_strings@OPENSSL_1.0.0’ //lib/i386-linux-gnu/libcrypto.so.1.0.0:error adding symbols:DSO missing from command lineerror1

2017-12-29 11:51:36 40440

原创 tcpdump 在ubuntu上使用命令学习笔记 /tcp、ip、icmp数据包格式

- 常用命令详解基本命令$ tcpdump //默认抓取第一个网卡接口的所有数据包$ tcpdump –i ens33 //抓取网卡ens33的数据包$ tcpdump host 47.95.224.4 //监听主机47.95.224.4接收发送的所有数据包$tcpdump host 47.95.224.4 and 10.13.32.60 //截获主机47.95.224.4与10.13.

2017-12-26 17:06:47 3444

原创 Ubuntu14.04下 安装OpenSSL 部署腾讯云免费版DV SSL证书

首先在阿里云上申请一个域名,并将其解析到本地服务器的ip,然后使用该域名在腾讯云上申请免费版DV SSL证书。 1. ubuntu 14.04安装openssl$ sudo apt-get install openssl$ sudo apt-get install libssl-dev2.apche服务器下加载ssl模块,然后重启服务器$ a2enmod ssl$ service apac

2017-12-14 11:13:58 3188

原创 四旋翼无人机原理以及组装过程

1.硬件组成:机架,4个螺旋桨, 4个电机,4个电调,1信号接收器,1个飞控板,1个 稳压模块,一个电池螺旋桨:四个螺旋桨都要提供升力,同时要抵消螺旋桨的自旋,所以需要正反桨,即对角的桨旋转反向相同,正反相同。相邻的桨旋转方向相反,正反也相反。有字的一面是向上的(桨叶圆润的一面要和电机旋转方向一致)电机:电机的kv值:1v电压,电机每分钟的空转速度。kv值越小,转动力越大。电机与螺旋桨匹配:螺旋

2017-12-06 22:11:13 51165

原创 GCC 编译过程/编译命令详解/静态库与动态链接库/ error:undefined reference to

GCC编译:预处理->编译->连接->加载预处理:处理程序中#开头的内容编译:程序构建过程, 生成.o文件,gcc 依赖顺序问题(从后向前),如果文件a依赖于文件b,那么编译的时候必须把a放前面,b放后面。连接:将所有的对象文件和库串联起来,成为可运行程序。静态库已经植入程序,共享库在程序中包含其引用。加载:程序启动,引用共享库,GCC编译器假定所有的共享库以lib开头,以.so或者.a结尾

2017-12-06 21:33:29 7522 1

原创 hook函数实例分析--sys_seteuid调用

本实例包括hook.c test.c hook.c利用LKM(可加载内核模块)实现系统调用sys_setreuid的拦截。当ruid==1337&&euid==31337时,将当前进程的所有的uid和gid设为0。test.c 用于测试hook模块加载之后是否有效。hook.c如下:#include <linux/module.h>//module_init/module_exit在此定义#in

2017-11-16 17:26:54 755

原创 系统调用的三层皮

C代码中嵌入汇编代码 一般格式:asm volatile(汇编语句模板:输出:输入:破坏描述部分);示例:使用c代码中嵌入汇编代码触发系统调用asm volatile( “mov $0 , %%ebx\n\t”“mov $0xd , %%eax\n\t” //获取系统时间的系统调用号“int $0x80\n\t” //产生中断“mov %%eax , %0\n\t”//eax中

2017-11-16 15:25:52 438

原创 Linux 常用命令总结

查找命令$find / -name module.h //利用find在当前目录及其子目录下查找名为module.h的文件$grep –nr “cred” * //利用grep命令查找包含cred 字符串的文件位置及行号vi 编辑器命令$ :q! //退出编辑器,不保存$ :wq!//推出保存$ i //光标后插入$ a //光标前插入$ o //新的一行插入$ esc+x

2017-11-16 12:20:47 257

原创 LKM可加载内核模块简单实例编写

1.标准的module代码如下: helloworld.c#include <linux/kernel.h>#include<linux/module.h>#include<linux/init.h>MODULE_LICENSE("GPL");static int hello_init(void){printk(KERN_WARNING "HELLOWORLD");return 0;

2017-11-13 17:53:45 819

原创 GDB跟踪调试linux-3.18.6内核

要跟踪调试内核,首先需要对内核架构有一个基本的了解,以linux-3.18.6为例:arch文件夹:Linux需要兼容不同的架构,因此该文件夹下面包含arm、x86、alpha等支持各种机构的源码。init文件夹:包含mian.c ,程序入口:start_kernel,任何模块的初始化都需要在strart_kernel中调用。还有ipc,kernel,security.sound等比较重要的文

2017-11-09 10:45:53 846

原创 linux内核分析-简单的操作系统内核源码解读

##《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ”学习笔记 ##源码组成:mypcb.h mymain.c myinterrupt.c mypcb.h#define MAX_TASK_NUM 4 //进程数组链表的最大值#define KERNEL_STACK_SIZE 102

2017-11-06 21:39:58 12211

原创 Ubuntu Server 16.04(14.04)下配置LAMP环境

本文介绍lamp配置的过程,ubuntu server 16.04已经在VMware安装成功,并使用xshell与虚拟机连接。 1. 安装apache服务器 输入命令:sudo apt-get install apache2 检验:apache2 -v 2. 安装php 输入命令:sudo apt-get install php (ubun

2017-11-06 16:25:43 303

空空如也

空空如也

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

TA关注的人

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