自定义博客皮肤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)
  • 收藏
  • 关注

原创 make menuconfig出现scripts/Makefile.host:108: recipe for target ‘scripts/kconfig/mconf.o‘ faile错误

解决方法apt-get install libncurses5-dev

2021-01-13 21:35:23 2076 1

原创 ubuntu16.04下ping出现network is unreachable解决方法

当在ubuntu16.04下ping baidu.com时出现network is unreachable时,解决方法就是添加一个默认网关。route add default gw 192.168.0.1这里我的计算机所在的网段是在192.168.0网段,所以我所添加的默认网关是192.168.0.1。...

2021-01-13 21:03:20 3348

原创 ubuntu16.04下tftp服务搭建

一.tftp简介TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69。TFTP是一个传输文件的简单协议,它基于UDP协议而实现,但是我们也不能确定有些TFTP协议是基于其它传输协议完成的。此协议设计的时候是进行小文件传输的。因此它不具备通常的FTP的许多功能,它只能从文件服务器上获得或写入文件,不能列出目录,不进行认证,它传输8位数据。二.tf

2021-01-13 16:41:52 411 1

原创 ubuntu16.04下nfs服务搭建

环境;ubuntu16.04一.nfs简介二.nfs服务的安装1.安装nfs服务sudo apt-get install nfs-kernel-server rpcbind2.修改配置文件sudo vi /etc/exports添加如下内容/home/wang/linux/nfs *(rw,sync,no_root_squash)/home/wang/linux/nfs:共享的目录*:指定所有用户可以访问,但要能够ping通192.168.1. 指定192.168.1网段,在该

2021-01-13 15:26:10 196 1

原创 linux下arm交叉编译工具链的安装

环境:ubuntu16.04交叉编译工具链:arm-linux-gnueabihf-gcc一.交叉编译工具的下载交叉编译工具的地址根据自己的需要下载适合自己的交叉编译工具。比如我安装的 Ubuntu 16.04 是 64 位系统,因此我要使用 gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz。二.交叉编译工具的安装1.将下载好的交叉编译工具放到自己选择的目录下。我的交叉编译工具放到了目录/usr/local/arm下2.

2021-01-13 10:28:30 3643 1

原创 ubuntu16.04下vim的卸载与重新安装

一.卸载vimsudo apt-get remove vim vim-runtime vim-tiny vim-common vim-scripts vim-doc二.重新安装vimsudo apt-get install vim

2021-01-13 09:52:59 1067

原创 安装vmware tools后从浏览器复制字符后,在终端粘贴出现网址

在安装vmware tools后从浏览器复制字符后,在终端粘贴出现网址的解决方法,错误如下:此时,需要重新启动系统即可解决。

2021-01-13 09:50:36 147

原创 ubuntu16.04下安装vmware tools

一.vmware tools简介VMware Tools的主要作用是虚拟硬件的驱动,鼠标的无缝移出移入,剪贴板共享,共享主机上的文件夹等功能。二.vmware tools安装1.在菜单栏上的“虚拟机”上单机,出现如下图所示,然后点击安装VMware Tools。2.经过第一步后,会出现如下图所示,将VMwareTools-10.3.10-13959562.tar.gz安装包,放到自己选定的安装目录中,我这里放到了目录/home/wang/目录下。3.在终端下进入root用户解压缩VMwareTo

2021-01-13 09:46:18 3200 2

转载 linux下Systemd 入门教程:实战篇

一、开机启动对于那些支持 Systemd 的软件,安装的时候,会自动在/usr/lib/systemd/system目录添加一个配置文件。如果你想让该软件开机启动,就执行下面的命令(以httpd.service为例)。$ sudo systemctl enable httpd上面的命令相当于在/etc/systemd/system目录添加一个符号链接,指向/usr/lib/systemd/system里面的httpd.service文件。这是因为开机时,Systemd只执行/etc/system

2021-01-11 16:11:38 223

转载 linux下Systemd 入门教程:命令篇

一.由来历史上,Linux 的启动一直采用init进程。下面的命令用来启动服务。$ sudo /etc/init.d/apache2 start# 或者$ service apache2 start这种方法有两个缺点。一是启动时间长。init进程是串行启动,只有前一个进程启动完,才会启动下一个进程。二是启动脚本复杂。init进程只是执行启动脚本,不管其他事情。脚本需要自己处理各种情况,这往往使得脚本变得很长。二、Systemd 概述Systemd 就是为了解决这些问题而诞生的。它的设计

2021-01-11 15:36:35 1295

转载 systemV和systemd的理解

一.systemV和systemd的关系在CentOS7(RHEL7)以后,服务从原来的由systemV管理机制升级到了systemd。二.systemV的理解在sysV中,所有的服务脚本都放在/etc/rc.d/init.d/中,可以使用/etc/rc.d/init.d/daemon [start|stop|restart|reload|status]方式来管理服务,默认的运行级别在/etc/inittab文件中定义,当系统以某个运行级别启动时,会运行/etc/rc.d/rcN.d/(其中N范围为0

2021-01-10 17:26:46 3170 1

转载 linux下服务的管理详解

一.服务管理的方式一类是可独立运行的服务,另一类是受xinetd管理的服务,而xinetd本身是一个独立运行的服务,用来负责管理一些不常用的服务,当这些服务需要被使用时,由xinetd来唤醒它们,当服务使用完后,这些服务会被结束以减少系统资源的占用。二.独立运行的服务独立服务的启动管理独立的服务要想启动,主要有两种方法。(1) 使用/etc/init.d/目录中的启动脚本来启动独立的服务既然所有独立服务的启动脚本都存放在 /etc/init.d/ 目录中,那么,调用这些脚本就可以启动独立的服务了

2021-01-10 17:16:57 336

原创 gcc编译器不得不知的一些事情(二)

gcc编译过程中常用的参数解析gcc/g++指令选项功 能-E(大写)预处理指定的源文件,不进行编译。-S(大写)编译指定的源文件,但是不进行汇编。-c编译、汇编指定的源文件,但是不进行链接。-o指定生成文件的文件名。-llibrary(-I library)其中 library 表示要搜索的库文件的名称。该选项用于手动指定链接环节中程序可以调用的库文件。建议 -l 和库文件名之间不使用空格,比如 -lstdc++。-ansi对于 C 语言程序

2021-01-09 17:19:18 96 2

原创 gcc编译器不得不知的一些事情(三)

GCC找不到库文件的解决方法GCC找不到库文件有两种情况:一种是利用静态库或者动态库文件实现链接操作(生成可执行文件)时,GCC 可能会提示“xxx:No such file or directory”(其中 xxx 表示查找失败的静态库或者动态库);另一种执行借助动态库生成的可执行文件时,GCC 可能会提示“./main.exe: error while loading shared libraries: xxx.so: cannot open shared object file: No such f

2021-01-09 16:30:31 138

原创 gcc编译器不得不知的一些事情(一)

一.gcc介绍GCC 编译器是 Linux 系统下最常用的 C/C++ 编译器,但是它不仅可以用来编译 C 语言程序和C++语言, 但是还可以编译Go、Objective-C,Objective-C ++,Fortran,Ada,D 和 BRIG(HSAIL)等程序,甚至于 GCC 6 以及之前的版本还支持编译 Java 程序。二.gcc与g++的联系与区别在已编辑好 C 语言或者 C++ 代码的前提下,如何才能调用 GCC 编译器为我们编译程序呢?很简单,GCC 编译器已经为我们提供了调用它的接口,

2021-01-09 15:16:52 500

原创 linux下qt+opencv环境搭建

环境:ubuntu16.04qt:qt5.5.1opencv:opencv3.4.1一.qt的安装:https://blog.csdn.net/chengziwang/article/details/112132019二.opencv的安装:https://blog.csdn.net/chengziwang/article/details/112145116三.qt+opencv环境的搭建:(1)进入qt创建新project:然后添加如下代码:#include <opencv2/

2021-01-04 21:39:29 4550 3

原创 linux下编译opencv

环境:ubuntu16.04opencv:opencv3.4.1一.获取opencv源码从opencv官网网址下载opencv源码https://opencv.org/releases/二.搭建opencv的编译环境(1)在自己的目录下新建一个opencv目录:mkdir opencv(2)拷贝opencv源码到opencv目录下:拷贝完后的目录如下图:(3)在opencv目录下新建两个文件夹:mkdir build installbuild:是构建目录。install:是安装

2021-01-04 21:23:28 9971 7

原创 linux下安装qt教程

环境:ubuntu16.04qt:5.5.1一.安装qt1.下载 Qt Creator:(1)可以在linux下载 Qt Creator,运行如下命令:wget http://download.qt.io/new_archive/qt/5.5/5.5.1/qt-opensource-linux-x64-5.5.1.run(2)可以在windows下从官网下载好 Qt Creator后,复制到linux下。(3) 下载好后的Qt Creator如图所示:2.安装Qt Creator(1)

2021-01-03 10:38:39 13787 1

原创 linux下/proc/pid/maps和pmap命令详解

一.示例代码:1.创建pmap.c文件:vi pmap.c2.输入如下内容:#inculde <stdio.h>int main(){ char *str; str = (char *) malloc(15); while(1) { ; } return 0;}3.编译pmap.c文件:gcc pmap.c -o pmap4.运行pmap可执行

2021-01-01 17:26:17 6528 8

原创 linux下NUMA实战

环境:centos7一.NUMA介绍见我的上一篇博客NUMA介绍二.numactl工具numactl工具可用于查看当前服务器的NUMA节点配置、状态,可通过该工具将进程绑定到指定CPU core,由指定CPU core来运行对应进程。这个命令可以将某个进程绑定到某个node或某个node上的某个或某组核心上。1.安装numactl工具:yum -y install numactl2.numactl工具使用:numactl -H 查看当前服务器的NUMA配置。服务器共划分为4

2020-12-31 20:24:20 2363 1

原创 linux下numa详解

一.SMP介绍即对称多处理器结构,是指多个CPU对称工作,无主次或从属关系。各CPU共享相同的物理内存,每个 CPU访问内存中的任何地址所需时间是相同的,因此SMP也被称为一致存储器(UMA)。对SMP计算机进行扩展的方式包括增加内存、使用更快的CPU、增加CPU数量、扩充I/O(槽口数与总线数)以及添加更多的外部设备(通常是磁盘存储)。SMP服务器的主要特征是共享,系统中所有资源(CPU、内存、I/O等)都是共享的。也正是由于这种特征,导致了SMP服务器的主要问题,那就是它的扩展能力非常有限。对于SM

2020-12-31 19:39:28 3076 1

原创 linux下自己编写的内核模块的调度策略

环境:ubuntu16.04一.介绍在linux中为我们提供了内核接口让我们可以编写内核模块,将内核模块加入到内核中运行。但是内核模块是以何种策略来调度的?二.编写内核模块编写hello.c:vi hello.c在hello.c中输入如下代码://必要的头文件#include <linux/module.h>#include <linux/kernel.h>#include <linux/init.h>//模块许可证声明(必须)MODULE_LI

2020-12-29 10:13:59 1074 4

原创 linux下TASK_UNINTERRUPTIBLE解析

一.TASK_UNINTERRUPTIBLE状态介绍TASK_UNINTERRUPTIBLE状态是一种不可中断的睡眠状态,不可以被信号打断,必须等到等待的条件满足时才被唤醒。这个状态通常在进程必须等待时不受干扰或所等待的事件很快发生时使用。二.进程出现TASK_UNINTERRUPTIBLE状态解决方案在终端中输入命令:ps aux在出来的信息中有一列STAT状态,如果出现D状态就是TASK_UNINTERRUPTIBLE,出现这种状态时,你会发现你杀不死这种进程,但是linux内核已经想好了办

2020-12-29 08:50:47 4387 2

原创 linux下udev详解

一.udev简介udev是一个设备管理工具,udev以守护进程的形式运行,通过侦听内核发出来的uevent来管理/dev目录下的设备文件。udev在用户空间运行,而不在内核空间 运行。它能够根据系统中的硬件设备的状态动态更新设备文件,包括设备文件的创建,删除等。设备文件通常放在/dev目录下。使用udev后,在/dev目录下就只包含系统中真正存在的设备。二.udev的配置文件主要的udev配置文件是/etc/udev/udev.conf文件。udev_root="/dev/"udev_rules

2020-12-28 21:46:47 11007 1

原创 linux下找出内核符号信息的4种方法

在内核调试中由一个符号的地址找到对应的符号名称非常有助于我们对内核的调试。下面将介绍4种方式来获得内核符号信息的4种方法。1.从 System.map 文件中得到地址System.map文件在编译内核时生成,包含了内核在编译时的静态符号信息。grep do_fork /boot/System.map-4.15.0-128-generic 就可以通过do_fork函数名来获得函数的地址grep ffffffff810905b0 /boot/System.map-4.15.0-128-generi

2020-12-27 09:34:58 3107 3

原创 linux下vmlinuz到vmlinux的转换

1.vmlinux与vmlinuz的区别vmlinux:是内核编译出来的原始的内核文件未经压缩的。是ELF格式的,但是我们一般不用。vmlinuz:是可引导的、压缩的内核。2.vmlinuz到vmlinux的转换方法(1)执行命令od -t x1 -A d vmlinuz-4.15.0-128-generic |grep "1f 8b 08 00"找到“1f 8b 08 00”这个数字,输出结果如下:(2)执行命令dd if=vmlinuz-4.15.0-128-generic bs=1 ski

2020-12-27 08:44:56 1549 2

原创 linux下开机自动挂载内核模块详解

环境:ubuntu16.04linux下开机自动挂载内核模块方法:1.打开/etc/moudles文件添加模块名字(不要带.ko)vim /etc/moudles2.将模块添加到/lib/modules/(uname -r)下的对应目录下例如:/lib/modules/4.15.0-128-generic/kernel/drivers/char3.分析可加载模块的依赖性,生成modules.dep文件和映射文件执行:depmod -a命令。4.关机重启执行:lsmod |grep he

2020-12-24 21:44:19 2418 2

原创 iperf网络工具使用小结

一.iperf使用方法及详解iperf的使用方法及详解可以参考我的另一篇博客https://editor.csdn.net/md/?articleId=111604162二.iperf使用过程中的小结以下来自工作中使用iperf时遇到的问题:使用iperf测试一个网络设备的传输速率:(1)测试环境:两台windows7的笔记本电脑和一个网络设备。测试方法:两台笔记本中间接网络设备。一个笔记本发送数据,数据经过网络设备然后另一台笔记本来接收数据。按照网络设备的说明,此设备可以最大传输速率可以达到

2020-12-24 10:59:37 271 1

原创 网络测试工具iperf

一.iperf的简介:Iperf 是一个网络性能测试工具。iperf既可以使用在windows下,也可以使用在linux下。windows版本的使用教程——linux版本的使用教程二.iperf的功能:TCP(1)测量网络带宽(2)报告MSS/MTU值的大小和观测值(3)支持TCP窗口值通过套接字缓冲(4)当P线程或Win32线程可用时,支持多线程。客户端与服务端支持同时多重连接UDP(1)客户端可以创建指定带宽的UDP流(2)测量丢包(3)测量延迟(4)支持多播(5)支持多线程。

2020-12-24 10:13:43 152 1

原创 centos安装软件的时候,提示make: command not found

Centos中无法使用make,make install,命令 make: command not foundmake是gcc的编译器安装:yum -y install gcc automake autoconf libtool make安装g++:yum install gcc gcc-c++

2020-12-24 09:14:12 2070

原创 Linux下内存、Swap、Cache、Buff详解

环境:ubuntu16.041.执行命令free输出如下:Mem:是内存的使用情况。total:总内存大小。used:已经使用的内存大小(这里面包含cached和buffers和shared部分)。free:空闲的内存大小。shared:进程间共享内存(一般不会用,可以忽略)。buff:内存中写完的东西缓存起来,这样快速响应请求,后面数据再定期刷到磁盘上。cached:内存中读完缓存起来内容占的大小(这部分是为了下次查询时快速返回)。*available:显示还可以被应用程序使用的物理内

2020-12-24 08:59:09 1115 2

原创 linux下oops与ksymoops、System.map和kallsyms的关系

ghggkjj

2020-12-21 20:19:10 591 1

原创 linux中Image、zImage、bzImage、uImage、vmlinux和vmlinux的区别

(1)vmlinux:是内核编译出来的原始的内核文件未经压缩的。是ELF格式的,但是我们一般不用。(2)Image:是 Linux 内核镜像文件,但是 Image 仅包含可执行的二进制数据。 Image 就是使用 objcopy 取消掉 vmlinux 中的一些其他信息,比如符号表什么的。但是 Image 是没有压缩过的, Image 保存在 arch/arm/boot 目录下。Image是经过objcopy处理的只包含二进制数据的内核代码,它已经不是elf格式了,但这种格式的内核镜像还没有经过压缩.o

2020-12-19 21:44:02 2832 2

原创 linux下Kconfig与.config和Makefile详解

一.linux内核中Makefile、Kconfig、.config的关系(1)三者的作用Makefile:一个文本形式的文件,编译源文件的方法。Kconfig:一个文本形式的文件,内核的配置菜单。.config:编译所依据的配置(2)三者的关系简单来说就是去饭店点菜:Kconfig是菜单,Makefile是做法,.config就是你点的菜。在运行make menuconfig后在配置界面中出现的就是Kconfig中的选项,在界面中看到的已经配置好的选项就是从.config中读取出来的,当配置完

2020-12-19 14:08:34 4641 2

转载 Linux-4.4-x86_64 内核配置选项简介

https://blog.csdn.net/lc250123/article/details/80857265?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160725584919195271628048%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=160725584919195271628048&bi

2020-12-17 21:44:59 227

原创 linux下syslogd详解

这个程序的命令行参数如下:syslogd [ -a socket ] [ -f config-file ] [ -h ] [ -l hostlist ] [ -m interval ][ -n ] [ -p socket ] [ -r ] [ -s domainlist ] [ -v ]参数说明:-a socket指定额外需要监听的 socket ,最多指定19个,可以通过修改 syslogd.c 文件中的 MAXFUNIX 宏修改这个默认值。如果你将某些进程在chroot环境下运行,那么这个选

2020-12-14 20:02:53 2364 1

原创 linux下日志系统详解

一. syslog简介syslog是一种工业标准的协议,可用来记录设备的日志。在UNIX系统,路由器、交换机等网络设备中,系统日志(System Log)记录系统中任何时间发生的大小事件。管理者可以通过查看系统记录,随时掌握系统状况。UNIX的系统日志是通过syslogd这个进程记录系统有关事件记录,也可以记录应用程序运作事件。通过适当的配置,我们还可以实现运行syslog协议的机器间通信,通过分析这些网络行为日志,藉以追踪掌握与设备和网络有关的状况。二 .syslogd和rsyslogdsyslog

2020-12-14 19:51:53 1416

转载 linux下readelf详解

http://lnmp.ailinux.net/readelf

2020-12-14 17:56:15 401

转载 linux下objdump详解

https://www.cnblogs.com/sky-heaven/p/8547950.htmlhttps://www.cnblogs.com/jrglinux/p/6942476.htmlhttps://blog.csdn.net/freeplayer/article/details/45133721

2020-12-14 17:49:12 867

转载 linux下nm详解

https://blog.csdn.net/qq_41017902/article/details/107363409

2020-12-14 17:23:14 280

空空如也

空空如也

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

TA关注的人

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