到台湾玩,不用翻墙了,冒个泡。
2009-05-01
科幻-联合国特殊工种守则节选
你没有领导,你是你自己唯一的领导,
你没有法律,是非全靠你自己度量,
你没有政府,你只有生你养你的家乡,
爱干嘛干嘛,发展,集聚力量,你的每一小步都是人类的一大步,
帮助你认为应该帮忙的人,他们也许就是暗中帮忙你的人,力量的合理使用,是不会使你的力量减弱的。
模糊与系统的思考是你的必修课,网络是你的学坛,看见表面文章背后的信息是你明媚的眼睛。
大众传媒是你的通信网。
到处都有你的伙伴与翅膀!!
全世界的特殊组织其实是一个用隐蔽贸易,隐蔽通信,隐蔽人员流动,隐蔽技术交易连接在一起的庞大的复杂系统!不管他叫CIA还是叫别的什么名字!!
2009-04-16
漏电
工作的事情,导致的神经过敏还没过,家里发生了漏洞问题,一下子就抓狂了,这真让我想到了那个李登辉家的玻璃的Flash。
记得那经典的台词:
哈哈哈哈哈
找个皮筋儿,做弹弓子,打李登辉家玻璃。
找李登辉,打日本去呀,我又没养狗! 哈哈哈哈
其实漏电问题本身很简单,就是一个锅的电影线的绝缘层出现了破损。
但找原因的过程很让人抓狂,
先说说电路情况(示意图如下:)
抓狂的原因有3个小原因:
1.那个AJMK C40 28066的标识不是我家的门牌号,而是邻居家的。而标识为我家的却是接入邻居家的。
2.漏洞的时候AJMK C40 没动作,而HSLI-200/4动作,导致一通电,整栋楼都没电,我根本没办法检查哪儿出了问题,(我知道要检查很简单,拔掉所有电器,一个个接入,看哪个电器出现问题,但漏电开关动作有些延迟,家里两个人,电器的断接信息不太多,测试需要很多次,而我只对技术上的在行,对与别人的抱怨实在是不知道该怎么办!!)
3.处理的过程中一直有类似于有一大群人起哄的背景音,却找不到声音源!!
1,是标识错误,问题不大;
3,是我在南山宿舍开始就伴随我的了,已经不太在意了;其实我写文章的时候,对面楼似乎还有类似的声音。
现在来研究2:
先看文章:
http://www.go-gddq.com/html/2006-11/408099.htm
-----------------
背景: 阅读新闻 漏电保护器的工作原理和应用
[日期:2006-11-29]来源: 作者:未知[字体:大 中 小]
国内外多年的运行经验表明,推广使用漏电保护器,对防止触电伤亡事故,避免因漏电而引起的火灾事故,具有明显的效果。本文就广泛使用的电流型漏电保护器(以下简称漏电保护器)的工作原理及应用作些介绍。
1 漏电保护器的工作原理
漏电保护器主要包括检测元件(零序电流互感器)、中间环节(包括放大器、比较器、脱扣器等)、执行元件(主开关)以及试验元件等几个部分。
三相四线制供电系统的漏电保护器工作原理示意图。TA为零序电流互感器,GF为主开关,TL为主开关的分励脱扣器线圈。
在被保护电路工作正常,没有发生漏电或触电的情况下,由克希荷夫定律可知,通过TA一次侧的电流相量和等于零。即:这样TA的二次侧不产生感应电动势,漏电保护器不动作,系统保持正常供电。
当被保护电路发生漏电或有人触电时,由于漏电电流的存在,通过TA一次侧各相电流的相量和不再等于零,产生了漏电电流Ik。
在铁心中出现了交变磁通。在交变磁通作用下,TL二次侧线圈就有感应电动势产生,此漏电信号经中间环节进行处理和比较,当达到预定值时,使主开关分励脱扣器线圈TL通电,驱动主开关GF自动跳闸,切断故障电,从而实现保护。
用于单相回路及三相三线制的漏电保护器的工作原理与此相同,不赘述。
2 装设漏电保护器的范围
1992年国家技术监督局发布的国标GB13955292《漏电保护器安装和运行》,对全国城乡装设漏电保护器做出统一规定。
2.1必须装漏电保护器(漏电开关)的设备和场所
(1)属于I类的移动式电气设备及手持式电动工具(I类电气产品,即产品的防电击保护不仅依靠设备的基本绝缘,而且还包含一个附加的安全预防措施,如产品外壳接地);
(2)安装在潮湿、强腐蚀性等恶劣场所的电气设备;
(3)建筑施工工地的电气施工机械设备;
(4)暂设临时用电的电器设备;
(5)宾馆、饭店及招待所的客房内插座回路;
(6)机关、学校、企业、住宅等建筑物内的插座回路;
(7)游泳池、喷水池、浴池的水中照明设备;
(8)安装在水中的供电线路和设备;
(9)医院中直接接触人体的电气医用设备;
(10)其它需要安装漏电保护器的场所。
2.2报警式漏电保护器的应用
对一旦发生漏电切断电源时,会造成事故或重大经济损失的电气装置或场所,应安装报警式漏电保护器,如:
(1)公共场所的通道照明、应急照明;
(2)消防用电梯及确保公共场所安全的设备;
(3)用于消防设备的电源,如火灾报警装置、消防水泵、消防通道照明等;
(4)用于防盗报警的电源;
(5)其它不允许停电的特殊设备和场所。
3 漏电保护器额定漏电动作电流的选择
正确合理地选择漏电保护器的额定漏电动作电流非常重要:一方面在发生触电或泄漏电流超过允许值时,漏电保护器可有选择地动作;另一方面,漏电保护器在正常泄漏电流作用下不应动作,防止供电中断而造成不必要的经济损失。
漏电保护器的额定漏电动作电流应满足以下三个条件:
(1)为了保证人身安全,额定漏电动作电流应不大于人体安全电流值,国际上公认30mA为人体安全电流值;
(2)为了保证电网可靠运行,额定漏电动作电流应躲过低电压电网正常漏电电流;
(3)为了保证多级保护的选择性,下一级额定漏电动作电流应小于上一级额定漏电动作电流,各级额定漏电动作电流应有级差112~215倍。
第一级漏电保护器安装在配电变压器低压侧出口处。
该级保护的线路长,漏电电流较大,其额定漏电动作电流在无完善的多级保护时,最大不得超过100mA;具有完善多级保护时,漏电电流较小的电网,非阴雨季节为75mA,阴雨季节为200mA;漏电电流较大的电网,非阴雨季节为100mA,阴雨季节为300mA。
第二级漏电保护器安装于分支线路出口处,被保护线路较短,用电量不大,漏电电流较小。漏电保护器的额定漏电动作电流应介于上、下级保护器额定漏电动作电流之间,一般取30~75mA。
第三级漏电保护器用于保护单个或多个用电设备,是直接防止人身触电的保护设备。被保护线路和设备的用电量小,漏电电流小,一般不超过10mA,宜选用额定动作电流为30mA,动作时间小于011s的漏电保护器。
4 漏电保护器的正确接线方式
TN系统是指配电网的低压中性点直接接地,电气设备的外露可导电部分通过保护线与该接地点相接。
TN系统可分为:
TN2S系统整个系统的中性线与保护线是分开的。
TN2C系统整个系统的中性线与保护线是合一的。
TN2C2S系统系统干线部分的前一部分保护线与中性线是共用的,后一部分是分开的。
TT系统配电网低压侧的中性点直接接地,电气设备的外露可导电部分通过保护线直接接地。
漏电保护器在TN及TT系统中的各种接线方式,安装时必须严格区分中性线N和保护线PE。三极四线或四极式漏电保护器的中性线,不管其负荷侧中性线是否使用都应将电源中性线接入保护器的输入端。经过漏电保护器的中性线不得作为保护线,不得重复接地或接设备外露可导电部分;保护线不得接入漏电保护器。
阅读:2894 次
录入:gddq
---------------------------
再来尝试查一下:
各个器件的DataSheet
安家AJR40 没找到 铭牌 漏电电流是0.03A
杭州之江开关有限公司 HSLI-200/4 漏电电流是500mA,也就是0.5A
AJMK C40 28066 也没找到,我怀疑是过流保护开关,不是漏电保护开关,因为没有漏电测试按钮。
---------------------------
看文章:
http://www.josef.com.cn/Tech/Article_show.asp?ID=331
结合上述文章:
可以猜测,有几个问题:
1.AJMKC40 28066应该换成一个漏电开关,而不应该只是一个过流保护开关!!
2.HSLI-200/4很有可能在较小的漏电电流下发生了动作,或相应过快!!
另外小区电工比我还不了解漏电保护,他分不清楚漏电电流,与额定电流的区别。一直把漏电保护开关当过流保护开关。
2008-10-20
“多酶啦”的传奇
欢迎光临另一个专题博客:
http://ec6h10o6.blogspot.com/
机器农场
专门讲述“多酶啦”的传奇。
最新内容:
如何制造多酶啦单元?
其各种容器及管道将用前驱体法陶瓷制造,先驱体易于成形,转化后的陶瓷无论在强度,抗腐蚀,耐热上都非常理想
发帖者
lanzinc
时间:
10/20/2008
0
评论
2008-10-17
科幻:火鸡们的粮食,和环境问题的解决
火鸡们的粮食,和环境问题的解决 (2008-10-17 09:40:04) [编辑][删除]
分类:第二产业替代第一产业
每个文明发展都要面对基础性战略物资的相对短期的阶段。
火鸡们也经历过粮食问题,但那已经是遥远的过去了。
现在回忆那段历史:
当时问题的解决是新过程工程革命(包括化工和生物过程工程发展史上的一次革命)的一个
必然成果。
新过程工程革命有两个标志:
1。“多酶啦”单元的使用和设计生产的产业化;
2。物质循环在整个文明中的建立。
当时出现新过程工程革命的条件是:
1.能源问题已经解决,成熟的核聚变发动机使能源的获取在相当长的时期内不是问题。
2.电子技术,自动化,信息自动处理(软件和计算)都已经发展到相当的程度。
3.集成制造和模块化等工程实施与管理运作方式的成熟。
“多酶啦”单元是一个输入输出定义明确的反应器和控制器集成的一个基本单元。
一个“多酶啦”单元有几个输入
输入输出分为:
物质输入,电能输入与输出,控制信号输入,产品物质输出,反馈信息输出
一个“多酶啦”单元一旦制造合格启动后,只要按要求输入需要的物质和电能,并进行很少量的外部控制,就能输出目标物质。“多酶啦”单元里面可能是一些基本的简单反应,分离过程;也可能是一个复杂的反应系统,但产参与反应的物质都构成循环,在单元内部变来变去而以。有些甚至是一个微生物生态系统。
能够用来设计成“多酶啦”单元的过程体系称为“多酶啦”循环,或“多酶啦”过程。最早的“多酶啦”过程大多源于对生物系统的逆向工程(仿生学)。许多“多酶啦”循环由许多生物活性酶构成,这些酶最初是由生物中提取的,但后来全部依靠所谓的“酶增多酶啦”单元制造。“酶增多酶啦”就是输入水、二氧化碳等基础物质产出活性酶的多酶啦单元。有了“酶增多酶啦”单元,多酶啦单元的制造商就能以少量天然提取的酶来制造“酶增多酶啦”单元,然后用这些单元产出的酶制造新的“酶增多酶啦”,使酶的生产能力成指数增长,最后脱离生物界,不需要生物中提取的酶就能有完整的酶生产体系。酶生产体系建立后就能够输出酶产品供其他类型的多酶啦单元的制造。这也是“多酶啦”这一名称的由来
对于单个的“多酶啦”单元是不需要拆开来维护了,一旦损害就整个单元替换掉。抛弃的单元就送到溶蚀厂去溶解掉,然后溶液输入溶蚀厂的分离用“多酶啦”堆叠(“多酶啦”单元组装起来的设备)产出符合工业标准的基础物质,供其他堆叠作为原料来生产新产品。溶蚀厂还有处理其他类型废弃物的能力。这样就实现了物质在整个文明内的循环,整个文明对矿物开采的需要降低了最低,需要利用生物圈来进行处理的废弃物几乎为零。
另外法律上规定:对“多酶啦”单元的设计实行知识产权保护,许多“多酶啦”单元被设计成拆开自损坏结构的,这样可以鼓励“多酶啦”单元的开发。同时“多酶啦”单元的设计实现了计算机辅助,你只要用“多酶啦”单元描述语言写出文档,就能进行设计交联和提交制造商用机器人生产线生产相应的单元。
许多基本的“多酶啦”单元被定为工业标准,在计算机的帮助下可以快速的用这些“多酶啦”单元设计“多酶啦”堆叠。
这就是新过程工程革命
发帖者
lanzinc
时间:
10/17/2008
0
评论
标签: 原创 科幻 粮食与环境问题
2008-09-12
MBS设计初稿
V0.0.3c
jagen<jagen@126.com>;lanzinc<lanzinc@gmail.com>
一、简介:
MBS是Magic Build System的缩写。MBS是一套运行在一个相对完整的Linux系统环境中的软件系统,这套系统在一个XML主控配置文件的控制下自动完成子配置文件和源代码包的下载,工具链的构建,打包环境的建立,和编译打包工作。最终得到构建一个发行ISO所需的RPM包,配合MI能构成一个完整的ISO发行。
二、MBS主要的工作流程
1. MBS解析“XML主控文件”根据优先级构建需要下载的文件的队列。
2. MBS启动若干进程,从队列中取出下载任务,并行进行文件的下载,某个进程完成下载后到下载完成列表中登记,然后从队列中取出新的下载任务,继续工作。
3. 当建立工具链需要的文件下载完成后,MBS根据“XML主控文件”在宿主系统(host)上建立编译包的基础环境,工具链。
4. MBS根据下载任务的完成情况合包的依赖关系构建并动态维护一个可以开始编译打包的包队列(队列成员包含下一工作需要的资源的索引)。
5. 同时MBS启动若干进程,每个进程独立加载Shell,构建合适的环境,然后从4中队列中取出任务进行编译打包。完成后到完成列表中登记,退出。
6. 整个过程中, MBS维持一个独立的进程,接受各个进程的信息,并负责记录到log,和向各个负责和用户交互的前台进程进行交互。
三、MBS的几个主要的子目标
1. 完整的日志系统方便对整个过程进行监视和分析。
2. 前后台分离,前台可以是本地的一个X窗口,也可以是一个文本界面的前台,也可以是一个web 服务器。前台停止工作不干扰后台的工作。
3. 程序尽可能的做好i18n设计,但优先照顾使用中文的用户。
4. 有一个进度记录系统,当过程意外停止后能重新启动系统从合适的位置继续该过程。
5. MBS的部分组成可以作为MGC3.0用户打包和交流的工具。
四、详细设计:
1. “XML主控文件”的设计
2. 子配置文件的设计
子配置文件由spec文件和一个附加配置文件构成
3. 几个主要队列和列表的数据结结构
4. MBS要实现的类:
Class-主控XML文档:
其实例化的对象完成对主控XML文的加载和解析,完成一个磁盘文件到一个抽象对象的转换。
Class-待下载文件队列:
封装了一个待下载文件的队列,和维护该队列的代码
Class-文件下载器:
Class-完成下载文件的表:
封装了一个完成下载文件的表,和维护该完成下载文件的表的代码
Class-工具链建设者
Class-编译打包进程
Class-完成包列表
Class-需打包包列表
Class-待打包包队列
封装了一个具备打包条件等待编译打包的包的队列,和维护该队列的代码
Class-控制与记录进程
五、Spec和配置文档库
作为MBS的外部支持,开发组需要维护一个SVN服务器,用来组织和存储“XML主控文件”、spec文件、子配置文件、补丁等文件。MBS通过和服务器的交互获取这些资源。但该服务器一般不存储各个软件的源代码,源代码直接从开发者提供的下载位置下载。开发组的开发工作通过修改或发布新的“XML主控文件”、spec文件、子配置文件、补丁等文件来形成自己的文档集。从而使开发工作能进行技术积累和延续,能进行沟通和配合。并且Fans们能方便的参与进来。
“XML主控文件”的设计 草稿:
一个ISO发行版本对于一个MBSMCF文档
文件名:
MBSMCF.<iso版本号>.xml
文档的内容:
“XML主控文件”自身信息:
文档格式版本号:
生成的ISO发行版本信息:
ISO版本号:
ISO 文件名称:
MBS的运行设置:
任务进程记录文件位置:
日志文件位置:
临时文件的位置:
完成下载的文件的位置:
RPM文档存放位置:
最大并行下载进程数:
最大并行编译进程数:
工具链构建控制结:
<<待详细设计>>
拟参考makefile的设计,或直接调用一个makefile
编译打包控制结:
<<待详细设计>>
一个包列表,
每个包的文件下载和补丁编译等操作由两个文档控制
spec文档和一个扩展配置文件(也可能采用一个扩展过的spec文档)。
2008-03-16
回复:MP3 e MP4
MP3 e MP4
MP3 e MP4 对您的文章 "windows和linux混合系统的多重启动" 发表了新的评论:
Hello. This post is likeable, and your blog is very interesting, congratulations :-). I will add in my blogroll =). If possible gives a last there on my blog, it is about the , I hope you enjoy. The address is http://mp3-mp4-brasil.blogspot
-----------------------------
因为某种原因,我无法正常访问域名以blogspot.com结尾的网页,所以无法完成这位网友的请求,现在用这种方式回答希望你能看到:
你可以链接、引用、转载本论坛的文章,但请注明出处。
你也可以适当修改后使用,但必须让读者明白那些是你修改过的。
xxflyu & lanzinc
2008-3-16
标签: 回复 MP3 e MP4
2007-12-02
windows和linux混合系统的多重启动
windows和linux混合系统的多重启动从来都是一个启动加载器加载另一个系统的引导记录或启动加载器.
因此Vista,Linux的双重启动也是如此:
方法1:用Vista的bootMbr加载grub
方法2:把Grub装到mbr,用grub "chainloader (hd0,1)+1"
方法2和XP没什么好说的,现在说方法1.
Vista的bootMbr可以看成一个小的操作系统,加载几种不同的程序
先来看:bcdedit /?create 中的一段话:
/application <apptype> 指定新项必须是应用程序项。
<apptype> 指定应用程序类型。
<apptype> 可以是下列类型之一:
BOOTSECTOR
OSLOADER
RESUME
STARTUP
如果使用其他应用程序类型而不是这些类型, 则还必须指定已知的标识符。
再来看,我系统的实际的BCD记录:
Windows 启动管理器
--------------------
标识符 {bootmgr}
device partition=D:
description Windows Boot Manager
locale zh-CN
inherit {globalsettings}
default {current}
displayorder {ntldr}
{current}
{cdb7d744-a02e-11dc-a438-00115b1add5f}
toolsdisplayorder {memdiag}
timeout 30
Windows 启动加载器
-------------------
标识符 {current}
device partition=C:
path Windowssystem32winload.exe
description Microsoft Windows Vista
locale zh-CN
inherit {bootloadersettings}
osdevice partition=C:
systemroot Windows
resumeobject {91d7a191-a009-11dc-8f33-c08105f3e2d8}
nx OptIn
Windows 启动加载器
-------------------
标识符 {cdb7d741-a02e-11dc-a438-00115b1add5f}
device partition=D:
path ghldr
description GHLDR-O
从休眠状态恢复
---------------------
标识符 {91d7a191-a009-11dc-8f33-c08105f3e2d8}
device partition=C:
path Windowssystem32winresume.exe
description Windows Resume Application
locale zh-CN
inherit {resumeloadersettings}
filepath hiberfil.sys
pae No
debugoptionenabled No
Windows 内存测试程序
---------------------
标识符 {memdiag}
device partition=D:
path bootmemtest.exe
description Windows 内存诊断
locale zh-CN
inherit {globalsettings}
badmemoryaccess Yes
Windows 旧 OS 加载器
------------------------
标识符 {ntldr}
device partition=D:
path ntldr
description 早期版本的 Windows
实模式启动扇区
---------------------
标识符 {cdb7d744-a02e-11dc-a438-00115b1add5f}
device partition=D:
path NSTNeoGrub.mbr
description NeoGrub Bootloader
EMS 设置
------------
标识符 {emssettings}
bootems Yes
调试器设置
-----------------
标识符 {dbgsettings}
debugtype Serial
debugport 1
baudrate 115200
RAM 故障
-----------
标识符 {badmemory}
全局设置
---------------
标识符 {globalsettings}
inherit {dbgsettings}
{emssettings}
{badmemory}
启动加载器设置
--------------------
标识符 {bootloadersettings}
inherit {globalsettings}
恢复加载器设置
----------------------
标识符 {resumeloadersettings}
inherit {globalsettings}
可见vista的boorMbr(Windows 启动管理器)
可以加载:
OSLOADER(Windows 启动加载器)
BOOTSECTOR(实模式启动扇区)
也就是说,我们可以把Grub修改成上面两种程序中的一种,来让"Windows 启动管理器"来加载.
第一种的配置例如上面的:
Windows 启动加载器
-------------------
标识符 {cdb7d741-a02e-11dc-a438-00115b1add5f}
device partition=D:
path ghldr
description GHLDR-O
但这样的文件,ghldr,实现起来是比较麻烦的,因为缺少资料.
第二种:
实模式启动扇区
---------------------
标识符 {cdb7d744-a02e-11dc-a438-00115b1add5f}
device partition=D:
path NSTNeoGrub.mbr
description NeoGrub Bootloader
则已经有了产品:NeoGrub.mbr
这是我D:NST的文件:
d:NST>dir
驱动器 D 中的卷是 XPHOME 卷的序列号是 A05A-B1BB
d:NST 的目录
2007/12/02 02:16 <dir> .
2007/12/02 02:16 <dir> ..
2007/12/02 02:16 397 menu.lst
2007/06/15 05:19 8,192 NeoGrub.mbr
2 个文件 8,589 字节
2 个目录 393,293,824 可用字节
d:NST>type menu.lst
# NeoSmart NeoGrub Bootloader Configuration File#
# This is the NeoGrub configuration file, and should be located at D:NSTmenu.lst
# Please see the EasyBCD Documentation for information on how to create/modify entries:
# <a href="http://neosmart.net/wiki/display/EBCDhttp://neosmart.net/wiki/display/EBCD">http://neosmart.net/wiki/display/EBCD</a>
find --set-root --ignore-floppies /boot/grub/menu.lst
configfile /boot/grub/menu.lst
# All your boot are belong to NeoSmart!
d:NST>
这样,Grub就会按分区顺序寻找/boot/grub/menu.lst
也许你会问,到哪里去找这个NeoGrub呢?
上面的文件已经透露了:
请google "EasyBCD"
发帖者
lanzinc
时间:
12/02/2007
2
评论
2007-11-07
2007-06-22
Linux系统的构成和相互间的依赖(从LFS看Linux)
原题 : 换个角度看LFS——反向分析LFS
更新日志
2006-08-12:修改有歧义的句子一处。
2006-06-21:增加对结尾插图的说明。
2006-06-21:修改最后一副插图。
2006-06-21:修改笔误一处。
前言
写了几篇关于LFS的制作过程中的文章,但分析性的文章还没怎么写过,论坛上也有一些分析性的文章,但大多数都是真对某个特定部分的,最近酝酿了一下,准备写点分析性质的文章调剂调剂。
这次用的标题大概已经能说明本文分析的角度,按照LFS的顺序写,似乎总不能摆脱LFS的制作过程的牵制,总觉得像写制作教程,所以决定反过来写,利用一个大家熟悉的情景为开始反过来推出整个LFS的过程,本文不能算专业的分析文章,只是想简单的说明白LFS为什么要这样的过程。
本文并不是要完全还原LFS,只是为了说明一种分析过程,因此文中部分内容和实际的LFS略有出入。
限于水平的问题,我只能将我现在的理解来写,如果有什么错误或者不当的地方希望大家及时指出。
本文的读者应该是一个已经经历过LFS至少一次的朋友,如果你从来没搞过LFS,建议亲自动手制作一遍后再看本文,应至少看过下面文章中的一篇:
《Linux from scratch》英文版本
《LFS-Book 6.1.1 中文正式版》
《手把手教你如何建立自己的Linux系统(LFS速成手册)》
更新,由于篇幅比较长所以难免出现一些错误或者笔误,也有可能加入新内容,因此难免会进行修正或增删一些内容,如果本文被转载您可以在本人的Blog或者www.linuxsir.org的LFS版中中查看最新版本。
我的Blog:http://youbest.cublog.cn
linuxsir:http://www.linuxsir.org/bbs/showthread.php?t=262010
如须转载请注明作者为冲天飞豹(youbest),并请保持文章的完整和提供转载出处。
工作情景:
我正在用VIM编辑一篇文件
分析:
问:那么要完成这个任务我需要些什么呢?
答:硬件(略),本文将不对硬件做任何分析。
软件:VIM
问:那么运行VIM又需要什么条件呢?
答:一个Linux内核
一组支持VIM运行的动态库,按照比较标准的组合,应该是glibc和ncurses这两个库来承担VIM的运行时动态库
问:那么内核需要什么条件呢?
答:符合内核运行的硬件环境。
问:glibc又需要什么条件呢?
答:于glibc相适应的Linux内核
问:ncurses需要什么条件呢?
答:合适的glibc
最后我们来画一副图来描述这个关系
那么这个关系图基本上就可以描述一个VIM运行的环境需求,当然在启动VIM的过程中少不了一个shell的参与,通常我们用BASH来完成,那么这个任务的整个大致环境和关系大致如下图所示。
清楚了这个问题,下面需要解决的就是这个运行环境从哪里来的呢?
通常Linux下的软件都提供了源代码,我们可以用这些源代码来组合成我们自己需要的二进制程序。
在这个例子中,我们想要有一个VIM,那么我们要先下载一份VIM的完整源代码,然后利用一组编译工具来完成VIM的编译。
对于一个通常编译的过程大致如下图
这其中最复杂的就是make阶段,make会调用目录中的Makefile来执行一系列的工作,其中包括创建必要的文件,以及调用gcc和binutils来编译源代码和链接目标文件,最终生成需要的可执行文件和附属文件。
所以make过程中一般需要用到的是gcc,binutils,make和一些系统程序(不同的软件需求不同)。
这样我们再来画最开始的运行环境的图
好了,这样我们就清楚了这个整个运行时候的环境是从哪里来的了。用红色虚线框起来的就是整个构造运行时环境的必要条件了,其实就是我们通常在LFS中最常见到的一个词汇:工具链。
那么下面的一个问题就是这些工具运行的条件是什么?
这些编译环境中的应用程序也和其它程序一样必须有运行的环境:
GCC依赖于glibc
binutils依赖于glibc
make依赖于glibc
头文件是在编译时候gcc所需要的,但本身都是一些文本文件,因此没有需要的运行环境。
常用工具依赖于glibc和各种需要用到的动态库。
这里的一个新问题就是编译环境中使用的glibc和Linux内核和“运行时环境”中的glibc与Linux内核是否是同一个。
答案很显然,绝对不是,因为“运行时环境”中的glibc和Linux内核是依靠工具链中编译工具来完成的,所以工具链所依赖的glibc和Linux内核于目标系统的不可能是同一个(但版本什么的是可以一样的,这里说的不同是指已经编译成二进制的实体不同)。
说明:
为了说明方便,下面将“运行时环境”称为目标系统。
但就LFS而言目标就是要做一个通用的可自主扩展(编译)的系统,所以在完成目标系统的glibc后又编译了一整套工具链中的东西,目的是将工具链中的工具全部移植到目标系统中,以便在完成目标系统后可以抛弃工具链而又能够自主的进行编译,而这些工具依赖的环境就是目标系统的glibc了。
内核这东西比较特殊,虽然运行任何程序都需要用的内核,但本身在制作目标系统过程中,目标系统的Linux内核却不需要先进行编译,因为使用 Linux内核并不像glibc那样是依靠动态链接库的方式被调用的,内核不是用动态库的方式被调用的,因此不需要先编译,只要提供对应的头文件即可,后面将不再探讨Linux内核的问题。
作为LFS的另一个目标就是要建立一个“纯净”的系统,因此编译glibc的编译器和最后目标系统里的编译器应该保持一致,同时目标系统是完全依靠工具链编译出来的,而工具链应该是在目标系统建立完毕后可以很方便的剥离掉的,而且为了保持工具链的稳定工具链中的工具所依赖的glibc以及其它用到的动态库应该是不会被替换掉的。
要解决上面这个问题,那么最好的方法就是将工具链放置在一个独立的目录中,LFS将其放在了/tools目录下,因此在用工具链建立目标系统的过程中将PATH设置为/bin:/usr/bin:/tools/bin来让bash调用命令时能首先调用目标系统中已经建立好的命令,如果没有则从工具链中调用。这样的话在目标系统还没有编译工具的情况下使用工具链来进行编译。
好了,现在已经可以用工具链来完成目标系统的编译了,下面的问题就是这个工具链是如何来的呢?
这个问题就要回到前面所提到的工具链运行时所依赖的环境,还是这个glibc,要编译这个glibc必须是在工具链的编译工具生成之前,而工具链的编译工具又依赖于glibc,那么这个glibc就不能是现在工具链中的编译工具编译出来的,那么是谁编译的呢?
这个问题的答案:当然还是编译器编译的这个glibc和工具链里的编译工具,也就是说在工具链中的编译工具编译目标系统之前需要另一个编译器来编译这个在使用的工具链中的编译器和编译器所依赖的glibc。
用蓝色的虚线框起来的部分就是生成工具链的工具链,我暂时称为“预工具链”。
“预工具链”的存在则能完成工具链中的glibc,以及工具链中的编译工具,并且工具链中的工具将被编译成依赖于工具链中的glibc。
那么现在要解决的问题就是这个“预工具链”是如何建立起来的。
答案还是一样,需要一套编译工具来编译出这个“预工具链”。
现在要提到的一个问题就是,用不同版本的gcc编译出来的程序可能不一样,而不同的gcc编译出来的目标文件要用能正确处理的binutils的版本来链接成可执行文件,因此我们现在已经能确定的gcc、binutils版本是工具链中的版本,那么用工具链编译出来的目标系统是符合我们的要求的。
那么编译工具链中的glibc和gcc以及binutils的gcc和binutils的版本现在还没有确定,但根据LFS的“纯净”目标,也就是说 gcc和binutils也必须和工具链中的gcc和binutils相同才行。而其它的常用工具及make虽然参与,但不会对编译的二进制产生影响(前提是必须能正确处理它应该做的事情)。
现在的问题就集中到“预工具链”中的gcc和binutils上了,只要能编译出和工具链中的gcc与binutils相同版本就可以了,也就是说只要一套编译环境能编译gcc和binutils就可以了。
那么问题是这一套编译环境是怎么来的呢?
如果还继续按照前面的套路,这个问题就成了无穷无尽的了,这个不是我们想做的,现在已经能“纯净”的建立一套符合条件的工具链就已经达到我们的目的了,因此编译“预工具链”的binutils和gcc的任务我们就采用一套能正确编译的发行版或者预制好的编译环境就可以了,我们可以称这个发行版或者预制好的编译环境为“主系统”。
那么我们现在只要能用这个“主系统”编译出“预工具链”的binutils和gcc就可以了,“预工具链”中的其它部分就直接采用“主系统”里的就可以了。
但这里有一个问题就是:“主系统”中的gcc和binutils与“预工具”中要求的gcc和binutils版本不同(通常会老些),但只要能正确编译binutils、gcc就行了,gcc具备自我编译的功能,因此建议编译不同版本的gcc采用bootstrap的方式比较好。当然“主系统”中的在参与编译过程中的其它工具也需要符合要求就成。
最后用一副图来表达简单的表达整个过程,也算本文的结尾。
(转载请保持文章的完整性,请注明作者和出处)
作者:冲天飞豹(youbest)
Email:youbest@sina.com
2006年6月21日
希望大家能多写一些分析性的文章,共同提高。
说明:上图的内容实际上并不是标准的LFS编译关系,按照LFS的做法,应该在预工具链编译完成工具链中的glibc、gcc和binutils,工具链后续的部分是由工具链的gcc和binutils来完成的,但本文并不追求和LFS完全一致,只是为了说明整个过程是如何反向推出来的,而且我认为按照图里的方法也完全没问题,完全不影响目标系统的“纯净”度。
图中实际上也表现了一种可以用来编译不同平台上的工具链的方法,因为在编译整个工具链的过程中都由预工具链来完成的(此方法我自己没实验过,只是一个设计)。
更新日志:
2006年6月21日:
修改笔误一处
由linuxsir上的doom3d发现并报告
2006年6月21日:
在结尾的图片上加入gcc的bootstrap的标记。
由linuxsir上的doom3d建议
2006年6月21日:
对结尾的图片做出说明。
2006年8月12日:
修改有歧义的句子一处。
标签: [转发,非原创,收集], Linux
2007-06-18
关于无线全球电力广播的不知道可不可信的报道
关于无线全球电力广播的不知道可不可信的报道
他(特斯拉)的最著名的发明是“特斯拉线圈”,这是一种分布参数高频共振变压器,可以获得上百万伏的高频电压。 特斯拉线圈的线路和原理都非常简单,但要将它调整到与环境完美的共振很不容易,特斯拉就是特别擅长这项技艺的人。
特斯拉后来发明了所谓的“放大发射机”,现在称之为大功率高频传输线共振变压器,用于无线输电试验。特斯拉的无线输电技术。值得一题的是:特斯拉把地球作为内导体,地球电离层作为外导体,通过他的放 大发射机,使用这种放大发射机特有的径向电磁波振荡模式,在地球与电离层之间建立起大约 8 赫兹的低频共振,利用环绕地球的表面电磁波来传输能量。
(这个怎么弄呀!整个地球岂不是要变成一个球形的电容器,一次充放电要多大的能量呀!)
这一系统 与现代无线电广播的能量发射机制不同,而与交流电力网中的交流发电机与输电线的关系类似,当没有电力接收端的时候,发射机只与天地谐振腔交换无功能量,整 个系统只有很少的有功损耗,而如果是一般的无线电广播,发射的能量则全部在空间中损耗掉了。
特斯拉有生之年没有财力实现这一主张。后人从理论上完全证实了 这种方案的可行性,证明这种方案不仅可行,而且效率极高,对生态安全,并且不会干扰无线电通信。只不过涉及到世界范围内的能量广播和免费获取,在现有的政 治和经济体制下,无人实际问津这种主张。
2007-06-02
xorg配置的一些看法
xorg配置的一些看法
以下是本人的一些看法,如有错误请指正:
--------------------------------------------------------------------------------
关于液晶显示器采用高的刷新频率而不是最佳刷新频率的问题:
如果是液晶显示器的话,很多是有一个显示效果最好的刷新频率,设高了,如果没超出显示器的范围,还是能工作的,但是显示器的显示效果反而不好。
这时候应该在你xorg.conf中有效的那一段Section "Monitor" 中添加或修改VertRefresh设置成VertRefresh (显示器底限) - (最佳频率+0.3到0.5)
因为X进行显示模式匹配的时候,同一分辨率的索引项,是安刷新频率从高到低排列的,也就是说合格的显示模式中,同一分辨率的,高刷新频率的模式会优先采用。
------------------------------------------------------------------------------------
关于X采用的刷新频率高于显示器的实际工作能力的问题:
X是跟据程序中Probe phase (硬件侦测)生成的数据和VertRefresh信息,HorizSync信息设定,进行显示模式索引的建立的。当VertRefres高限过高,或根本没提供VertRefresh信息时,能否正确进行显示模式索引的建立就依赖于Probe phase,Probe phase绝大部分情况下还是能很好工作的,但是程序毕竟不是万能的。就有可能采用的刷新频率高于显示器的实际工作能力。
另外HorizSync也是一个很有用的参数,因为显示器的刷新频率和分辨率是关联的,高分辨率时能工作的刷新频率就低。X就是根据HorizSync计算不同分辨率下的刷新频率的高限的。HorizSync不正确,即使VertRefres正确,也可能导致X在使用较高分辨率时刷新频率过高。
解决办法:(不太适用于不会在文本方式下工作的人)
1.先去掉所有的HorizSync VertSync 配置(Comment all HorizSync and VertSync values to use DDC)
2.1的方法不行的话,就需要收工指定HorizSync VertSync,在没有可靠资料的情况下:
如果是液晶显示器的话:VertRefresh高限设成 (最佳频率+0.3到0.5),一般最佳的是在60或65。 如果是CRT 17寸的话,VertRefresh 高限应该可以设到70。
如果同时装有windows的话,VertRefresh 高限设成你windows正在使用的刷新频率+0.3到0.5,同时Modes设成对应的Windows正在使用的分辨率。
3.2的办法不行的话把显卡驱动模块改成 "vga",去掉所有的HorizSync VertSync 配置,先提供一个图形界面供你上网,然后就google你的显示器型号,应该能找到一些资料吧。
-------------------------------------------------------------------------------------
还有的一些疑问,希望知道的告诉我:
现在还不清楚是xorg.conf中的配置和Probe phase是怎样配合的,有时候发现光靠Probe phase(就是xorg.conf不作配置)X能工作,这时xorg.conf添加了错误配置后反而不能工作,并不是设想的xorg.conf和Probe phase只要有一个能正确进行就能工作。这大概就是为什么有的xorg.conf的配置软件会在xorg.conf写入一行:
### Comment all HorizSync and VertSync values to use DDC:
2007-05-31
Visio,整理思路,交流思想的好工具(1)
任何历史老师或学生都知道,要理解历史事件仅仅靠记住其发生日期是远远不够的。每个历史事件的发生,都有一系列错综复杂的小事件作前导,并最终导致了该历史事件的发生。您可以使用 Visio 因果图来显示这种历史因果关系的循环。
您可以将因果图添加到您的课程安排中,或将它们留作家庭作业,以帮助学生分析特定事件背后的原因。或者,如果您是一名学生,那么可以将因果图放入您的研究论文和其他课外作业中。
什么是因果图?
因果图的发明者 Kaoru Ishikawa 是一名管理专家,其最初的目的是改进车间的质量控制工作。正如以下示例所示,因果图还能表达其他环境中的因果关系。
由于因果图的形状很像鱼的骨架,所以它又称作鱼骨图。鱼的脊骨上几根最大的鱼骨表示主要的原因类别。例如,在本例中,主要的原因类别有盎格鲁人/朱特人、丹麦人、萨克逊人和诺曼底人,这些种族群体都想控制英格兰,从而导致了该战争的爆发。
主要类别中的较小鱼骨表示主要的原因。例如,在本例中,在萨克逊人这个类别方面,黑斯廷斯战争的主要原因在于公元 1051 年萨克逊王爱德华许诺将王位传给威廉一世。
您还可以在主要原因上添加次要原因。
如何创建因果图?
当您打开因果模板后,您会发现因果图的基本骨干已经搭建好。您只需向其中添加类别和名称。
创建因果图
启动 Visio。在“选择绘图类型”窗口中,单击“业务进程”,然后单击“因果图”。
将在绘图页上打开一个因果图,其中已经具备脊骨和类别。
单击脊骨,然后键入事件(或结果)的名称。
确定所需的原因类别数量。
要添加类别,将“类别 1”或“类别 2”形状拖到绘图页上放好,使箭头接触到脊骨。
要删除类别,单击它,然后按 Delete 键。
单击每个类别形状,并键入原因类别的名称。
对于每个类别,确定所需的主要原因数量。对于每个主要原因,执行以下操作:
将“主要原因”形状拖到绘图页,并将箭头与类别线对齐。
单击每个主要原因形状,并键入原因的说明。
如果您要在某些主要原因中添加次要原因,请执行以下操作:
将“次要原因”形状拖到绘图页上,并将箭头与主要原因线对齐。
单击每个次要原因形状,并键入原因的说明。
保存并命名该因果图。
标签: [转发,非原创,收集]
2007-05-30
访问控制技术 IP ACL
技术从来都是一把双刃剑,网络应用与互联网的普及在大幅提高企业的生产经营效率的同时,也带来了诸如数据的安全性,员工利用互联网做与工作不相干事等负面影响。如何将一个网络有效的管理起来,尽可能的降低网络所带来的负面影响就成了摆在网络管理员面前的一个重要课题。
A公司的某位可怜的网管目前就面临了一堆这样的问题。A公司建设了一个企业网,并通过一台路由器接入到互联网。在网络核心使用一台基于IOS的多层交换机,所有的二层交换机也为可管理的基于IOS的交换机,在公司内部使用了VLAN技术,按照功能的不同分为了6个VLAN。分别是网络设备与网管(VLAN1,10.1.1.0/24)、内部服务器(VLAN2)、Internet连接(VLAN3)、财务部(VLAN4)、市场部(VLAN5)、研发部门(VLAN6),出口路由器上Fa0/0接公司内部网,通过s0/0连接到Internet。每个网段的三层设备(也就是客户机上的缺省网关)地址都从高位向下分配,所有的其它节点地址均从低位向上分配。该网络的拓朴如下图所示:
自从网络建成后麻烦就一直没断过,一会儿有人试图登录网络设备要捣乱;一会儿领导又在抱怨说互联网开通后,员工成天就知道泡网;一会儿财务的人又说研发部门的员工看了不该看的数据。这些抱怨都找这位可怜的网管,搞得他头都大了。那有什么办法能够解决这些问题呢?答案就是使用网络层的访问限制控制技术――访问控制列表(下文简称ACL)。
那么,什么是ACL呢?ACL是种什么样的技术,它能做什么,又存在一些什么样的局限性呢?
ACL的基本原理、功能与局限性
网络中常说的ACL是Cisco IOS所提供的一种访问控制技术,初期仅在路由器上支持,近些年来已经扩展到三层交换机,部分最新的二层交换机如2950之类也开始提供ACL的支持。只不过支持的特性不是那么完善而已。在其它厂商的路由器或多层交换机上也提供类似的技术,不过名称和配置方式都可能有细微的差别。本文所有的配置实例均基于Cisco IOS的ACL进行编写。
基本原理:ACL使用包过滤技术,在路由器上读取第三层及第四层包头中的信息如源地址、目的地址、源端口、目的端口等,根据预先定义好的规则对包进行过滤,从而达到访问控制的目的。
功能:网络中的节点资源节点和用户节点两大类,其中资源节点提供服务或数据,用户节点访问资源节点所提供的服务与数据。ACL的主要功能就是一方面保护资源节点,阻止非法用户对资源节点的访问,另一方面限制特定的用户节点所能具备的访问权限。
配置ACL的基本原则:在实施ACL的过程中,应当遵循如下两个基本原则:
u 最小特权原则:只给受控对象完成任务所必须的最小的权限
u 最靠近受控对象原则:所有的网络层访问权限控制
局限性:由于ACL是使用包过滤技术来实现的,过滤的依据又仅仅只是第三层和第四层包头中的部分信息,这种技术具有一些固有的局限性,如无法识别到具体的人,无法识别到应用内部的权限级别等。因此,要达到end to end的权限控制目的,需要和系统级及应用级的访问权限控制结合使用。
ACL配置技术详解
“说那么多废话做什么,赶快开始进行配置吧。”,A公司的网管说。呵呵,并不是我想说那么多废话,因为理解这些基础的概念与简单的原理对后续的配置和排错都是相当有用的。说说看,你的第一个需求是什么。
“做为一个网管,我不期望普通用户能telnet到网络设备”――ACL基础
“补充一点,要求能够从我现在的机器(研发VLAN的10.1.6.66)上telnet到网络设备上去。”。hamm,是个不错的主意,谁都不希望有人在自己的花园中撤野。让我们分析一下,在A公司的网络中,除出口路由器外,其它所有的网络设备段的是放在Vlan1中,那个我只需要在到VLAN 1的路由器接口上配置只允许源地址为10.1.6.66的包通过,其它的包通通过滤掉。这中只管源IP地址的ACL就叫做
标准IP ACL:
我们在SWA上进行如下的配置:
access-list 1 permit host 10.1.6.66
access-list 1 deny any
int vlan 1
ip access-group 1 out
这几条命令中的相应关键字的意义如下:
access-list:配置均ACL的关键字,所有的ACL均使用这个命令进行配置。
access-list后面的1:ACL号,ACL号相同的所有ACL形成一个组。在判断一个包时,使用同一组中的条目从上到下逐一进行判断,一遇到满足的条目就终止对该包的判断。1-99为标准的IP ACL号,标准IP ACL由于只读取IP包头的源地址部分,消耗资源少。
permit/deny:操作。Permit是允许通过,deny是丢弃包。
host 10.1.6.66/any:匹配条件,等同于10.1.6.66 0.0.0.0。刚才说过,标准的ACL只限制源地址。Host 10.1.6.66(10.1.6.66 0.0.0.0)的意思是只匹配源地址为10.1.6.66的包。0.0.0.0是wildcards,某位的wildcards为0表示IP地址的对应位必须符合,为1表示IP地址的对应位不管是什么都行。简单点说,就是255.255.255.255减去子网掩码后的值,0.0.0.0的wildcards就是意味着IP地址必须符合10.1.6.66,可以简称为host 10.1.6.66。any表示匹配所有地址。
注意:IOS中的ACL均使用wildcards,并且会用wildcards对IP地址进行严格的对齐,如你输入一条access-list 1 permit 10.1.1.129 0.0.0.31,在你show access-list看时,会变成access-list 1 permit 10.1.1.128 0.0.0.31,PIXOS中的ACL均使用subnet masks,并且不会进行对齐操作。更为详细的关于IP V4地址的资料可以参见拙著《IP v4基础知识》http://www.ultratechnology.net/showarticle.php?s=&articleid=60 一文
int vlan1///ip access-group 1 out:这两句将access-list 1应用到vlan1接口的out方向。其中1是ACL号,和相应的ACL进行关联。Out是对路由器该接口上哪个方向的包进行过滤,可以有in和out两种选择。
注意:这里的in/out都是站在路由器或三层模块(以后简称R)上看的,in表示从该接口进入R的包,out表示从该接口出去的包。
好了,这就是一个最基本的ACL的配置方法。什么,你说普通用户还能telnet到RTA?那你在int vlan3上现加一个ip access-group 1 out吧。Hammmm,等等,你这样加上去普通用户就访问不了internet了。让我们把刚才的ACL去掉,重新写一个。
回忆一下,我们的目的是除了10.1.6.66能够进行telnet操作外,其它用户都不允许进行telnet操作。刚才我们说过,标准的IP ACL只能控制源IP地址,不能控制到端口。要控制到第四层的端口,就需要使用到:
扩展的IP ACL的配置
先看看配置实例吧。在SWA上进行如下配置:
int vlan 1
no ip access-group 1 out
exit
no access-list 1
access-list 101 permit tcp host 10.1.6.66 any eq telnet
access-list 101 deny tcp any any eq telnet
int vlan 1
ip access-group 101 out
int vlan 3
ip access-group 101 out
你应该注意到到这里的ACL有一些变化了,现在对变化的部分做一些说明:
access-list 101:注意这里的101,和刚才的标准ACL中的1一样,101是ACL号,表示这是一个扩展的IP ACL。扩展的IP ACL号范围是100-199,扩展的IP ACL可以控制源IP、目的IP、源端口、目的端口等,能实现相当精细的控制,扩展ACL不仅读取IP包头的源地址/目的地址,还要读取第四层包头中的源端口和目的端口,的IP在没有硬件ACL加速情况下,会消耗大量的CPU资源。
int vlan 1///no ip access-group 1 out///exit///no access-list 1:取消access-list 1,对于非命名的ACL,可以只需要这一句就可以全部取消。注意,在取消或修改一个ACL前,必须先在它所应用的接口上先把应用给no掉,否则会导致相当严重的后果。
tcp host 10.1.6.66 any eq telnet:匹配条件。完整格式为:协议 源地址 源wildcards [关系] [源端口] 目的地址 目的wildcards [关系] [目的端口]。其中协议可以是IP、TCP、UDP、EIGRP等,[]内为可选字段。仅在协议为tcp/udp等具备端口号的协议才有用。关系可以是eq(等于)、neq(不等于)、lt(大于)、range(范围)等。端口一般为数字的1-65535,对于周知端口,如23(服务名为telnet)等可以用服务名代替。源端口和目的端口不定义时表示所有端口。
把这个ACL应用上去后,用户们开始打电话来骂娘了,因为他们都访问不了Internet了,是哪里出了问题了呢?
注意:所有的ACL,缺省情况下,从安全角度考虑,最后都会隐含一句deny any(标准ACL)或deny ip any any(扩展IP ACL)。所以在不了解业务会使用到哪些端口的情况下,最好在ACL的最后加上一句permit ip any any,在这里就是access-list 101 permit ip any any。
现在用户倒是能够访问Internet了,但我们的可怜的网管却发现普通用户还是能够telnet到他的SWA上面,因为SWA上面有很多个网络接口,而且使用扩展的ACL会消耗很多的资源。有什么简单的办法能够控制用户对网络设备的Telnet访问,而又不消耗太多的资源呢?这就需要使用到:
对网络设备自身的访问如何进行控制的技术
让我们先把刚才配置的ACL都取掉(具体配置略,不然后读者会以为我在骗稿费了。),再在每台网络设备上均进行如下配置:
access-list 1 permit host 10.1.6.66
line vty 0 4(部分设备是15)
access-class 1 in
这样就行了,telnet都是访问的设备上的line vty,在line vty下面使用access-class与ACL组进行关联,in关键字表示控制进入的连接。
就这么简单?wk,你丫是不是在玩我们,为什么还要绕一大圈?臭鸡蛋和烂西红柿开始在70的脑袋上方狂飞。(5555555,偶也只是想向大家把ACL的基础知识讲的明白一些的嘛)。经过刚才的配置,我们可以理出一个简单的ACL配置步骤了:
u 分析需求,找清楚需求中要保护什么或控制什么;为方便配置,最好能以表格形式列出。在本文的后面会举例的。
u 分析符合条件的数据流的路径,寻找一个最适合进行控制的位置;
u 书写ACL,并将ACL应用到接口上;
u 测试并修改ACL。
当A公司的领导知道在网管能够控制普通用户对网络设备的访问后,我们的可怜的网管就收到了很多看起来很难的要求。领导要求网管:
“使用ACL技术对网络访问进行精细化控制”――ACL进阶配置
命名的IP ACL
由于最近服务器网段的机器老是被人用telnet、rsh等手段进行攻击,我们只对员工开放web服务器(10.1.2.20)所提供的http、FTP服务器(10.1.2.22)提供的FTP服务和数据库服务器(10.1.2.21:1521)。好吧,我们着手进行配置,可是我们的ACL刚写到一半,发现前面写的几句好像有问题,一个no命令输进去,整个ACL都没了,唉,一切都得重来,难道就没有一个变通的办法么?有,这里我就需要用到:
命名的IP acl提供的两个主要优点是:
l 解决ACL号码不足的问题。
l 可以自由的删除ACL中的一条语句,而不必删除整个ACL。
命名的ACL的主要不足之处在于无法实现在任意位置加入新的ACL条目。比如上面那个例子中,我们进行了如下的配置:
ip access-list extend server-protect
permit tcp 10.1.0.0 0.0.255.255 host 10.1.2.20 eq www
permit tcp 10.0.0.0 0.0.255.255 host 10.1.2.21 eq 1521
permit tcp 10.1.0.0 0.0.255.255 host 10.1.2.22 eq ftp
配置到这里,我们发现permit tcp 10.0.0.0 0.0.255.255 host 10.1.2.21 eq 1521这句配错了,我们得把它给取掉并重新配置,OK,我样可以简单的进行如下配置:
ip access-list extend server- protect
no permit tcp 10.0.0.0 0.0.255.255 host 10.1.2.21 eq 1521
permit tcp 10.1.0.0 0.0.0.255 host 10.1.2.21 eq 1521
exit
int vlan 2
ip access-group server- protect
就可以了。现在对命名的IP access-list的配置方法解释如下:
ip access-list extend server-access-limit:ip access-list相当于使用编号的access-list中的access-list段。extend表明是扩展的ACL(对应地,standard表示标准的ACL)。server-access-limit是access-list的名字,相当于基于编号的ACL中的编号字段。
permit tcp 10.1.6.0 0.0.0.255 host 10.1.2.21 eq 1521:这一段和使用编号的access-list的后半段的意义相同,都由操作和条件两段组成。
其实基于名字的IP ACL还有一个很好的优点就是可以为每个ACL取一个有意义的名字,便于日后的管理与维护。所以Ultra工作室强烈建议各位看官在实际工作中均使用命名的ACL。
进一步完善对服务器数据的保护――ACL执行顺序再探讨
在服务器网段中的数据库服务器中存放有大量的市场信息,市场部门的人员不希望研发部门访问到数据库服务器,经过协商,同意研发部门的领导的机器(IP地址为10.1.6.33)可以访问到数据库服务器。这样,我们的服务器网段的的访问权限部分如下表所示:
协议
源地址
源端口
目的地址
目的端口
操作
TCP
10.1/16
所有
10.1.2.20/32
80
允许访问
TCP
10.1/16
所有
10.1.2.22/32
21
允许访问
TCP
10.1/16
所有
10.1.2.21/32
1521
允许访问
TCP
10.1.6/24
所有
10.1.2.21/32
1521
禁止访问
TCP
10.1.6.33/32
所有
10.1.2.21/32
1521
允许访问
IP
10.1/16
N/A
所有
N/A
禁止访问
于是,网管就在server-protect后面顺序加了两条语句进去,整个ACL变成了如下形式:
ip access-list extend server-protect
permit tcp 10.1.0.0 0.0.255.255 host 10.1.2.20 eq www
permit tcp 10.1.0.0 0.0.255.255 host 10.1.2.21 eq 1521
permit tcp 10.1.0.0 0.0.255.255 host 10.1.2.22 eq ftp
deny tcp 10.1.6.0 0.0.0.255 host 10.1.2.21 eq 1521
permit tcp host 10.1.6.33 host 10.1.2.21 eq 1521
做完之后发现根本没起到应有的作用,研发部门的所有机器还是可以访问到数据库服务器。这是为什么呢?
前面我们提到过,ACL的执行顺序是从上往下执行,一个包只要遇到一条匹配的ACL语句后就会停止后续语句的执行,在我们的这个ACL中,因为前面已经有了一条permit tcp 10.1.0.0 0.0.255.255 host 10.1.2.21 eq 1521语句。内部网上所有访问10.1.2.21的1521端口的在这儿就全部通过了,跟本不会到后面两句去比较。所以导致达不到我们的目的。应该把server-protect这个ACL按如下形式进行修改才能满足我们的要求:
ip access-list extend server-protect
permit tcp host 10.1.6.33 host 10.1.2.21 eq 1521
deny tcp 10.1.6.0 0.0.0.255 host 10.1.2.21 eq 1521
permit tcp 10.1.0.0 0.0.255.255 host 10.1.2.21 eq 1521
permit tcp 10.1.0.0 0.0.255.255 host 10.1.2.20 eq www
permit tcp 10.1.0.0 0.0.255.255 host 10.1.2.22 eq ftp
这个例子告诉我们在写ACL时,一定要遵循最为精确匹配的ACL语句一定要写在最前面的原则,只有这样才能保证不会出现无用的ACL语句。
基于时间的ACL
在保证了服务器的数据安全性后,领导又准备对内部员工上网进行控制。要求在上班时间内(9:00-18:00)禁止内部员工浏览internet,禁止使用QQ、MSN。而且在2003年6月1号到2号的所有时间内都不允许进行上述操作。但在任何时间都可以允许以其它方式访问Internet。天哪,这可叫人怎么活呀,但领导既然这样安排,也只好按指示做了。
首先,让我们来分析一下这个需求,浏览internet现在基本上都是使用http或https进行访问,标准端口是TCP/80端口和TCP/443,MSN使用TCP/1863端口,QQ登录会使用到TCP/UDP8000这两个端口,还有可能使用到udp/4000进行通讯。而且这些软件都能支持代理服务器,目前的代理服务器主要布署在TCP 8080、TCP 3128(HTTP代理)和TCP1080(socks)这三个端口上。这个需求如下表所示:
应用
协议
源地址
源端口
目的地址
目的端口
操作
IE
TCP
10.1/16
所有
所有
80
限制访问
IE
TCP
10.1/16
所有
所有
443
限制访问
MSN
TCP
10.1/16
所有
所有
1863
限制访问
QQ
TCP
10.1/16
所有
所有
8000
限制访问
QQ
UDP
10.1/16
所有
所有
8000
限制访问
QQ
UDP
10.1/16
所有
所有
4000
限制访问
HTTP代理
TCP
10.1/16
所有
所有
8080
限制访问
HTTP代理
TCP
10.1/16
所有
所有
3128
限制访问
Socks
TCP
10.1/16
所有
所有
1080
限制访问
All other
IP
10.1/16
N/A
所有
N/A
允许访问
然后,让我们看看ACL应该在哪个位置配置比较好呢?由于是对访问Internet进行控制,涉及到的是公司内部所有的网段,这们这次把ACL就放到公司的Internet出口处。在RTA上进行如下的配置,就能够满足领导的要求了:
time-range TR1
absolute start 00:00 1 June 2003 end 00:00 3 June 2003
periodic weekdays start 9:00 18:00
exit
ip access-list extend internet_limit
deny tcp 10.1.0.0 0.0.255.255 any eq 80 time-range TR1
deny tcp 10.1.0.0 0.0.255.255 any eq 443 time-range TR1
deny tcp 10.1.0.0 0.0.255.255 any eq 1863 time-range TR1
deny tcp 10.1.0.0 0.0.255.255 any eq 8000 time-range TR1
deny udp 10.1.0.0 0.0.255.255 any eq 8000 time-range TR1
deny udp 10.1.0.0 0.0.255.255 any eq 4000 time-range TR1
deny tcp 10.1.0.0 0.0.255.255 any eq 3128 time-range TR1
deny tcp 10.1.0.0 0.0.255.255 any eq 8080 time-range TR1
deny tcp 10.1.0.0 0.0.255.255 any eq 1080 time-range TR1
permit ip any any
int s0/0
ip access-group internet_limit out
或int fa0/0
ip access-group internet_limit in
或者将ACL配置在SWA上,并
int vlan 3
ip access-group internet_limit out
呵呵,现在让我们来看看在基于时间的访问列表中都有哪些新内容吧:
time-range TR1:定义一个新的时间范围,其中的TR1是为该时间范围取的一个名字。
absolute:为绝对时间。只使用一次。可以定义为1993-2035年内的任意一个时点。具体的用法请使用?命令查看。
Periodic:为周期性重复使用的时间范围的定义。完整格式为periodic 日期关键字 开始时间 结束时间。其中日期关键字的定义如下所示:
Monday 星期一
Tuesday 星期二
Wednesday 星期三
Thursday 星期四
Friday 星期五
Saturday 星期六
Sunday 星期天
daily 每天
weekdays 周一至五
weekend 周末
access-list 101 deny ip 10.1.0.0 0.0.255.255 any time-range TR1:注意这一句最后的time-range TR1,使这条ACL语句与time-range TR1相关联,表明这条语句在time-range TR1所定义的时间范围内才起作用。
注意:给出三种配置位置是帮助大家深刻理解关于in/out的区别的。acl是对从一个接上流入(in)或流出(out)路由器的包进行过滤的。
网管发问了,“你是怎么找到这些应用的所使用的端口的?”。呵呵,在如下文件中可以找到大多数应用的端口的定义:
Win9x:%windir%services
WinNT/2000/XP:%windir%system32driversetcservices
Linux:/etc/services
对于在services文件中找不到端口的应用,可以在运行程序的前后,运行netstat –ap来找出应用所使用的端口号。
使用IP ACL实现单向访问控制
A公司准备实行薪资的不透明化管理,由于目前的薪资收入数据还放在财务部门的Vlan中,所以公司不希望市场和研发部门能访问到财务部Vlan中的数据,另一方面,财务部门做为公司的核心管理部门,又希望能访问到市场和研发部门Vlan内的数据。我们的网管在接到这个需求后就在SWA上做了如下的配置:
ip access-list extend fi-access-limit
deny ip any 10.1.4.0 0.0.0.255
permit ip any any
int vlan 5
ip access-group fi-access-limit in
int vlan 6
ip access-group fi-access-limit in
配置做完后,测试了一下,市场和研发部门确实访问不到财务部了,刚准备休息一下,财务部打电话过来说为访问不到市场与研发部门的数据了。这是怎么回事呢?
让我们回忆一下,在两台主机A与B之间要实现通讯,需要些什么条件呢?答案是既需要A能向B发包,也需要B能向A发包,任何一个方向的包被阻断,通讯都不能成功,在我们的例子中就存在这样的问题,财务部访问市场或研发部门时,包到到市场或研发部门的主机,由这些主机返回的包在到达路由器SWA时,由于普通的ACL均不具备检测会话状态的能力,就被deny ip any 10.1.4.0 0.0.0.255这条ACL给阻断了,所以访问不能成功。
要想实现真正意义上的单向访问控制应该怎么办呢?我们希望在财务部门访问市场和研发部门时,能在市场和研发部门的ACL中临时生成一个反向的ACL条目,这样就能实现单向访问了。这里就需要使用到反向ACL技术。我们可以按照如下配置实例就可以满足刚才的那个单向访问需求:
ip access-list extend fi-main
permit tcp any 10.1.0.0 0.0.255.255 reflect r-main timeout 120
permit udp any 10.1.0.0 0.0.255.255 reflect r-main timeout 200
permit icmp any 10.1.0.0 0.0.255.255 reflect r-main timeout 10
permit ip any any
int vlan 4
ip access-group fi-main in
ip access-list extend fi-access-limit
evaluate r-main
deny ip any 10.1.4.0 0.0.0.255
permit ip any any
int vlan 5
ip access-group fi-access-limit in
int vlan 6
ip access-group fi-access-limit in
现在对反向ACL新增加的内容一一解释如下:
n 新增了一个ACL(fi-main)并应用在具备访问权限的接口下(财务部所在的vlan4)的in方向,使用该acl中具备reflect关键字的acl条目来捕捉建立反向ACL条目所需要的信息。我们将该ACL称为主ACL。
n reflect r-main timeout xxx:其中的reflect关键字表明该条目可以用于捕捉建立反向的ACL条目所需要的信息。r-main是reflect组的名字,具备相同reflect组名字的所有的ACL条目为一个reflect组。timeout xxx表明由这条ACL条目所建立起来的反向ACL条目在没有流量的情况下,多长时间后会消失(缺省值为300秒),单位为秒。
n evaluate r-main:我们注意到在fi-access-limit(我们把它称为反ACL)增加了这样一句,这一句的意思是有符合r-main这个reflect组中所定义的acl条目的流量发生时,在evaluate语句所在的当前位置动态生成一条反向的permit语句。
反向ACL的局限性:
n 必须使用命名的ACL,其实这不能叫局限性,应该算注意事项吧;
n 对多通道应用程序如h323之类无法提供支持。
好了,到现在我们从IP ACL的基础知识讲起,中间讲述了标准的IP ACL、扩展的IP ACL、基于名字的ACL、基于时间的ACL、反向ACL等诸多内容,这些ACL在ios的基本IP特性集中都能提供支持,在一般的企业网或校园网中也应该完全够用了。如果各位看官还需要了解更加深入的知识,如CBAC之类能够为多通道应用程序提供良好支持的配置技术的,请参考《Cisco IOS Security Configuration Guide,Part 3: Traffic Filtering and Firewalls》。
“站住!”,70正想开溜,只听那网管一声大吼,“有什么办法能知道ACL都过滤了从哪儿来,到哪儿去的流量??”。呵呵,刚才忘记说了,你只需要在需要记录的acl条目的最后加一个log关键字,这样在有符合该ACL条目数据包时,就会产生一条日志信息发到你的设备所定义的日志服务器上去。谢谢大家的捧场,本文到此为止。
标签: [转发,非原创,收集]
PPPoE工作原理与帧格式
PPPoE工作原理与帧格式
作者:lycb_gz 来源:http://blog.csdn.net/lycb_gz/ 发表时间:2006-10-19
以下内容摘自笔者的《网络工程师必读——接入网与交换网》一书:
4.3.2 PPPoE协议工作原理
PPPoE协议的工作流程包含发现和会话两个阶段,发现阶段是无状态的,目的是获得PPPoE终结端(在局端的ADSL设备上)的以太网MAC地址,并建立一个唯一的PPPoESESSION_ID。发现阶段结束后,就进入标准的PPP会话阶段。
当一个主机想开始一个PPPoE会话,它必须首先进行发现阶段,以识别局端的以太网MAC地址,并建立一个PPPoESESSION_ID。在发现阶段,基于网络的拓扑,主机可以发现多个接入集中器,然后允许用户选择一个。当发现阶段成功完成,主机和选择的接入集中器都有了他们在以太网上建立PPP连接的信息。直到PPP会话建立,发现阶段一直保持无状态的Client/Server(客户/服务器)模式。一旦PPP会话建立,主机和接入集中器都必须为PPP虚接口分配资源。
PPPoE协议会话的发现和会话两个阶段具体进程如下:
1. 发现(Discovery)阶段
在发现(Discovery)阶段中用户主机以广播方式寻找所连接的所有接入集线器(或交换机),并获得其以太网MAC地址。然后选择需要连接的主机,并确定所要建立的PPP会话识别标号。发现阶段有四个步骤,当此阶段完成,通信的两端都知道PPPoESESSION_ID和对端的以太网地址,他们一起唯一定义PPPoE会话。这四个步骤如下:
(1)主机广播一个发起分组(PADI),分组的目的地址为以太网的广播地址0xffffffffffff,CODE(代码)字段值为0x09,SESSION_ID(会话ID)字段值为0x0000。PADI包必须至少包含一个服务名称类型的标签(标签类型字段值为0x0101),向接入集中器提出所要求提供的服务。
(2)接入集中器收到在服务范围内的PADI包分组,发送PPPoE有效发现提供包(PADO)分组,以响应请求。其中CODE字段值为0x07 ,SESSION_ID字段值仍为0x0000。PADO分组必须包含一个接入集中器名称类型的标签(标签类型字段值为0x0102),以及一个,或多个服务名称类型标签,表明可向主机提供的服务种类。
(3)主机在可能收到的多个PADO分组中选择一个合适的PADO分组,然后向所选择的接入集中器发送PPPoE有效发现请求分组(PADR)。其中CODE字段为0x19 ,SESSION_ID字段值仍为0x0000。PADR分组必须包含一个服务名称类型标签,确定向接入集线器(或交换机)请求的服务种类。当主机在指定的时间内没有接收到PADO,它应该重新发送它的PADI分组,并且加倍等待时间,这个过程会被重复期望的次数。
(4)接入集中器收到PADR包后准备开始PPP会话,它发送一个PPPoE有效发现会话确认(PADS)分组。其中CODE字段值为0x65 ,SESSION_ID字段值为接入集中器所产生的一个惟一的PPPoE会话标识号码。PADS分组也必须包含一个接入集中器名称类型的标签确认向主机提供的服务。当主机收到PADS包确认后,双方就进入PPP会话阶段。
【注意】如果主机正在等待接收PADS分组,应该使用具有主机重新发送PADR的相似超时机制。在重试指定的次数后,主机应该重新发送PADI分组。
2. PPP会话阶段
用户主机与接入集中器根据在发现阶段所协商的PPP会话连接参数进行PPP会话。一旦PPPoE会话开始,PPP数据就可以以任何其它的PPP封装形式发送。所有的以太网帧都是单播的。PPPoE会话的SESSION_ID一定不能改变,并且必须是发现阶段分配的值。
PPPoE还有一个PADT分组,它可以在会话建立后的任何时候发送,来终止PPPoE会话,也就是会话释放。它可以由主机或者接入集中器发送。当对方接收到一个PADT分组,就不再允许使用这个会话来发送PPP业务。PADT包不需要任何标签,其CODE字段值为0xa7 ,SESSION_ID字段值为需要终止的PPP会话的会话标识号码。在发送或接收PADT后,即使正常的PPP终止分组也不必发送。PPP对端应该使用PPP协议自身来终止PPPoE会话,但是当PPP不能使用时,可以使用PADT。
以上各个阶段的会话流程可用图4-5描述。
图4-5 PPPoE会话建立流程
4.3.3 PPPoE帧格式
对应于上节介绍的两个PPPoE协议会话的两个阶段,PPPoE帧格式也包括两种类型:发现阶段的以太网帧中的类型字段值为0x8863;PPP会话阶段的以太网帧中的类型字段值为0x8864,均已得到IEEE的认可。PPPoE分组帧结构如图4-6所示。
图4-6 PPPoE帧结构
PPPoE分组中的版本(VER) 字段和类型(TYPE)字段长度均为4比特,在当前版本PPPoE建议中这两个字段值都固定为0x1。代码(CODE)字段长度为8比特,根据两阶段中各种数据包的不同功能而值不同。在PPP会话阶段CODE字段值为0x00,发现阶段中的各步骤中的各种数据分组格式参见前面介绍。版本标识号码(SESSION_ID)字段长度为16比特,在一个给定的PPP会话过程中它的值是固定不变的,其中值0xffffff为保留值。长度(LENGTH)字段为16比特长,指示PPPoE净荷长度。发现阶段PPPoE载荷可以为空或由多个标记(TAG)组成,每个标记都是TLV(类型-长度-值)的结构;PPP会话阶段PPPoE载荷为标准的点对点协议包。
标签: [转发,非原创,收集]
数字电视名词解释
=================
数字电视名词解释
google.com检索结果
IPTV 是Internet Protocol Television的缩写,是一种系统的总称,在这一系统中,电视和视频信号使用因特网协议上的宽带连接分配给订户。这经常是与订户的因特网连接并行的,由宽带运营者使用相同的基础设施提供,但在专用带宽分配之上。
IPPV 按次点播付费 Impulse Pay-Per-View。
=================
数字电视技术标准
IT.SOHU.COM
信道传输技术标准 —卫星传输
—有线传输(浙江大学)
—地面传输(清华大学、上海交通大学)
·信源编码技术标准(AVS工作组)
—数据与命令格式(系统)
—视频编码
—音频编码
·用户与安全管理标准(信息产业部第三所)
—付费管理
—加密与解密
==================
数字电视广播和数字电视终端
IT.SOHU.COM 2004-10-20 18:17
随着数字电视(DTV)的开播,将给人们带来前所未有的高品质电视画面和逼真的环绕立声体效果.人类的生活质量将经历一次类似从马车向汽车转变的巨大变革.
什么是数字电视?按照中国电子行业标准,数字电视是从电视信号的采集、编辑、传播、接收整个广播链路数字化的数字电视广播系统.与传统的模拟电视(TV)相比,其优点是可基本实现高保真传输,即图像、伴音质量与演播室效果无差异.而现有的模拟电视广播,模拟信号离发射塔越远,衰减越严重.同时由于可以采用数据压缩技术,传输一套模拟节目的频道可用来同时传输4~6套数字电视节目,大大降低发射、传输费用.
数字电视节目的制作 数字电视节目根据内容的不同,采用不同制式摄制,其中大部分电影、电视连续剧和商业广告都先摄制在分辨率很高的胶片上,而现场演出或体育比赛实况则用高清 晰度电视(HDTV)摄像机摄制.一般来说,有1080i制式,即每帧画面有1080行隔行扫描线,每行含有1920个像素,则一帧画面超过200万像 素,(像素越多越清晰),另有一种720P制式,即720行逐行扫描线,每行像素1280个,每帧画面近100万像素.另外还有720i制式(720行隔 行扫描),还有480P制式(480行逐行扫描).最终将出现设想中的具有数字电视最高分辨率水平的1080P制式(1080行逐行扫描).无论哪种制式 的数字电视节目摄制后,都必须经过数字化处理后用于播出.
数字电视节目数据的压缩与传输 没有数字压缩技术,数字电视就不能产生.数字电视和其它数字视频系统采用MPEG-2压缩方案,用巧妙的算法对一幅画面进行分析;并经有效的方式对画面数 据进行代码冗余处理.在数据的传输过程中,将根据节目的要求,采用不同制式用不同的带宽传输数据:例如体育比赛要求信息传输量大,速率更快,须采用 (HDTV)制式占用一个带宽,而相同的带宽可以混输2~6套电影、戏剧等信息量少、速率慢的SDTV制式节目.电视台将根据节目类型、画面分辨要求,采 用不同的制式、不同速率进行数据压缩播出,以此达到数据最佳传输效果.
数字电视最终收看效果取决于数字电视机 不论电视台采用什么制式进行节目的制作或传输,新型的数字电视机将对数字信号自动处理,并显示接收到的节目.为能自动处理数字信号,数字电视机必带有数字 电视调谐器和解码器,有些电视机在加装一个单独模块或一个机顶盒后也能达到相同作用.美国消费电子协会最近界定了数字电视机标准,分为高清晰度电视 (HDTV),增强清晰度电视(EDTV),标准清晰度电视(SDTV)三类.均采用16∶9或4∶3的屏幕宽高比,杜比数字音响.
国内市场上的数字化彩电 最近国内市场出现了大量数字化彩电、数码彩电;都是在不改变现行的广播传输体制(模拟体制)前提下,将经过图像检波的视频信号、经过伴音鉴频的音频信号以 及其它部分进行数字处理的广播电视接收机.由于不带数字电视调谐器、解码器或不能加装模块、机顶盒(即不能升级),所以都只能是数字化彩电,不能称为数字 电视机.1998年5月,长虹集团数字电视机样机才刚刚出现,而其它彩电厂商如康佳集团等力争三年后有数字电视机上市.
要实现数字电视广播,首先要对电视信号的采集及传输体系的制式进行变更;其次对节目摄录设备、电视台广播设备、传输设备,用户中电视接收机全面 更新换代.英、美两国1998年数字电视广播已进入部分家庭,其中美国宣布在2006年全部淘汰现有模拟电视系统,而我国中央电视台1995年才购买数字 播出设备,1999年进行了试播.要在我国全面开通数字电视广播业务需要500多亿资金投入建立数字电视台,需要更多资金进口昂贵的数字电视机(7000 美元~100000美元每台),显然是不现实的,因此我国的数字电视广播的开通还有一段漫长的路要走,而模拟电视系统将在相当长的时间内存在
2007-05-20
生活如同魔方!
今天稍微“用心”玩了一下魔方,就15min,没有完成,但想了很多。
觉得,起始生活,做事很多情况下和玩魔方很像。
比如组成魔方的3x3x3个小方块都是不一样的,他们在完成状态下(每个面的颜色都单一)他们的位置都是固定的。
但是,当我们只是关注一种颜色的时候,(比如阶段性任务:把其中一个面变成单色的)
往往会把其中几个当成一样的,当你完成阶段性任务,把一个面变成单色的时候,其实第一层里面还有很多都不是最终态的应该的位置上。我们只是被一样的颜色给迷惑了。或者说我们在完成阶段性任务的时候把一些不该忽略的细节给忽略了。
紧接着,完成下一个阶段任务,在把一个面变成单色的基础上,第一层的四个侧面,变成完成态的样子。这是发现原来的成就里面包含了太多的浪费。而且老是担心会破坏已有的成就。
因此如果把任务:把其中一个面变成单色的改成,把第一层变成完成态,那我们就可以把没个小方块编号。不在被相同的颜色给迷惑了。我们眼里是1-9号方块,如何归位的问题。而不是再把白色的都看成是一样的了。
颜色其实根本没有意义了。
生活也是这样,要完成一个大目标,需要化解成许多个小目标来,一步一步完成,但如何分解成小目标,如何完成小目标,一定要盯住大目标。
另外:
如果是用计算机来计算这个问题。
把27个方块归位,和把六个面变成同色,两种想法就意味着两种不同的建模方式,程序也将不一样。
也许程序运行的结果是一样的。但一开始,内在的,处理问题的起点的水平就不一样了。
另外:
用人脑玩的时候,魔方变化的过程中,如果不把每个方块编号,那你就算知道每个方块都不一样,你还是
会误把一些方块当成一样的。而且就是知道前一个成就其实包含很多水分,但你还是不愿意破坏他。
另外:
同一个方块上有几种颜色,当我们从颜色的方向想办法的是后,就好像有许多的牵制。但从1-27编号来看,许多牵制就消失了。看问题的角度,和层次的问题呀。
(还有很多,太晚了,休息时间过了,以后再续吧)
标签: 关于本blog及本人, 原创
悲惨的狼
兔子在写论文,狼走过来,问兔子在写什么?兔子,我在写论文《论兔子怎么打败狼》,狼大
笑:哈,可能吗,你的论据呢?兔子指着背后的山洞:论据在里面呢!狼不相信,就走进山
洞。一阵惨叫后,兔子走进山洞,看到狮子在剔牙,兔子:老师,怎么样了?狮子冷笑道:这个世界,写论文要什么他论据啊,关键看...............!
标签: [转发,非原创,收集]
2007-05-14
今天早晨醒来对梦的回忆
好像是在后悔,放弃了对zhcon在AUR上的维护。
没想到在我的潜意识里会对这件事情这么在意。
没办法,没有时间维护这个包了。及时放弃,让
别人接手是对的。
如果我有空再把自己的pkgbuid提交给新的维护者就好
开源世界,好像曾被人戏称为“共产主义”在软件开发上的试运行。
可惜现实世界还是市场模式。
开源的I&F的驱动模式还只是这个世界的一个很小的一个钉子
特别是生产力还不发达的发展中国家,驱动力更小。
发帖者
lanzinc
时间:
5/14/2007
0
评论
标签: 关于本blog及本人, 原创, Linux