Linux程序编译问题cc1: warnings being treated as errors

2016-1-29 杜世伟 Linux

AM_CFLAGS = -Wall -g $(MATCHBOX_PANEL_CFLAGS) \
        -I$(top_srcdir) -I$(top_builddir) -Werror 

把上面的 -Werror去掉,不把warnning当作error处理

阅读全文>>

标签: linux warnings

评论(0) 浏览(4634)

Linux下的五种IO模型

2016-1-14 杜世伟 Linux

Linux下的五种IO模型
概念说明

用户空间与内核空间

现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方)。操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证用户进程不能直接操作内核(kernel),保证内核的安全,操作系统将虚拟空间划分为两部分,一部分为内核空间,一部分为用户空间。针对linux操作系统而言,将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为内核空间,而将较低的3G字节(从虚拟地址0x00000000到0xBFFFFFFF),供各个进程使用,称为用户空间。

进程切换

为了控制进程的执行,内核必须有能力挂起正在CPU上运行的进程,并恢复以前挂起的某个进程的执行。这种行为被称为进程切换。因此可以说,任何进程都是在操作系统内核的支持下运行的,是与内核紧密相关的。

阅读全文>>

标签: linux select io epoll poll

评论(0) 浏览(11293)

Protobuf proto3 与 proto2 区别

2015-8-21 杜世伟 Linux

这是一篇学习笔记。在粗略的看了 Protobuf 的文档中关于 proto2 和 proto3 的说明后,记录下了几点 proto3 区别于 proto2 的地方。

总的来说,proto3 比 proto2 支持更多语言但 更简洁。去掉了一些复杂的语法和特性,更强调约定而弱化语法。如果是首次使用 Protobuf ,建议使用 proto3 。

1)在第一行非空白非注释行,必须写:

syntax = "proto3";

2)字段规则移除了 “required”,并把 “optional” 改名为 “singular”1;

在 proto2 中 required 也是不推荐使用的。proto3 直接从语法层面上移除了 required 规则。其实可以做的更彻底,把所有字段规则描述都撤销,原来的 repeated 改为在类型或字段名后加一对中括号。这样是不是更简洁?

阅读全文>>

标签: linux json protobuf

评论(0) 浏览(12881)

如何清空linux的DNS缓存

2015-7-21 杜世伟 Linux

如何清空linux的DNS缓存
一、Linux下清空DNS缓存

Linux下DNS缓存实现通常有两种方式:
一种是用DNS缓存程序NSCD(name service cache daemon)负责管理DNS缓存。
一种实现DNS缓存则是用Bind来架设Caching Name Server来实现。

如果是清除NSCD上的Cache,可重新启动NSCD服务来达成清除DNS Cache的效果。用这个命令:
# service nscd restart
或是
#/etc/init.d/nscd restart

如果是清除BIND服务器上的CACHE,用这个命令:
# rndc flush

如果你的DNS服务器是用dnsmasq实现的,用下面这个命令:
$ sudo /etc/init.d/dnsmasq restart

阅读全文>>

标签: linux dns NSCD Bind

评论(0) 浏览(2065)

系统架构设计理论与原则、负载均衡及高可用系统设计速记速记

2015-7-10 杜世伟 Linux

一、系统架构设计理论与原则 
这里主要介绍几种常见的架构设计理论和原则,常见于大中型互联系统架构设计。 

(一)、CAP理论 
1、什么是CAP 

著名的CAP理论是由Brewer提出的,所谓CAP,即一致性(Consistency)、可用性(Availability)和分区容错性(Partition Tolerance)。 

(1)、Consistency(一致性):更新操作成功并返回客户端完成后,分布式的所有节点在同一时间的数据完全一致(All nodes see the same data at the same time)。 

这里的一致性,一定要和传统的RDBMS中的事务一致性区分开。 

在传统的RDBMS中,事务具有ACID4个属性,即原子性(Atomicity),一致性(Consistency),隔离性(Isolation)和持久性(Durable)。 

ACID是关系型数据库的最基本原则,遵循ACID原则强调一致性,对成本要求很高,对性能影响很大。 

阅读全文>>

标签: linux 负载均衡 CAP 架构

评论(0) 浏览(12061)

linux中输入输出的标准文件描述符

2015-7-6 杜世伟 Linux

#!/bin/bash
#linux中输入输出的标准文件描述符。
#linux将对象当做文件来处理,并用标准文件描述符来表示每个文件对象。每一个文件描述符都可以标识一个会话中打开的文件。
#每个过程中最多可以有9个文件描述符,其中前三个被bash shell指定用于特殊用途

#文件描述符 缩写 描述
#0 STDIN 标准输入
#1 STDOUT 标准输出
#2 STDERR 标准错误
#对于一个终端来讲,标准输入STDIN就是键盘、标准输出STDOUT和标准错误STDERR就是屏幕
#我们可以通过重定向符(<,>)来改变输入、输出和错误。

阅读全文>>

标签: linux shell

评论(0) 浏览(16339)

linux wget 详解

2015-6-5 杜世伟 Linux

        wget是linux上的命令行的下载工具。这是一个GPL许可证下的自由软件。wget支持HTTP和FTP协议,支持代理服务器和断点续传功能,能够自动递归远程主机的目录,找到合乎条件的文件并将其下载到本地硬盘上;如果必要,wget将恰当地转换页面中的超级连接以在本地生成可浏览的镜像。由于没有交互式界面,wget可在后台运行,截获并忽略HANGUP信号,因此在用户推出登录以后,仍可继续运行。通常,wget用于成批量地下载Internet网站上的文件,或制作远程网站的镜像

阅读全文>>

标签: linux wget

评论(0) 浏览(6012)

shell 算术运算操作

2015-6-2 杜世伟 Linux

算术运算符指的是可以在程序中实现加、减、乘、除等数学运算的运算符。
Shell中常用的数学运算符如下所示。
 +:对两个变量做加法。
 -:对两个变量做减法。
 *:对两个变量做乘法。
 /:对两个变量做除法。
 **:对两个变量做幂运算。
 %:取模运算,第一个变量除以第二个变量求余数。
 +=:加等于,在自身基础上加第二个变量。
 -=:减等于,在第一个变量的基础上减去第二个变量。
 *=:乘等于,在第一个变量的基础上乘以第二个变量。
 /=:除等于,在第一个变量的基础上除以第二个变量。
 %=:取模赋值,第一个变量对第二个变量取模运算,再赋值给第一个变量。

阅读全文>>

标签: linux shell

评论(0) 浏览(9812)

./configure: error: SSL modules require the OpenSSL library

2015-5-19 杜世伟 Linux

make: *** No rule to make target `build', needed by `default'. Stop. ./configure: error: SSL modules require the OpenSSL library. You can either do not enable the modules, or install the OpenSSL library into the system, or build the OpenSSL library statically from the source

with nginx by using --with-openssl= option.


yum -y install openssl openssl-devel

标签: openssl openssl-devel

评论(0) 浏览(4450)

CentOS 7.0关闭默认防火墙启用iptables防火墙

2015-5-16 杜世伟 Linux

操作系统环境:CentOS Linux release 7.0.1406(Core) 64位
CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙步骤。

1、关闭firewall:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)

2、iptables防火墙(这里iptables已经安装,下面进行配置)
vi/etc/sysconfig/iptables #编辑防火墙配置文件
# sampleconfiguration for iptables service
# you can edit thismanually or use system-config-firewall
# please do not askus to add additional ports/services to this default configuration

阅读全文>>

标签: iptables centos firewall

评论(0) 浏览(14833)

Powered by emlog 沪ICP备2023034538号-1