??xml version="1.0" encoding="utf-8" standalone="yes"?>久久久精品国产亚洲成人满18免费网站 ,亚洲狠狠久久综合一区77777,久久99九九国产免费看小说http://www.shnenglu.com/inwind/zh-cnWed, 07 May 2025 18:35:47 GMTWed, 07 May 2025 18:35:47 GMT60记录分手http://www.shnenglu.com/inwind/archive/2006/04/09/5201.htmlinwindinwindSun, 09 Apr 2006 09:43:00 GMThttp://www.shnenglu.com/inwind/archive/2006/04/09/5201.htmlhttp://www.shnenglu.com/inwind/comments/5201.htmlhttp://www.shnenglu.com/inwind/archive/2006/04/09/5201.html#Feedback0http://www.shnenglu.com/inwind/comments/commentRss/5201.htmlhttp://www.shnenglu.com/inwind/services/trackbacks/5201.html
06.04.01   14Q?2
   宝贝Q我亲爱的宝贝,请你ȝ别hQ好吗?你是我一生最好的朋友Q是我的亲hQ可是不再有恋h的感觉了?br />
06.04.02   16Q?5
修不好算了,也不要紧Q钱不重要,下次攒钱C好些?br />
06.04.02   18Q?6
不开通网l,电脑Ҏ没有用的Q你先拿ȝ吧,哪天来拿说一声就好?br />
06.04.02   19Q?6
你知道,q两q来我们之间一直有些hQ我不是好女人,但是Z你我都结束了。只是我现在忽然有了q龄压力

06.04.02   19Q?2
不是的,单纯的年龄小些的奛_子更适合你,而我需要各斚w都制得住我的Q请怿我是理智?br />
06.04.02   19Q?5
Ҏ来说Q没什么是长久?br />
06.04.02   20Q?4
qg事你不要告诉别hQ我不希望公叔R有干扰。公叔R你还是我名义上的男友?br />
06.04.02   20Q?1
我们把最好的岁月都l了彼此Q没有什么可遗憾的了?br />
06.04.02   21Q?7
你永q是我最好最可信赖的朋友Q我会在北京待几q_因ؓq喜Ƣ这份工作。但来应该会去上v的?br />
06.04.03   21Q?3
我会的。谢谢你Q我牉|你如同你牉|我,安都是白酒呻I呵呵?br />
06.04.03   21Q?5
不一定离婚,但是很可能出?不要去追I了Q从功利或者世俗的角度看,我们不适合q一壎ͼ我作的很Q而你适合好女孩子?br />
06.04.03   22Q?0
q次你比我想象的坚强Q也许我们习惯了彼此看作孩子吧。我q梦想着有天能用学生的方式去蝥源Q不知道是否永远变成一个梦惟뀂我们都是完主义者,而世界永q是不完的Q不说了Q干z,你也好好看书Q我们都好好生活Q)

06.04.09   11Q?1
我们之间q两q有一些小插曲Q你也知道我因ؓx伤害你Q最l都攑ּ了,可是恋爱太久Q确实没有激情了Q也不想qxEq下厅R?br />
06.04.09   11Q?4
你对我太好,我却不知I反而觉得有压力Q对我而言保留一个h的空间很重要Q即使一个h住,一个h打扫Q不用迁别人的感觉很自由?br />
06.04.09   16Q?2
我遇C个和自己很象的hQ彼此都看得透,但是都不_cM的h可能不是个好选择Q也不会长久Q但是这ơ我不想再背着你,脚踏两条船会有负疚感

06.04.09   16Q?9
你不明白Q我却了解自己,我实在是太爱玩了Q根本不能用理智控制自己Q不Z么结果,来Z么ؕ子都是自扄。但是,不该一再对不v你。这h再没有心理负担了?br />
06.04.09   22Q?5
我知道,你是有的好男hQ但是我更看重情商,你明白吗Q你的成熟度已经比我落后Q以后也不可能赶上,因ؓ你我环境不同Q而且我也在成ѝ?br />
06.04.09   22Q?2
谢谢你一直以来的宽容和爱护,你是我一辈子的亲人和朋友Q我依旧牉|你的点点滴滴Q只有这ơ,我必负你,其他能ؓ你做的,我绝不犹?br />
06.04.09   22Q?6
别计较这些了Q好吗?我很可能是错的,是幼E的Q但是我既然已经做了军_Q请重我,后果我也会自己承?br />
06.04.06   22Q?6
恩,我知道,q次l历会让我们都更成熟Q我很喜Ƣ你q样Q结束吧Q这D|ql束Q也许是新的开始,我对你的感情Q早是亲情了?br />
06.04.09   22Q?1
谢谢你,亲爱的,谢谢你的努力Q但q是我最后一ơ说׃了,对了Q我l你带了两袋奉Q不知道你会不会喜欢Q我睡了Q再?br />

inwind 2006-04-09 17:43 发表评论
]]>
I心 ,和心?/title><link>http://www.shnenglu.com/inwind/archive/2006/04/03/4920.html</link><dc:creator>inwind</dc:creator><author>inwind</author><pubDate>Mon, 03 Apr 2006 00:13:00 GMT</pubDate><guid>http://www.shnenglu.com/inwind/archive/2006/04/03/4920.html</guid><wfw:comment>http://www.shnenglu.com/inwind/comments/4920.html</wfw:comment><comments>http://www.shnenglu.com/inwind/archive/2006/04/03/4920.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/inwind/comments/commentRss/4920.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/inwind/services/trackbacks/4920.html</trackback:ping><description><![CDATA[ <div>比干问菜农,I心菜无心是菜,人如果无心了呢?</div> <div> </div> <div>l于明白中国古hZ么用心痛Q伤心,揪心q些词了?/div> <div> </div> <div>思考的是大脑,可是Q痛得是心,挥之不去的,痛彻心菲?/div> <img src ="http://www.shnenglu.com/inwind/aggbug/4920.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/inwind/" target="_blank">inwind</a> 2006-04-03 08:13 <a href="http://www.shnenglu.com/inwind/archive/2006/04/03/4920.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>几个教训http://www.shnenglu.com/inwind/archive/2006/03/21/4406.htmlinwindinwindTue, 21 Mar 2006 04:02:00 GMThttp://www.shnenglu.com/inwind/archive/2006/03/21/4406.htmlhttp://www.shnenglu.com/inwind/comments/4406.htmlhttp://www.shnenglu.com/inwind/archive/2006/03/21/4406.html#Feedback0http://www.shnenglu.com/inwind/comments/commentRss/4406.htmlhttp://www.shnenglu.com/inwind/services/trackbacks/4406.html2. 注意内存的分配&回收Q设计实现时一定要清楚所使用内存的生存周期,出生点&M?br />3. 初始化,所有用的变量一定要初始化,一点点的开销Q可以节省大量的旉
4. 法的修炼有Ơ火?img src ="http://www.shnenglu.com/inwind/aggbug/4406.html" width = "1" height = "1" />

inwind 2006-03-21 12:02 发表评论
]]>
uClinuxpȝ?/title><link>http://www.shnenglu.com/inwind/archive/2006/02/10/3159.html</link><dc:creator>inwind</dc:creator><author>inwind</author><pubDate>Fri, 10 Feb 2006 01:52:00 GMT</pubDate><guid>http://www.shnenglu.com/inwind/archive/2006/02/10/3159.html</guid><wfw:comment>http://www.shnenglu.com/inwind/comments/3159.html</wfw:comment><comments>http://www.shnenglu.com/inwind/archive/2006/02/10/3159.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/inwind/comments/commentRss/3159.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/inwind/services/trackbacks/3159.html</trackback:ping><description><![CDATA[<P>目主页: <A target=_blank>http://www.uclinux.org/</A> <BR><BR><STRONG>?/STRONG><BR>Linux是一U很受欢q的操作pȝQ它与UNIXpȝ兼容Q开放源代码。它原本被设计ؓ桌面pȝQ现在广泛应用于服务器领域。而更大的影响在于它正逐渐的应用于嵌入式设备。uClinux正是在这U氛围下产生的。在uClinuxq个英文单词中u表示MicroQ小的意思,C表示ControlQ控制的意思,所以uClinux是Micro-Control-LinuxQ字面上的理解就?针对微控刉域而设计的Linuxpȝ"?BR><BR><B>uClinux型化的做法</B><BR><BR><B>标准Linux可能采用的小型化Ҏ</B><BR>1. 重新~译内核<BR>Linux内核采用模块化的设计Q即很多功能块可以独立的加上或卸下,开发h员在设计内核时把q些内核模块作ؓ可选的选项Q可以在~译pȝ内核时指定。因此一U较通用的做法是对Linux内核重新~译Q在~译时仔l的选择嵌入式设备所需要的功能支持模块Q同时删除不需要的功能。通过对内核的重新配置Q可以ɾpȝq行所需要的内核显著减小Q从而羃减资源用量?BR>2. 制作root文gpȝ映象<BR>Linuxpȝ在启动时必须加蝲根(rootQ文件系l,因此剪裁pȝ同时包括root file system的剪裁。在x86pȝ下,Linux可以在Dos下,使用Loadlin文g加蝲启动Q?BR><B>uClinux采用的小型化Ҏ</B><BR>1QuClinux的内核加载方?BR>uClinux的内核有两种可选的q行方式Q可以在flash上直接运行,也可以加载到内存中运行。这U做法可以减内存需要?BR>Flashq行方式Q把内核的可执行映象烧写到flash上,pȝ启动时从flash的某个地址开始逐句执行。这U方法实际上是很多嵌入式pȝ采用的方法?BR>内核加蝲方式Q把内核的压~文件存攑֜flash上,pȝ启动时读取压~文件在内存里解压,然后开始执行,q种方式相对复杂一些,但是q行速度可能更快Qram的存取速率要比flash高)。同时这也是标准Linuxpȝ采用的启动方式?BR>2QuClinux的根QrootQ文件系l?BR>uClinuxpȝ采用romfs文gpȝQ这U文件系l相对于一般的ext2文gpȝ要求更少的空间。空间的节约来自于两个方面,首先内核支持 romfs文gpȝ比支持ext2文gpȝ需要更的代码Q其ơromfs文gpȝ相对单,在徏立文件系l超U块QsuperblockQ需要更的存储I间。Romfs文gpȝ不支持动态擦写保存,对于pȝ需要动态保存的数据采用虚拟ram盘的Ҏq行处理Qram盘将采用ext2文gpȝQ?BR>3QuClinux的应用程序库<BR>uClinux型化的另一个做法是重写了应用程序库Q相对于来大且越来越全的glibc库,uClibc对libc做了_?BR>uClinux对用L序采用静态连接的形式Q这U做法会使应用程序变大,但是Z内存理的问题,不得不这样做Q这在下文对uClinux内存理展开分析时进行说明)Q同时这U做法也更接q于通常嵌入式系l的做法?BR><BR><B>uClinux的开发环?/B><BR><BR><B>GNU开发套?/B><BR>Gnu开发套件作为通用的Linux开攑֥Ӟ包括一pd的开发调试工兗主要组Ӟ<BR>GccQ?~译器,可以做成交叉~译的Ş式,卛_宿主Z开发编译目标上可运行的二进制文件?BR>BinutilsQ一些辅助工P包括objdumpQ可以反~译二进制文ӞQasQ汇~编译器Q,ldQ连接器Q等{?BR>GdbQ调试器Q可使用多种交叉调试方式Qgdb-bdmQ背景调试工PQgdbserverQ用以太网l调试)?BR>uClinux的打印终?BR>通常情况下,uClinux的默认终端是串口Q内核在启动时所有的信息都打印到串口l端Q用printk函数打印Q,同时也可以通过串口l端与系l交互?BR>uClinux在启动时启动了telnetdQ远E登录服务)Q操作者可以远E登录上pȝQ从而控制系l的q行。至于是否允许远E登录可以通过烧写romfs文gpȝ时有用户军_是否启动q程d服务?BR><B>交叉~译调试工具</B><BR>支持一U新的处理器Q必d备一些编译,汇编工具Q用这些工具可以Ş成可q行于这U处理器的二q制文g。对于内怋用的~译工具同应用程序用的有所不同。在解释不同点之前,需要对gccq接做一些说明: <BR>.ldQlink descriptionQ文Ӟld文g是指接时内存映象格式的文件?BR>crt0.SQ应用程序编译连接时需要的启动文gQ主要是初始化应用程序栈?BR>picQposition independence code Q与位置无关的二q制格式文gQ在E序D中必须包括relocD,从而的代码加载时可以q行重新定位?BR>内核~译q接Ӟ使用ucsimm.ld文gQŞ成可执行文g映象Q所形成的代码段既可以用间接寻址方式Q即使用relocD进行寻址Q,也可以用绝对寻址方式。这样可以给~译器更多的优化I间。因为内核可能用绝对寻址Q所以内核加载到的内存地址I间必须与ld文g中给定的内存I间完全相同?<BR>应用E序的连接与内核q接方式不同。应用程序由内核加蝲Q可执行文g加蝲器将在后面讨论)Q由于应用程序的ld文gl出的内存空间与应用E序实际被加载的内存位置可能不同Q这样在应用E序加蝲的过E中需要一个重新地位的q程Q即对relocD进行修正,使得E序q行间接d时不至于出错。(q个问题?i386{高U处理器上方法有所不同Q本文将在后面进一步分析)?BR>׃q讨论,臛_需要两套编译连接工兗在讨论quClinux的内存管理后本文给出整个系l的工作程以及pȝ在flash和ram中的I间分布?BR><B>可执行文件格?/B><BR>先对一些名词作一些说明: <BR>coffQcommon object file formatQ:一U通用的对象文件格?BR>elfQexcutive linked fileQ:一UؓLinuxpȝ所采用的通用文g格式Q支持动态连?BR>flatQelf格式有很大的文g_flat文gҎ件头和一些段信息做了?BR>uClinuxpȝ使用flat可执行文件格式,gcc的编译器不能直接形成q种文g格式Q但是可以Ş成coff或elf格式的可执行文gQ这两种文g需要coff2flt或elf2flt工具q行格式转化QŞ成flat文g?BR>当用h行一个应用时Q内核的执行文g加蝲器将对flat文gq行q一步处理,主要是对relocD进行修正(可执行文件加载器的详见fs/binfmt_flat.cQ。以下对relocD进一步讨论?BR>需要relocD늚Ҏ原因是,E序在连接时q接器所假定的程序运行空间与实际E序加蝲到的内存I间不同。假如有q样一条指令:<BR>jsr app_start;<BR>q一条指令采用直接寻址Q蟩转到app_start地址处执行,q接E序在~译完成是计出app_start的实际地址Q设若实际地址?0x10000Q,q个实际地址是根据ld文g计算出来Q因接器假定该程序将被加载到由ld文g指明的内存空_。但实际上由于内存分配的关系Q操作系l在加蝲时无法保证程序将按ld文g加蝲。这时如果程序仍然蟩转到l对地址0x10000处执行,通常情况q是不正的。一个解军_法是增加一个存储空_用于存储app_start的实际地址Q设若用变量addr表示q个存储I间。则以上q句E序改为:<BR>movl addr, a0;<BR>jsr (a0);<BR>增加的变量addr在数据D中占用一?字节的空_q接器将app_start的绝对地址存储到该变量。在可执行文件加载时Q可执行文g加蝲器根据程序将要加载的内存I间计算出app_start在内存中的实际位|,写入addr变量。系l在实际处理是不需要知道这个变量的切存储位置Q也不可能知道)Q系l只要对整个relocD进行处理就可以了(relocD|标识Q系l可以读出来Q。处理很单只需要对relocD中存储的值统一加上一个偏|(如果加蝲的空间比预想的要靠前Q实际上是减M个偏U量Q。偏|由实际的物理地址起始值同ld文g指定的地址起始值相减计出?BR>q种reloc的方式部分是由uClinux的内存分配问题引LQ这一点将在uClinux内存理分析时说明?BR><B>针对实时性的解决Ҏ</B><BR>uClinux本nq没有关注实旉题,它ƈ不是ZLinux的实时性而提出的。另外有一ULinux--Rt-linuxx实时问题。Rt- linux执行理器把普通Linux的内核当成一个Q务运行,同时q管理了实时q程。而非实时q程则交l普通Linux内核处理。这U方法已l应用于很多的操作系l用于增强操作系l的实时性,包括一些商用版UNIXpȝQWindows NT{等。这U方法优点之一是实现简单,且实时性能Ҏ验。优点之二是׃非实时进E运行于标准LinuxpȝQ同其它Linux商用版本之间保持了很大的兼容性。优点之三是可以支持实时时钟的应用。uClinux可以使用Rt-linux的patchQ从而增强uClinux的实时性,使得 uClinux可以应用于工业控制、进E控制等一些实时要求较高的应用?BR></P> <P><B>uClinux的内存管?/B><BR>应该说uClinux同标准Linux的最大区别就在于内存理Q同时也׃uClinux的内存管理引发了一些标准Linux所不会出现的问题。本文将把uClinux内存理同标准Linux的那内存理部分q行比较分析?BR>标准Linux使用的虚拟存储器技?BR>标准Linux使用虚拟存储器技术,q种技术用于提供比计算机系l中实际使用的物理内存大得多的内存空间。用者将感觉到好像程序可以用非常大的内存空_从而得编Eh员在写程序时不用考虑计算Z的物理内存的实际定w?/P> <P>Z支持虚拟存储理器的理QLinuxpȝ采用分页QpagingQ的方式来蝲入进E。所谓分|是把实际的存储器分割为相同大的D,例如每个D?024个字节,q样1024个字节大的D便UCؓ一个页面(pageQ?<BR>虚拟存储器由存储器管理机制及一个大定w的快速硬盘存储器支持。它的实现基于局部性原理,当一个程序在q行之前Q没有必要全部装入内存,而是仅将那些当前要运行的那些部分面或段装入内存q行Qcopy-on-writeQ,其余暂时留在盘上程序运行时如果它所要访问的(D)已存在,则程序l运行,如果发现不存在的(D)Q操作系l将产生一个页错误Qpage faultQ,q个错误D操作pȝ把需要运行的部分加蝲到内存中。必要时操作pȝq可以把不需要的内存(D)交换到磁盘上。利用这L方式理存储器,便可把一个进E所需要用到的存储器以化整为零的方式,视需求分批蝲入,而核心程序则凭借属于每个页面的늠来完成寻址各个存储器区D늚工作?BR>标准Linux是针Ҏ内存理单元的处理器设计的。在q种处理器上Q虚拟地址被送到内存理单元QMMUQ,把虚拟地址映射为物理地址?BR>通过赋予每个d不同的虚?-物理地址转换映射Q支持不同Q务之间的保护。地址转换函数在每一个Q务中定义Q在一个Q务中的虚拟地址I间映射到物理内存的一个部分,而另一个Q务的虚拟地址I间映射到物理存储器中的另外区域。计机的存储管理单元(MMUQ一般有一l寄存器来标识当前运行的q程的{换表。在当前q程CPU攑ּl另一个进E时Q一ơ上下文切换Q,内核通过指向新进E地址转换表的指针加蝲q些寄存器。MMU寄存器是有特权的Q只能在内核态才能访问。这׃证了一个进E只能访问自qL间内的地址Q而不会访问和修改其它q程的空间。当可执行文件被加蝲Ӟ加蝲器根据缺省的ld文gQ把E序加蝲到虚拟内存的一个空_因ؓq个原因实际上很多程序的虚拟地址I间是相同的Q但是由于{换函C同,所以实际所处的内存区域也不同。而对于多q程理当处理器q行q程切换q执行一个新dӞ一个重要部分就是ؓCQ务切换Q务{换表。我们可以看到Linuxpȝ的内存管理至实C以下功能Q?BR>q行比内存还要大的程序。理x况下应该可以q行L大小的程?BR>◇可以运行只加蝲了部分的E序Q羃短了E序启动的时?BR>◇可以多个E序同时ȝ在内存中提高CPU的利用率<BR>◇可以运行重定位E序。即E序可以方于内存中的M一处,而且可以在执行过E中Ud?BR>◇写机器无关的代码。程序不必事先约定机器的配置情况?BR>◇减ȝ序员分配和管理内存资源的负担?BR>◇可以进行共?-例如Q如果两个进E运行同一个程序,它们应该可以׃nE序代码的同一个副本?BR>◇提供内存保护,q程不能以非授权方式讉K或修攚w面,内核保护单个q程的数据和代码以防止其它进E修改它们。否则,用户E序可能会偶Ӟ或恶意)的破坏内核或其它用户E序?<BR>虚存pȝq不是没有代L。内存管理需要地址转换表和其他一些数据结构,留给E序的内存减了。地址转换增加了每一条指令的执行旉Q而对于有额外内存操作的指令会更严重。当q程讉K不在内存的页面时Q系l发生失效。系l处理该失效Qƈ页面加载到内存中,q需要极耗时间的盘I/O操作。M内存理zd占用了相当一部分cpu旉Q在较忙的系l中大约?0Q)?BR>uClinux针对NOMMU的特D处?BR>对于uClinux来说Q其设计针对没有MMU的处理器Q即uClinux不能使用处理器的虚拟内存理技术(应该说这U不带有MMU的处理器在嵌入式讑֤中相当普偏)。uClinux仍然采用存储器的分页理Q系l在启动时把实际存储器进行分c在加蝲应用E序时程序分加载。但是由于没有MMU理Q所以实际上uClinux采用实存储器理{略Qreal memeory managementQ。这一点媄响了pȝ工作的很多方面?BR>uClinuxpȝ对于内存的访问是直接的,Q它对地址的访问不需要经qMMUQ而是直接送到地址U上输出Q,所有程序中讉K的地址都是实际的物理地址。操作系l对内存I间没有保护Q这实际上是很多嵌入式系l的特点Q,各个q程实际上共享一个运行空_没有独立的地址转换表)?<BR>一个进E在执行前,pȝ必须E分配够的q箋地址I间Q然后全部蝲入主存储器的q箋I间中。与之相对应的是标准Linuxpȝ在分配内存时没有必要保证实际物理存储I间是连l的Q而只要保证虚存地址I间q箋可以了。另外一个方面程序加载地址与预期(ld文g中指出的Q通常都不相同Q这?relocationq程是必须的。此外磁盘交换空间也是无法用的Q系l执行时如果~少内存无法通过盘交换来得到改善?BR>uClinux对内存的理减少同时q开发h员提Z更高的要求。如果从易用性这一Ҏ_uClinux的内存管理是一U倒退Q退回了CUNIX早期或是Dospȝ时代。开发h员不得不参与pȝ的内存管理。从~译内核开始,开发h员必d诉系l这块开发板到底拥有多少的内存(假如你欺骗了pȝQ那在后面q行E序时受到惩|)Q从而系l将在启动的初始化阶D对内存q行分页Qƈ且标记已使用的和未用的内存。系l将在运行应用时使用q些分页内存?BR>׃应用E序加蝲时必d配连l的地址I间Q而针对不同硬件^台的可一ơ成块(q箋地址Q分配内存大限制是不同Q目前针对ez328处理器的 uClinux?28kQ而针对coldfire处理器的pȝ内存则无此限ӞQ所以开发h员在开发应用程序时必须考虑内存的分配情况ƈx应用E序需要运行空间的大小。另外由于采用实存储器管理策略,用户E序同内总及其它用L序在一个地址I间Q程序开发时要保证不늊其它E序的地址I间Q以使得E序不至于破坏系l的正常工作Q或D其它E序的运行异常?BR>从内存的讉K角度来看Q开发h员的权利增大了(开发h员在~程时可以访问Q意的地址I间Q,但与此同时系l的安全性也大ؓ下降。此外,pȝ对多q程的管理将有很大的变化Q这一点将在uClinux的多q程理中说明?BR>虽然uClinux的内存管理与标准Linuxpȝ相比功能相差很多Q但应该说这是嵌入式讑֤的选择。在嵌入式设备中Q由于成本等敏感因素的媄响,普偏的采用不带有MMU的处理器Q这军_了系l没有够的g支持实现虚拟存储理技术。从嵌入式设备实现的功能来看Q嵌入式讑֤通常在某一特定的环境下q行Q只要实现特定的功能Q其功能相对单,内存理的要求完全可以由开发h员考虑?BR>标准Linuxpȝ的进E、线E?BR>q程Q进E是一个运行程序ƈ为其提供执行环境的实体,它包括一个地址I间和至一个控制点Q进E在q个地址I间上执行单一指o序列。进E地址I间包括可以讉K或引用的内存单元的集合,q程控制炚w过一个一般称为程序计数器Qprogram counter,PCQ的g寄存器控制和跟踪q程指o序列?BR>forkQ由于进Eؓ执行E序的环境,因此在执行程序前必须先徏立这个能"?E序的环境。Linuxpȝ提供pȝ调用拯现行q程的内容,以生新的进E,调用fork的进E称为父q程Q而所产生的新q程则称为子q程。子q程会承袭父q程的一切特性,但是它有自己的数据段Q也是_管子进E改变了所属的变量Q却不会影响到父q程的变量倹{?BR>父进E和子进E共享一个程序段Q但是各自拥有自q堆栈、数据段、用L间以及进E控制块。换a之,两个q程执行的程序代码是一LQ但是各有各的程序计数器与自qUh数据?<BR>当内核收到forkhӞ它会先查怸件事Q首先检查存储器是不是够;其次是进E表是否仍有I缺Q最后则是看看用h否徏立了太多的子q程。如果上q说三个条g满Q那么操作系l会l子q程一个进E识别码Qƈ且设定cpu旉Q接着讑֮与父q程׃n的段Q同时将父进E的inode拯一份给子进E运用,最l子q程会返回数?以表C它是子q程Q至于父q程Q它可能{待子进E的执行l束Q或与子q程各做个的?BR>execpȝ调用Q该pȝ调用提供一个进E去执行另一个进E的能力Qexecpȝ调用是采用覆盖旧有进E存储器内容的方式,所以原来程序的堆栈、数据段与程序段都会被修改,只有用户区维持不变?BR>vforkpȝ调用Q由于在使用forkӞ内核会将父进E拷贝一份给子进E,但是q样的做法相当浪Ҏ_因ؓ大多数的情Ş都是E序在调用fork后就立即调用execQ这样刚拯来的q程区域又立卌新的数据覆盖掉。因此Linuxpȝ提供一个系l调用vforkQvfork假定pȝ在调用完?vfork后会马上执行execQ因此vfork不拷贝父q程的页面,只是初始化私有的数据l构与准备够的分页表。这样实际在vfork调用完成后父子进E事实上׃n同一块存储器Q在子进E调用exec或是exit之前Q,因此子进E可以更改父q程的数据及堆栈信息Q因此vforkpȝ调用完成后,父进E进入睡眠,直到子进E执行exec。当子进E执行execӞ׃exec要用被执行E序的数据,代码覆盖子进E的存储区域Q这样将产生写保护错误(do_wp_pageQ(q个时候子q程写的实际上是父进E的存储区域Q,<BR>q个错误D内核为子q程重新分配存储I间。当子进E正开始执行后Q将唤醒父进E,使得父进El往后执行?BR>uClinux的多q程处理<BR>uClinux没有mmu理存储器,在实现多个进E时Qfork调用生成子进E)需要实现数据保护?BR>uClinux的fork和vforkQuClinux的fork{于vfork。实际上uClinux的多q程理通过vfork来实现。这意味着 uClinuxpȝfork调用完程后,要么子进E代替父q程执行Q此时父q程已经sleepQ直到子q程调用exit退出,要么调用exec执行一个新的进E,q个时候将产生可执行文件的加蝲Q即使这个进E只是父q程的拷贝,q个q程也不能避免。当子进E执行exit或exec后,子进E?wakeup把父q程唤醒Q父q程l箋往下执行?BR>uClinux的这U多q程实现机制同它的内存管理紧密相兟뀂uClinux针对nommu处理器开发,所以被q用一Uflat方式的内存管理模式,启动新的应用E序时系l必Mؓ应用E序分配存储I间Qƈ立即把应用程序加载到内存。缺了MMU的内存重映射机制QuClinux必须在可执行文g加蝲阶段对可执行文greloc处理Q得程序执行时能够直接使用物理内存?/P><img src ="http://www.shnenglu.com/inwind/aggbug/3159.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/inwind/" target="_blank">inwind</a> 2006-02-10 09:52 <a href="http://www.shnenglu.com/inwind/archive/2006/02/10/3159.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>McAfee IntruShield 2600pȝ试报告http://www.shnenglu.com/inwind/archive/2006/02/09/3150.htmlinwindinwindThu, 09 Feb 2006 08:50:00 GMThttp://www.shnenglu.com/inwind/archive/2006/02/09/3150.htmlhttp://www.shnenglu.com/inwind/comments/3150.htmlhttp://www.shnenglu.com/inwind/archive/2006/02/09/3150.html#Feedback0http://www.shnenglu.com/inwind/comments/commentRss/3150.htmlhttp://www.shnenglu.com/inwind/services/trackbacks/3150.html

传统的入侉|系l(IDSQ只能被动地l管理员提供报告,最l还必须通过人工来解决问题。虽然大部分IDS产品能够在攻d生后与防火墙q行互动Q但是这U互动只能够Ҏl的低层ơ攻M生很好的L作用Q在Ҏ受到深层ơ攻ȝ场合Q用戯是希望采用能够对d行ؓq行实时L的品,来提高信息系l的安全U别Q因此入侵防护系lMcAfee IntruShield应运而生?/P>

体验部v和配|?/STRONG>

IntruShield 2600有别于基于通用q_的品,它采用NPQnetwork processorQ和ASIC(专用集成电\)混合的架构设计。因为需要实现实旉断,所以IntruShield 2600在进行协议重l的q程中需要比传统IDS更强的处理能力。通用的硬件^台在多端口的配置的情况下很难满实时L的需求。NP加ASICq种l构在高端的3层交换机和防火墙中被大量采用Q能够实现非帔R的{发率,可以帮助入R防护讑֤q行实时L?

灉|多样的配|方?/STRONG>

q款产品配置?个端口,在SPAN QSwitched Port AnalysisQ模式工作时Q全部可以用作检端口,卛_果用户只需要传l的IDS功能Q这ƾ品完全可以充当一?口的IDS,不过在部|时需要考虑到吞吐量。IntruShield 2600的拿手好戏在于对入R和非法的数据包进行阻断,q是在In-line的模式下实现的,q个模式是把IPS作ؓ一个以太网的桥接器Q透明地连接到已有的网l中Q而不需要改动原有网l的配置Q对于一个复杂的|络来说Q这U设计可以减轻调试安装设备对原有|络的媄响。在q种模式下,必须成对地配|端口。因此在只用全?00M铜缆口时Q这ƾ品几乎可以达?00%的利用率Q而在使用千兆光口Ӟq款产品只能处?0%左右的网l流量,对于一个正常设计的|络来说Q?0%已经是很高的H发量了?

x即用的快速部|?/STRONG>

q款产品的Y件和g的配合程度是非常高的。虽然各个管理服务器上都需要安装多个服务程序,但是McAfee通过把这些服务打包,整合成安装向导提供给了用戗我们只需要点dơ“下一步”,q且讄好管理端口的IP地址Q就能够完成安装。通过RS-232配置好控制网l接口的IP地址后,我们可以采用浏览器对设备进行管理了?

整个理配置界面完全是由动态网和Java Appletl成Q既能在理服务器本Zq行理Q还可以在Q意能够访问管理服务器的计机上通过览器进行管理和配置。这样可以把警告信息汇d单个理服务器上Q然后在其他节点上进行分析或者报告?

高性能的安全屏障?/STRONG>率试

我们选择了Blade试工具q行模拟d试Q选取50U典型攻L例。通过模拟d和被d的环境,把IntruShield 2600讄为阻断模式,通过比较发出的攻d从控制台上观察到的报警信息来定讑֤的正确性。Blade是目前可以模拟攻ȝ型最多的安全试工具。我们选择的攻L例也是按照最q比较盛行、危x较大以及Ҏ发生的原则来q行的?

试l果非常令h振奋。在试中,所有的d都没有被漏报。但是,在这L试中,我们q不能确定攻L否真的被L了,于是我们q行了下面的试?BR>
L能力试

我们找来了一个针对Windows NetBIOS~陷的攻dPq个~陷存在于Windows 2000 SP3Q包括SP3Q以下的版本中。在没有打开IntruShield 2600L功能的情况下Q仅打了SP2补丁的目标主机直接蓝屏,在进行内存{存以后自动启动,而在开启IntruShield 2600L功能后再ơ发h击,目标L׃安然无恙Qƈ且两ơ攻d理服务器上都有详细的报告,q说明IntruShield 2600的阻断能力非常出艌Ӏ?/P>

大家可能已经发现了,我们所采用的攻ȝ型ƈ不是单的畸ŞIP包攻击,而是在防火墙看来正确q接的情况下q行的高层次的操作,q些操作大多是利用系l或者应用本w的~陷Q制造异常操作来D其无法正常工作,其是一些七层攻击,如果只采用IDS和防火墙互动的方法来LdQ很可能让攻d逞,因此需要在dq行中立即阻断。在L模式下,IntruShield 2600除了要重l协议进行判断外Q还需要放行正的数据Q因此面临着严峻的性能考验?

吞吐能力试

Z考验NP/ASIC架构的性能Q我们创Z一个稳定的背景,然后模拟d。通过观察在处于标U吞吐量边缘的IntruShield 2600Ҏȝ报告情况来确定这ƾ品的实际吞吐性能?

我们采用思博伦通信的Avalanche和ReflectorQ制造了一个约{于600Mbps的HTTP量Q然后依然沿用功能验证中的攻L方法对 IntruShield 2600q行了测试。在标称?00Mbps吞吐量下QIntruShield 2600居然能一个不漏地到dQ这一试l果一斚w肯定了这U基于NP和ASIC混合q_的优势,另一斚wQ也说明了这ƾ品在标称的吞吐量下,q保留了一部分处理能力Q用于应付突发的量对系l正常运作带来的影响?

试ȝ

׃采用了NP/ASIC架构Q在q行大数据量的协议分析时Q这ƾ品表现出了非常强的吞吐性能Q得阻断攻击这一独特的功能没有受CQ何媄响。因ƾ品主要聚焦在4?层的dcdQ在试中,我们q没有看到太多基于一?层以下的入R和L手段。不q,在后来我们采用Nessus端口扫描工具q行变Ş逃逸测试时Q发现这ƾ品对于SynScan{扫描入侉|D能够进行检,但是需要配合防火墙来更d地杜l这cL凅R由此证实了我们的推断,单一?SynScan或者Floodd对于pȝ是没有攻L的Qƈ且由于这cL击非常简单,不需要IPSq行复杂的协议分析,只需要在侦测出攻dQ通过和防火墙联动Q由防火墙就能进行处理?

通过对IntruShield 2600q行试Q我们发玎ͼIPS是对IDS的增强和延Q能够I补和防火墙之间的I白Q而不是简单地寚w火墙和IDSq行融合的结果?/P>

IntruShield 2600

产品亮点
?在1Q厚度实玎ͼ个千兆光口,Q个铜缆癑օ端口的入侵阻断系l,所有端口可以灵z配|,完全逻辑隔离?
?能够快速进行安装部|Ԍ支持分布式部|管理?
?完善的检引擎,没有漏报一个测试样例中的攻凅R?
?高性能的吞吐能力,能够在高?00Mbps的HTTP背景下正常工作?BR>(e129)



inwind 2006-02-09 16:50 发表评论
]]>
即是美 Web 2.0创业公司行y路线http://www.shnenglu.com/inwind/archive/2006/02/09/3148.htmlinwindinwindThu, 09 Feb 2006 08:46:00 GMThttp://www.shnenglu.com/inwind/archive/2006/02/09/3148.htmlhttp://www.shnenglu.com/inwind/comments/3148.htmlhttp://www.shnenglu.com/inwind/archive/2006/02/09/3148.html#Feedback0http://www.shnenglu.com/inwind/comments/commentRss/3148.htmlhttp://www.shnenglu.com/inwind/services/trackbacks/3148.htmlCNETU技资讯|??日国际报?Jason FriedQ?7Signals 公司的总裁是一位很的软g企业家。但他不想用传统模式d办一间Y件公司。没有试图挤q复杂的Qh格昂늚产品业务市场QFried 和他的同志选择了相Ҏ较偏门的软gQ主机式个hl织器及目理应用?对于Fried 而言Q那U老式的依靠客h出大把美金维持运营的模式已经作古?

Fried _"我认Z业Y件的理念已经M。企业Y件是一个肮脏的世界Q大而无用的东西从来׃奏效Q永q没法按时ؓ客户׃Qƈ且,它们太昂贵了? 虽然发展速度比以往几年有所攄Q企业Y件市Z然是一个h值数十亿金的行业,它还在增ѝ一些投资者和企业家们_不断变化的这个行业得它很难H入q去?

Onset Ventures公司的Mark Hildenbrand_"投资者们对企业Y件的兴奋度正在降低。毫无疑问,它是一个具有挑战性的区域?

与此相反Q过Mq_型公司正在大量的出玎ͼ它们开发基于网l的应用Q或者开发开源YӞZ有时U它们ؓWeb2.0公司?它们中的许多能够依靠相对规模的前沿投资获得NQ而不是过去那U上亿美元的大手W?例如Q?7Signals 的商业计划就是构建简单的L式应用,按月向小企业或者个人收取注册费用?自从推出它的W一个服务的两年多以来,q家自筹资金h的公司已l获得了成百上千名客P它没有债务。这家公司还成功的资助了开源Web 开发项目Ruby on Rails.


Fried _"你可以利用互联网建立很棒的小巧品,你可以获? 百万或?0万用戗?
企业家和投资者们_一pd技术的变化令非怸门的产品生存下来变ؓ一U可能。大多数的变革是那些正在不断发展普及的主机式应用Q或者服务式的Y件?BR> 
|络字处理器公司Upstartle 的创始h们,最开始考虑开发针对企业内部网的协同与文g理软gQ但他们最l放弃了q个LQ而决定将注意力集中在互联|上的字处理器上?


Writely 公司的创始h之一的Claudia Carpenter _"q去Q你不得不做一U巨大的事情Q象套g一cȝ东西。现在,g你能够做一些轻量的东ѝ? ׃互联|已l成ZU应用^収ͼWritely 能够他的字处理器服务与其它|络服务q接hQ比如网l日志或者照片分享网站。现在,很多|站不断的公布它们的应用E序接口QAPI Q,q让用户及开发者们能够在不同的L式服务之间分享信息?


另外一个重要的技术进步就是AJAXQ异步JavaScript+XMLQ的兴v。这是一U创Z互式囑Ş用户界面QGUI Q及|页的开发技术,它能够自动的h|络服务器上的数据。利用AJAXQ程序员门能够开发出桌面应用E序的主机式版本Q比如文件和照片发布QAJAX可以l用h供和在PC上类似的用户体验?


除了注意力集中在专门的产品上,和以往相比Q这些新创公司能够用很少的资金实现腾飞?BR>自由提供的开源Y件正在增长,功能强大的硬件服务器h变得来低。而在5 q之前,新创业的公司可能需要花Ҏ千上万美元去购买q些g讑֤?


q营成本也变得相当的低。以37Signals ZQ这家公司没有花钱在市场营销上,他们采用了网上的营销手段Q比如网l日志的口碑宣传。这? 人公司没有销售h员?


U约天投资公司的董事David Rose_"我们看到的Web2.0是一Y件公司发生深d革的q动? Rose表示Q现在的|络企业家可以在短短的一q时间内Q仅仅用50万美元的资金卛_实现从概念到功能性品的转变。他_"要是攑֜q去Q得花数q时_上百万美元,以及多次的计划修Ҏ会等到第一个品出W{?


RDF 风险基金的主任Richard Forman认ؓQ基于网l的软g模式可以同时辐射个h与企业两个市场?他说Q?Web 2.0 的迷Z处在于它是一U双齐下的模式。一斚wQ你拥有用户提交的内容,q对|络来讲是一U巨大的ZQ另外一斚wQ你拥有针对协同性工作以及应用服务提供商的网l服务,它将l企业世界生真实的影响?


现在QSalesforce.comQNetSuite和SAP 都在鼓吹Q企业客h希望攑ּ那些大型的Y仉目,而选用L式服务。即使微软这个Y件世界的君王也已l发cM的感a?


q入Web 2.0 世界的低门槛使得那些新奇L可以L的{化ؓ新创企业。一些分析师_也许q个门槛太低了?许多的Web 2.0 |络应用可以由几个hQ相对较的创业投资和时间来完成。但是,与此同时Q投资者们认ؓQ这些服务很Ҏ被复制。另外,一些Web 2.0 公司的业务模式没有经q完全测试,比如Writely ׃处于试当中Q公总然在评估几种不同的收入模式,比如客户注册和广告模式。(~辑Q孙莹)


Small is beautiful for Web 2.0 start-ups

 

 

 

 

 

 

 

 

 



inwind 2006-02-09 16:46 发表评论
]]>
保证你现在和未来不失业的十种关键技术(zzQ?http://www.shnenglu.com/inwind/archive/2005/12/23/2014.htmlinwindinwindFri, 23 Dec 2005 09:13:00 GMThttp://www.shnenglu.com/inwind/archive/2005/12/23/2014.htmlhttp://www.shnenglu.com/inwind/comments/2014.htmlhttp://www.shnenglu.com/inwind/archive/2005/12/23/2014.html#Feedback0http://www.shnenglu.com/inwind/comments/commentRss/2014.htmlhttp://www.shnenglu.com/inwind/services/trackbacks/2014.html
一、XML
    在十U技术中Q最重要的一U技术我惛_该非XML莫属。这里不仅仅指XML规范本nQ还包括一pd有关的基于XML的语aQ主要有XHTMLQXSLTQXSLQDTDsQXML SchemaQXSDQ,XPathQXQuery和SOAP。如果你现在q对XML一无所知,那么赶快狂补吧。XML是包含类gHTML标签的一个文本文Ӟ在这个文件中定义了一个树型结构来描述它所保存的数据?BR>    XML最大的优点是你既可以在q个文本文g中存储结构化数据Q也可以在其中存储非l构化数据——也是_它能包含和描q?_糙?文档数据Q就象它描述"规则?表格数据一栗?
  • XHTML是目前编写HTML的首选方法;因ؓXHTML本n是格式良好的XMLQ与通常畸Ş的HTML文档相比Q?XHTML格式文档更容易处理?
  • XSLT和XSL是对XML文档q行转换的语a。它们可以将XML文档转换成各U格式,比如另一个文本文件、PDF文g、HTML文g、逗号分割的文Ӟ或者{换成其它的XML文档?
  • DTDs 和XML Schema用来描述XML文g所包含的数据内容的cdQ你不用编写定制的代码p对XML文档的内容进?有效?查,使内容强行遵守给出的规则?
  • XPath ?XQuery是查询语aQ用它们可以从XML文档中吸取单个的数据Ҏ者数据项列表。XQuery的功能特别强大,因ؓ它对XPath查询q行了扩展。实际上QXQuery和XML的关pd像SQL之于关系数据库一栗?
  • SOAP是Web services间进行通讯的标准协议。你不必知道SOAP协议的所有细节,但是你应该熟悉其常用规则及其工作原理Q这样你才能使用它?
二、Web Services
    Web服务是XML行后的直接产物。因为XML可以描述数据和对象,XML大纲可以保证XML文档数据的有效性,因ؓXML的基于文本的规范Q因而XML文档极其适合于作ZU跨q_通讯标准的基本格式。如果你q没有接触过Web服务Q那么过不了多久你肯定会到它,所以必ȝl掌握Web服务Q最好是_N它Q因为它是迄今ؓ止应用程序间跨不同种cL器、语a、^台和位置通讯的最单的一U方式。不你需不需要它QWeb服务都会是将来互用性的主要势?BR>    XML工作l的John Bosak曾说q:"XML使得Java有事可做"Q那么,我们也可以说QWeb服务使得所有语a都有事可做。Web服务让运行在大型Z的COBOL应用E序与运行在手持讑֤上的应用E序怺沟通;让Java应用与.NET服务器相互通讯Q让桌面应用与Web服务器进行无~交互,不但为商业数据处理,同时也ؓ商业功能提供了方便的实现——ƈ且这U实C语言、^台、和位置无关?BR>
三、面向对象编E?/B>
    许多E序员仍然认为OOP乃技术的象牙之塔Q但是细l想一下过dq里在面向对象领域里占据q统d位的开发语a之后Q你׃会这么认ZQOOP理念从Smalltalk开始,然后蔓g到C++和PascalQDelphiQ,到Java成ؓ真正的主,几年之后QVB.NET ?C#的出现可以说是OOP发展Cd造极的地步。虽然用这些语a不必了解OOP的概念,但如果你~Z一些OOP的基本知识和ҎQ我想你很难在逐渐疲Y的就业市Z扑ֈ工作?BR>
四、Java, C++, C#, VB.NET
    如果你热衷于技术,q且热爱~程Q那么我想你应该L玩{q些高语言Q我说的玩{q不一定要你成U编E高手。而是能看懂用q些语言~写的代码即可。如果你q有_֊用它们编码那更好了。其实这U机会甚。但是看代码的机会很多,学习~程的最有效的一U方式就是看源代码——浩如烟L源代码中很多都不是用你所钟爱的开发语a~写的?BR>    在过ȝ几年里,各个语言功能的发展基本上都差不多。现在你完全可以用VB.NET来写Windows服务、Web应用或者命令行E序。即使你只用其中的一U语a写程序。我认ؓ也完全有必要学习另外一U语aQ自己能阅d理解它们现有的例子代码,q且能将一U语a~写的代码{换成你首选的~程语言代码。这里列出的四种语言可谓是一个强大的开发语a工具,如果你掌握了它们Q毫无疑问你一定是一个众ZԒ慕的高手。这里我要声明一下:那就是我q没有要忽略和排除其它的高语言Q如QFORTRAN、COBOL、APL、ADA、Perl和Lisp{等Q根据你所从事的领域不同,应该选择适合的语a和工兗?BR>
五、JavaScript
    Java 和JavaScript两者的名字管很类|但它们之间ƈ没有什么关pRؓ什么一U脚本语a会如此重要,以至于将它列入十U关键技术之一呢?仔细想一下就知道了,目前所有主的览器都使用JavaScript。如果你要编写Web应用E序Q那么JavaScript不可或缺。此外,JavaScriptq能作ؓ一U服务器端的脚本语言Q如它嵌入在ASP、ASP.NET中,或者嵌入XSLT来扩展功能。目前JavaScript在Mozilla/Netscape中是Ȁzd于XUL界面的首选语aQ它zZActionScriptQ成为Flash MX应用的编E语a。还有就是JavaScript极有可能成ؓ未来新设备的脚本语言以及L应用的宏语言?BR>    相比之下QVBScript虽然在微软的产品中得到很好的支持Q但从长q来看,没有q象表明它会有美好前途。微软自己都向于用JavaScriptQ或者用由JavaScriptz的JScriptQ来~写其客L脚本代码。因此,如果你要选择脚本语言Q非JavaScript莫属?BR>
六、Regular Expressions
    从所周知Q关pL据库的查询用SQLQ搜索XML文档用XPath 和XQueryQ而正则表辑ּ则用来搜索纯文本。例如,你可以用一个命令来查找或删除HTML格式文g中的注释内容。大安用过"IndexOf"?InStr"以及"Like"q些内徏在JavaScript或VB中的文本搜烦函数Q这些函数虽然很Ҏ使用Q但是它们的功能却无法与正则表达式同日而语——现在每一U主的开发语a都提供对正则表达式的存取。尽有为正则表辑ּ本n的读写艰涩难懂,但毕竟它的功能强大,使用它的领域也越来越多?BR>
七、Design Patterns
    像OOP通过创徏和分cd象来化编E一P设计模式普通的对象交互分类成指定的模型Q这是一个从一般到具体的过E。OOP的成分用得多Q设计模式就昑־有用武之地。所以你必须理解它们Q跟上其M理论的发展?BR>
八、Flash MX
    当你需要比HTML和CSS所能提供的更多的客L囑Ş和编E能力时QFlash是最佳选择。在Flash中编E比用Java应用或?NET代码来得快得多,也容易得多?BR>    在最新版本中QMXQ,Flash不仅可以d和进行动L包,它还是个高度的可~程应用环境。具备强大的与SOAP Web服务沟通的能力Q可以调用运行在q端服务器上的ColdFusion、Java?NET代码。可以说Flash几乎无处不在Q包括手持设备、置盒、甚x新的qx电脑Q你到处都可以见到它的n影,所以用它实际上可以扩展和延你的应用E序使用领域?BR>
九、Linux/Windows
    q是当今PCs机操作系l的两大阵容Q如果你惛_计算业里P׃定要熟悉它们。对于LinuxQ最好能自己安装Q配|,下蝲它的囑Ş用户界面以及一些应用程序。自己安装Apacheq会~写Web应用E序。要清醒地认识到q个世界除了Windows之外Q还有Linux的存在。ƈ且这U局面将会长期存在。反q来Q如果你是一个死忠的Linux开发者,不要再l对Windows的憎Ӟ要相互学习,取长补短Q看看Windows有什么好的东东可以采U뀂记住Windows仍然是桌面之王?BR>    谁也说不准你们公总么时候会军_从Linux转向WindowsQ或者从Windows转向Linux。谁也说不准什么时候你会蟩槽跑到另外一个用不同^台的公司上班——或者即便不xQ也有可能在不同q_上开始另外一个杀手目——所以最好在每个q_上都U篏一些经验,而不要在一|上吊歅R?BR>
十、SQL
    管SQL在当今众多的技术中已不是什么新东西Q而且在未来的十年里它的作用很有可能被削弱Q甚x个被淘汰Q但它仍然是一U基本技能——别看它是一U基本技能,至今仍有许多开发h员不懂什么是SQL或对它了解不多。不要指望基于图形用L面的SQL构造器会帮你的忙,q是自己亲手写SQL查询吧,定你掌握了SQL的基本语法。现在理解了SQLQ不仅对以后学习XQuery有所裨益Q而且可以使你很快扑ֈ化或改进当前开发项目的途径?BR>
֣Q培d技术的好奇?/B>
    其实Q不技术的发展势如何Q每个h最重要的一个技能是好奇心。敢于面Ҏ战,在你目前或未来的工作中,新语a或新技术可能很重要Q也可能不怎么重要Q你所学习的东西ƈ不一定非要针对你的工作。不要怕失败,M新的技术对初学者来说都是困隄。大多数的失败都可以归咎于本w急功q利Q希望速成。俗话说——千里之行,始于下Q应该脚t实圎ͼ一步一个脚印地往前走。不要让旉来左右你行动Q而是要利用时间来x、研I、测试新的开发技术和工具?BR>    本文的用意不在于要让你成ZQ何一U技术的专家——只是想借VCKBAEq块宝地抛砖引玉Q和大家畅谈现在和未来哪些技术是我们要密切关注的Q讨Z后IT行业׃的知识结构,思考自׃后应该在哪些斚w需要多׃功夫。因为每一个h的情况各有不同,应该Ҏ具体情况来构{自q知识层面。但有一Ҏ庸置疑——那是保持良好的好奇心始终会你充实和睿智?BR>

inwind 2005-12-23 17:13 发表评论
]]>
受教了!http://www.shnenglu.com/inwind/archive/2005/12/22/1959.htmlinwindinwindThu, 22 Dec 2005 05:43:00 GMThttp://www.shnenglu.com/inwind/archive/2005/12/22/1959.htmlhttp://www.shnenglu.com/inwind/comments/1959.htmlhttp://www.shnenglu.com/inwind/archive/2005/12/22/1959.html#Feedback0http://www.shnenglu.com/inwind/comments/commentRss/1959.htmlhttp://www.shnenglu.com/inwind/services/trackbacks/1959.html三年不飞Q一飞冲?三年不鸣Q一鸣惊?/FONT>。你{着瞧吧?伍D明白了楚庄王的意思,侉K兴地出退了来?BR>

inwind 2005-12-22 13:43 发表评论
]]>
做科研还是做技?/title><link>http://www.shnenglu.com/inwind/archive/2005/12/08/1640.html</link><dc:creator>inwind</dc:creator><author>inwind</author><pubDate>Thu, 08 Dec 2005 14:09:00 GMT</pubDate><guid>http://www.shnenglu.com/inwind/archive/2005/12/08/1640.html</guid><wfw:comment>http://www.shnenglu.com/inwind/comments/1640.html</wfw:comment><comments>http://www.shnenglu.com/inwind/archive/2005/12/08/1640.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/inwind/comments/commentRss/1640.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/inwind/services/trackbacks/1640.html</trackback:ping><description><![CDATA[Mdq个份上了,如果只是做一个coderQ太亏了Q也不一定有本做得好?BR><BR>但是问题在于Q只作科研,paperQ对于以后找工作呢?<BR><BR>实验室几位毕业的士今年扑ַ作,凸Cq个问题Q而相识的几位U大的硕博,扑ֈ的工作都非常。他们除了有比较的科研成l之外,另外一个相同之处,是都对一Ҏ者几Ҏ术非帔R常的熟练。说到底Q资本家雇用你,是因Z能实际的Z做事Q能Z创造实际的价|而不是需要只能做文章的理——虽然也需要,但是非常非常的少Q而且做ؓ理论Q我们又怎么做得q数学系n的h呢?<BR><BR>考虑一下需要研I的技?BR>c/c++,java Qvc, c#, <BR>linuxpȝ和网l编E,驱动E序~程<BR>windows的系l和驱动E序~程<BR><BR>q有Q看到某位大虾说得,感觉挺有道理Q应该找个时_研究一下脚本语a的说<BR><BR>在近一q以内,要做什么呢Q?BR>linux内核Q在攑ց前应该可以看完了Q然后可以参与社区的开发研I——限于条Ӟ暂时可以不用linux的机器,不要紧,关键在于理解其内核运行的机制Q算法等<BR>然后是cQ+Q一月䆾之前需要彻底复习一下,然后Q就需要开始vc内幕四版的学习,加上法的学习——算法iQivQ然后是art of programming。对于cQ+的深入研修也是必要的Qprimer加上那两本特价书?BR><BR>除了art of programingQ其他应该在三月份以内搞定?BR><BR>oh yeah~~~~?BR><img src ="http://www.shnenglu.com/inwind/aggbug/1640.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/inwind/" target="_blank">inwind</a> 2005-12-08 22:09 <a href="http://www.shnenglu.com/inwind/archive/2005/12/08/1640.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>今天发热Q哈?/title><link>http://www.shnenglu.com/inwind/archive/2005/12/07/1598.html</link><dc:creator>inwind</dc:creator><author>inwind</author><pubDate>Wed, 07 Dec 2005 05:42:00 GMT</pubDate><guid>http://www.shnenglu.com/inwind/archive/2005/12/07/1598.html</guid><wfw:comment>http://www.shnenglu.com/inwind/comments/1598.html</wfw:comment><comments>http://www.shnenglu.com/inwind/archive/2005/12/07/1598.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/inwind/comments/commentRss/1598.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/inwind/services/trackbacks/1598.html</trackback:ping><description><![CDATA[刚刚注册了这个blogQ热情啊,一口气转蝲了那么多文章Q没有几仔l看的,呵呵Q)<BR>不过Q先攄Q下班之后就可以看了?BR>q是先把本职工作做一下吧<img src ="http://www.shnenglu.com/inwind/aggbug/1598.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/inwind/" target="_blank">inwind</a> 2005-12-07 13:42 <a href="http://www.shnenglu.com/inwind/archive/2005/12/07/1598.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.lnboxue.cn" target="_blank">þ޴ɫĻþþ </a>| <a href="http://www.gdhaojulai.cn" target="_blank">뾫Ʒþһ </a>| <a href="http://www.fimtb.cn" target="_blank">þþþƷþþþɫӰ</a>| <a href="http://www.liushishipin.cn" target="_blank">Ʒ99þѹۿ</a>| <a href="http://www.gzfbn.cn" target="_blank">˳AVɫۺϾþ</a>| <a href="http://www.xdfgm.cn" target="_blank">99þۺϾƷ</a>| <a href="http://www.threecar.com.cn" target="_blank">þ97þ97Ʒӿ</a>| <a href="http://www.baiduotui.cn" target="_blank">þúݺݰۺӰԺ</a>| <a href="http://www.diylady.cn" target="_blank">þþž޾Ʒ</a>| <a href="http://www.u3h1.cn" target="_blank">99þþƷһ</a>| <a href="http://www.fayongshicai.cn" target="_blank">LƷþ</a>| <a href="http://www.njcsggs.cn" target="_blank">þˬˬˬ</a>| <a href="http://www.botouvr.cn" target="_blank">91ƷۺϾþ㽶</a>| <a href="http://www.63552277.cn" target="_blank">þþƷƷ޾Ʒ </a>| <a href="http://www.681lc.cn" target="_blank">ձձȾþþƷ</a>| <a href="http://www.taoxh.cn" target="_blank">˾Ʒþö</a>| <a href="http://www.pareng.cn" target="_blank">þþþþþþþþ</a>| <a href="http://www.dfyxw.cn" target="_blank">ȾþֻоƷ</a>| <a href="http://www.shejia.net.cn" target="_blank">þùƷ99</a>| <a href="http://www.6ht.com.cn" target="_blank">ݺɫþۺѿ</a>| <a href="http://www.panroad.cn" target="_blank">þþž޾Ʒ</a>| <a href="http://www.ls63.cn" target="_blank">99þóĻ</a>| <a href="http://www.jcfw-1.cn" target="_blank">ĻþþƷ</a>| <a href="http://www.tuht.cn" target="_blank">99þۺϹƷ</a>| <a href="http://www.zyhyhz.cn" target="_blank">þþþþþþŮ</a>| <a href="http://www.jpcn2.cn" target="_blank">һƷþð͹</a>| <a href="http://www.hgflt.cn" target="_blank">Ʒ99þþƷ</a>| <a href="http://www.o-led.com.cn" target="_blank">ٸþþþþñŪ߳</a>| <a href="http://www.qojm.cn" target="_blank">ҹþþþþ</a>| <a href="http://www.hanqingtoubai.cn" target="_blank">ۺһ˾þþƷ</a>| <a href="http://www.hardwareman.cn" target="_blank">ݺɫۺϾþȥ</a>| <a href="http://www.ilrf.cn" target="_blank">AVɫۺϾþAVɫۺ</a>| <a href="http://www.zhengyuezp.cn" target="_blank">޳ɫWWWþվ</a>| <a href="http://www.sdquanguan.cn" target="_blank">ɫۺϾþ</a>| <a href="http://www.fbmz5.cn" target="_blank">þþAVҰ</a>| <a href="http://www.buniaowan.cn" target="_blank">Ʒ99þþþþլС˵</a>| <a href="http://www.cgx.org.cn" target="_blank">þþþ޾Ʒ˵</a>| <a href="http://www.liess.cn" target="_blank">þþù</a>| <a href="http://www.8xbu.cn" target="_blank">þþþƷSmվ</a>| <a href="http://www.hhhkk.cn" target="_blank">þԾƷ</a>| <a href="http://www.chianyuxun.cn" target="_blank">þþþòҰ¸߳</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>