( 圖源 ) 會不會覺得自己很傻?因為當你認識了一個朋友,很要好,常常都在一起,他的事你知道,你的事他也知道,你覺得無論世上發生甚麼事都好,只要跟他混在一起,喝杯烈酒,向海嘶叫,狠狠將手上的啤酒罐扔出去,回
Suppose that you are designing a protocol where the two ends (let uscall them the initiator and the target) must agree on a joint set ofoptions, actions, or whatever that they both support, will use, orwhatever. If you are doing this, I have a small request: please make theoption negotiation process symmetric, where the initiator and the targetdo the same operations (with slightly different data).
In a symmetric option negotiation process, the initiator says somethinglike 'I support the following
Suppose that you have a program that can run other programs, andyou want to find out if it securely runs the other programs . In an ideal world, the program'sdocumentation would tell you, and you could trust it. Sadly we do notlive in an ideal world.
First you need a test environment where you can control what externalprogram your program runs and force it to actually run the program. Inmany cases (such as testing daemons, web servers, MTAs, and so on),
( 圖源 ) I've mentioned before that we replaced ZFS's normalspares handling with our own system, but I've never actually describedthat system. For background, see my earlier entry onour issues with ZFS's normal spares handling and the challenges we havewith spares in our ZFS fileserver environment .
There are two ways to implement a spares system. Let us call themevent driven and state driven. In an event driven spares systemyou activate spares in response to fault events, and one of yourchallenges is