⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000064.htm

📁 一份很好的linux入门资料
💻 HTM
📖 第 1 页 / 共 3 页
字号:
they should feel free to do so as an independent project. So
&nbsp;<BR>far&nbsp;no-one&nbsp;has&nbsp;volunteered.&nbsp;I&nbsp;can't&nbsp;blame&nbsp;the&nbsp;kernel-hackers&nbsp;for&nbsp;not&nbsp;wanting&nbsp;&nbsp;<BR>to&nbsp;further&nbsp;complicate&nbsp;their&nbsp;lives;&nbsp;I&nbsp;imagine&nbsp;it&nbsp;would&nbsp;be
&nbsp;<BR>much&nbsp;more&nbsp;interesting&nbsp;and&nbsp;challenging&nbsp;to&nbsp;work&nbsp;directly&nbsp;with&nbsp;the&nbsp;kernel&nbsp;than&nbsp;&nbsp;<BR>to&nbsp;overhaul&nbsp;the&nbsp;entire&nbsp;kernel&nbsp;distribution&nbsp;scheme!
&nbsp;<BR>Downloading&nbsp;an&nbsp;eleven&nbsp;megabyte&nbsp;kernel&nbsp;source&nbsp;archive&nbsp;is&nbsp;time-consuming&nbsp;(and,&nbsp;&nbsp;<BR>for&nbsp;those&nbsp;folks&nbsp;paying&nbsp;by&nbsp;the&nbsp;minute&nbsp;for&nbsp;net
&nbsp;<BR>access,&nbsp;expensive&nbsp;as&nbsp;well)&nbsp;but&nbsp;the&nbsp;kernel&nbsp;patches&nbsp;can&nbsp;be&nbsp;as&nbsp;small&nbsp;as&nbsp;a&nbsp;few&nbsp;&nbsp;<BR>dozen&nbsp;kilobytes,&nbsp;and&nbsp;are&nbsp;hardly&nbsp;ever&nbsp;larger&nbsp;than&nbsp;one
&nbsp;<BR>megabyte.&nbsp;The&nbsp;2.1.119&nbsp;development&nbsp;kernel&nbsp;source&nbsp;on&nbsp;my&nbsp;hard&nbsp;disk&nbsp;has&nbsp;been&nbsp;&nbsp;<BR>incrementally&nbsp;patched&nbsp;up&nbsp;from&nbsp;version&nbsp;2.1.99,&nbsp;and&nbsp;I
&nbsp;<BR>doubt&nbsp;if&nbsp;I'd&nbsp;follow&nbsp;the&nbsp;development&nbsp;as&nbsp;closely&nbsp;if&nbsp;I&nbsp;had&nbsp;to&nbsp;download&nbsp;each&nbsp;&nbsp;<BR>release&nbsp;in&nbsp;its&nbsp;entirety.&nbsp;
&nbsp;<BR>
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Using&nbsp;Patch
&nbsp;<BR>
&nbsp;<BR>Patch&nbsp;comes&nbsp;with&nbsp;a&nbsp;good&nbsp;manual-page&nbsp;which&nbsp;lists&nbsp;its&nbsp;numerous&nbsp;options,&nbsp;but&nbsp;99%&nbsp;&nbsp;<BR>of&nbsp;the&nbsp;time&nbsp;just&nbsp;two&nbsp;of&nbsp;them&nbsp;will&nbsp;suffice:&nbsp;
&nbsp;<BR>
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;patch&nbsp;-p1&nbsp;&lt;&nbsp;[patchfile]&nbsp;
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;patch&nbsp;-R&nbsp;&lt;&nbsp;[patchfile]&nbsp;&nbsp;(used&nbsp;to&nbsp;undo&nbsp;a&nbsp;patch)&nbsp;
&nbsp;<BR>
&nbsp;<BR>The&nbsp;-p1&nbsp;option&nbsp;strips&nbsp;the&nbsp;left-most&nbsp;directory&nbsp;level&nbsp;from&nbsp;the&nbsp;filenames&nbsp;in&nbsp;the&nbsp;&nbsp;<BR>patch-file,&nbsp;as&nbsp;the&nbsp;top-level&nbsp;directory&nbsp;is&nbsp;likely&nbsp;to&nbsp;vary&nbsp;on
&nbsp;<BR>different&nbsp;machines.&nbsp;To&nbsp;use&nbsp;this&nbsp;option,&nbsp;place&nbsp;your&nbsp;patch&nbsp;within&nbsp;the&nbsp;directory&nbsp;&nbsp;<BR>being&nbsp;patched,&nbsp;and&nbsp;then&nbsp;run&nbsp;patch&nbsp;-p1&nbsp;&lt;&nbsp;[patchfile]
&nbsp;<BR>from&nbsp;within&nbsp;that&nbsp;directory.&nbsp;A&nbsp;short&nbsp;excerpt&nbsp;from&nbsp;a&nbsp;Linux&nbsp;kernel&nbsp;patch&nbsp;will&nbsp;&nbsp;<BR>illustrate&nbsp;this:
&nbsp;<BR>
&nbsp;<BR>
&nbsp;<BR>diff&nbsp;-u&nbsp;--recursive&nbsp;--new-file&nbsp;v2.1.118/linux/mm/swapfile.c&nbsp;linux/mm/swapfile.&nbsp;<BR>c
&nbsp;<BR>---&nbsp;v2.1.118/linux/mm/swapfile.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wed&nbsp;Aug&nbsp;26&nbsp;11:37:45&nbsp;1998
&nbsp;<BR>+++&nbsp;linux/mm/swapfile.c&nbsp;Wed&nbsp;Aug&nbsp;26&nbsp;16:01:57&nbsp;1998
&nbsp;<BR>@@&nbsp;-489,7&nbsp;+489,7&nbsp;@@
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;swap_header_version;
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;lock_map_size&nbsp;=&nbsp;PAGE_SIZE;
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;nr_good_pages&nbsp;=&nbsp;0;
&nbsp;<BR>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;tmp_lock_map&nbsp;=&nbsp;0;
&nbsp;<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;long&nbsp;tmp_lock_map&nbsp;=&nbsp;0;
&nbsp;<BR>
&nbsp;<BR>Applying&nbsp;the&nbsp;patch&nbsp;from&nbsp;which&nbsp;this&nbsp;segment&nbsp;was&nbsp;copied&nbsp;with&nbsp;the&nbsp;-p1&nbsp;switch&nbsp;&nbsp;<BR>effectively&nbsp;truncates&nbsp;the&nbsp;path&nbsp;which&nbsp;patch&nbsp;will&nbsp;seek;
&nbsp;<BR>patch&nbsp;will&nbsp;look&nbsp;for&nbsp;a&nbsp;subdirectory&nbsp;of&nbsp;the&nbsp;current&nbsp;directory&nbsp;named&nbsp;/mm,&nbsp;and&nbsp;&nbsp;<BR>should&nbsp;then&nbsp;find&nbsp;the&nbsp;swapfile.c&nbsp;file&nbsp;there,&nbsp;waiting&nbsp;to&nbsp;be
&nbsp;<BR>patched.&nbsp;In&nbsp;this&nbsp;excerpt,&nbsp;the&nbsp;line&nbsp;preceded&nbsp;by&nbsp;a&nbsp;dash&nbsp;will&nbsp;be&nbsp;replaced&nbsp;with&nbsp;&nbsp;<BR>the&nbsp;line&nbsp;preceded&nbsp;by&nbsp;a&nbsp;plus&nbsp;sign.&nbsp;A&nbsp;typical&nbsp;patch&nbsp;will
&nbsp;<BR>contain&nbsp;updates&nbsp;for&nbsp;many&nbsp;files,&nbsp;each&nbsp;section&nbsp;consisting&nbsp;of&nbsp;the&nbsp;output&nbsp;of&nbsp;diff&nbsp;&nbsp;<BR>-u&nbsp;run&nbsp;on&nbsp;two&nbsp;versions&nbsp;of&nbsp;a&nbsp;file.&nbsp;
&nbsp;<BR>
&nbsp;<BR>Patch&nbsp;displays&nbsp;its&nbsp;output&nbsp;to&nbsp;the&nbsp;screen&nbsp;as&nbsp;it&nbsp;works,&nbsp;but&nbsp;this&nbsp;output&nbsp;usually&nbsp;&nbsp;<BR>scrolls&nbsp;by&nbsp;too&nbsp;quickly&nbsp;to&nbsp;read.&nbsp;The&nbsp;original,&nbsp;pre-patch&nbsp;files
&nbsp;<BR>are&nbsp;renamed&nbsp;*.orig,&nbsp;while&nbsp;the&nbsp;new&nbsp;patched&nbsp;files&nbsp;will&nbsp;bear&nbsp;the&nbsp;original&nbsp;&nbsp;<BR>filenames.&nbsp;
&nbsp;<BR>
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Patching&nbsp;Problems
&nbsp;<BR>
&nbsp;<BR>One&nbsp;possible&nbsp;source&nbsp;of&nbsp;problems&nbsp;using&nbsp;patch&nbsp;is&nbsp;differences&nbsp;between&nbsp;various&nbsp;&nbsp;<BR>versions,&nbsp;all&nbsp;of&nbsp;which&nbsp;are&nbsp;available&nbsp;on&nbsp;the&nbsp;net.&nbsp;Larry
&nbsp;<BR>Wall&nbsp;hasn't&nbsp;done&nbsp;much&nbsp;to&nbsp;improve&nbsp;patch&nbsp;in&nbsp;recent&nbsp;years,&nbsp;possibly&nbsp;because&nbsp;his&nbsp;&nbsp;<BR>last&nbsp;release&nbsp;of&nbsp;the&nbsp;utility&nbsp;works&nbsp;well&nbsp;in&nbsp;the&nbsp;majority
&nbsp;<BR>of&nbsp;situations.&nbsp;FSF&nbsp;programmers&nbsp;from&nbsp;the&nbsp;GNU&nbsp;project&nbsp;have&nbsp;been&nbsp;releasing&nbsp;new&nbsp;&nbsp;<BR>versions&nbsp;of&nbsp;patch&nbsp;for&nbsp;the&nbsp;past&nbsp;several&nbsp;years.&nbsp;Their
&nbsp;<BR>first&nbsp;revisions&nbsp;of&nbsp;patch&nbsp;had&nbsp;a&nbsp;few&nbsp;problems,&nbsp;but&nbsp;I've&nbsp;been&nbsp;using&nbsp;version&nbsp;2.5&nbsp;&nbsp;<BR>(which&nbsp;is&nbsp;the&nbsp;version&nbsp;distributed&nbsp;with&nbsp;Debian&nbsp;2.0)&nbsp;lately
&nbsp;<BR>with&nbsp;no&nbsp;problems.&nbsp;Version&nbsp;2.1&nbsp;has&nbsp;worked&nbsp;well&nbsp;for&nbsp;me&nbsp;in&nbsp;the&nbsp;past.&nbsp;The&nbsp;source&nbsp;&nbsp;<BR>for&nbsp;the&nbsp;current&nbsp;GNU&nbsp;version&nbsp;of&nbsp;patch&nbsp;is&nbsp;available
&nbsp;<BR>from&nbsp;the&nbsp;GNU&nbsp;FTP&nbsp;site,&nbsp;though&nbsp;most&nbsp;people&nbsp;will&nbsp;just&nbsp;use&nbsp;the&nbsp;version&nbsp;supplied&nbsp;&nbsp;<BR>with&nbsp;their&nbsp;distribution&nbsp;of&nbsp;Linux.&nbsp;
&nbsp;<BR>
&nbsp;<BR>Let's&nbsp;say&nbsp;you&nbsp;have&nbsp;patched&nbsp;a&nbsp;directory&nbsp;of&nbsp;source&nbsp;files,&nbsp;and&nbsp;the&nbsp;patch&nbsp;didn't&nbsp;&nbsp;<BR>apply&nbsp;cleanly&nbsp;.&nbsp;This&nbsp;happens&nbsp;occasionally,&nbsp;and&nbsp;when&nbsp;it
&nbsp;<BR>does&nbsp;patch&nbsp;will&nbsp;show&nbsp;an&nbsp;error&nbsp;message&nbsp;indicating&nbsp;which&nbsp;file&nbsp;confused&nbsp;it,&nbsp;&nbsp;<BR>along&nbsp;with&nbsp;the&nbsp;line&nbsp;numbers.&nbsp;Sometimes&nbsp;the&nbsp;error&nbsp;will&nbsp;be
&nbsp;<BR>obvious,&nbsp;such&nbsp;as&nbsp;an&nbsp;omitted&nbsp;semicolon,&nbsp;and&nbsp;can&nbsp;be&nbsp;fixed&nbsp;without&nbsp;too&nbsp;much&nbsp;&nbsp;<BR>trouble.&nbsp;Another&nbsp;possibility&nbsp;is&nbsp;to&nbsp;delete&nbsp;from&nbsp;the&nbsp;patch
&nbsp;<BR>the&nbsp;section&nbsp;which&nbsp;is&nbsp;causing&nbsp;trouble,&nbsp;but&nbsp;this&nbsp;may&nbsp;or&nbsp;may&nbsp;not&nbsp;work,&nbsp;depending&nbsp;&nbsp;<BR>on&nbsp;the&nbsp;file&nbsp;involved.&nbsp;
&nbsp;<BR>
&nbsp;<BR>Another&nbsp;common&nbsp;error&nbsp;scenario:&nbsp;suppose&nbsp;you&nbsp;have&nbsp;un-tarred&nbsp;a&nbsp;kernel&nbsp;source&nbsp;&nbsp;<BR>archive,&nbsp;and&nbsp;while&nbsp;exploring&nbsp;the&nbsp;various
&nbsp;<BR>subdirectories&nbsp;under&nbsp;/linux/arch/&nbsp;you&nbsp;notice&nbsp;the&nbsp;various&nbsp;machine&nbsp;architecture&nbsp;&nbsp;<BR>subdirectories,&nbsp;such&nbsp;as&nbsp;alpha,&nbsp;sparc,&nbsp;etc.
&nbsp;<BR>If&nbsp;you,&nbsp;like&nbsp;most&nbsp;Linux&nbsp;users,&nbsp;are&nbsp;running&nbsp;a&nbsp;machine&nbsp;with&nbsp;an&nbsp;Intel&nbsp;processor&nbsp;&nbsp;<BR>(or&nbsp;one&nbsp;of&nbsp;the&nbsp;Intel&nbsp;clones),&nbsp;you&nbsp;might&nbsp;decide&nbsp;to&nbsp;delete
&nbsp;<BR>these&nbsp;directories,&nbsp;which&nbsp;are&nbsp;not&nbsp;needed&nbsp;for&nbsp;compiling&nbsp;your&nbsp;particular&nbsp;kernel&nbsp;&nbsp;<BR>and&nbsp;which&nbsp;occupy&nbsp;needed&nbsp;disk&nbsp;space.&nbsp;Some&nbsp;time&nbsp;later
&nbsp;<BR>a&nbsp;new&nbsp;kernel&nbsp;patch&nbsp;is&nbsp;released&nbsp;and&nbsp;while&nbsp;attempting&nbsp;to&nbsp;apply&nbsp;it&nbsp;patch&nbsp;stalls&nbsp;&nbsp;<BR>when&nbsp;it&nbsp;is&nbsp;unable&nbsp;to&nbsp;find&nbsp;the&nbsp;Alpha&nbsp;or&nbsp;PPC&nbsp;files&nbsp;it
&nbsp;<BR>would&nbsp;like&nbsp;to&nbsp;patch.&nbsp;Luckily&nbsp;patch&nbsp;allows&nbsp;user&nbsp;intervention&nbsp;at&nbsp;this&nbsp;point,&nbsp;&nbsp;<BR>asking&nbsp;the&nbsp;question&nbsp;&quot;Skip&nbsp;this&nbsp;patch?&quot;&nbsp;Tell&nbsp;it&nbsp;&quot;y&quot;,&nbsp;and&nbsp;patch
&nbsp;<BR>will&nbsp;proceed&nbsp;along&nbsp;its&nbsp;merry&nbsp;way.&nbsp;You&nbsp;will&nbsp;probably&nbsp;have&nbsp;to&nbsp;answer&nbsp;the&nbsp;&nbsp;<BR>question&nbsp;numerous&nbsp;times,&nbsp;which&nbsp;is&nbsp;a&nbsp;good&nbsp;argument&nbsp;for
&nbsp;<BR>allowing&nbsp;the&nbsp;un-needed&nbsp;directories&nbsp;to&nbsp;remain&nbsp;on&nbsp;your&nbsp;disk.&nbsp;
&nbsp;<BR>
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Kernel-Patching&nbsp;Tips
&nbsp;<BR>
&nbsp;<BR>Many&nbsp;Linux&nbsp;users&nbsp;use&nbsp;patch&nbsp;mainly&nbsp;for&nbsp;patching&nbsp;the&nbsp;kernel&nbsp;source,&nbsp;so&nbsp;a&nbsp;few&nbsp;&nbsp;<BR>tips&nbsp;are&nbsp;in&nbsp;order.&nbsp;Probably&nbsp;the&nbsp;easiest&nbsp;method&nbsp;is&nbsp;to
&nbsp;<BR>use&nbsp;the&nbsp;shell-script&nbsp;patch-kernel,&nbsp;which&nbsp;can&nbsp;be&nbsp;found&nbsp;in&nbsp;the&nbsp;/scripts&nbsp;&nbsp;<BR>subdirectory&nbsp;of&nbsp;the&nbsp;kernel&nbsp;source-tree.&nbsp;This&nbsp;handy&nbsp;and
&nbsp;<BR>well-written&nbsp;script&nbsp;was&nbsp;written&nbsp;by&nbsp;Nick&nbsp;Holloway&nbsp;in&nbsp;1995;&nbsp;a&nbsp;couple&nbsp;of&nbsp;years&nbsp;&nbsp;<BR>later&nbsp;Adam&nbsp;Sulmicki&nbsp;added&nbsp;support&nbsp;for&nbsp;several
&nbsp;<BR>compression&nbsp;algorithms,&nbsp;including&nbsp;*.bz,&nbsp;*.bz2,&nbsp;compress,&nbsp;gzip,&nbsp;and&nbsp;plain-text&nbsp;&nbsp;<BR>(i.e.,&nbsp;a&nbsp;patch&nbsp;which&nbsp;has&nbsp;already&nbsp;been&nbsp;uncompressed).
&nbsp;<BR>The&nbsp;script&nbsp;assumes&nbsp;that&nbsp;your&nbsp;kernel&nbsp;source&nbsp;is&nbsp;in&nbsp;/usr/src/linux,,&nbsp;with&nbsp;your&nbsp;&nbsp;<BR>new&nbsp;patch&nbsp;located&nbsp;in&nbsp;the&nbsp;current&nbsp;directory.
&nbsp;<BR>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -