- 博客(148)
- 收藏
- 关注
原创 什么是挂载?mount的用处在哪?
转自:https://blog.csdn.net/qq_39521554/article/details/79501714挂载是将磁盘的分区, 和操作系统的目录联系起来, 也就是说的挂载到一起.linux下的操作是用mount 比如: mount/dev/sda1 /home1.提一句Windows下,mount挂载,就是给磁盘分区提供一个盘符(C,D,E,...)。比如插入U盘...
2020-03-24 16:01:21 1097
原创 网络基础之网桥和交换机的工作原理及区别
网桥和交换机区别在叙述前,我们先一起看两幅图:1.网桥的连接模式:(红点处为HUB)2.交换机连接模式:从图中可以看到,网桥只有2个输入/出端口,而交换机有8个。嗯,是的,一开始的时候(那时候只有HUB这种设备),由于硬件水平不是很发达,人们为了提高局域网效率,减少广播风暴的出现,他们生产了网桥(一个只有两个输入/出端口的链路层设备,这时的网桥已经是个比较先
2017-12-13 16:11:32 601
原创 docker容器网络通信原理分析
概述自从docker容器出现以来,容器的网络通信就一直是大家关注的焦点,也是生产环境的迫切需求。而容器的网络通信又可以分为两大方面:单主机容器上的相互通信,和跨主机的容器相互通信。而本文将分别针对这两方面,对容器的通信原理进行简单的分析,帮助大家更好地使用docker。docker单主机容器通信基于对net namespace的控制,docker可以为在容器创建隔离的网络环
2017-12-13 15:33:26 360
原创 docker基础知识
1、什么是dockerdocker像操作系统中的一个应用程序,在linux操作系统中,做了资源的限制和隔离,使得容器能够独立的运行。2、docker可以做什么方便了程序的部署,以前程序的部署可能需要一些库的依赖。现在直接将整个环境打包为一个镜像,运行镜像之后就可以在任何地方进行部署。3、docker的组成部分(1)docker clientdocker是客户
2017-12-11 19:10:58 673
原创 Linux静态库和动态库的分析
1.什么是库在windows平台和linux平台下都大量存在着库。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。由于windows和linux的本质不同,因此二者库的二进制是不兼容的。本文仅限于介绍linux下的库。2.库的种类linux下的库有两种:静态库和共享库(动态库)。二者的不同点在于代码被载入的时刻不同。静态库的代码在编译过
2017-11-10 11:00:01 269
原创 libcurl中的回调函数
这个参数所设置的回调函数原型是这样的:size_t function( char *ptr, size_t size, size_t nmemb, void *userdata).这个回调函数被调用的时机是有响应数据到达,这些数据由ptr指向,大小是size*nmemb.到这里为止还是文档上的说法.从socket的角度考虑,响应数据自然不一定会是以0结尾的字符串,而应当被认为是流数据.只要
2017-09-24 18:29:43 6294
原创 sql插入数据,更新数据,删除数据
1、向数据表中插入数据。(1)插入一整行数据:insert into table_name values("所有的行")(2)插入部分数值insert into table(id,name...) values()(3)一次插入多行数据insert into table values(=------------------------),(-----------------
2017-09-14 16:32:20 632
原创 linux系统下性能调试工具。
http://www.brendangregg.com/linuxperf.htmlLinux 平台上的性能工具有很多,眼花缭乱,长期的摸索和经验发现最好用的还是那些久经考验的、简单的小工具。系统性能专家 Brendan D. Gregg 在最近的 LinuxCon NA 2014 大会上更新了他那个有名的关于 linux 性能方面的 talk (Linux Performan
2017-08-21 09:58:48 421
原创 浅谈UDP(数据包长度,收包能力,丢包及进程结构选择)
UDP数据包长度UDP数据包的理论长度udp数据包的理论长度是多少,合适的udp数据包应该是多少呢?从TCP-IP详解卷一第11章的udp数据包的包头可以看出,udp的最大包长度是2^16-1的个字节。由于udp包头占8个字节,而在ip层进行封装后的ip包头占去20字节,所以这个是udp数据包的最大理论长度是2^16-1-8-20=65507。然而这个只是udp数据
2017-08-10 16:30:33 742
原创 linux c下的c文件 h文件 o文件 so文件 a文件 可执行文件 gcc使用
linux下c语言工程:c文件:主要每个模块的原代码都在c文件中。h文件:每个c文件都跟着一个h文件,h文件的作用是放着c文件中函数的声明,结构体的定义,宏的定义等。o文件:目标文件。每个文件经过编译都会形成一个目标文件(二进制文件),多个目标文件链接后才能形成可执行文件。o文件如何形成: gcc -c a.c可执行文件:不论是c文件还是o文件,都是无法执行的,最终还要生成
2017-06-08 19:58:16 16139
原创 tcp发送和接收的原理
需要理解的3个概念1. TCP socket的buffer每个TCP socket在内核中都有一个发送缓冲区和一个接收缓冲区,TCP的全双工的工作模式以及TCP的流量(拥塞)控制便是依赖于这两个独立的buffer以及buffer的填充状态。接收缓冲区把数据缓存入内核,应用进程一直没有调用recv()进行读取的话,此数据会一直缓存在相应socket的接收缓冲区内。再啰嗦一点,不管进程是否
2017-05-29 15:29:26 7930 1
原创 linux c动态链接库的使用
本文以一个简单的例子,介绍linux下动态库的创建和使用操作。其中就无法找到动态库文件的问题简单介绍处理办法。动态链接库文件在windows平台下往往以.dll为后缀,而在linux平台则一般以.so为后缀,so是shared object的缩写。感觉在linux下构建动态链接库文件比在windows下省点功夫,使用gcc编译器的话,只需简单地在gcc命令行参数中加上-shared选项
2017-05-14 11:57:49 706
原创 crontab使用
基本格式 : * * * * * command 分 时 日 月 周 命令 第1列表示分钟1~59 每分钟用*或者 */1表示 第2列表示小时1~23(0表示0点) 第3列表示日期1~31 第4列表示月份1~12 第5列标识号星期0~6(0表示星期天) 第6列要运行的命令 crontab文件的一些例子: 30 21 * * * /usr/local
2017-05-12 18:12:28 225
原创 c语言变量声明与定义_extern
1 c语言中变量的声明与定义定义:在c语言中变量的定义为:”数据类型+变量名“的形式,比如 int a;系统会给定义的变量分配内存空间。变量的定义只能有一次。声明:对于变量的声明来说,形式为:“声明类型 + 数据类型 + 变量名”。比如 extern int a;声明是告诉编译器,这个变量已经定义过了,使用的时候,直接找到定义的地方使用就可以啦。在全局变量中,要先声明,在使用。比如:
2017-04-23 18:19:12 1790
原创 shell脚本
1、shell变量(1)赋值的时候,等号和变量之间不要有空格 a=“hello world”(2)赋值后,以后的使用前,在变量前加$echo $a2、字符串(1)字符串拼接为了防止变量和字符串分不清楚,可以用大括号分辨。${a}abc(2)字符串长度${#变量名称}(3)提取字符串 ${str:1:4} 表示从第二个字符开始,截取4个
2017-01-18 15:37:59 314
原创 计算字符个数 ---华为笔试题目
写出一个程序,接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。#include int sum_char(char *data,char c){ int num = 0; if(data == NULL) { return 0;
2017-01-02 22:44:49 434
原创 c语言之字符串
1、什么是字符串字符串就是零个或者多个字符,并且以一个位模式为全0的null字节结尾。2、字符串分类(1)字符串常量:这种字符串不能进行修改,存放在内存的常量区。char * p = "hello world";char p[] = "hello world";将字符串常量的首地址 ,赋值给指针变量。(2)可修改的字符串。如果要修改某个字符串,也就是
2016-10-31 14:24:43 337
原创 awk使用
1、awk脚本的结构awk 'BEGIN{ print "start" } pattern{ commands } END{ print "end" }' file2、awk的执行流程(1)首先执行BEGIN中的内容(2)执行完后,执行pattern中的内容,逐行处理file的内容,直到最后一行。(3)最后执行END中的内容3、awk中的for循环(1)
2016-10-29 15:44:14 270
原创 linux命令:rm ls touch cat
rmrm -r :删除整个目录rm -i : 删除的时候显示提示,询问是否删除rm -f : 不询问,进行删除 lsls -l : 显示整个目录的详细信息ls -t :按照时间顺序显示touch更改文件的时间戳cat连接两个文件cat file1.txt file2.txt > file.txt把file1.txt和f
2016-08-12 10:59:30 425
原创 gdb带参数调试
一般来说GDB主要调试的是C/C++的程序。要调试C/C++的程序,首先在编译时,我们必须要 把调试信息加到可执行文件中。使用编译 器(cc/gcc/g++)的 -g 参数可以做到这一点。如: > cc -g hello.c -o hello > g++ -g hello.cpp -o hello 如果没有-g,你将看不见程序的函数名、变量名,所代替的全是 运行时的内存地址
2016-07-21 16:09:13 1911
原创 Can't connect to local MySQL server through socket 问题解决
这个软件包原来的名字是LAMPP,但是为了避免误解,最新的几个版本就改名为 XAMPP 了。它可以在Windows、Linux、Solaris三种操作系统下安装使用,支持多语言:英文、简体中文、繁体中文、韩文、俄文、日文等。XAMPP是绿色的,而且不会开机自动启动。即使在Linux中,我还是喜欢绿色的软件。首先在Ubuntu安装MySQL-Client:sudo a
2016-06-13 16:58:32 1806
原创 大话存储——计算机IO
计算机的IO连接计算机的各个组成。计算机内部有三种IO总线,分别是控制总线、地址总线和数据总线。CPU、内存和硬盘之间是如何通过网络进行通信的:CPU如果从硬盘中读取数据,要向磁盘控制器发出信号,这个信号分为三部分(1、控制信号(读还是写)2、数据信息地址 3、目的地址)发给磁盘控制器后,读的操作是不用经过CPU的,直接将磁盘的数据读入内存,也就是DMA的形式。这期间是不需
2016-03-21 16:16:34 1203
原创 linux java 命令行引用jar包的方法 的整理
一般情况下:如果java 文件和jar 包在同一目录poi-3.0-alpha3-20061212.jar testTwo.java编译:javac -cp poi-3.0-alpha3-20061212.jar:. testTwo.java执行:java -cp poi-3.0-alpha3-20061212.jar:. testTwo如果java文件和jar包不在同一目录~/poi-3.0-a
2016-03-14 11:40:47 2734
原创 OpenStack中Swift和cinder区别
swift是object storage(对象存储),将object(可以理解为文件)存储到bucket(可以理解为文件夹)里,你可以用swift创建container,然后上传文件,例如视频,照片,这些文件会被replication到不同服务器上以保证可靠性,swift可以不依靠虚拟机工作。所谓的云存储,OpenStack就是用swift实现的,类似于Amazon AWS S3(Simple
2015-12-20 17:51:00 2025
原创 google论文mapreduce
MapReduce:超大机群上的简单数据处理 摘要MapReduce是一个编程模型,和处理、产生大数据集的相关实现。用户指定一个map函数处理一个key/value对,从而产生中间的key/value对集。然后再指定一个reduce函数合并所有的具有相同中间key的中间value。下面将列举许多可以用这
2015-11-04 22:38:55 1174
原创 分布式文件系统:原理、问题与方法
转载:http://blog.csdn.net/it_yuan/article/details/8980849本地文件系统如ext3,reiserfs等(这里不讨论基于内存的文件系统),它们管理本地的磁盘存储资源、提供文件到存储位置的映射,并抽象出一套文件访问接口供用户使用。但随着互联网企业的高速发展,这些企业对数据存储的要求越来越高,而且模式各异,如淘宝主站的大量商品图片,其特点是文件较
2015-11-02 18:09:32 625
原创 java中static关键字
static关键字1、方便在没有创建对象的前提下对方法和变量进行访问。static关键字修饰的方法和变量,不受对象的创建的限制。在静态方法中,不可以调用非静态变量和非静态方法。而在非静态方法中,可以调用静态的变量和方法。2、jvm对static关键字标示的方法和变量的处理在类加载的过程中,就将static标示的内容加载到内存中,被初始化。静态代码块先被初始化
2015-11-01 16:24:00 305
原创 rpc的简单介绍
简介RPC(Remote Procedure Call,远程过程调用)是建立在Socket之上的,出于一种类比的愿望,在一台机器上运行的主程序,可以调用另一台机器上准备好的子程序,就像LPC(本地过程调用).越底层,代码越复杂、灵活性越高、效率越高;越上层,抽象封装的越好、代码越简单、效率越差。Socket和RPC的区别再次说明了这点。在传统的编程概念中,过程是由程序员在本地编译完成,并只
2015-10-25 22:42:01 615 1
原创 TCP三次握手和四次挥手
摘自http://blog.csdn.net/bird67/article/details/4871541TCP(Transmission Control Protocol) 传输控制协议TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:位码即tcp标志位,有6种标示:SYN(synchronous建立联机)ACK
2015-10-20 08:49:52 378
原创 Http1.0和http1.1
一个WEB站点每天可能要接收到上百万的用户请求,为了提高系统的效率,HTTP 1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求。但是,这也造成了一些性能上的缺陷,例如,一个包含有许多图像的网页文件中并没有包含真正的图像数据内容,而只是指明了这些图像的URL地址,当WEB浏览器访
2015-10-20 08:36:40 371
原创 分布式通信方式-----分布式消息传递
背景:随着社会的发展,经济的飞跃,传统的单系统模式(webApp+DB)已经很难满足业务场景的需要。企业系统开始不断演化成多个子系统并存协作的局面。大大降低了系统间的耦合性,更重要的便于子系统的扩展、升级、维护等。谈到系统间的协作,目前常用两种方式:1、基于Http协议通过客户端发起的get、post请求,服务端接收request请求,处理请求,得到
2015-10-19 13:55:25 5785
原创 进程间的调度问题
一、先来先服务和短作业(进程)优先调度算法1.先来先服务调度算法先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后放入就绪队列。在进程调度中采用FCFS算法时,则每次调度是从就绪队列中选择一个最先进入
2015-10-19 13:54:51 2591 3
原创 操作系统——进程
在操作系统中,操作系统将内存,网络,文件系统抽象为资源的统一抽象表示。1、什么是进程进程就是进入内存中正在执行的程序。把进程当做一组元素组成的实体。进程包括两个部分,一部分是代码部分,另一部分是代码相关的数据集合。进程控制块:每一个进程,在内核中都对应着一个进程控制块。进程控制块中保存着进程的所有控制信息。2、进程状态进程的创建和终止:现在的操作系统都支持透
2015-10-19 12:01:23 449
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人