发博文
个人资料
笑笑凡
笑笑凡
  • 博客等级:
  • 博客积分:249
  • 博客访问:3,257
  • 关注人气:1
公告
 
新浪微博
评论
加载中…
留言
加载中…
访客
加载中…
好友
加载中…
博文
linux发行版的防火墙技术有很多种,RedHat的几个发行版一般安装时会提示安装SELinux,很讨厌这玩意。最近用CentOS做mysql服务器,发现远程数据库程序连接又不成功(在做过mysql的grant授权情况下),搜查资料半天,发现是iptables在作祟。。iptables的用法比较复杂,下面就事论事,解决mysql不能远程访问的问题:

查看防火墙信息
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2011-03-16 21:17)

对于第一次接触驱动程序的人来说,printk一定不陌生,因为我们要用它在module加载时输出hello,world.对于print来说,这个很容易,但是printk却很有可能让你失望。第一次我在虚拟机上写该模块程序,平台是CentOS,发现虚拟终端怎么都不出现输出,几经周折后网上查到是要在主控制台。今天,我在笔记本上的gentoo写该程序,发现又出不来了,而且是主控制台也出不来。经过仔细学习研究,发现printk有如下特性:

printk输出信息时,会调用tty_write函数会使用fs指向的字符串,而fs是用户态的,因此调用printk时,printk会把fs修改为内核态数据段选择符ds中的值,从而指向正确的内核数据缓冲区,这个操作会先对fs进行压栈保存,tty_write调用完后再出栈恢复。总体上讲,print 于printk的区别就是fs与ds的区别。


另外,不能在主控制台显示输出的另一原因是,用printk,内核会根据日志级别决定是否把输出显示到控制台:

日志级别一共有8个级别,printk的日志级别定义如下(在include/linux/kernel.h中):
  #define KERN_EMERG 0
  #define KERN_ALERT 1
  #define KERN_CRIT 2
  #define KERN_ERR 3

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2011-03-12 00:59)
SSH隧道技术简介
由 Jianing Yang 于 星期三, 2009-09-30 23:03 发表
12
本文的受众

如果你遇到了以下问题,那么你应该阅读这篇文章
我听说过这种技术,我对它很感兴趣
我想在家里访问我在公司的机器(写程序,查数据,下电影)。
公司为了防止我们用XX软件封锁了它的端口或者服务器地址。
公司不让我们上XX网站,限制了网址甚至IP。
公司不让我们看关于XX的信息,甚至花血本买了XX设备,能够对内容进行过滤。一看XX内容,链接就中断了。
我爸是搞电脑的,他在家里的路由器上动了手脚,我不能看XXX了。

带着这些问题,我们先从什么是ssh隧道开始。
什么是SSH隧道

首先看下面这张图,我们所面临的大部分情况都和它类似。我们的电脑在右上角,通过公司带有防火墙功能的路由器接入互联网(当然可能还有交换机什么的在中间连接着你和路由器,但是在我们的问题中交换机并不起到什么关键性的作用)。右下脚的部分是一个网站的服务器,它是我们公司防火墙策略的一部分,也就是说公司不希望我们访问这个服务器。在右上角还有一台机器,它也是属于我们的。但是这台机器并不在我们
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
位运算符有:&(按位与)、|(按位或)、^(按位异或)、~ (按位取反)。
优先级从高到低,依次为~、&、^、|,

位运算符的一些简单应用:
按位与运算有两种典型用法,一是取一个位串信息的某几位,如以下代码截取x的最低7位:x & 0177。二是让某变量保留某几位,其余位置0,如以下代码让x只保留最低6位:x = x & 077。

按位或运算的典型用法是将一个位串信息的某几位置成1。如将要获得最右4为1,其他位与变量j的其他位相同,可用逻辑或运算017|j

按位异或运算的典型用法是求一个位串信息的某几位信息的反。如欲求整型变量j的最右4位信息的反,用逻辑异或运算017^j,就能求得j最右4位的 信息的反,即原来为1的位,结果是0,原来为0的位,结果是1。 交换两个值,不用临时变量,假如a=3,b=4。想将a和b的值互换,可以用以下赋值语句实现:
a=a^b; b=b^a; a=a^b;

取反运算常用来生成与系统实现无关的常数。如要将变量x最低6位置成0,其余位不变,可用代码x = x & ~077实现。以上代码与整数x用2个字节还是用4个字节实现无关。
当两个长度不同的数据进行位运算时(例如long型数据与int型数据)
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 

一、NOR和NAND的区别

NOR和NAND是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。紧接着,1989年,东芝公司发表了NAND flash结构,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。

  “flash存储器”经常可以与“NOR存储器”互换使用。许多业内人士也搞不清楚NAND闪存技术相对于NOR技术的优越之处,因为大多数情况下闪存只是用来存储少量的代码,这时NOR闪存更适合一些。而NAND则是高数据存储密度的理想解决方案。

NOR的特点是芯片内执行(XIP, execute In Place),这样应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中。

NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。

NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于flash的管理和需要特殊的系统接口。


【性能比较】

flash闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。任何flash器

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 

1. PC机的复位线和系统中的所有部件相连,包括CPU的RESET引脚

2. 系统上电开机时,主板电源系统发送低电平的'Power Good'信号,该信号送到复位接口电路的#RES端,产生时钟同步的复位正脉冲信号RESET,该脉冲发送到上面提及的复位线上,经由CPU的RESET引脚被CPU采集到,当正脉冲从1返回0时(下降沿),CPU启动内部初始化程序,初始化完成后进入实地址模式,其中CS:IP寄存器的状态是CS=F000H,IP=0000FFF0H;显然,CPU自初始化完毕后,系统的真正启动才开始,那么,也决定了第一条指令的地址为CS:IP=F000:FFF0H=FFFF0H单元。

3. 与此同时,开机协议规定,RESET时,BIOS ROM被加载到F0000H~FFFFFH,几乎所有BIOS在FFFF0H的指令为JMP BINI,这个BINI就是BIOS启动程序的首地址了

4. 结合2,3两点,PC机开机后的第一个程序就是BIOS启动程序了,这个启动程序的执行流程分为二步:
I. POST(Power On Self Test)
II. 按BIOS设置好的顺序逐一尝试加载启动媒体(硬盘,光驱,软驱,USB盘)的启动程序。对于我们常用的硬盘,则把0面,0道,1扇区的内容(512字节),也就是我们说的MBR加载到0000:7C00H单元开始的区域

BIOS是电源启动或重启

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 

我在华为工作十年的感悟——徐家骏

   
作者背景:徐家骏是华为数据中心的头,技术超级牛人,一级部门总监,华为副总裁,年收入过千万,数
据中心是用火山岩建的深入地下的一个大型建筑。防辐射,可防卫星的电子,雷达等手段的侦察。里面有像卫星发射中心那种超大屏幕,机房里满是三米的大型服务
器和大型计算机。连接整个华为全球的每一台终端,整个华为每天三十多万封邮件,海外和全球的同步研发,内部的信息管理,内部流程,华为的国内国际IP电话 都是通过出去。

  上周,我正式提交了离职报告,准备给自己的职业生涯一个很大的转折,这是我长时

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

杂谈

睡觉吧,明天休息,又是一个人的周末。想牛牛哦
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 

一、使用autotools工具自动生成Makefile

1.autoscan

在给定的目录及其子目录树中检查源文件(若没有给出目录,就在当前目录及其子目录检查)。它会搜索源文件以寻找一般的移植性问题,并创建一个文件configure.scan

该文件就是后面autoconf要用到的configure.scan的原型

在进行第二步之前,先将生成的configure.scan改名为configure.in,并修改为:

# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.

AC_PREREQ([2.65])
#AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])
AC_INIT(hello,1.0)
AC_CONFIG_SRCDIR([hello.c])
AC_CONFIG_HEADERS([config.h])

AM_INIT_AUTOMAKE(hello,1.0)
# Checks for programs.
AC_PROG_CC

# Checks for libraries.

# Checks for header

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2010-06-27 17:43)
标签:

it

分类: 计算机技术
    Log4J的组件

Log4j有三个主要的组件,分别是loggers,appenders和layouts.这三种类型的部件工作在一起就能允许开发者根据记录信息的类型和级别来记录日志信息,并且在系统运行时能够按照不同的格式将这三类信息存储在指定的地方。

Loggers组件的主要功能是提供相应API,根据不同配置的loggers将不同级别的log输入到控制台或文件,类似于java中经常用到的System.out.println,但是log4j封装后的loggers组件能够输出更丰富的信息,包括时间,线程,log所在程序的行数等。log的级别从低到高依次为TRACE,DEBUG,INFO,WARN,ERROR and  FATAL。假设定义某个类的log级别为INFO,则INFO以下级别的log,TRACE和DEBUG将不会输出。示例代码如下(运行时注意类名和包结构):

package com.ericsson.tm.log4j.test;

 

import org.apache.log4j.Level;

import org.ap

阅读  ┆ 转载 ┆ 收藏 
  

新浪BLOG意见反馈留言板 不良信息反馈 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有