1 |
On Wed, Oct 2, 2013 at 3:22 AM, Mark David Dumlao <madumlao@×××××.com> wrote: |
2 |
> On Mon, Sep 30, 2013 at 2:31 PM, pk <peterk2@××××××××.se> wrote: |
3 |
>> On 2013-09-30 00:04, Alan McKinnon wrote: |
4 |
>> |
5 |
>>> It's the general idea that you can leave /usr unmounted until some |
6 |
>>> random arb time later in the startup sequence and just expect things to |
7 |
>>> work out fine that is broken. |
8 |
>>> |
9 |
>>> It just happened to work OK for years because nothing happened to use |
10 |
>>> the code in /usr at that point in the sequence. More and more we are |
11 |
>>> seeing that this is no longer the case. |
12 |
>> |
13 |
>> So basically it wasn't broke before stuff started to use the code in |
14 |
>> /usr. How isn't that breaking? |
15 |
>> |
16 |
>>> So no-one broke it with a specific commit. It has always been broken by |
17 |
>>> design becuase it's a damn stupid idea that just happened to work by |
18 |
>>> fluke. IT and computing is rife with this kind of error. |
19 |
>> |
20 |
>> If what you are saying is true then *everything* is broken "by design" |
21 |
>> if something isn't available at boot time (may be /usr, may be /var or |
22 |
>> whatever). |
23 |
> |
24 |
> Let me make an analogy between programs and recipes. |
25 |
> |
26 |
> You see, a program is a lot like a recipe. It's a set of instructions |
27 |
> for a computer to follow. And if you have a recipe where if you follow |
28 |
> it, and anyone that eats the food says it tastes good, then you have a |
29 |
> good recipe. |
30 |
> |
31 |
> Let me make an analogy between a restaurant franchise and a |
32 |
> distribution. You see, a franchise is a set of instructions for a |
33 |
> restaurateur to follow. A lot of those instructions are recipes. They |
34 |
> tell the restaurateur how to cook foods. But not all of those |
35 |
> instructions are. Some of them are instructions on the ideal |
36 |
> conditions to cook. Or some of them are instructions on how to get |
37 |
> materials, or how to talk to customers, or how to keep employees |
38 |
> happy. Now if you follow those instructions, and have the right |
39 |
> resources, you get to create a restaurant. In the same way, a |
40 |
> distribution can be thought of as a set of instructions. If you follow |
41 |
> those instructions, and have the right resources, you get to install a |
42 |
> lot of programs on a computer. |
43 |
> |
44 |
> If everybody that follows the instructions on a recipe creates a food |
45 |
> that a lot of people think tastes great, then you have a great recipe. |
46 |
> And if everybody that follows the instuctions on a franchise creates a |
47 |
> restaurant that a lot of customers buy from and think the food is |
48 |
> great, then you have a great franchise. |
49 |
> |
50 |
> Now let's say you have a franchise with very specific instructions to |
51 |
> buy ingredients from the nearest organic store. Now for many |
52 |
> restaurants that follow these instructions, they end up with great |
53 |
> food that makes an okay amount of money. But in some cities the |
54 |
> organic store doesn't have very good lettuce. Or the carrots are too |
55 |
> expensive. Or there isn't any organic store at all, so the restaurant |
56 |
> owner has to go to the next city and waste a lot of time and money to |
57 |
> get eggs. So those restaurants fail. But for many restaurants the |
58 |
> instructions work. |
59 |
> |
60 |
> Now the restaurant owners get together and complain that their |
61 |
> restaurant isn't working. Why? they ask. It's because the head |
62 |
> franchise added pizza to the menu! The menu was working fine without |
63 |
> the pizza, but when they added pizza it became to expensive or |
64 |
> impractical to turn a profit. They might say that the franchise was |
65 |
> broken by the pizza. But many restaurant owners do fine by pizza. In |
66 |
> fact for many of them it's their hottest and most profitable product. |
67 |
> |
68 |
> You see, the problem isn't the inclusion of a specific recipe. The |
69 |
> addition of pizza didn't break the restaurant. Nor did the addition of |
70 |
> burgers, or coke, or fries or whatever. The problem was with |
71 |
> instructions on how to manage the recipe ingredients. In short, while |
72 |
> they were practical for a lot of restaurant owners, they weren't |
73 |
> practical _in general_. The instructions could be better improved by |
74 |
> saying something like "buy ingredients from stores that give you this |
75 |
> much return," or "buy ingredients from our approved suppliers since |
76 |
> they give the best return on your money". If those instructions were |
77 |
> given instead of just vaguely saying to purchase from an organic |
78 |
> store, they'd have better control over the quality and profitability |
79 |
> of the restaurants. |
80 |
> |
81 |
> And this is something like what is wrong with /usr. The individual |
82 |
> programs may be good. Many parts of the system taken together may be |
83 |
> good. But the instructions on how to manage programs going to /usr or |
84 |
> to / is too vague. There is no definitive quality control behind it. |
85 |
> Even if you follow the instructions, as best as you can, you will end |
86 |
> up making stupid decisions for the distribution. |
87 |
> |
88 |
> Likewise with the franchise restaurants. The individual foods may be |
89 |
> good. Many of the instructions on managing people, foods, customers, |
90 |
> may be good. But the whole concept of "purchase from some a supplier |
91 |
> with undefined levels of cost and quality" is NOT a good instruction. |
92 |
> Maybe that works for a lot of restaurants, but as a general rule it |
93 |
> doesn't work for all of them. If you follow it to the letter, you will |
94 |
> end up making stupid decisions for the restaurant. |
95 |
> |
96 |
> And here's your problem. The franchise instructions aren't supposed to |
97 |
> just "work for a lot of restaurants". They're supposed to work for all |
98 |
> of them. Likewise with the distribution. the distribution packages, |
99 |
> rules, settings, etc, aren't supposed to be tailored for your own |
100 |
> personal setup. They're supposed to work for anybody for whom the |
101 |
> distribution is a target. |
102 |
> |
103 |
> You might want to say that maybe udev, or maybe this driver, or maybe |
104 |
> this service, or that hardware breaks FHS and therefore Gentoo. But |
105 |
> that's the wrong way of looking at it. when the important parts of |
106 |
> something being boot critical depends on the system. |
107 |
|
108 |
Sorry, again I pressed something and sent too early. |
109 |
|
110 |
In the same way, the important parts of "purchase from the nearest |
111 |
organic store" depends on the store. Since it's too vague a |
112 |
requirement, different restaurants will end up with different results. |
113 |
Because of that, you can't predict when a new recipe with different |
114 |
ingredients will make the restaurant unprofitable. |
115 |
|
116 |
Same with /usr. Different systems will end up with different |
117 |
requirements of stuff in /usr. Because of that, you can't predict when |
118 |
a new program with different requirements will be placed in an |
119 |
inappropriate location. |
120 |
|
121 |
/ and /usr being separated, without appropriate tools to handle |
122 |
migration between the two, is bound to break stuff. |
123 |
-- |
124 |
This email is: [ ] actionable [x] fyi [x] social |
125 |
Response needed: [ ] yes [x] up to you [ ] no |
126 |
Time-sensitive: [ ] immediate [ ] soon [x] none |