
Linux-系统
文章平均质量分 55
zhang_dawei666
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
valgrind memcheck 检测机制学习总结
valgrind memcheck 检测机制学习总结1、Valid-value (V) bits 作用:建立和维护值的有效性。 Memcheck实现了一个与真实CPU相同的合成CPU。 真实CPU处理,存储和处理的每一位(字面)数据在合成CPU中都有一个相关的“有效值”位,表示附...原创 2018-08-19 23:34:00 · 763 阅读 · 0 评论 -
fork那点事
fork那点事fork 总结fork()通过复制调用进程来创建一个新进程。在Linux下,fork()是通过使用写时复制页面实现的,所以它唯一的缺点是复制父页表的时间和内存,并为子进程创建独特的任务结构。fork调用的一个奇妙之处就是它仅仅被调用一次,却能够返回两次,它有三种不同的返回值: 1)在父进程中,fork返回新创建子进程的进程ID; 2)在子进程中,fork返回0; 3...原创 2018-04-29 12:41:29 · 315 阅读 · 0 评论 -
挂载硬盘到Linux系统
挂载硬盘到Linux系统前言硬盘用一段时间后可能因为各种各样的因素导致硬盘的空间越来越少。为了防止没有硬盘空间而导致的数据丢失,我们可以增加硬盘。测试Linux系统识别硬盘插入硬盘到硬盘槽并检查硬盘是否被识别。下图红色显示的硬盘为最新的硬盘,表示硬盘已经识别。 对硬盘进行分区我们使用fdisk 命令来对/dev/sdb进行分区。下图是我分区的截图。 创建Linux文件系统硬盘在创建Linux文件系...原创 2018-04-26 15:21:46 · 693 阅读 · 0 评论 -
信号那点事(二)-信号集及相关操作
信号那点事(二)-信号集及相关操作前言 POSIX.1 定义了一个数据类型sigset_t用于表示信号集。 使用信号集处理信号的方式与原来的信号方式不一样。主要体现在sigaction函数上。一旦对给定的的信号设置了一个动作,那么在调用sigaction显示的改变信号的处理方式之前,该设置就一直一样。 信号集操作增加信号到信号集int sigaddset(sigset_t *set, ...原创 2018-05-10 13:28:24 · 317 阅读 · 0 评论 -
信号那点事(一)
信号概念 信号是软件中断。很多⽐较重要的应⽤程序都需处理信号。信号提供了⼀种处理异步事件的⽅法。每个信号都有⼀个名字。这些名字都以三个字符SIG开头。 查看系统支持的信号 在Linux系统中可以使用kill -l命令来查看系统支持的信号。 信号发生的条件1) 进程调用kill函数或使用kill命令发送信号给其他进程。2) 系统内核异常产生的中断。如硬件损坏等等。 信号...原创 2018-04-30 11:27:14 · 338 阅读 · 1 评论 -
部署DNS 服务器
部署DNS 服务器前言 域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。部署DNS 服务器centos系统配置关闭防火墙# systemctl stop fir...原创 2018-04-22 19:37:36 · 1675 阅读 · 0 评论 -
fork后父子进程共享文件描述符
fork后父子进程共享文件描述符测试程序#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>#include <time.h>#include <stdlib.h&g原创 2018-04-18 11:52:54 · 1385 阅读 · 0 评论 -
OpenSSL 签名验签接口调用及测试
OpenSSL 签名验签接口调用及测试概述 项目中我们经常会遇到开发签名、验签功能。签名、验签是可信赖网络的一个重要功能。因此,我记录了OpenSSL 签名验签接口调用及测试。相关测试代码base64编码相关的代码base64.h头文件#ifndef BASE64_H#define BASE64_H#include <stdio.h>#include <stdlib...原创 2018-04-04 19:17:17 · 4335 阅读 · 5 评论 -
验证证书请求是否与秘钥匹配
验证证书请求是否与秘钥匹配验证脚本#!/bin/shif [[ "$1" = "" || "$2" = "" ]]; then echo "certRequestCheck.sh requestfile keyfile " exit 0;else value=`openssl req -text -noout -in $1 | grep "Public Key原创 2018-04-17 17:05:41 · 922 阅读 · 0 评论 -
验证公钥证书是否和秘钥匹配
验证公钥证书是否和秘钥匹配验证脚本#!/bin/shif [[ "$1" = "" || "$2" = "" ]]; then echo "certCheck.sh certfile keyfile" exit 0;else #certModuleMd5=`openssl x509 -noout -modulus -in $1 | openssl md5` #privateMod...原创 2018-04-17 16:56:05 · 3312 阅读 · 0 评论 -
epoll 总结
epoll 总结epoll概述 在网络通信中,由于网络环境复杂、程序的健壮性不佳等因素的存在,会造成通信双方不能正常通信。 常见的不稳定因素如下: 1)服务器进程终止。客户端在不知道服务器进程已终止的情况下发送数据给服务器。如果客户端程序 没有处理SIGPIPE信号,客户端程序会崩溃。 2)客户端与服务器的网络不通。客户端发送的数...原创 2018-06-12 00:54:50 · 2360 阅读 · 0 评论 -
进程间数据共享--文件与内存的映射
进程间数据共享--文件与内存的映射前言 在运行strace -c nginx的时候,我们可以看出mmap、mprotect和munmap使用的比例是很高的。因此可以看出nginx运行的时候有很大一部分时间在处理文件与内存之间的映射。接口说明mmap mmap在调用进程的虚拟地址空间中创建一个新的映射。 #include <sys/mman.h> void *m...原创 2018-06-09 12:13:03 · 1353 阅读 · 0 评论 -
阻塞IO与非阻塞IO
阻塞IO与非阻塞IO阻塞IO 默认情况下,Linux系统上的所有文件描述符都以阻塞模式开始。 这意味着I / O系统调用如读取,写入或连接可能会阻塞。 如果你在stdin上调用read,那么你的程序将被阻塞,直到数据实际可用,例如当用户实际上在他们的键盘上物理键入字符时。具体来说,内核会将进程置于“睡眠”状态,直到数据在stdin上可用。 网络传输中,如果你尝试从TCP套接字读取,则...原创 2018-06-02 11:41:29 · 594 阅读 · 0 评论 -
gcc 编译优化标志说明
gcc 编译优化标志说明 在编译过程中我们经常会使用gcc及其相关的编译参数来编译源文件。编译Nginx编译debug版本使用的gcc 参数如下: -pipe -O -W -Wall -Wpointer-arith -Wno-unused-paramete...原创 2018-08-19 23:16:00 · 2566 阅读 · 0 评论 -
-fpic 与-fPIC的区别
-fpic 与-fPIC的区别前言 在编译动态库的时候,我们应该需要使用-fpic 或-fPIC参数。如下所示: 然后,使用gcc或g++ 命令生成动态库pic 与PIC的异同 相同点:都是为了在动态库中生成位置无关的代码。...原创 2018-08-22 10:31:17 · 41033 阅读 · 1 评论 -
fork 与vfork 的异同
vfork 与fork异同总结前言 调⽤fork或vfork函数是Linux创建⼀个新进程的⽅法.fork 由fork创建的新进程被称为⼦进程(child process)。该函数被调⽤⼀次,但返回两次。两次返回的区别是⼦进程的返回值是0,⽽⽗进程的返回 值则是新⼦进程的进程ID...原创 2018-08-08 16:51:59 · 1259 阅读 · 0 评论 -
C程序的内存布局
C程序的内存布局C程序的典型内存表示由以下部分组成: 1.文本段(CPU 执行的机器指令) 2.初始化数据段(数据段) 3.未初始化的数据段(也称bss段) 4.栈(自动变量...原创 2018-08-08 14:21:42 · 781 阅读 · 0 评论 -
linux 系统中比较重要的库
linux 系统中比较重要的库在Linux平台开发过程中,有一些库很重要。因此在这里简单记录一下。librt 库的重要性librt库在Linux系统中很重要,这个库包括异步I / O,消息队列,进程调度,实时信号扩展,信号量,共享内存对象,...原创 2018-08-02 17:26:03 · 4362 阅读 · 0 评论 -
异步I/O(一)
异步I/O(一)概述 AIO可以一次性发出大量的read/write调用并且通过通用块层的IO调度来获得更好的性能,用户程序也可以减少过多的同步负载,还可以在业务逻辑中更灵活的进行并发控制和负载均衡。 POSIX异步I/O(AIO)接口允许应用程序启动一个或多个异步执行的I/O操作。应用程序可以选择以各种方式通知I/O操作的完成:通过传递信号,通过实例化线程或运行完后没有通知。 ...原创 2018-06-11 00:05:33 · 1422 阅读 · 0 评论 -
进程通信—管道
进程通信—管道概述 pipe函数创建一个管道,一个可用于进程间通信的单向数据通道。 数组pipefd用于返回两个指向管道两端的文件描述符。 pipefd [0]指的是管道的读取端。 pipefd [1]指的是管道的写入端。 写入管道写入端的数据由内核缓冲,直到从管道的读取端读取。 接口说明#include <unistd.h>int pipe(int pipefd[2]);#de...原创 2018-06-16 16:32:01 · 959 阅读 · 0 评论 -
gnu gcc 编译
gnu gcc 编译gnu gcc简介最初的GNU C编译器(GCC)由GNU Project的创始人RichardStallman开发。 Richard Stallman于1984年创立了GNU项目,以创建一个类似自由软件的类Unix操作系统,以促进计算机用户和程序员之间的自由和合作。 GCC(以前称为“GNU C编译器”)随着时代的发展而不断增长,以支持C(gcc),C ++(g ++),Ob...原创 2018-04-11 14:50:22 · 1423 阅读 · 0 评论 -
openssl 命令自动创建证书请求
openssl 命令自动创建证书请求前言使用openssl命令自动创建证书请求可以免去交互过程中的繁琐。ecc 算法证书请求#!/bin/sh`openssl ecparam -out private.pem -name secp384r1 -genkey `if [[ "$1" = "" || "$2" = "" || "$3" = "" || "$4"原创 2018-04-16 11:11:59 · 1569 阅读 · 0 评论 -
Linux 挂载
Linux 挂载前言 在Linux 系统中文件系统要能够链接到目录树才能被我们使用。将文件系统与目录树结合的动作我们称为“挂载”。挂载点一定是目录,该目录为进入该文件系统的入口。因此并不是你有任何文件系统都能使用,必须要“挂载”到目录树的某个目录后,才能够使用该文件系统。 挂载的相关命令查看文件系统及其挂载点[root@localhost ~]# df -T文件系统 ...原创 2018-04-15 17:39:40 · 333 阅读 · 0 评论 -
在Linux环境下配置jdk的环境变量
在Linux环境下配置jdk的环境变量1、前言在Linux环境下配置jdk的环境变量需要在环境变量中增加下面的三个变量:1) JAVA_HOME环境变量。它指向jdk的安装目录。2) PATH环境变量。作用是指定命令的搜索路径。在shell 环境执行命令时,会从PATH环境变量指定的路径中搜索命令。3) CLASSPATH环境变量。作用是指定类搜索路径原创 2017-12-06 16:02:15 · 449 阅读 · 1 评论 -
搭建ThinkPHP 5.0
搭建ThinkPHP 5.0+nginx+php+openssl原创 2016-10-20 10:04:36 · 3691 阅读 · 0 评论 -
linux 查看内存
linux 查看内存原创 2016-12-31 21:34:34 · 1365 阅读 · 0 评论 -
IDE 和SCSI简介
IDE 和SCSI 的简介 一、背景 在学习Linux的过程中,经常会遇到IDE和SCSI概念。由于不了解IDE和SCSI,所以找了点资料学习。原创 2016-12-27 23:47:23 · 8278 阅读 · 0 评论 -
linux环境定义命令快捷键
linux 定义快捷命令原创 2016-12-27 00:03:45 · 1570 阅读 · 0 评论 -
解决拷贝的虚拟机网卡配置不正确的问题
解决拷贝的虚拟机网卡配置不正确的问题 在开发的过程中,我们经常会拷贝虚拟机。有时候我们拷贝来的虚拟机的网卡不能正常启动。出现“没有找到合适的设备:没有找到可拥有链接System eth0的设备”。原创 2016-12-15 10:22:26 · 3076 阅读 · 0 评论 -
scp error! Host key verification failed. lost connection
一、问题:有时候使用scp发送文件到远程服务器,出现如下错误:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@原创 2016-11-21 12:50:37 · 3503 阅读 · 0 评论 -
配置tomcat的jre环境
配置tomcat的jre环境原创 2016-11-29 18:37:18 · 19661 阅读 · 0 评论 -
解决yum install redhat-lsb遇到的问题
解决yum install redhat-lsb遇到的问题 一、 背景:centos 7.2.1511 系统中没有lsb_release命令。 二、解决方法:在终端中输入:yum install -y redhat-lsb 三、遇到的问题如下: Loaded plugins: fastestmirror, langp原创 2016-10-18 12:57:12 · 17274 阅读 · 0 评论 -
进程间通信
进程间通信前言 大多数程序都涉及到通信。通信是信息交互的方式。因此了解进程间的通信非常重要。为了更好的学好进程间的通信,我对进程间的通信类型进行了如下总结。进程间通信类型参考资料《Unix 网络编程:卷二;进程间通信》原创 2018-01-16 00:49:25 · 273 阅读 · 0 评论 -
Linux 文件操作总结(1)
Linux 文件操作总结(1) 准备测试文件(2) 按字节大小分割split -b 10m access.log new_file_prefix (1) 按行数分割split -l 300 access.log new_file_prefix 不带缓存的I/O 函数1)o p e n、r e a d、w r i t e、lseek 、c l o s e单个进程和文件描述符的关系多个进程和文件描述符...原创 2018-03-08 20:40:56 · 630 阅读 · 0 评论 -
测试redis EXPIRE设置过期时间并读取数据
测试redis EXPIRE设置过期时间命令概述本例子的测试场景是这样的:设置一条数据的过期时间,待数据过期后再获取redisReply 结果中的数据。测试例子:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <hiredis.h>int main(int argc, ...原创 2018-03-16 16:35:07 · 3393 阅读 · 1 评论 -
linux 文件系统
linux 文件系统概述 文件系统其实就是一种数据的组织方法。格式化硬盘后操作系统就能在硬盘上进行操作。文件系统组织数据的方法 文件系统通常会将权限与属性放置到 inode 中,实际数据则放置到 data block 区块中。 另外,还有一个超级区块( superblock) 会记录整个文件系统的整体信息,包括 inode 与 block 的总量、使用量、剩余量等。每个 inode...原创 2018-04-14 17:34:17 · 1403 阅读 · 0 评论 -
慢速系统调用(slow system calls)和快速系统调用(fast system calls)之间的区别
慢速系统调用(slow system calls)和快速系统调用(fast system calls)之间的区别概述 慢速系统调用(slow systemcalls)和快速系统调用(fast system calls)相关的名词在系统I/O资料里经常出现。因此了解这些名词的定义对理解系统I/O的架构非常有帮助。系统调用实际上有三种情况快速系统调用 一些系统调用立即返回。 “...原创 2018-04-09 13:45:07 · 3569 阅读 · 0 评论 -
标准I/O的缓存
标准I/O的缓存概述 标准 I / O库,它们的操作则是围绕流( s t r e a m)进⾏的 。当⽤标准I / O库打开或创建⼀个⽂件时,我们已使⼀个流与⼀个⽂件相结合。 当打开⼀个流时,标准 I / O函数f o p e n返回⼀个指向F I L E对象的指针。该对象通常是⼀个结构,它包含了I / O库为管理该流所需要的所有信息:⽤于实际 I / O的⽂件描述符,指向流缓存的指针...原创 2018-04-01 15:28:47 · 404 阅读 · 0 评论 -
进程学习总结(一)
进程学习总结(一) 概述 在计算机中,进程是正在执行的计算机程序的实例。它包含程序代码及其当前活动(即程序的状态)。一个进程可能由多个并行执行指令的执行线程组成。 C程序的组成C程序⼀直由下列⼏部分组成:正⽂段 这是由C P U执⾏的机器指令部分。通常,正⽂段是可共享的,所以即使是经常执⾏的程序(如⽂本编辑程序、 C编译程序、 s h e l l等)在存储器中也只需有⼀个副本,另外,正...原创 2018-04-09 09:59:54 · 621 阅读 · 0 评论 -
Linux设备文件(Device file)
Linux设备文件(Device file) 设备文件概述在类Unix操作系统中,设备文件或特殊文件是设备驱动程序的接口,出现在文件系统中就好像它是普通文件一样。在MS-DOS,OS / 2和Microsoft Windows中也有特殊文件。 这些特殊文件允许应用程序通过标准输入/输出系统调用使用其设备驱动程序与设备进行交互。使用标准系统调用简化了许多编程任务,并且无论设备的特性和功能如何,都可以...翻译 2018-03-31 17:30:09 · 19448 阅读 · 0 评论