1
00:00:00,000 --> 00:00:06,200
I actually did have a question for you that could be interesting on camera. A friend of mine had some kernel experience writing drivers for AMD.

2
00:00:06,200 --> 00:00:11,760
Yeah, and he heard you say a little while ago that there's not enough contributors or

3
00:00:11,760 --> 00:00:15,520
you're having a hard time finding contributors and he wondered where to start to look into

4
00:00:15,520 --> 00:00:28,520
what he could do. So I think that probably came not so much from contributors as we have a hard time finding

5
00:00:29,440 --> 00:00:34,160
We have a harder time finding the maintainers than we have to find the default.

6
00:00:34,160 --> 00:00:40,880
Yes, so the problem is there's a lot of programmers, a lot of them actually get paid to do Linux

7
00:00:40,880 --> 00:00:49,440
kernel work, but it's much harder to find the kind of person who stays around for years

8
00:00:49,440 --> 00:00:56,000
and also when you're a maintainer, it's not just that you have to know coding, you have

9
00:00:56,000 --> 00:01:01,560
to have enough of a background that people know you know coding, right?

10
00:01:01,560 --> 00:01:11,720
So there has to be some mind knowledge about you and you can't come from nothing and the

11
00:01:11,720 --> 00:01:15,560
other thing is you have to be pretty good at communication too.

12
00:01:15,560 --> 00:01:21,160
So that's why we are having, I think it's harder to find maintainers than it is to find

13
00:01:21,160 --> 00:01:33,840
people to code. I mean we have tons of developers who like doing the coding part and I think people are

14
00:01:33,840 --> 00:01:37,400
kind of scared of taking the next step.

15
00:01:37,400 --> 00:01:42,720
People think that it's harder or think that the expectations are necessarily higher than

16
00:01:42,720 --> 00:01:50,760
they, I don't think they are. The only thing you have to do is you have to step up, you have to have done enough that

17
00:01:50,760 --> 00:01:56,200
people recognize your name, then you have to just step up and say hey, I'd like to help

18
00:01:56,200 --> 00:02:05,760
maintain this area and if you do that, the answer almost certainly is going to be yes.

19
00:02:05,760 --> 00:02:10,360
We want people who help maintain an area.

20
00:02:10,360 --> 00:02:16,360
So what's the first touch point? Is it that you're going to be contributing and passing up the chain first?

21
00:02:16,360 --> 00:02:19,480
Yeah, you do have to basically start.

22
00:02:19,480 --> 00:02:24,320
It's kind of like a lot of companies have this policy that you grow from within and

23
00:02:24,320 --> 00:02:29,600
that everybody starts at the bottom and it doesn't have to be bottom-bottom but you have

24
00:02:29,600 --> 00:02:36,560
to start out being a programmer that writes code or not necessarily even code.

25
00:02:36,560 --> 00:02:42,120
Documentation is the exact same as true of documentation, tests and stuff like that.

26
00:02:42,120 --> 00:02:47,360
We have maintainers for all of those areas but you have to kind of show, you can't just

27
00:02:47,360 --> 00:02:50,800
say show up and say hey, I'd like to help.

28
00:02:50,800 --> 00:02:57,680
What you have to do is you write some code so that people get to know and then when they

29
00:02:57,680 --> 00:03:06,160
know you, when you say hey, I'd like to help maintain and help carry like spread the burden

30
00:03:06,160 --> 00:03:12,200
around of maintenance. I know I'm the one who put you guys here.

31
00:03:12,200 --> 00:03:17,840
We have a ton of people who I'm sure would rather have to have more people reviewing

32
00:03:17,840 --> 00:03:24,120
patches, help when people go on vacations.

33
00:03:24,120 --> 00:03:29,640
So when you say that you have to say how shy they are, they're all hovering.

34
00:03:29,640 --> 00:03:34,360
I just spent the last two hours with you though so I can't come from nothing.

35
00:03:34,360 --> 00:03:38,640
Do you mean with the Linux project specifically or with just coding in general?

36
00:03:38,640 --> 00:03:42,440
I think you need to come into it coding into Linux.

37
00:03:42,440 --> 00:03:48,040
I mean yes, you probably have experience from other sources to other projects.

38
00:03:48,040 --> 00:03:53,320
Maybe you work in commercial but in order to get that name recognition where people

39
00:03:53,320 --> 00:04:00,320
know who you are because that's, I think like personal trust is a big deal in open source.

40
00:04:00,320 --> 00:04:06,640
It's inside companies, it's like you got hired, you're working at the same company so we trust

41
00:04:06,640 --> 00:04:11,200
you kind of thing. You are part of the team now because our manager put you on the team.

42
00:04:11,200 --> 00:04:17,200
You've gone through the process, we've verified. And in open source, that's not how it works.

43
00:04:17,200 --> 00:04:22,680
In open source it's like I trust you because I've seen you around, it doesn't necessarily

44
00:04:22,680 --> 00:04:30,240
take very long, there are maintainers, I mean they've been around for ages now but there

45
00:04:30,240 --> 00:04:36,440
are maintainers who became maintainers in a couple of months because they just, they

46
00:04:36,440 --> 00:04:42,320
showed that hey, they know what they're doing, they were being helpful and doing the right

47
00:04:42,320 --> 00:04:49,040
things and then they said hey, you want to help and everybody said yes please, come on.

48
00:04:49,040 --> 00:04:58,680
So it's actually not, well, I don't know, I say it's not that hard but I only see the

49
00:04:58,680 --> 00:05:04,480
other side of it so I may not see all the people who struggled and never put it in.

50
00:05:04,480 --> 00:05:08,080
So getting your foot in the door is like showing up and communicating with people who are on

51
00:05:08,080 --> 00:05:12,280
the project, seeing where you can lend a hand, reviewing, documentation.

52
00:05:12,280 --> 00:05:20,240
Reviewing and you do want to send passions to. So you want, that's probably the first thing to do, even before you start reviewing because

53
00:05:20,240 --> 00:05:26,720
in order for people to know that your reviews are worthwhile, they need to kind of know

54
00:05:26,720 --> 00:05:35,880
that your code is played by the person. So find the, I mean, that's one of the advantages there and there are tons of different areas.

55
00:05:35,880 --> 00:05:44,000
Find the device or the architecture or whatever that you are interested in, sometimes it could

56
00:05:44,000 --> 00:05:51,000
be files, it could be encryption, it could be whatever, there's a lot of code and find

57
00:05:51,000 --> 00:05:56,680
something that you care about and that you think you know something about and that you

58
00:05:56,680 --> 00:06:03,520
can see something or prove and you find something you don't like, fix it, send a patch, communicate

59
00:06:03,520 --> 00:06:08,440
with the maintainer, the existing maintainer of that problem and that's how you kind of

60
00:06:08,440 --> 00:06:11,640
get the communication guide.

61
00:06:11,640 --> 00:06:14,640
Find something you've got a real itch for, right? Yeah, yeah, cool.

62
00:06:14,640 --> 00:06:20,480
And I mean, it doesn't have, I mean the kernel may be a high profile project and one of the

63
00:06:20,480 --> 00:06:25,560
biggest ones around there but let's be honest, there's thousands of open source projects

64
00:06:25,560 --> 00:06:31,560
and kernels are kind of, I think kernels are the most interesting ones but you don't

65
00:06:31,560 --> 00:06:34,560
have to do kernels. Yeah. Right.

66
00:06:34,560 --> 00:06:43,640
Realistically, we do have 35 years of code, so quite often if there's something new that

67
00:06:43,640 --> 00:06:50,360
meets new code, it's often like new hardware support, hmm, right, so that's, you mentioned

68
00:06:50,360 --> 00:06:56,120
people as a driver, a writer, you get to say AMD, yeah, so that's, that's quite often

69
00:06:56,120 --> 00:07:00,600
how people get into kernel maintenance because that's where they're, there's always, they

70
00:07:00,600 --> 00:07:06,120
cut their teeth and that kind of thing and they, they, they, they maybe, most kernel

71
00:07:06,120 --> 00:07:11,120
developers these days are actually paid by companies to be kernel developers.

72
00:07:11,120 --> 00:07:18,520
Interesting. But sometimes they became kernel developers first and then proved their skills and at

73
00:07:18,520 --> 00:07:21,880
that point companies came in and said, hey, we'll pay you to do that.

74
00:07:21,880 --> 00:07:25,640
But sometimes it goes the other way where, where they're literally paid by companies

75
00:07:25,640 --> 00:07:31,760
to do something and then they, they enjoy it and they become kernel developers and they're

76
00:07:31,760 --> 00:07:34,880
still paid by companies, they're, they're part of the community.

77
00:07:34,880 --> 00:07:39,480
Yeah. That's great. Well, thanks so much, it's really nice to meet you.

78
00:07:39,480 --> 00:07:47,520
Just gonna excuse myself for a minute, I gotta go shoot some stuff. If I catch you on the way out, I'd love to say bye but if not, if not, again, hey.

79
00:07:47,520 --> 00:07:51,280
This was so great. It seemed to work. Oh.

80
00:07:51,280 --> 00:07:54,280
Let's see how it works. Oh, in the end. I have no doubt.

81
00:07:54,280 --> 00:07:58,320
If you edit it to be something crap, I will hate you for it.

82
00:07:58,320 --> 00:08:02,000
Well you heard it here first. No pressure. No pressure.

83
00:08:02,000 --> 00:08:05,960
I don't want to monopolize your time but thank you for being like such a stalwart open source person.

84
00:08:05,960 --> 00:08:11,040
I built my career writing about 3D printers so open source communities are so important

85
00:08:11,040 --> 00:08:15,320
to me and you're such a symbol in that.

86
00:08:15,320 --> 00:08:24,000
I get way too much credit. I mean that's the thing, there's literally millions of us and I just get all the credit.

87
00:08:24,000 --> 00:08:27,000
Yeah. Thank you. Hello.

88
00:08:27,000 --> 00:08:31,000
Can you, can you pretend we're taking a picture here? Take a screenshot from him.

89
00:08:31,000 --> 00:08:34,000
I'm friendly, it's more than pretend. Alright.

90
00:08:34,000 --> 00:08:37,000
One, two, three, cheese. Cheese. Beautiful.

91
00:08:37,000 --> 00:08:40,000
There we go. Alright. How about that?

92
00:08:41,000 --> 00:08:42,000
Thank you.

93
00:08:44,000 --> 00:08:47,000
Oh my God, the line got bigger. Oh my goodness.

94
00:08:49,000 --> 00:08:53,000
Bye bye. Would you be opposed to one of these for the camera?

95
00:08:53,000 --> 00:08:56,000
Yeah. Like you did in the video? It's all good.

96
00:08:56,000 --> 00:08:59,000
It's all good. It's all good. Thank you.

97
00:08:59,000 --> 00:09:06,000
Oh, nice to meet you. I'm James. I'm not that important but I'll also take a screenshot.

98
00:09:07,000 --> 00:09:10,000
We'll do the most viewed internal videos. Yes, please.

99
00:09:10,000 --> 00:09:13,000
Alright. I'm sure that one does. We're good?

100
00:09:13,000 --> 00:09:17,000
That's Sony Alpha. It's going to take pictures too. We're going to take an actual picture, right?

101
00:09:17,000 --> 00:09:20,000
Got it. Thank you for giving me a hug.

102
00:09:20,000 --> 00:09:24,000
They don't trust your camera work. That's what I'd say about you.

103
00:09:24,000 --> 00:09:28,000
Can I ask you a question? Sure. What's your most embarrassing tech story?

104
00:09:28,000 --> 00:09:34,000
If you have one? I mean, I think the one, it's not embarrassing anymore because I've told it so many times

105
00:09:34,000 --> 00:09:38,000
but it's the one where do you, you know, you weren't here when they were filming it.

106
00:09:38,000 --> 00:09:47,000
No. It is the one where I deleted my OS install by auto-dialing my hard disk.

107
00:09:47,000 --> 00:09:58,000
That was embarrassing at the time. That was like a moment where I really said, okay, that's a lot of hours wasted because

108
00:09:58,000 --> 00:10:04,000
I had made it too easy to treat my hard disk as if it was a moda.

109
00:10:04,000 --> 00:10:12,000
But that's actually the point where I ended up using Linux full-time before I was dual-booting

110
00:10:12,000 --> 00:10:20,000
and I destroyed the right partitions so that the Linux partitions stayed around.

111
00:10:20,000 --> 00:10:24,000
But I've made a lot of stupid things.

112
00:10:24,000 --> 00:10:28,000
I try to forget the embarrassing part.

113
00:10:28,000 --> 00:10:31,000
Anyone? I'll get a screenshot picture.

114
00:10:31,000 --> 00:10:35,000
Yeah, I'll get a screenshot picture. It's really cool to meet you.

115
00:10:35,000 --> 00:10:38,000
All right. Now I'm taking an extra nice one.

116
00:10:38,000 --> 00:10:43,000
You're way too old. Yeah, I'm just a lot of hours wasted.

117
00:10:43,000 --> 00:10:47,000
I know. Are you even crouching everything? Yeah, you're doing a good job.

118
00:10:47,000 --> 00:10:50,000
You want to take your tube here? Why not? Sure.

119
00:10:53,000 --> 00:10:57,000
Wow. Eli's in the way. Sorry, I was grabbing something.

120
00:10:57,000 --> 00:11:00,000
Eli photo bomb. He wants me in every photo.

121
00:11:00,000 --> 00:11:03,000
I was cleaning up the set. I'm sorry, I just...

122
00:11:03,000 --> 00:11:06,000
I'm trying to do my job here, Sammy. I'm trying to do my job.

123
00:11:06,000 --> 00:11:09,000
Do you want a screenshot picture? Sure, we'll get a picture. That's all good.

124
00:11:09,000 --> 00:11:13,000
You were always on the other camera. I know I was.

125
00:11:13,000 --> 00:11:16,000
All right, perfect. There we go. Now we got one together though.

126
00:11:16,000 --> 00:11:19,000
So thank you so much. You find it weird when you ask for photos?

127
00:11:19,000 --> 00:11:23,000
Because I know when Linus got more popular, he found it weird.

128
00:11:23,000 --> 00:11:27,000
Yes and no. It is weird because it is weird.

129
00:11:27,000 --> 00:11:32,000
But I'm used to it. Because when I go to conferences, it happens all the time.

130
00:11:32,000 --> 00:11:35,000
It happens to the point where it's a problem.

131
00:11:35,000 --> 00:11:39,000
Now, when I give a talk, they literally...

132
00:11:39,000 --> 00:11:45,000
They take me off stage after the talk immediately and rush me out of the audience.

133
00:11:45,000 --> 00:11:49,000
Because what has happened a couple of times before they did that,

134
00:11:49,000 --> 00:11:54,000
is that you have literally hundreds of people who run up and try to get on an autograph

135
00:11:54,000 --> 00:12:01,000
and try to get a selfie. And it completely destroys the next talk when you had a big auditorium

136
00:12:01,000 --> 00:12:05,000
where a third of the people just walked away.

137
00:12:05,000 --> 00:12:10,000
So now when I go to conferences, it's kind of strange.

138
00:12:10,000 --> 00:12:13,000
I do a talk and then they rush me off stage

139
00:12:13,000 --> 00:12:17,000
and I try to avoid the whole craziness.

140
00:12:17,000 --> 00:12:20,000
You talk to Linus about it. I think Linus has the same problems.

141
00:12:20,000 --> 00:12:23,000
Yeah, sort of out of Linus.

142
00:12:23,000 --> 00:12:29,000
I understand. Yeah, no, it feels bad because it feels very impolite.

143
00:12:29,000 --> 00:12:37,000
But at the same time, it doesn't work if you just stay around and give autographs

144
00:12:37,000 --> 00:12:44,000
and have hundreds of people who want... I've been in that situation where you literally have a line of people taking photos.

145
00:12:44,000 --> 00:12:46,000
Can you download the formal sign?

146
00:12:50,000 --> 00:12:53,000
Many, many years ago, I forget.

147
00:12:53,000 --> 00:12:59,000
Somewhere in Japan, it probably was Tokyo just because it's mostly Tokyo.

148
00:12:59,000 --> 00:13:02,000
We did...

149
00:13:02,000 --> 00:13:08,000
Oh, it was actually when I wrote the book with David Diamond.

150
00:13:08,000 --> 00:13:11,000
We had a book tour afterwards.

151
00:13:11,000 --> 00:13:15,000
And then as part of the book tour, we would have book signings.

152
00:13:15,000 --> 00:13:22,000
And then people would A, bring the book, but they would also bring in things that I felt bad about signing.

153
00:13:22,000 --> 00:13:25,000
They had nice leather jackets.

154
00:13:25,000 --> 00:13:30,000
And my signature is not like a nice signature.

155
00:13:30,000 --> 00:13:35,000
So it was like, I'm defacing this thing.

156
00:13:35,000 --> 00:13:39,000
Yeah, exactly.

157
00:13:39,000 --> 00:13:43,000
And some things are really hard to sign. People bring in...

158
00:13:43,000 --> 00:13:47,000
Oh, well, it's not there anymore. The tux penguin.

159
00:13:47,000 --> 00:13:51,000
They exist as plush toys.

160
00:13:51,000 --> 00:13:54,000
And then they ask me to sign it, which kind of makes sense.

161
00:13:54,000 --> 00:14:00,000
They brought something that is Linux related, where a signature would make sense.

162
00:14:00,000 --> 00:14:04,000
It's completely impossible to sign on those things.

163
00:14:04,000 --> 00:14:07,000
You basically can't try it.

164
00:14:08,000 --> 00:14:13,000
No, but it's one of those things where you say,

165
00:14:13,000 --> 00:14:20,000
I understand what you want and it makes sense, but it doesn't work in this thing.

166
00:14:20,000 --> 00:14:24,000
You can try to hold it out so that it's stretched very tight,

167
00:14:24,000 --> 00:14:29,000
but even then the signature just ends up being even more scribble than it is.

168
00:14:29,000 --> 00:14:33,000
You can recognize a lot. I know shows and stuff.

169
00:14:33,000 --> 00:14:36,000
You're surrounded with people that will know you and what you do,

170
00:14:36,000 --> 00:14:39,000
because it's like-minded individuals, I guess.

171
00:14:39,000 --> 00:14:44,000
But on the street... It's almost the only time I get recognized at conferences.

172
00:14:44,000 --> 00:14:47,000
I don't have... I'm not like you or Linus.

173
00:14:47,000 --> 00:14:51,000
My face is in plastered on YouTube constantly.

174
00:14:51,000 --> 00:14:55,000
So... It happens today, you'll get stuff.

175
00:14:55,000 --> 00:14:59,000
It happens that I get recognized, but it's fairly rare.

176
00:14:59,000 --> 00:15:03,000
It does... I mean...

177
00:15:03,000 --> 00:15:07,000
Back when we used to have a fries,

178
00:15:07,000 --> 00:15:10,000
I don't know if fries was ever a thing in Canada.

179
00:15:10,000 --> 00:15:15,000
Oh, fries electronics? No, it was never. But I would actually get...

180
00:15:15,000 --> 00:15:18,000
I would go there and buy computer parts.

181
00:15:18,000 --> 00:15:24,000
And then because you are in an area with a much higher concentration of geeks than normal,

182
00:15:24,000 --> 00:15:27,000
then occasionally people would come up and say,

183
00:15:27,000 --> 00:15:33,000
I'm not that well known. And it happens occasionally, but no, I'm not that well known.

184
00:15:33,000 --> 00:15:38,000
I think a lot of people... More people know my name than really have a...

185
00:15:38,000 --> 00:15:43,000
And a lot of the pictures of me are old anyway, right?

186
00:15:43,000 --> 00:15:48,000
I think... I still see people, like...

187
00:15:48,000 --> 00:15:53,000
I mean... Talking about signing things, sometimes they bring, like,

188
00:15:53,000 --> 00:15:57,000
old pictures from my college days. And hey, I'm 55 years old.

189
00:15:57,000 --> 00:16:00,000
My college days were some time ago, right?

190
00:16:00,000 --> 00:16:04,000
I look different now, and I like shirtless and drinking a beer.

191
00:16:04,000 --> 00:16:07,000
And they ask me to sign that picture, right?

192
00:16:07,000 --> 00:16:11,000
So... Anyway...

193
00:16:11,000 --> 00:16:17,000
Do you have a favorite with the sort of project of your own? It could be two, but just out of interest?

194
00:16:17,000 --> 00:16:21,000
No, I... No, I...

195
00:16:21,000 --> 00:16:26,000
It's like... I have the toy project that I started.

196
00:16:26,000 --> 00:16:30,000
The subsurface, which is the dive log thing.

197
00:16:30,000 --> 00:16:34,000
And the other toy project that I started. Git, right? That I follow.

198
00:16:34,000 --> 00:16:39,000
Yeah. So I follow those just because of...

199
00:16:39,000 --> 00:16:42,000
I mean, but they're not there. You're invested.

200
00:16:42,000 --> 00:16:48,000
Yeah. Do you want your phone or do you want me to take the screen cap for you?

201
00:16:48,000 --> 00:16:52,000
I mean, I can get it on my... We'll get one of both. We'll get one on the phone.

202
00:16:52,000 --> 00:16:56,000
Thank you. My brother's going to be so jealous.

203
00:16:56,000 --> 00:17:00,000
Long times off for a developer. Yeah, that's right.

204
00:17:03,000 --> 00:17:06,000
I was looking... Where were we? Oh, no.

205
00:17:06,000 --> 00:17:10,000
Look at this camera. Don't look at me. Don't look at me.

206
00:17:11,000 --> 00:17:13,000
I think it was.

207
00:17:16,000 --> 00:17:20,000
Thank you so much. I think Pankrat's there, but I don't know where he went.

208
00:17:20,000 --> 00:17:24,000
Yeah, I don't know. Everyone's saying to my brother. I'm saying to my brother that I don't think I'll be...

209
00:17:24,000 --> 00:17:30,000
Maybe we're done. Yeah, two of the biggest guys I've wanted to meet you were out of office today.

210
00:17:30,000 --> 00:17:33,000
So, Luke is... That's too bad.

211
00:17:33,000 --> 00:17:40,000
Yeah. I might never meet a person who has had a bigger impact on the world.

212
00:17:40,000 --> 00:17:44,000
Yeah. We're really shocking as you go today.

213
00:17:44,000 --> 00:17:48,000
I mean, like, it's just... That's just embarrassing.

214
00:17:49,000 --> 00:17:54,000
Right. It's... Whether it was intentional or not is what ended up happening, right?

215
00:17:55,000 --> 00:17:57,000
Yeah, but as I...

216
00:17:58,000 --> 00:18:04,000
I get way too much credit. Like, I get credit for Git, and I did Git...

217
00:18:05,000 --> 00:18:07,000
I did Git for six months.

218
00:18:08,000 --> 00:18:10,000
But it was the right six months.

219
00:18:11,000 --> 00:18:15,000
It was... And the design I'm proud of, but at the same time, it's like...

220
00:18:16,000 --> 00:18:22,000
All of the infrastructure that made Git so useful to millions of people

221
00:18:22,000 --> 00:18:27,000
was built up by others. I think also you've imparted, like, a philosophy

222
00:18:27,000 --> 00:18:30,000
behind all of your work that's inspired so many people, right?

223
00:18:30,000 --> 00:18:33,000
And, like, that's why these projects continue to work.

224
00:18:33,000 --> 00:18:37,000
But, I mean, there's a lot of other open source people.

225
00:18:37,000 --> 00:18:42,000
Right. Right person, right time, right project.

226
00:18:42,000 --> 00:18:46,000
And I've been doing it for 35 years. So that's part of it, right?

227
00:18:46,000 --> 00:18:51,000
Yeah. But it's only become increasingly important as the world has continued to...

228
00:18:51,000 --> 00:18:54,000
Yeah. Yeah. Yeah.

229
00:18:54,000 --> 00:18:57,000
Well... What would that bring you? Would you like to ask one more?

230
00:18:57,000 --> 00:19:01,000
Sure. I'm curious. What I don't know about Linux Control Library,

231
00:19:01,000 --> 00:19:05,000
but I've noticed that you guys have a very strict philosophy

232
00:19:05,000 --> 00:19:08,000
about not breaking user space. Is that correct? That's correct for the kernel.

233
00:19:08,000 --> 00:19:12,000
I wish it was correct for most other open source projects

234
00:19:12,000 --> 00:19:16,000
because I think the kernel is almost unique in that respect.

235
00:19:16,000 --> 00:19:23,000
It's the one black and white rule that I impose

236
00:19:23,000 --> 00:19:29,000
on maintainers and developers is you don't break users

237
00:19:29,000 --> 00:19:38,000
because users are the reason for any software project.

238
00:19:38,000 --> 00:19:44,000
Yeah. There's a software project that says, hey, we're going to make a new and improved version,

239
00:19:44,000 --> 00:19:49,000
but in the process we will break all the old programs that relied on this,

240
00:19:49,000 --> 00:19:52,000
which a lot of libraries do, and I hate it.

241
00:19:52,000 --> 00:19:59,000
I don't understand. They're kind of missing the whole point of being a software project as far as I'm concerned.

242
00:19:59,000 --> 00:20:06,000
So when it comes to the kernel, the major rule is you do not break users.

243
00:20:06,000 --> 00:20:11,000
It doesn't mean that you can make changes that break some test program or something like that,

244
00:20:11,000 --> 00:20:15,000
but if it breaks the user experience, it's a bug.

245
00:20:15,000 --> 00:20:18,000
So where's the line for that? There is no.

246
00:20:18,000 --> 00:20:21,000
I mean, the line is somebody complains and says,

247
00:20:21,000 --> 00:20:28,000
hey, my program doesn't work anymore. It turns out people don't often realize that there's that line.

248
00:20:28,000 --> 00:20:34,000
So we had an issue where we knowingly said, hey,

249
00:20:34,000 --> 00:20:37,000
we'll skip this because nobody cares, right?

250
00:20:37,000 --> 00:20:41,000
And we simplified and cleaned up some code.

251
00:20:41,000 --> 00:20:47,000
It was, I think it was something pretty obscure,

252
00:20:47,000 --> 00:20:54,000
like our interface to the local descriptor tables for the 386 segmentation,

253
00:20:54,000 --> 00:20:59,000
which we supported for odd programs, but we thought nobody cared, right?

254
00:20:59,000 --> 00:21:02,000
And it broke wine, right?

255
00:21:02,000 --> 00:21:11,000
And the gaming people cared, but the gaming people were apparently far enough from the kernel community

256
00:21:11,000 --> 00:21:16,000
that they had all these strange workarounds in wine for something that we broke,

257
00:21:16,000 --> 00:21:19,000
and nobody ever even told me.

258
00:21:20,000 --> 00:21:25,000
And when people told me, it was like, of course we'll undo that.

259
00:21:25,000 --> 00:21:30,000
That was a bug. I mean, we broke your system.

260
00:21:30,000 --> 00:21:35,000
And it was like, it was no work at all.

261
00:21:35,000 --> 00:21:38,000
And I forget how long it had been going on,

262
00:21:38,000 --> 00:21:45,000
but I think it had been going on for a year before people just told me that, hey, this broke.

263
00:21:45,000 --> 00:21:49,000
And I was like, yeah, you could just have told me immediately.

264
00:21:49,000 --> 00:21:53,000
And not gone through all this pain, right?

265
00:21:53,000 --> 00:21:58,000
So sometimes it's, people get too used to other projects

266
00:21:58,000 --> 00:22:04,000
breaking their users. And the kernel, we really have this hard rule that we don't.

267
00:22:04,000 --> 00:22:10,000
I mean, it is a hard rule at the same time we have had situations where

268
00:22:11,000 --> 00:22:14,000
there was something that was a huge security issue

269
00:22:14,000 --> 00:22:17,000
and we just had to fix it, right?

270
00:22:17,000 --> 00:22:22,000
And somebody relied on this huge honking hole that was just,

271
00:22:22,000 --> 00:22:25,000
we couldn't have that hole.

272
00:22:25,000 --> 00:22:28,000
So it's happened a handful of times.

273
00:22:28,000 --> 00:22:33,000
The thing that happens more commonly is that something breaks

274
00:22:33,000 --> 00:22:39,000
and people who it broke for stay on some old kernel

275
00:22:39,000 --> 00:22:44,000
for years and don't realize that the new kernel broke it

276
00:22:44,000 --> 00:22:49,000
and we don't realize because there's no communication.

277
00:22:49,000 --> 00:22:53,000
And in the meantime, people start relying on the new behavior.

278
00:22:53,000 --> 00:22:57,000
And then two or three years later, they come back and say,

279
00:22:57,000 --> 00:23:04,000
hey, now our stuff doesn't work. And I'm like, I can't undo it anymore

280
00:23:04,000 --> 00:23:08,000
because there are now more people who rely on the fix

281
00:23:08,000 --> 00:23:15,000
that we did, right? And if, I mean, it's rare, but that kind of thing happens

282
00:23:15,000 --> 00:23:21,000
and that we, yeah, no. But I am happy to say it is really very rare

283
00:23:21,000 --> 00:23:25,000
because people know that this is the rule and people are careful about making changes

284
00:23:25,000 --> 00:23:28,000
that they think might break something.

285
00:23:28,000 --> 00:23:31,000
It's funny. You mentioned libraries. You caught exactly what I was going for.

286
00:23:31,000 --> 00:23:34,000
And I'm very interested in what seems to be happening

287
00:23:34,000 --> 00:23:38,000
as Linux is going more towards a consumer basis

288
00:23:38,000 --> 00:23:43,000
with companies like Valve using it and where developers, at least in the gaming space,

289
00:23:43,000 --> 00:23:48,000
seem to be relying a lot more on not really emulation

290
00:23:48,000 --> 00:23:51,000
but on translation layers instead of just using the libraries

291
00:23:51,000 --> 00:23:55,000
that exist for Linux. And I think it's interesting that nothing's popped up

292
00:23:55,000 --> 00:23:59,000
that's more stable when there's that background philosophy. I mean, there you have a separate issue

293
00:23:59,000 --> 00:24:03,000
that they're basically emulating Windows programs.

294
00:24:03,000 --> 00:24:07,000
And Windows has largely always had the we don't break user space.

295
00:24:07,000 --> 00:24:12,000
I think it was one of the reasons why they were so successful

296
00:24:12,000 --> 00:24:16,000
in the 19-Compatibility layers.

297
00:24:16,000 --> 00:24:20,000
I mean, it was ugly and it caused a lot of problems

298
00:24:20,000 --> 00:24:26,000
for Microsoft, obviously. But when all your programs, our commercial programs,

299
00:24:26,000 --> 00:24:30,000
you cannot break them, right?

300
00:24:31,000 --> 00:24:35,000
And in the open source community, it's much easier

301
00:24:35,000 --> 00:24:38,000
because people will say, hey, just recompile,

302
00:24:38,000 --> 00:24:41,000
which I think is a completely bogus argument

303
00:24:41,000 --> 00:24:45,000
because normal users do not recompile, right?

304
00:24:45,000 --> 00:24:50,000
But there is this kind of history in certain circles,

305
00:24:50,000 --> 00:24:54,000
certainly of saying that recompiling is okay.

306
00:24:54,000 --> 00:24:59,000
So when you have the gaming community and you have emulation,

307
00:25:00,000 --> 00:25:03,000
the libraries they are emulating are stable

308
00:25:03,000 --> 00:25:06,000
because of where they came from, right?

309
00:25:06,000 --> 00:25:09,000
And then we just have to make sure

310
00:25:09,000 --> 00:25:14,000
that the target is stable enough that we don't break their emulation, right?

311
00:25:17,000 --> 00:25:20,000
Anyway, I think it's one last person.

312
00:25:20,000 --> 00:25:24,000
Thank you so much. Hello, nice to meet you.

313
00:25:24,000 --> 00:25:27,000
We ran here through the rain. Yeah, I did. Perfect.

314
00:25:27,000 --> 00:25:30,000
Thank you. Wow, what a great video.

315
00:25:30,000 --> 00:25:33,000
Make sure to leave a like so I know you guys enjoy this video and see you later.
