自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

@_囚徒-2018_的家园

通信&互联网&大数据&移动互联网&云计算&分布式计算&分布式存储&机器学习&深度学习&并行计算&人工智能&神经网络&自然语言处理&模式识别&SDX

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

转载 c函数调用过程原理及函数栈帧分析

 今天突然想分析一下函数在相互调用过程中栈帧的变化,还是想尽量以比较清晰的思路把这一过程描述出来,关于c函数调用原理的理解是很重要的。1.关于栈        首先必须明确一点也是非常重要的一点,栈是向下生长的,所谓向下生长是指从内存高地址->低地址的路径延伸,那么就很明显了,栈有栈底和栈顶,那么栈顶的地址要比栈底低。对x86体系的CPU而言,其中---> 寄存器ebp(base po...

2018-04-02 00:14:41 922 1

原创 Apache + CGI(Python)的简单实用WEB程序的开发

1.Apache + CGI的架构图2.Apache + Python CGI的开发和配置方法(1)安装apache执行命令yum install httpd即可完成apache的安装,确保apache配置/etc/httpd/conf/httpd.conf中包含如下配置:ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

2017-11-23 17:33:43 1696

转载 开源许可证教程

一、什么是开源许可证开源许可证是一种法律许可。通过它,版权拥有人明确允许,用户可以免费地使用、修改、共享版权软件。版权法默认禁止共享,也就是说,没有许可证的软件,就等同于保留版权,虽然开源了,用户只能看看源码,不能用,一用就会侵犯版权。所以软件开源的话,必须明确地授予用户开源许可证。二、开源许可证的种类目前,国际公认的开源许可证共有80多种。它们的共同特征是,都

2017-11-14 15:59:56 559

转载 自由或开源软件的发展历史

《从 UNIX 到 GitHub:十个关于自由和开源软件历史的重要事件》https://my.oschina.net/editorial-story/blog/1543766

2017-09-27 11:26:46 1481

原创 windows下的一些常用命令

1.ipconfigipconfig /all #查看所有网络连接ipconfig /displaydns #清除DNS解析程序缓存 ipconfig /flushdns #清除DNS解析程序缓存 ipconfig /renew #更新指定适配器的IPv4地址,这个和DNS没关系哦,只是列出来2.netstatnetstat -r

2017-07-17 00:24:29 453

原创 网络隧道Tunnel技术

1.网络隧道技术隧道协议(Tunneling Protocol)是一类网络协议,它是一种数据包封装技术,它是将原始IP包(其报头包含原始发送者和最终目的地)封装在另一个数据包(称为封装的IP包)的数据净荷中进行传输。使用隧道的原因是在不兼容的网络上传输数据,或在不安全网络上提供一个安全路径。隧道协议通常(但并非总是)在一个比负载协议还高的层级,或同一层。备注:说白了,通过网络隧道技

2017-07-17 00:20:01 31889 1

原创 Nginx安装及nginx+php环境的搭建

1.Nginx安装在RedHat系Linux上,可以使用yum或源码安装nginx。yum安装linux直接通过yum intall nginx即可。如下是以源码的方式安装nginx的步骤:(1)在pcre官网上下载pcre-8.38的PCRE,并解压,不用安装啊,nginx使用--with-pcre=path可以静态编译pcre(2)在nginx官网上下载nginx-1.9.15版本

2017-07-16 12:51:20 544

原创 虚拟局域网VLAN介绍和配置

1.VLAN简介       虚拟局域网VLAN是一组逻辑上的设备和用户,这些设备和用户并不受物理位置的限制,可以根据功能、部门及应用等因素将它们组织起来,相互之间的通信就好像它们在同一个网段中一样,由此得名虚拟局域网。       IEEE于1999年颁布了用于标准化VLAN实现方案的802.1Q协议标准草案。VLAN技术的出现,使得管理员根据 实际应用需求,把同一物理局域网内的不同用户

2017-06-03 18:59:27 11238

原创 linux中路由策略rule和路由表table

1.linux系统中路由表tablelinux最多可以支持255张路由表,每张路由表有一个table id和table name。其中有4张表是linux系统内置的:(1)table id = 0系统保留。(2)table id = 255称为本地路由表,表名为local。像本地接口地址,广播地址,以及NAT地址都放在这个表。该路由表由系统自动维护,管理员不能直接修改。(3

2017-06-03 18:48:43 24822 4

原创 远程桌面控制软件

目前有很多的远程桌面控制软件,例如:1.TeamViewerTeamViewer是一个远程控制软件,兼容于Microsoft Windows、Mac OS X、Linux、iOS、Android操作系统,也可以通过网页浏览器连接已安装TeamViewer的电脑。该软件可以轻易的穿透防火墙。2.VNCVNC由Olivetti & Oracle研究室所开发,此研究室在1999年

2017-05-29 13:21:35 976

原创 RPM包快速制作工具fpm的安装和使用

1.fpm简介fpm工具用来快速构建安装包,例如rpm,deps以及OSX packages等等。例如我们已经在本机上编译并安装了某个软件,那么通过fpm工具,可以将安装文件达成一个rpm包。fpm支持的源文件的格式有gem、python module、pear、目录、rpm、deb、node packages等等。fpm支持的输出格式有deb、rpm、solaris、freebsd、tar、

2017-05-29 03:34:29 2287

原创 linux下RPM包制作

1.rpmbuildrpm是Redhat系linux系统的包管理器,使用rpmbuild工具可以制作rpm包。2.rpmbuild的配置文件(1)rpmrc配置文件/usr/lib/rpm/rpmrc/usr/lib/rpm/redhat/rpmrc/etc/rpmrc~/.rpmrc(2)macro宏配置文件/usr/lib/rpm/macros/usr/

2017-05-29 03:23:57 1773

原创 Apache Avro项目简介

1.Avro简介       Avro是一种远程过程调用RPC和数据序列化框架,是在Apache的Hadoop项目之内开发的。它使用JSON来定义数据类型和通讯协议,使用压缩二进制格式来序列化数据。它主要用于Hadoop,在Hadoop的其他项目中(Hbase,Hive)的客户端与服务端的数据传输中被大量采用。它可以为持久化数据提供一种序列化格式,并为Hadoop节点间及从客户端程序到Hado

2017-04-29 20:29:22 569

原创 域名注册及whois服务简介

1.ICANN与IANA        IANA,Internet Assigned Numbers Authority ,中文为互联网数字分配机构。ICANN,Internet Corporation for Assigned Names and Numbers,中文为互联网名称与数字地址分配机构。2016年美国政府同意将IANA正式移交给了ICANN,ICANN是一个中立的非盈利组织。IC

2017-04-29 01:14:29 1098

原创 linux中虚拟网卡配置

1.虚拟网卡虚拟网卡,又称为网卡别名。虚拟网络接口卡是基于主机的物理网卡的虚拟网络接口。每一个主机可以有多个物理网卡,而每个物理网卡可以有多个虚拟机网络接口卡(虚拟网卡)。2.虚拟网卡的配置方法(1)使用ifconfig命令临时配置,重启机器后失效ifconfig eth0:0 192.168.10.10 up #该命令就可以在eth0网卡上创建一个叫eth0:0的虚拟网

2017-04-09 22:16:48 2081

原创 静态路由 | 动态路由 | 默认路由的配置方法

1.静态路由、动态路由以及默认路由       路由器中路由表中的路由记录可以有动态路由和静态路由两种。       动态路由是根据路由协议自动计算生成的,而静态路由是由人工配置的。默认路由是静态路由中的一种,是由人工配置的,表示当一个路由转发请求在路由表中匹配不到路由规则时,被默认执行的路由策略。默认路由,也称为缺省路由或默认网关。       动态路由可以自动寻找最优路径,邻居路由

2017-04-09 22:14:39 11800

原创 Linux中网卡绑定bonding以及网络成组teaming技术学习

1.网卡绑定bonding技术(1)bonding技术简介网卡bonding技术是一种将多个物理网卡整合成一个逻辑网卡的技术,目的在于单个网卡的带宽或者容错能力。Linux内核2.x版本后,提供了Bonding技术的支持。Linux Bonding技术支持七种模式,有些模式用来提供负载均衡的功能,有些模式用来提供容错能力,有些模式则二者兼而有之。值得注意的是,有些模式是需要服务

2017-04-09 18:39:44 8036

转载 systemd学习小结

1.systemd我们知道,在内核加载完成后,内核会启动init进程(系统1#进程),init进程会根据/etc/inittab来启动一系列的系统服务。而现在systemd是用来替代init进程的,目前很多的Linux系统发行版都默认使用了systemd,例如RedHat从版本7开始默认使用systemd作为初始化进程。systemd的设计目标是为系统的启动和管理提供一套完整的解决方案。sys

2017-04-09 04:36:03 882

原创 linux中lspci命令简介

1.lspci命令spci,顾名思义,就是显示所有的PCI设备信息。PCI是一种总线,而通过PCI总线连接的设备就是PCI设备了。如今,我们常用的设备很多都是采用PCI总线了,如:网卡、存储等。在linux中直接使用lspci命令,就可以查看系统中所有PCI设备的信息。

2017-04-04 01:36:59 1653

转载 Python的方法解析顺序(MRO)

对于支持继承的编程语言来说,其方法(属性)可能定义在当前类,也可能来自于基类,所以在方法调用时就需要对当前类和基类进行搜索以确定方法所在的位置。而搜索的顺序就是所谓的「方法解析顺序」(Method Resolution Order,或MRO)。对于只支持单继承的语言来说,MRO 一般比较简单;而对于 Python 这种支持多继承的语言来说,MRO 就复杂很多。先看一个「菱形继承」的例子:

2017-02-23 15:07:57 656

原创 Cygwin的安装和使用

1.Cygwin是什么  Cygwin是一个用于Windows平台上的类UNIXshell环境。 它由两个组件组成:一个UNIX API库,它模拟UNIX操作系统提供的许多特性;以及Bash shell的改写版本和许多UNIX实用程序,它们提供大家熟悉的 UNIX命令行界面。前一个组件是一个Windows动态链接库(DLL)。后一个组件是一组基于Cygwin DLL的程序,其中许多是用未经

2017-01-24 23:56:38 775

原创 领域专用语言DSL简介

所谓领域专用语言(Domain Specific Language,DSL),其基本思想是“求专不求全”,不像通用目的语言那样目标范围涵盖一切软件问题,而是专门针对某一特定问题的计算机语言。几乎自计算机发明伊始,人们就开始谈论DSL使用DSL了。   Unix社群是一个频繁使用DSL的社群,他们通常称之为小语言或迷你语言。要构建一种DSL,按最常见的Unix风格的做法,就是先定义它的语法,然后

2017-01-24 23:07:15 1732

原创 标准时间GMT|UTC以及NTP协议学习

1.GMT时间        GMT,Greenwich MeanTime,中文名为格林尼治时间。英国的格林尼治这个城市在经度为零的地球经线上,所以地球以格林尼治所在的0度经线为标准,分为24个时区。自格林尼治以东依次为东一区、东二区等等,自格林尼治以西依次为西一区、西二区等等。例如,北京是处在东八区,和格林尼治相比,时间快了8个小时。        理论上来说,格林尼治标准时间的

2017-01-24 17:36:38 3527

转载 代理自动配置PAC学习

什么是 PACPAC,一个自动代理配置脚本,包含了很多使用 JavaScript 编写的规则,它能够决定网络流量走默认通道还是代理服务器通道,控制的流量类型包括:HTTP、HTTPS 和 FTP。它是一段 JavaScript 脚本:function FindProxyForURL(url, host) { return "DIRECT";}

2017-01-22 11:00:39 11772

原创 postMan介绍和使用小结

1.postMan简介  postMan是一款功能强大的网页调试与发送网页HTTP请求的工具。postMan能够发送任何类型的HTTP请求(GET, HEAD, POST,PUT..),附带任何数量的参数和HTTP headers。支持不同的认证机制(basic, digest,OAuth),接收到的响应语法高亮(HTML,JSON或XML)。postMan既可以以chrome浏览器插

2017-01-07 18:11:18 8983 2

转载 主流浏览器内核介绍

内核首先得搞懂浏览器内核究竟指的是什么。浏览器内核又可以分成两部分:渲染引擎(layout engineer 或者 Rendering Engine)和JS 引擎。它负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入 CSS 等),以及计算网页的显示方式,然后会输出至显示器或打印机。浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。所有网页

2017-01-06 23:46:46 320

转载 JavaScript的模块编程与require.js的使用

1.JavaScript的模块编程概念   网页越来越像桌面程序,需要一个团队分工协作、进度管理、单元测试等等。开发者不得不使用软件工程的方法,管理网页的业务逻辑。JavaScript模块化编程,已经成为一个迫切的需求。理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块。          但是,Javascript不是一种模块化编程语言,它不支持"类"(clas

2016-12-31 23:21:19 313

原创 Node.js基础学习

1.Node.js简介Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google chrome的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。nodejs的出现让JavaScript可以运行在服务端,而不是只局限于运行在各种浏览器环境中。Node.js可以解析并执行js代码,而且它还有如下优点:(1)没有各种浏览器的安全级限制(2)提供

2016-12-31 18:40:47 542

原创 Node.js中的模块管理

1.Node.js中的模块一个Node.js文件就是一个模块,这个文件可能是JavaScript代码、JSON 或者编译过的C/C++ 扩展。且在该文件中需要使用exports和module.exports将模块中的函数和变量导出。然后在要使用模块的文件中使用require('./filename')来引入模块。 2.举例说明(1)使用exports.xxx的方式对外暴露功能/

2016-12-31 18:31:46 735

原创 JavaScript的数据类型的隐式转换

Javascript是弱类型的语言,也就是Javascript中定义变量时,不会显式地指明一个变量的数据类型。例如var aa=3。+/-/==操作符可以将JavaScript中的变量进行隐式转换,eg:表达式"12"+ 34的结果是46。string类型的12被隐式转换成整型12;===是严格等于操作符,先判断类型,再判断数据内容。必须是类型和内容完全一样,才会是严格相等。

2016-12-31 16:17:36 243

转载 JavaScript 运行机制详解:再谈Event Loop

一年前,我写了一篇《什么是 Event Loop?》,谈了我对Event Loop的理解。上个月,我偶然看到了Philip Roberts的演讲《Help, I'm stuck in an event-loop》。这才尴尬地发现,自己的理解是错的。我决定重写这个题目,详细、完整、正确地描述JavaScript引擎的内部运行机制。下面就是我的重写。进入正文之前,插播一条消息。我的新书

2016-12-28 02:14:18 497

原创 javascript中的闭包概念

1.闭包的定义闭包是指那些能够访问独立(自由)变量的函数 (变量在本地使用,但定义在一个封闭的作用域中)。换句话说,这些函数可以“记忆”它被创建时候的环境。说白了,就是闭包是一个可以访问封闭作用域中定义的变量的函数。 2.举例说明普通的javascript函数:function init() { var name = "Mozilla"; function disp

2016-12-26 02:29:54 370

原创 URL中的#号(URL哈希Hash)

一、#的涵义#代表网页中的一个位置。其右面的字符,就是该位置的标识符。比如,  http://www.example.com/index.html#print就代表网页index.html的print位置。浏览器读取这个URL后,会自动将print位置滚动至可视区域。为网页位置指定标识符,有两个方法。一是使用锚点,比如,二是使用id属性,比如。二、H

2016-12-25 03:22:39 2081

原创 PHP HelloWorld程序

php脚本以如下格式来书写:<?php// PHP 代码?>例如php的helloworld程序为:<?phpecho "Hello World!!!"?>

2016-12-25 02:33:56 728

原创 在Windows的命令提示符cmd中使用ssh工具--OpenSSH for Windows

在windows上面要ssh linux主机,不外乎常见的就是用winscp/pietty/putty/SecureCRT等工具软件。当然我们也可以直接在命令提示符cmd中使用ssh工具,这个时候就需要安装OpenSSH For Windows工具。安装方法如下:(1)现在OpenSSH ForWindows工具到http://sourceforge.net/projects/

2016-12-18 18:41:00 35570 2

原创 使用vagrant+VirtualBox搭建虚拟开发环境

1.VagrantVagrant是一个虚拟机管理和配置工具,所以虚拟机系统还得靠专门的虚拟化软件,Vagrant它底层支持VirtualBox、VMware甚至AWS作为虚拟机系统。通常情况下,如果你的 Vagrant 环境需要封装给其他小伙伴们用,最好使用 VirtualBox这个支持 OSX/Linux/Win 三大宿主系统的免费软件作为后端。而且,Vagrant默认已经内置了

2016-12-18 18:21:52 20128 1

原创 C语言标准发展历史以及各种libc实现

1.C语言的标准发展历史C语言的标准经历过C89、C90、C99以及C11几个版本的发展(1)C891983年,美国国家标准协会ANSI组成了一个委员会,X3J11,为了创立C的一套标准。经过漫长而艰苦的过程,该标准于1989年完成,并在作为ANSIX3.159-1989 "Programming Language C"正式生效。这个版本的语言经常被称作"ANSIC",或有时称为"

2016-11-28 01:12:50 3284

转载 搭建私有的PyPI仓库源

1.官方PyPI源以及私有PyPI源  通常我们使用pip安装python包,都会默认从https://pypi.python.org/pypi上安装,非常方便。但是有些是公司内部的项目,不方便放到外网上去,这个时候我们就要搭建自己的内网pypi源服务器,需要安全并且拥有同样的舒适体验。所以我们有些公司中,就需要搭建自己的PyPI仓库,Python官方有个pypi私有源实现的说明(ht

2016-11-27 16:19:15 12789

转载 htpasswd的命令学习小结

1.htpasswd是开源 http服务器apache httpd的一个命令工具,用于生成 http基本认证的密码文件。说白了,可以使用这个htpasswd工具将明文的账号密码经过算法进行加密,且将密文写入到文件中。然后某些服务器接收到客户端传递过来的用户名和密码后,用相同的加密算法处理后,和htpasswd文件中的账号密码密文进行比较,如果一直就认为账号校验通过。 2

2016-11-27 12:02:54 1133

转载 Supervisor使用简介

1.Supervisor简介  Supervisor是一个 Python开发的client/server系统,可以管理和监控类 UNIX操作系统上面的进程。它可以同时启动,关闭多个进程,使用起来特别的方便。supervisor主要由两部分组成:(1)supervisord(server部分)主要负责管理子进程,响应客户端命令以及日志的输出等;它负责启动所管理的进程,

2016-11-13 18:04:36 478

空空如也

空空如也

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

TA关注的人

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