凡东's profile凡东的共享空间PhotosBlogNetwork Tools Help

Blog


    August 21

    Linux操作系统下硬盘挂载方法

    新手学堂:Linux操作系统下硬盘挂载方法

    挂载Windows分区

    1. 手工挂载
    在Linux中也可以读取Windows分区,包括fat32格式的和ntfs格式的。首先你得知道Linux下对硬盘分区的称呼。比如Windows下的C盘通常是hda1,D盘是hda5,E盘是hda6,等等。详细情形请看相关文档。

    要挂载Windows分区,首先得确定你所用的Linux系统的locale(这个locale包括了系统使用的语言和字符的编码等信息)。中文 Linux 常用的locale是zh_CN.gb2312,zh_CN.gbk,zh_CN.gb18030 和 zh_CN.UTF-8 。

    在默认安装中,Debian Linux和Mandriva Linux的locale是zh_CN.gb2312,而Ubuntu Linux和Fedora Linux的locale是zh_CN.UTF-8 。最好不要随便更改locale,否则会出现很多乱码的情形。要查看系统的locale,可以在终端下输入下面的命令查看:

    echo $LANG

    其次,你得知道你的windows分区的格式,这个在windows的分区的属性中可以看到,一般是fat32和ntfs格式的。

    假设你的locale是zh_CN.UTF-8,要挂载一个/dev/hda1的fat32格式的windows分区到/mnt/C目录(若这个目录不存在手工新建一个),可以在终端下输入以下命令(在Ubuntu里还需要在这行命令前加上sudo):

    mount -t vfat /dev/hda1 /mnt/C -o iocharset=utf8

    如果你的locale不是zh_CN.UTF-8,把上面命令的utf8改为gb2312;如果这个windows分区是ntfs格式的,将上面命令的vfat改为ntfs。

    这样挂载的ntfs格式的分区,只有root能读取,如果需要让普通用户也能读取,需要再加上umask=022选项,如下:
    mount -t ntfs /dev/hda1 /mnt/C -o iocharset=utf8,umask=022

    类似地,如果要让挂载的分区允许所有用户读取和修改,可以将上面的umask=022,改为umask=0就可以了。

    卸载分区就简单多了:
    umount /dev/hda1

    有时候卸载分区时提示分区繁忙(device is busy),可以先用下面的命令看看哪个进程在使用此分区:
    fuser -cu /dev/hda1

    假如屏幕的输出为
    /dev/hda1: 8463m(cck)

    则可以用此命令看这个进程对应的程序名字:
    ps 8463

    然后可以用此命令结束此进程:
    kill -9 8463

    这样就可以正常卸载分区了。

     

    A盘:       mount   /dev/fd0         /mnt/floppy  
      光盘:     mount   /dev/cdrom     /mnt/cdrom  
      C盘:       mount   /dev/hda1       /mnt/disk-c     (要提前建立/mnt/disk-c,下同)  
      D盘:       mount   /dev/hda5       /mnt/disk-d      
      E盘:       mount   /dev/hda6       /mnt/disk-e      
      U盘:       mount   /dev/sda1       /mnt/disk-u  

     



    2. 自动挂载
    要让Linux系统启动时自动挂载windows分区,可以把上述的命令写入 /etc/fstab 文件中,下面是一个例子:


    # /etc/fstab: static file system information.##[file system] [mount point] [type] [options] [dump] [pass]proc /proc proc defaults 0 0/dev/hda9 / ext3 defaults 0 1/dev/hda13 none swap sw 0 0/dev/hdc /media/cdrom iso9660 ro,user,noauto 0 0/dev/fd0 /media/floppy auto rw,user,noauto 0 0/dev/hda10 /mnt/debian ext3 defaults 0 0/dev/hda1 /mnt/C ntfs utf8,umask=022 0 0/dev/hda5 /mnt/D vfat utf8,umask=0 0 0

     

     

     


    原文链接:http://www.linuxeden.com/html/newbie/20080625/58957.html

    August 04

    pdu编码

    PDU编码规则

      目前,发送短消息常用Text和PDU(Protocol Data Unit,协议数据单元)模式。使用Text模式收发短信代码简单,实现起来十分容易,但最大的缺点是不能收发中文短信;而PDU模式不仅支持中文短信,也能发送英文短信。PDU模式收发短信可以使用3种编码:7-bit、8-bit和UCS2编码。7-bit编码用于发送普通的ASCII字符,8-bit编码通常用于发送数据消息,UCS2编码用于发送Unicode字符。一般的PDU编码由A B C D E F G H I J K L M十三项组成。

    A:短信息中心地址长度,2位十六进制数(1字节)。
    B:短信息中心号码类型,2位十六进制数。
    C:短信息中心号码,B+C的长度将由A中的数据决定。
    D:文件头字节,2位十六进制数。
    E:信息类型,2位十六进制数。
    F:被叫号码长度,2位十六进制数。
    G:被叫号码类型,2位十六进制数,取值同B。
    H:被叫号码,长度由F中的数据决定。
    I:协议标识,2位十六进制数。
    J:数据编码方案,2位十六进制数。
    K:有效期,2位十六进制数。
    L:用户数据长度,2位十六进制数。
    M:用户数据,其长度由L中的数据决定。J中设定采用UCS2编码,这里是中英文的Unicode字符。

    PDU编码协议简单说明

    例1 发送:SMSC号码是+8613800250500,对方号码是13693092030,消息内容是“Hello!”。从手机发出的PDU串可以是
    08 91 68 31 08 20 05 05 F0 11 00 0D 91 68 31 96 03 29 30 F0 00 00 00 06 C8 32 9B FD 0E 01
    对照规范,具体分析:
    分段 含义 说明
    08 SMSC地址信息的长度 共8个八位字节(包括91)  
    91 SMSC地址格式(TON/NPI) 用国际格式号码(在前面加‘+’)
    68 31 08 20 05 05 F0 SMSC地址 8613800250500,补‘F’凑成偶数个
    11 基本参数(TP-MTI/VFP) 发送,TP-VP用相对格式
    00 消息基准值(TP-MR) 0
    0D 目标地址数字个数 共13个十进制数(不包括91和‘F’)
    91 目标地址格式(TON/NPI) 用国际格式号码(在前面加‘+’)
    68 31 96 03 29 30 F0 目标地址(TP-DA) 8613693092030,补‘F’凑成偶数个
    00 协议标识(TP-PID) 是普通GSM类型,点到点方式
    00 用户信息编码方式(TP-DCS) 7-bit编码
    00 有效期(TP-VP) 5分钟
    06 用户信息长度(TP-UDL) 实际长度6个字节
    C8 32 9B FD 0E 01 用户信息(TP-UD) “Hello!”

    //  注:这块是自己加入的:在以前自己的程序中,发送短信时,开始时短信中心的一些信息,可是当时没有加入短信中心号码直接就是001100

    pdu发送是先是长度,AT+CMGS=23\r 后面是上面的编码。

    例2 接收:SMSC号码是+8613800250500,对方号码是13693092030,消息内容是“你好!”。手机接收到的PDU串可以是
    08 91 68 31 08 20 05 05 F0 84 0D 91 68 31 96 03 29 30 F0 00 08 30 30 21 80 63 54 80 06 4F 60 59 7D 00 21
    对照规范,具体分析:
    分段 含义 说明
    08 地址信息的长度 个八位字节(包括91)
    91 SMSC地址格式(TON/NPI) 用国际格式号码(在前面加‘+’)
    68 31 08 20 05 05 F0 SMSC地址 8613800250500,补‘F’凑成偶数个
    84 基本参数(TP-MTI/MMS/RP) 接收,无更多消息,有回复地址
    0D 回复地址数字个数 共13个十进制数(不包括91和‘F’)
    91 回复地址格式(TON/NPI) 用国际格式号码(在前面加‘+’)
    68 31 96 03 29 30 F0 回复地址(TP-RA) 8613693092030,补‘F’凑成偶数个
    00 协议标识(TP-PID) 是普通GSM类型,点到点方式
    08 用户信息编码方式(TP-DCS) UCS2编码
    30 30 21 80 63 54 80 时间戳(TP-SCTS) 2003-3-12 08:36:45  +8时区
    06 用户信息长度(TP-UDL) 实际长度6个字节
    4F 60 59 7D 00 21 用户信息(TP-UD) “你好!”


    若基本参数的最高位(TP-RP)为0,则没有回复地址的三个段。从Internet上发出的短消息常常是这种情形。
    注意号码和时间的表示方法,不是按正常顺序顺着来的,而且要以‘F’将奇数补成偶数。


    PDU Mode中,可以采用三种编码方式来对发送的内容进行编码,它们是7-bit、8-bit和UCS2编码。7-bit编码用于发送普通的ASCII字符,它将一串7-bit的字符(最高位为0)编码成8-bit的数据,每8个字符可“压缩”成7个;8-bit编码通常用于发送数据消息,比如图片和铃声等;而UCS2编码用于发送Unicode字符。PDU串的用户信息(TP-UD)段最大容量是140字节,所以在这三种编码方式下,可以发送的短消息的最大字符数分别是160、140和70。这里,将一个英文字母、一个汉字和一个数据字节都视为一个字符。


    需要注意的是,PDU串的用户信息长度(TP-UDL),在各种编码方式下意义有所不同。7-bit编码时,指原始短消息的字符个数,而不是编码后的字节数。8-bit编码时,就是字节数。UCS2编码时,也是字节数,等于原始短消息的字符数的两倍。如果用户信息(TP-UD)中存在一个头(基本参数的TP-UDHI为1),在所有编码方式下,用户信息长度(TP-UDL)都等于头长度与编码后字节数之和。如果采用GSM 03.42所建议的压缩算法(TP-DCS的高3位为001),则该长度也是压缩编码后字节数或头长度与压缩编码后字节数之和。

    August 01

    cmwap and cmnet

    总结:cmwap通过网关,速度上没有cmnet快,费用上其实两者是一样的,没有套餐时是每3/KB,如果订制了套餐,超出部分按每KB 1分钱,计算。由于cmnet登录的是互联网,网页内容丰富,流量自然高一些。另外一个重要的区别就是有些地方的某种卡会只支持一种登录方式。

    例如:北京地区的神州行只支持cmwap登录,而动感两种都支持。

    各省市的情况可能会有些区别,但大体是这样,如果连网时出现问题可以考虑到这方面。

     
    July 18

    关于服务器 (转载)


    在这个全民上网的时代,对于个人电脑的了解与使用,大多数的人都能够说出个大致,但是对于处于网络应用核心的服务器,大部分人的第一感觉还是比较神秘。那么到底什么是服务器呢?

      什么是服务器?

      从理论定义来看,服务器是网络环境中的高性能计算机,它侦听网络上其它计算机(客户机)提交的服务请求,并提供相应的服务。为此,服务器必须具有承担服务并且保障服务质量的能力。

      但是这样来解释仍然显得较为深奥模糊,其实服务器与个人电脑的功能相类似,均是帮助人类处理信息的工具,只是二者的定位不同,个人电脑(简称为 Personal Computer,PC)是为满足个人的多功能需要而设计的,而服务器是为满足众多用户同时在其上处理数据而设计的。而多人如何同时使用同一台服务器呢? 这只能通过网络互联,来帮助达到这一共同使用的目的。

      我们再来看服务器的功能,服务器可以用来搭建网页服务(我们平常上网所看到的网页页面的数据就是存储在服务器上供人访问的)、邮件服务(我们发 的所有电子邮件都需要经过服务器的处理、发送与接收)、文件共享&打印共享服务、数据库服务等。而这所有的应用都有一个共同的特点,他们面向的都 不是一个人,而是众多的人,同时处理的是众多的数据。所以服务器与网络是密不可分的,可以说离开了网络,就没有服务器;服务器是为提供服务而生,只有在网 络环境下它才有存在的价值。而个人电脑完全可以在单机的情况下完成主人的数据处理任务。

     

    图1.网络应用中的服务器

      服务器的硬件构成:

      其实说起来服务器系统的硬件构成与我们平常所接触的电脑有众多的相似之处,主要的硬件构成仍然包含如下几个主要部分:中央处理器、内存、芯片组、I/O总线、I/O设备、电源、机箱和相关软件。这也成了我们选购一台服务器时所主要关注的指标。

      整个服务器系统就像一个人,处理器就是服务器的大脑,而各种总线就像是分布与全身肌肉中的神经,芯片组就像是脊髓,而I/O设备就像是通过神经系统支配的人的手、眼睛、耳朵和嘴;而电源系统就像是血液循环系统,它将能量输送到身体的所有地方。

    图2.服务器硬件组成直观图
    服务器的整体设计目标:

      对于一台服务器来讲,服务器的性能设计目标是如何平衡各部分的性能,使整个系统的性能达到最优。如果一台服务器有每秒处理1000个服务请求的能力,但网卡只能接受200个请求,而硬盘只能负担150个,而各种总线的负载能力仅能承担100个请求的话,那这台服务器得处理能力只能是100个请求/秒,有超过80%的处理器计算能力浪费了。

          所以设计一个好服务器的最终目的就是通过平衡各方面的性能,使得各部分配合得当,并能够充分发挥能力。我们可以从这几个方面来衡量服务器是否达到了其设计 目的:R:Reliability——可靠性;A:Availability——可用性;S:Scalability——可扩展性;U: Usability——易用性; M:Manageability——可管理性,即服务器的RASUM衡量标准。

      由于服务器在网络中提供服务,那么这个服务的质量对承担多种应用的网络计算环境是非常重要的,承担这个服务的计算机硬件必须有能力保障服务质 量。这个服务首先要有一定的容量,能响应单位时间内合理数量的服务器请求,同时这个服务对单个服务请求的响应时间要尽量快,还有这个服务要在要求的时间范 围内一直存在。

          如果一个WEB服务器只能在1分钟里处理1个主页请求,1个以外的其他请求必须排队等待,而这一个请求必须要3分钟才能处理完,同时这个WEB服务器在1 个小时以前可以访问到,但一个小时以后却连接不上了,这种WEB服务器在现在的Internet计算环境里是无法想象的。

          现在的WEB服务器必须能够同时处理上千个访问,同时每个访问的响应时间要短,而且这个WEB服务器不能停机,否则这个WEB服务器就会造成访问用户的流失。

      为达到上面的要求,作为服务器硬件必须具备如下的特点:性能,使服务器能够在单位时间内处理相当数量的服务器请求并保证每个服务的响应时间;可 靠性,使得服务器能够不停机;可扩展性,使服务器能够随着用户数量的增加不断提升性能。因此我们说不能把一台普通的PC作为服务器来使用,因为,PC远远 达不到上面的要求。这样我们在服务器的概念上又加上一点就是服务器必须具有承担服务并保障服务质量的能力。这也是区别低价服务器和PC的差异的主要方面。

          在信息系统中,服务器主要应用于数据库和Web服务,而PC主要应用于桌面计算和网络终端,设计根本出发点的差异决定了服务器应该具备比PC更可靠的持续 运行能力、更强大的存储能力和网络通信能力、更快捷的故障恢复功能和更广阔的扩展空间,同时,对数据相当敏感的应用还要求服务器提供数据备份功能。而PC 机在设计上则更加重视人机接口的易用性、图像和3D处理能力及其他多媒体性能。

    图3.服务器系统架构图

    July 14

    转 人生规划

    20岁以前,大部份的人是相同的,升学读书升学读书...,建立自己基础。在父母亲友,社会价值观影响及误打误撞的情况下完成基本教育。
      选择读书,应该一鼓作气,在您尚未进入产业时,能读多高就多高,毕竟何时进入产业,您都是社会新鲜人。
      但是一旦您已经有工作经验而又有心进修,当然管道很多,相对的挣扎也多。
      因为您不知现在的年纪、条件、资历……再去做进修这样的投资是否值得?
      如果,您认定一辈子要当上班族,学历对您而言相信是很重要的,否则,时间宝贵,不容许您再走错路。
      20 ~ 25岁,您要懂得掌握与规划自己的未来,决定了就是一条无悔的不归路。
      刚得到法律付予您的种种权力,相对的您要尽您的义务及学习面对责任的承担。
      这时候的您,是喜悦、矛盾与痛苦交战,喜悦来自于开始被赋予一些自主权,矛盾来自于与父母割不断的脐带关系,痛苦的是开始要尝试错误。
      您要开始为自己的未来规划,如升学、就业、感情……拿回自己对人生的主控权,而非一直受人左右影响的去摇摆自己的未来。


    【学会人际关系,多认识积极的朋友,十年后这些朋友都将是产业的中坚】

      25 ~ 30岁,您像一块海绵,努力吸收也甘心被压榨,为的只是自我的成长。
      这时候的您,应是工作取向,薪水待遇。升迁调职您应该是斤斤计较。因为唯有努力付出,相对的您才敢积极争取,社会新鲜人的动力应该让您冲出自己的一片天,也因为没有经验,所以不懂挫折。
      因为资源不多,所以一切尽人事,听天命。现在的您:领取别人的薪水,学习别人的经验,付出自己的青春,建构自己的未来。


    【学会累积经验,接触机会,良师益友的提携更是提升您成长的大利器】

      30 ~ 35岁,您要学习判断机会、掌握机会,不能再有尝试错误的心态。
      这时候的您,应是事业取向和家庭取向,工作应该从体力转换为脑力。
      您应该看到的是远景,而非现况,面对的是宽广人生,而非局限于自我。
      结婚是许多人面临人生第一次的重大抉择,面对婚姻,很多人以为结婚就是一个责任的结束,殊不知正是学习的开始。
      就像一些刚上市上柜公司,以为目标达成了,忘了自己的企业责任,忽略本业。反而是一个恶梦的开始。
      人的本业不就是经营自己的家庭,赚钱的目的不就希望给家人更好的生活,但这可不能成为忽略家人的借口,一个经营不好家庭的人,纵使赚到全世界,他得到的只是表面的掌声,在他人生的这个圆,永远有一个缺口。
      家应该是您最大的精神支柱。动力来源和坚强后盾!


    【时间管理,转化心境;转化用头脑去工作,不要用身体去工作】

      35 ~ 40岁,您要享受给人希望,功德无量的格局。
      这时候的您,应是企业取向,工作只是一种休闲,更可转化为对他人的责任。如果您专注于研究,您应该不只穷毕生之力。
      24小时不眠不休的去做苦力您应该有成立研究机构,带领一群人做更多研发的雄心壮志。
      如果您是企业主管,您应该不只停留在汲汲营营,斤斤计较,您应该有能力担负主导周遭的员工、家人,带领他们享受更好的生活。
      格局的大小,会影响您成就的多少,做一个有影响力的人,而非被影响的人。


    【不论目前您多风光。多有成就,在您心中是否画得出十年后的你?】

      静心思考!我们现在所有努力的目的不就是为了父母、另一半、小孩……?
      工作,不应该等于是人生,更不应该是需要经营一辈子的事。
      试问健康、财富、自我成长、人际关系和时间自由,什么是您努力工作的动力?
      我相信没有人愿意放弃任何一点。
      这些正是促使我们年轻人前进的动力。
      十年后,您是提早完成它?还是提早放弃它?


    【宁可因梦想而忙碌,不要因忙碌而失去梦想】

      我看周遭有太多优秀甚于我数倍的朋友,可惜的是终日汲汲营营,投入更多的时间、精神、资源,却没有享受到应得的代价,原因无他,努力错方向,找错机会,拒绝机会而己。
      Jordan 打了一辈子的篮球,是很难在棒球场上找到自己的舞台。不要让忙碌蒙蔽了您的双眼再回头:廉颇老矣,尚能饭否?


    【你的时间在那里,成就就在那里】

      当您一个人成功,您只享受到一个人的快乐!
      懂得分享与付出,真正的快乐来自于:周遭的亲友因您的成长而提升,不论是精神或物质。
      真正的成功来自于:周遭的亲友因您付出获得改善,给人希望功德无量。
      我们不是在做慈善事业,尚没有能力普渡众生,但是,我们可以发挥一己之力,对亲友,对那些有缘相遇的陌生朋友。
      伸出您的手,在他们需要的时候!
      太多人在等生命中的贵人,聪明如您,何不先从帮助他人开始?
      “有人4、50岁了,还喜欢说出自某某名校,我觉得奇怪,他们把学校的那几年当成生命的巅峰,其实他出了校门便已开始走下坡路了。 ”

    上岸拽舟

    当我们要完成某一个目标时,尤其是当我们没有做过这些事情时,没有经验可以参考。那么我们必须按照一定的方法,借助一定的工具去做,有调理有准备的去做。

    当我们完成了某个目标时,就不能盯着方法和工具不放,应该着眼于目标本身,实现目标的方法很多,这好像就是大道无为,道法自然。

    July 13

    转载 什么是堆栈溢出

    堆栈这个问题是这么引出的。

    在农业信息监控那个项目中,采用了stc89c58rd+这个芯片,片外没有ram,当我定义了uchar xdata a[3000],程序不正常执行,后来修改了内存模式改为compact模式,可以了,在网上查了下,说是堆栈溢出的问题。为什么在large模式下会产生了堆栈溢出呢?

    从物理上讲,堆栈是就是一段连续分配的内存空间。在一个程序中,会声明各种变量。静态全局变量是位于数据段并且在程序开始运行的时候被加载。而程序的动态的局部变量则分配在堆栈里面。

    从操作上来讲,堆栈是一个先入后出的队列。他的生长方向与内存的生长方向正好相反。我们规定内存的生长方向为向上,则栈的生长方向为向下。压栈的操作push=ESP-4,出栈的操作是pop=ESP+4.换句话说,堆栈中老的值,其内存地址,反而比新的值要大。请牢牢记住这一点,因为这是堆栈溢出的基本理论依据。

    在一次函数调用中,堆栈中将被依次压入:参数,返回地址,EBP。如果函数有局部变量,接下来,就在堆栈中开辟相应的空间以构造变量。函数执行结束,这些局部变量的内容将被丢失。但是不被清除。在函数返回的时候,弹出EBP,恢复堆栈到函数调用的地址,弹出返回地址到EIP以继续执行程序。

    在C语言程序中,参数的压栈顺序是反向的。比如func(a,b,c)。在参数入栈的时候,是:先压c,再压b,最后压a.在取参数的时候,由于栈的先入后出,先取栈顶的a,再取b,最后取c。(PS:如果你看不懂上面这段概述,请你去看以看关于堆栈的书籍,一般的汇编语言书籍都会详细的讨论堆栈,必须弄懂它,你才能进行下面的学习)

    好了,继续,让我们来看一看什么是堆栈溢出

    运行时的堆栈分配

    堆栈溢出就是不顾堆栈中分配的局部数据块大小,向该数据块写入了过多的数据,导致数据越界。结果覆盖了老的堆栈数据。

    比如有下面一段程序:
    程序一:
    #include
    int main ( )
    {
    char name[8];
    printf("Please type your name: ");
    gets(name);
    printf("Hello, %s!", name);
    return 0;
    }

    编译并且执行,我们输入ipxodi,就会输出Hello,ipxodi!。程序运行中,堆栈是怎么操作的呢?在main函数开始运行的时候,堆栈里面将被依次放入返回地址,EBP。我们用gcc -S 来获得汇编语言输出,可以看到main函数的开头部分对应如下语句:

    pushl %ebp
    movl %esp,%ebp
    subl $8,%esp

    首先他把EBP保存下来,,然后EBP等于现在的ESP,这样EBP就可以用来访问本函数的局部变量。之后ESP减8,就是堆栈向上增长8个字节,用来存放name[]数组。现在堆栈的布局如下:

    内存底部     内存顶部
    name    EBP   ret
    <------ [ ]  [ ]  [ ]
    ^&name
    堆栈顶部    堆栈底部

    执行完gets(name)之后,堆栈如下:

    内存底部    内存顶部
    name    EBP   ret
    <------ [ipxodi\\0 ] [ ]  [ ]
    ^&name
    堆栈顶部     堆栈底部

    最后,main返回,弹出ret里的地址,赋值给EIP,CPU继续执行EIP所指向的指令。

    堆栈溢出

    好,看起来一切顺利。我们再执行一次,输入ipxodiAAAAAAAAAAAAAAA,执行完
    gets(name)
    之后,堆栈如下:

    内存底部     内存顶部
    name    EBP ret
    <------ [ipxodiAA] [AAAA]  [AAAA].......
    ^&name
    堆栈顶部     堆栈底部

    由于我们输入的name字符串太长,name数组容纳不下,只好向内存顶部继续写‘A’。由于堆栈的生长方向与内存的生长方向相反,这些‘A’覆盖了堆栈的老的元素。如图我们可以发现,EBP,ret都已经被‘A’覆盖了。在main返回的时候,就会把‘AAAA’的ASCII码:0x41414141作为返回地址,CPU会试图执行0x41414141处的指令,结果出现错误。这就是一次堆栈溢出。

    在上面的例子中,这导致CPU去访问一个不存在的指令,结果出错。事实上,当堆栈溢出的时候,我们已经完全的控制了这个程序下一步的动作。如果我们用一个实际存在指令地址来覆盖这个返回地址,CPU就会转而执行我们的指令。

    在UINX系统中,我们的指令可以执行一个shell,这个shell将获得和被我们堆栈溢出的程序相同的权限。如果这个程序是setuid的,那么我们就可以获得root shell。

    July 11

    BSP 概念解析 (转载)

     

    有的文章中把对各种处理器寄存器的操作和器件的驱动统称为bsp,所以很多提到与处理器有关。

     

     

     

    下面是转载

     

    Drew在这里按照自己的理解来解释一下BSP( Board Support Package),仅供参考:

      BSP是板级支持包,是介于主板硬件和操作系统之间的一层,应该说是属于操作系统的一部分,主要目的是为了支持操作系统,使之能够更好的运行于硬件主板。 BSP是相对于操作系统而言的,不同的操作系统对应于不同定义形式的BSP,例如VxWorks的BSP和Linux的BSP相对于某一CPU来说尽管实现的功能一样,可是写法和接口定义是完全不同的,所以写BSP一定要按照该系统BSP的定义形式来写(BSP的编程过程大多数是在某一个成型的BSP模板上进行修改)。这样才能与上层OS保持正确的接口,良好的支持上层OS。

    例如:

    VxWorks中的网卡驱动,首先在config.h中包含该网卡,然后将网卡含网卡的信息的参数放入数组 END_TBL_ENTRY endDevTbl [] 中,系统通过函数muxDevLoad( )调用这个数组来安装网卡驱动。

    而在Linux中的网卡驱动,是在space.c中声明该网络设备,再把网卡驱动的一些函数加到dev结构中,由函数ether_setup()来完成网卡驱动的安装。

      纯粹的BSP所包含的内容一般说来是和系统有关的驱动和程序,如网络驱动和系统中网络协议有关,串口驱动和系统下载调试有关等等。离开这些驱动系统就不能正常工作。

      Tornado中BSP的编译和上层应用程序不同,用命令行或直接在Tornado环境下Build,在Tornado下不能跟踪调试。

      用户也可以添加自己的程序到BSP中,但严格来说不应该算BSP.一般来说这种做法不建议。因为一旦操作系统能良好运行于最终的主板硬件后,BSP也就固定了,不需要做任何改动。而用户自己在BSP中的程序还会不断的升级更新,这样势必对BSP有不好的影响,对系统造成影响,同时由于BSP调试编译环境较差,也不利于程序的编译调试。

     

    上层程序

    Tools - Applications

    I/O System

    VxWorks Libraries

    TCP/IP


     

    Wind Kernel

    BSP

     


    SCSI Controllerr

    Serial Controller

    Clock Timer

    Ethernet Controller

    .. ..

    硬件

     

    BSP在嵌入式系统和Windows系统中的不同


      其实运行与PC机上的windows或linux系统也是有BSP的。只是PC机均采用统一的X86体系架构,这样一定操作系统(windows, linux..)的BSP相对x86架构是单一确定的,不需要做任何修改就可以很容易支持OS在x86上正常运行,所以在PC机上谈论BSP这个概念也没什么意义了。

      而对嵌入式系统来说情况则完全不同,目前市场上多种结构的嵌入式CPU(RISC)并存(PPC,ARM,MIPS....),为了性能的需要,外围设备也会有不同的选择和定义。一个嵌入式操作系统针对不同的CPU,会有不同的BSP,即使同一种CPU,由于外设的一点差别(如外部扩展DRAM的大小,类型改变),BSP相应的部分也不一样。
      所以根据硬件设计编写和修改BSP,保证系统正常的运行是非常重要的。


    BSP和PC机主板上的BIOS区别

     

      BSP和PC机主板上的BIOS区别很大,BIOS主要是负责在电脑开启时检测、初始化系统设备(设置栈指针,中断分配,内存初始化..)、装入操作系统并调度操作系统向硬件发出的指令,它的Firmware代码是在芯片生产过程中固化的,一般来说用户是无法修改。其实是为下载运行操作系统做准备,把操作系统由硬盘加载到内存,并传递一些硬件接口设置给系统。在OS正常运行后,BIOS的作用基本上也就完成了,这就是为什么更改BIOS一定要从新关机开机。

      PC机BIOS的作用更象嵌入式系统中的Bootloader(最底层的引导软件,初始化主板的基本设置,为接收外部程序做硬件上的准备)。与 Bootloader不同的是BIOS在装载OS系统的同时,还传递一些参数设置(中断端口定义,...),而Bootloader只是简单的装载系统。

      BSP是和操作系统绑在一起运行在主板上的,尽管BSP的开始部分和BIOS所做的工作类似,可是大部分和BIOS不同,作用也完全不同。此外BSP还包含和系统有关的基本驱动(串口,网口...),此外程序员还可以编程修改BSP,在BSP中任意添加一些和系统无关的驱动或程序,甚至可以把上层开发的统统放到BSP中。

      而BIOS程序是用户不能更改,编译编程的,只能对参数进行修改设置。更不会包含一些基本的硬件驱动。



    BSP在嵌入式开发中的位置和作用

    BSP开发处于整个嵌入式开发的前期,是后面系统上应用程序能够正常运行的保证。

    大概步骤如下:

    1.硬件主板研制,测试。

    2.操作系统的选定,BSP编程。

    3.上层应用程序的开发。

    BSP部分在硬件和操作系统,上层应用程序之间。所以这就要求BSP程序员对硬件,软件和操作系统都要有一定的了解。这样才能做好BSP编程。

    熟悉工具方面:电表,示波器,逻辑分析仪。硬件仿真器,仿真调试环境。

    语言方面:汇编语言,C语言。

    July 09

    考虑问题的方式

    最近几个月一直在做一个项目,作了一个电子产品a,我们是技术部,不能把产品直接推向市场,
    或者说我们的产品需要邦定服务,和服务一起推出去,总之就是需要其他部门我们才能得到认可。
    困难是很大的。一 这种产品是否真的有市场,其他部门是否真的看好这款产品。二 就算是款看好的
    产品,是否给你推还是问题,如果后期效果不好,他们是有责任的。
    最让我长眼的不是这些,而是他们之间的交流。那天技术部的负责人给3拨人进行了演示这款产品。
    1,2,3。给1演示时,1似乎一直在思考,不予反对,不予赞同,任由我们这边的负责人发挥。
    第二拨就不一样了,遇到对手了。他们的基调从刚开始了解了这个产品后就态度明确,不看好。
    两位领导进行了很长时间的讨论,总算看到高手了。任何一款产品都有它的可取之处,也有它的不足之处,
    不同的人看到的不一样,看中的也不一样。高手就是不被对方引导,始终保持自己的观点。
    总是从自己关注的那一点去讨论,说服对方。当然谁也不会说服对方。
    “任何产品的推出都有一段时间,例如我们的大头贴,现在很流行。”

    我觉得这两种产品是有区别的,大头贴面向的是年轻人,容易接受新鲜事物。你们这款产品呢,
    人群不明确,一直插着电源,放在父母家里或送女朋友,他们都怕这些电子产品。
    我觉得你们需要的卡,运营商不会给。
    成本也太高,不过有一天产品p,推广开后,你们这个可能很有市场。目前我觉得不行。
    况且这款产品,产品p的厂家也可以做,并且可以比你们做得更好。

    “他们的重点不在这,我们可以与厂家,运营商共同合作”。
    “他们不会和你合作,他们会直接与运营商合作”
    总之似乎是谁也没说服谁,但是我们是求人家帮推广的,实际上当然是我们没达到目的了,不过事后
    想想,即使他们觉得还可以也不会立即答应我们的,先小人后君子更好些吧。
    第3拨就是中层及的了,很容易就被我们的东西吸引了,很感兴趣,但这是一时的。
    厉害的能够一接触到就有自己的想法了,然后就是刚开始被人引导了,然后慢慢又有自己的想法了,
    再后来就是一直没反过劲来。
    还有一个原因就是地位会影响这个人的判断,第2拨的那个人的职位和我们技术负责人相当,甚至还高,
    第3拨都不及,所以说起话来多少有些顾虑。
    不过最让人有感触的是地位,工作性质不同后考虑问题的角度发生了很大的变化。
    第2拨的那位觉得这个产品不好的理由是,人的接受程度,人的思考方式,其他厂家,运营商的想法。
    而我们考虑的是这个产品能完成什么功能。
    人跟人的差距咋就这么大呢!

    去与留

        来公司已经1年半了,我的工作和公司现有的业务差别甚远,很多同事都这么认为,更与甚者,劝我离开公司,找一个和我专业对口的公司发展,我也曾动摇过。
    跟上面也提过一次,一番谈话让我选择了留下来。是啊 ,自己当时选择这个公司,也知道和自己的专业是不对口的 ,,那为什么还是来了呢?不禁问自己,不是想进行非技术方面的的一种尝试么?不是想在项目管理方面
    走一条捷径么?那为什么在这时会考虑放弃呢,一件事情的成功也许不是一年两年的,前途固然风险很大,
    但一旦成了,却会缩短到达的日期。高风险,高收入么,这词现在很流行。
    我留下来了,技术固然不如其他同学了,工资也不满意了,但还是没有动,这也许就是在赌。
    还有另外一种思路有时会闪在脑子里,走过一个地方应该留下什么,或收获些什么,不能够无声息的走了,
    那岂不是白过了。本来时间就是有限的,经不起这么白折腾,还是当收获了想收获的东西时,在考虑吧。
     
    July 01

    DRAM的理解

     
    内存RAM的理解
    无论是SRAM还是DRAM都是一个矩阵式的存储结构,有行地址和列地址。
    SRAM的存储容量小,采用的是触发器的结构,所以掉电不丢失,但价钱昂贵,行线和
    列线在地址线上是分开的。如A0~Ai为行地址,Ai~Aj为列地址。这和容量小是有必然关系的。
    DRAM容量大,为什么?采用的是mos管储能的方式,结构简单,所以可以做到大容量,
    但是漏电现象是不可避免的,所以需要定时刷新控制电路辅助。
    采用的仍然是行列地址共同作用的方式,但容量大了,地址线势必变大,所以在DRAM中
    ,行线列线是复用的,通过RAS和CAS两个管脚信号决定是行地址还是列地址,
    WE用来决定是读操作还是写操作。为1时进行读操作,为0时进行写操作。
    采用这种DRAM进行设计时,处理器内部一般具有相应的电路与之配套,否则使用起来是很困难的。
    在arm9上一般都会用到,在arm9处理器上有相应的管脚与之相连,所以连线非常简单。
    上面这篇文章以实例介绍了DRAM的电路设计方法。不错。
     
    而这个地址中的文章详细的介绍了内存的读写过程,很不错,虽然没看太明白。

    arm 2440 学习笔记

     
    三星2440开发板核心板主要包括 :
    一个2440芯片,一个12M晶振,一个32.768KHZ的晶振。
        12M的晶振用来给arm内部所需的各种电路提供时钟,倍频到几百兆的频率。
        两种方式为arm内部提供所需的时钟,一种是通过晶振,第二种是通过外部时钟        EXECLK,选用一种时另一种接高电平。
        OM[0,1]管脚复位时的高低电平决定了芯片的工作模式。
    一个MIC5219,电源芯片提供了1.3v的电压。
    两片HY57V561620 SDRAM,组成了64Mram。
    一片nandflash K9F1208 ,64M。nandflash 均为串行flash。容量大。
     
    以上这些就是核心板,3.3V电源是从主板引过来。
    这个核心板子上要学习的就是ram和flash的引线。地址线,数据线的连接。
    June 22

    项目经理(转)

    1.政治素质。具有高度责任心和事业心,坚韧不拔,勇于进取的精神.

        2.能力素质.能力素质是项目经理整体素质体系中的核心素质。它表现为项目经理把知识和经验有机结合起来运用于项目管理的过程,对于现代项目经理来说,知识和经验固然十分重要,但是归根结底要落实在能力上。能力是直接影响和决定项目经理成败的关键,概括起来,包括五个方面:

        (1)决策能力。决策能力集中体现在项目经理的战略战术决策能力上。工程项目大都面临错综复杂、竞争激烈的外部环境,要使项目管理成功,经理人员应了解和研究环境,对与项目管理有关的技术、设备、材料等商情进行分析预测,制定出战略决策,并付诸实现。从决策程度来看,经理人员的决策能力可分解为如下三种:收集与筛选信息的能力、确定多种可行方案的能力、择优决策的能力。

        (2)组织能力。项目经理的组织能力是指设计组织结构,配备组织成员以及确定组织规范的能力。显然,拥有较高组织能力的经理人员能够运用组织理论原理,建立科学的、分工合理的、配套成龙的高效精干的组织机构,合理配备组织成员,确定一整套保证组织有效运转的规范。能够做到知人善用。

        项目经理的激励能力与经理人员对人的认识有关。现代人不单纯是“经济人”,而且是“社会人”,不仅有经济上的需求,而且有社会和心理上的要求。经理人员应更加注意运用各种社会和心理刺激手段,通过丰富工作内容、民主管理等措施来激励和调动员工的士气。

        3.知识素质。项目管理者的知识素质以及对项目管理活动的影响作用,构成项目领导人的专门能力有技术能力、商业能力、财务能力、管理能力、安全能力等。每一种能力都是以知识为基础的.因此.理想的项目经理应该有解决问题所必要的知识。根据理论探讨和项目经理实践经验的分析,项目经理应具备两大类知识,即基础知识与业务知识.

        (1)基础知识。基础知识包括社会科学和自然科学。在社会科学方面,应掌握经济学、管理学、心理学、法律和伦理学等方面的知识。在自然科学方而,应学好数学、物理学、化学和电子计算机使用等知识。

        (2)业务知识。项目经理应掌握投资学、投资项目管理学、技术经济学、企业领导学以及本行业的专业知识等。

        由此可知,项目经理应该是具有一定知识广度的“杂家”,他应在实践中不断深化和完善自己的知识结构.

        4.体格素质。身体健康,精力充沛.

        项目经理应具备的素质有六条:

        (1)具有本专业技术知识;

        (2)有工作干劲,主动承担责任;

        (3)具有成熟而客观的判断能力,成熟是指有经验,能够看出问题,客观是指他能看到最终目标,而不是只顾眼前;

        (4)具有管理能力;

        (5)诚实可靠与言行一致,答应的事就一定做到;

    (6)机警、精力充沛,能够吃苦耐劳,随时都准备着管理可能发生的事情. 

    项目监控(转载)

     1Critical Chain
        对于软件项目来说,关键是能否在规定的时间之内,预定的资金内,有质量的交付客户要求的产品。我们这里关注的是如何准时的完成项目,预算和质量都有其特定的系统去监控。能否按时完成项目就取决于我们的网络图中最长的那条chain,所以我们说一个项目网络图中最长的那条chain我们就称之为Critical Chain, 简称为cc。
        在一个项目的pert char未定之前,我们要做的就是反复分析最终得到cc,具体就是先找出最长的chain,然后分析每个task的duration是否都是不可再缩减的,若可以就进行优化,再看这条chain还是不是最长的chain,如果不是则找出新的最长的chain,依次类推,最终得到最优的网络图,得到cc。当然在项目的执行过程中,可能最初的cc慢慢的不再是最长的chain了,但是由于buffer机制管理的问题,cc一旦确立,在项目的执行过程将不再改变。有关buffer的问题在后面解释。
        cc确立后,就是整个项目的constraint,对于cc就要更多的关注与控制,也就一个项目的主要矛盾。非cc的task就是次要矛盾,但是不意味着就不重要,只是相对而言要更关注cc而已。 
    2 Buffer
        人在做事情的时候,当需要预估这件事情完成所需的周期时,会有两种方式在脑中思考:50%confidence and 90%confidence, 50% confidence是指在最好的情况下,我尽最大的努力完成这个任务所需要的时间;90% confidence是指我有相当大的把握完成这个任务所需要的时间。出于人的惰性以及害怕一旦无法如期完成所带来的后果,大多数的人在预估完成任务所需要的时间的时候,倾向于使用90%confidence。而实际是90%confidence的时间偏长,往往造成项目周期的加长;50%confidence则由于过于不给自己留有余地,往往在意外情况发生的时候造成任务超时。所以我们引入buffer的概念来平衡,既有一定的把握完成,同时又避免50%所带来的高风险,又不像90%那样延长了工期。
        Buffer是指在某条链上所有的tasks最后加上一个task,给予一定的duration用于保护项目,避免突发事件造成的项目延期。例如一条链上有4个tasks,每个task 10days,则在最后一个task后再加上一个task,给上一定的时间,比如10days。如果有一个task在预计的10天内没有完成,而是用了12天,那么这个task就吃掉了2天的buffer,这时候buffer的 consumption就是2/10=20%. 在这里每个task的时间都是采用的50%confidence标准定的,而buffer就起到了降低了50%所带来的高风险。同时由于只有一个buffer,所以buffer是团队共享的buffer,这个时候个人消耗buffer就是消耗整个团队的buffer,即使PM不看着,team的其他成员也会注意的,而吃buffer的这个人所得到的压力就不只是来自PM了。:) 
    3 Buffer management
        Buffer的另外一个重要的作用就是显示整个项目的状态。buffer如果没有被吃,那么整个项目的risk相对就低,如果buffer面临被吃完的局面,则说明buffer的保护作用已经慢慢消失,risk慢慢的在上涨。如果我们依照buffer consumption的比率设定一些值,如30%以下为绿色,30%~70%为黄色,70%~80%为红色。那么我们就可以依照这些颜色来简单的确定项目的状态,从而制定相应的对策。 
    4 As late as possible
        大家有没有这种感觉,毕业前要交一个论文,你提前一个月写往往是在期限的前一天刚刚搞定;而如 late as possible
        大家有没有这种感觉,毕业前要交一个论文,你提前一个月写往往是在期限的前一天刚刚搞定;而如果你提前2周写,往往又是也很可能刚刚在期限的前一天搞定。这也是人的惰性的因素所致。所以有一种叫as late as possible的方法,不管这个项目什么时候开始,我们只是考虑在最好情况下,当所有的tasks的duration定下来了,buffer的大小定下来了,我们依据项目结束的日期从后往前推,从而得到项目开始的日期,如果这个日期晚于今天,那么可以考虑将resource放到别的项目中去。这种方法最早主要用于物流方面,因为仓库的占用是要花费相当的成本的,如果能很好的利用ALAP,则可以更有效率的利用仓库,降低成本。如今用于软件领域也可以使用。

    喜欢的几句话

    1 忙碌是种幸福,让我们没时间体会痛苦;奔波是种快乐,让我们真实地感受生活;疲惫是种享受,让我们无暇空虚。
    2 任何吃不下的东西都可以让垃圾桶去吃,同样,任何解决不了的问题都可以让时间去解决。
    3 不要为旧的悲伤浪费你的眼泪。
    4 我靠,对自己的无能竟然如此的自信。(花絮)
    5 天地之所以长且久者,以其不自生故能长生。(这是我最欣赏的一句,现在是,将来亦是)
     
    陆续收集、体会中

    寻找信仰

     
    记得上大学的时候喜欢看书,尤其是关于思想的,现在却没有了这份雅致,忙着工作,忙着赚钱,工作没有起色,钱也没赚到。
    工作后发现很多事情不知道该怎么处理,总是乱作一团,没有计划,没有安全感。
    都说选择是痛苦的。我觉得不是,选择痛苦那是因为没有选择的标准,没有做人做事的原则,缺少信仰。
    有人活得累,有人累得充实。有人活得清闲,有人清闲的空虚。
    我经常痛苦,甚至不知道自己需要什么,工作中,生活中,感情,亲情。
    原来自己丢失了信仰。学校的信仰似乎不在适应社会,这毕竟是两个不同的环境。
    寻找信仰,寻找原则,寻找在面临选择时让我不再痛苦的信条。
    I am looking for…………
     
     
    June 21

    不知厦门是啥样的

     
    到目前一共去过两次山东,都是济南,省会城市。住的是四星级的。第一次正在洗澡,突然来一电话:
    你好!
    先生,要服务么。
    什么服务?
    特殊服务。
    什么价钱?(没想要,其实是不敢要,人生地不熟的,存属无聊搭讪)
    100块1小时。
    怎么还按小时?
    当然,还能100块钱到天亮么。
    不需要。
    需要打电话,分机10.
     
    第二次到山东。
    先生需要按摩么?
    不需要。
    需要其他服务么?
    什么服务?
    特殊服务。
    怎么收费?
    服务不一样,价钱不一样。(物价上涨,收费也在多元化发展,收费分的越细,越容易宰割人民,这和个朝代的苛捐杂税似乎有点象)
    奥,不需要。
    这样吧,让小妹上去给你介绍一下。
    不用了。(她要上来,还能下的去么,打住)。
    需要打电话,电话10.
     
    这里的四星级宾馆想得多周到。
    这里二层有个商务会馆,本来想上去看看,一层滚梯下面站两mm,不消费,上去溜达一圈,应该没事。还没到滚梯,一抬头,我靠,
    滚梯上面的风景着实让我捏了一把汗,上去不消费估计是下不来。站着两排mm,穿的当然不是工作服了。我上去被人一顿殷勤介绍,估计钱包就空了。
    脸皮薄么。想到这,嘎然而止啊。掉头就走。等咱有了钱,济南是个好地方,哈哈。
    不知厦门是啥样的,全国各地是啥样的。

    肱三头肌

    肱三头肌的训练
    2006年09月23日 星期六 09:39 P.M.
          1.正手颈向臂屈伸
          预备姿势:两脚分开,与肩同宽或坐在练习凳上。两手正握杠铃,握距约20厘米,屈肘,把杠铃下放于头后近肩处。
          练习方法:肱三头肌用力上提,上臂保持竖立不动,同时吸气,到两臂接近伸直时收紧肱三头肌两秒再慢慢还原,同时呼气,做8~12次。
          动作要点:提前臂时,上臂保持固定,贴近耳侧,肘尖朝上,肘关节不要全伸直,防止受伤。反手握杠铃尽量不要使用,很容易引起肘痛。

          2.单臂哑铃颈后臂屈伸
          预备姿势:同上,不同的是,单臂弯曲在颈后,持哑铃,另一只手按在持哑铃手的上臂处。
          练习方法:同上。
          动作要点:同上。

          3.拉力器下压
          预备姿势:站立在高位拉力机前,身体稍向机前倾,正握把手,约20厘米握距,屈肘,两手接近胸前上方处停下。
          练习方法:双前臂向前半圆弧伸直,上臂保持竖立不动,同时吸气,当两臂接近伸直时停两秒,收紧肱三头肌。
          动作要点:同1.

          4.俯立臂屈伸
          预备姿势:两脚分开,左手持哑铃,上体前屈与地面平行,上臂紧贴体侧与背部平行,屈肘90度夹角,前臂自然下垂。另外,左手扶在练习凳上,固定身体。
          练习方法:右臂肱三头肌用力,半圆划弧把前臂在身旁伸直,同时吸气,伸至接近直时收紧肱三头肌两秒,再慢慢还原并呼气,每组做8~12次。右臂练完换左臂练习。
          动作要点:练习过程中,上臂固定不动,只是肱三头肌用力。

          5.仰卧臂屈伸
          预备姿势:仰卧在练习凳上,双手正握杠铃于额前,屈肘,握距约20厘米。
          练习方法:右臂肱三头肌向上伸直,同时吸气,当接近伸直时停两秒,收紧肱三头肌。慢慢放下还原,并呼气,此动作每组做8~12次。

          6.窄握卧推
          预备姿势:仰卧在练习凳上,两手正握杠铃,握距约20厘米。
          练习方法:如胸部练习的仰卧推举。
         动作要点:当杠铃接近胸部时,两上臂靠近体侧,不同的是前边卧推举靠胸大肌用力。

          7.窄距俯卧撑
          预备姿势:如胸部练习的俯卧撑一样。
          练习方法:同上。
          动作要点:除了肱三头肌发力,在屈肘时,上臂要靠近体侧。

          8.仰卧撑
          预备姿势:两手撑着凳边与肩同宽,两足并拢放在另一凳上。
          练习方法:双臂弯屈,同时呼气,当屈至极限时还原支撑,同时吸气。
          动作要点:双臂弯曲,背尽量贴凳。
          在进行以上几个动作的练习时要充分热身,肘关
    June 19

    济南一行

    周一去了一趟济南,去的匆忙,本来是打算周一去,周二回的。工作很简单,到那边状态电脑,装上一台设备

    就OK了,基本的东西在这边都已经把电脑配置好了。本来以为20分钟搞定的。

    周一下午5点多的飞机,上了飞机没做一会,空姐们就送来一些零食,不知不觉吃了十来分钟,

    准备下飞机了,还没做热乎呢,不到一个小时。不划算,从公司出来到上飞机花了3个小时,坐飞机

    用了不到一个小时,时间没整好,提前一个半小时到两个小时从公司出来就行,提前半小时登机,

    二十分钟托运。

    下飞机被山东的的哥宰了,贼热情,又是递伞(正好下雨),又是帮忙推行李,脸皮薄啊。

    到车跟前一看,我靠,帕萨特。牛啊,山东的的车都成帕萨特了。坐吧,行李都已经上车了。心里没底呀。

    180大洋!

    心疼啊!

    到酒店已经晚上8点多了,公司都下班了。明天干吧。第二天早上抱着20分钟搞定的态度,开始安装。

    给同事借了个显示器(那边只有一天显示器,其他都是笔记本).

    装好!测试!

    不好使?

    一个网通的拨号上网的猫,一个机器做网关。一个路由,另外三台电脑。原来两台,这次我们又

    装了一台。3号机器安照另外两台的设置,进行了设置。不能访问外网。

    怪了!

    能ping通网关 192,168,0,254.但ping不到外网,网关的问题或猫的问题。重启网关,重启猫。

    貌似有进展, 可以ping通baidu的ip但ping不同域名,那就是dns有问题,dns是老大上次搞定的,

    应该没问题。并用dns也加上了,用的是网关。好使了。但后来发现并不是死这问题,不加备用网关

    也能上网了,是网络问题,有时存在严重的丢包现象。

    另外我想通过外网访问一下,http://www.ip138.com/ 查询本机IP,手机号码等。

    方便,以前一直在麻烦老大,从远方帮着登录,撮。

    还有个什么端口,这里的每个机器分配一个,这样才能远程登录到每台机器上,有点晕。现在还是有点晕。

    有一个当时一直登不上,后来才知道,端口公司这边给弄错了。

    后来就是从北京带过去的那台机器拨不上号 ,后来知道山东和北京的猫中有一个拨号属性,拨打的电话号码两个地区不一样。

    总体来说问题不大,都是小问题。小问题暴露了大问题,还是自己不懂啊,细节决定成败说的真他妈有道理。

    整到下午3点多。其实想起来这么长时间都不知道干啥了,又是换网线,又是重启网关,又是重启猫的,更改dns,

    IP一顿折腾,到最后好使时觉得跟以前设置的还是一样的,就是好使了。

    一想不到的问题总是有的,理想的东西有,但水平还不够,就别谈理想的了。

    好事多磨了,当时要是定了往返的飞机就扯了,意外无处不在呀。

    June 03

    无所谓,似乎我错了

    一直以为自己大度,宽容,对很多事情都能看得开,不放在心上,觉着无所谓,从没有刻意的去争取,在以往的生活中,朋友的交往中(同学),这种态度很好,效果不错,遵循着无为而为,退其身而身存,外其身而身先的信条;最近发现在这种信条的影响下对任何事情都不在乎了,失去了就让他去吧,结果很可怕,没有了争取的动力,也就是做什么事都没有了激情,生活中需要有波澜,不能平淡如水,做事也应该有争取,有让步,有在乎,有不在乎。