YouTube2Text

Terry Davis' TempleOS Brutal Take Down of Linus Torvalds — Transcript

by Terry Davis Old Archive · 3,338 words · 454 segments · language en · Watch on YouTube

Full transcript

  1. 0:00okay so I'm going to talk about right -
  2. 0:06discussing spin locks
  3. 0:08spin locks anyway so I'm just going to
  4. 0:12give a little lecture here so Linux
  5. 0:20Linux wants to be a 1970s mainframe so
  6. 0:29being frame had limited resources let's
  7. 0:32say about two Meg of RAM and they had to
  8. 0:36operate with a hundred users and if it
  9. 0:40crashed
  10. 0:40that was terrible you would never want
  11. 0:42to crash my my operating system wants to
  12. 0:47be a Commodore 64 and then a Commodore
  13. 1:0264 user in the users manual that tells
  14. 1:06how to make binary numbers to make a
  15. 1:09sprite graphic so the users the purpose
  16. 1:13was to make sprite graphics with binary
  17. 1:15data that's what you did with a
  18. 1:18Commodore 64 little basic programs and
  19. 1:21stuff so those are that's now I like to
  20. 1:29say Linux Linux is the semi Windows is a
  21. 1:35car temple OS is a motorcycle the reason
  22. 1:45I call Linux Linux a semi a semi had has
  23. 1:4920 gears and that's never going to be a
  24. 1:54passenger car file permissions that does
  25. 1:59not belong in a consumer product file
  26. 2:04probably it's a big hassle so that the
  27. 2:08Linux people are all deluded anyway
  28. 2:12so you don't have side airbags no side
  29. 2:18airbags you know what's pretty crazy if
  30. 2:23you lean over on a motorcycle it crashes
  31. 2:27isn't that crazy
  32. 2:29don't do that I can crash my operating
  33. 2:33system pretty easily but that's not
  34. 2:37that's not very interesting anyway uh so
  35. 2:44let me just tell you something uh if I
  36. 2:49had to summarize how people think well
  37. 2:54first of all everybody is fighting the
  38. 2:57last war everybody is looking at 1970s
  39. 3:00mainframes and if you if anybody was
  40. 3:07discussing my operating system you can
  41. 3:10bet they would be reinventing a 1970s
  42. 3:13mainframe first of all the mainframe had
  43. 3:16to Meg for a hundred users it goes
  44. 3:23without saying you have to use virtual
  45. 3:25memory that's where you use the disk not
  46. 3:29on today's computers you have a gig
  47. 3:34every anyway so you don't have if you
  48. 3:39ever do cause it to start swapping to
  49. 3:45disk it's way too slow to be acceptable
  50. 3:49if anybody today started swapping to
  51. 3:53disk they would say oh this is
  52. 3:54unacceptable we need to change something
  53. 3:57so virtual memory that doesn't belong on
  54. 4:01a modern computer I'm interested in
  55. 4:06having pretty code anyway uh so I'm not
  56. 4:12talking about paging I'm talking about
  57. 4:13virtual memory virtual memory is where
  58. 4:15you swap to disk anyway of but there's
  59. 4:18other things if you have two Meg for a
  60. 4:22hundred users
  61. 4:24when you're compiling you better not use
  62. 4:28up very much memory because that's rude
  63. 4:33but on my operating system I I load
  64. 4:40whole files this is a totally different
  65. 4:44way of thinking on Linux you use a pipe
  66. 4:47you load a little chunk then you process
  67. 4:49it then you load a little chunk and you
  68. 4:52process it on my operating system I have
  69. 4:55loaded whole files so uh what am I
  70. 5:00trying to achieve my highest ideal is a
  71. 5:05minimum lines of code lines of code so
  72. 5:10if you have to make a choice pick the
  73. 5:12one that uses less code because we want
  74. 5:16our our vision is account or 64 and on a
  75. 5:20Commodore 64 it was user this is up on a
  76. 5:24patent this willing to make a trademark
  77. 5:26user developer okay user developer the
  78. 5:33Commodore 64 was a user developer
  79. 5:35machine okay so uh as a matter of fact I
  80. 5:40am really close to banning third-party
  81. 5:45developers my if I have to make a choice
  82. 5:51I picked the user developer over the
  83. 5:54third-party developer so I set a goal I
  84. 5:58set a limit of a hundred thousand lines
  85. 6:00of code and no third-party libraries
  86. 6:06okay my vision is a Commodore 64 and
  87. 6:12that had a ROM 20k ROM and everybody
  88. 6:18brought with them everything they needed
  89. 6:23so here's here's what I want to say all
  90. 6:28all computer people today have been Jedi
  91. 6:32Mind tricked they obsess on if there's
  92. 6:38one thing they all want to show you that
  93. 6:40they know is scaling scaling everybody
  94. 6:45is obsessed with scaling guess what
  95. 6:48scaling works both ways you can get
  96. 6:53bigger what happens if you look the
  97. 6:56other direction and you're scaled down
  98. 6:59everybody knows it doesn't get bad it
  99. 7:07gets worse when you scale up it doesn't
  100. 7:12get bad it gets worse in other words
  101. 7:16it's not linear guess what it doesn't
  102. 7:21just get better it gets well I don't
  103. 7:24have a word it gets better when you
  104. 7:27scale down so guess what a linker if I
  105. 7:33don't have a linker on my system I just
  106. 7:37you know how when you do CC I don't know
  107. 7:40test dot C and it makes an a dot out
  108. 7:45that's kind of how we operate we hit f5
  109. 7:49and we don't have a linker we don't have
  110. 7:52a make utility do you want to know it's
  111. 7:55funny
  112. 7:55once you want to see how I do a project
  113. 7:58I make a file with this is including
  114. 8:03code this is not headers this is
  115. 8:06hilarious anybody do you think that's
  116. 8:08funny you want to see me do a make off
  117. 8:11okay I want to do a make all I hit my I
  118. 8:13have one key that's make all I just made
  119. 8:17a 50,000 lines of code and that's I just
  120. 8:26compiled from scratch fifty thousand
  121. 8:29lines of code my kernel is twenty
  122. 8:32thousand my compiler is twenty thousand
  123. 8:35so fifty thousand anyway so that's all
  124. 8:39the code there is everything else is
  125. 8:41just in time and you saw how fast that
  126. 8:43was a second to do that the atom
  127. 8:46directory gets compiled during boot this
  128. 8:48is Adam as in Adam and Eve
  129. 8:51anyway so everybody else has been Jedi
  130. 8:55mind-trick
  131. 8:56this is funny when I tell people that I
  132. 9:01said a 2gig limit for codes okay there's
  133. 9:07a call instruction called relative 32
  134. 9:10and my operating system is 64-bit but I
  135. 9:16purposely use only call relative 32 and
  136. 9:20I put all code in the lowest two gig
  137. 9:24this instructions there's not there's
  138. 9:27not a 64-bit call instruction what you
  139. 9:30have to do is you have to move it into
  140. 9:33RA x1 do 3 4 you have to move it into RA
  141. 9:39X and then do a call ra X and look at
  142. 9:45this this takes up I don't know 10 bytes
  143. 9:47this instruction is 10 bytes and this
  144. 9:50instruction is whatever 3 bytes
  145. 9:53something like that 3/4 anyway my call
  146. 9:56relative is 5 so I'm looking at a lot
  147. 10:00fewer bytes anyway and it's faster so
  148. 10:06when I tell people I'm making a 2 gig
  149. 10:09limit do you know what they're thinking
  150. 10:10in their minds they have been Jedi mind
  151. 10:14trick bahahaha
  152. 10:17Bill Gates is so stupid
  153. 10:21he said 640k would be enough he is just
  154. 10:26stupid bah ha ha ha
  155. 10:29so when I say 2 gig they say we're not
  156. 10:33that stupid
  157. 10:34we know it's never enough ok well these
  158. 10:41are obviously not the sharpest sharpest
  159. 10:43knife in the drawer
  160. 10:44ok people what is what is enough you
  161. 10:48know what I'm saying like that's the
  162. 10:52difference in sheep and Shepherds Linux
  163. 10:57is a UNIX it's not really original
  164. 11:03so yeah there I kind of laugh at people
  165. 11:07who it's imagined in 1900 imagine a
  166. 11:13hotshot engineer at I don't know a
  167. 11:16Westinghouse or something
  168. 11:18hotshot electrical engineer and imagine
  169. 11:21him making fun of Tesla I'm just saying
  170. 11:24some some hotshot hotshot engineer I'm
  171. 11:29better than Tesla I know math and him
  172. 11:37being really arrogant and then you're
  173. 11:39saying dude you are no Tesla anyway so
  174. 11:47there's a lot of people who are really
  175. 11:49arrogant and you know physicists where
  176. 11:52there are 2,000 physicists at CERN or
  177. 11:55not CERN I don't know just 2,000
  178. 11:57physicists not one of them is famous
  179. 12:00because they haven't done anything
  180. 12:01original yet a lot of them are walking
  181. 12:04around as though they're in the same
  182. 12:06league as Tesla now there's a difference
  183. 12:09when it's not when you're following a
  184. 12:11trail you're not a trailblazer so you
  185. 12:17know it's funny um let's just say let's
  186. 12:22say import well let's say let's say
  187. 12:30we're reading a status let's do a little
  188. 12:34analysis let's say you're doing a hard
  189. 12:40bird driver and you're waiting on a disk
  190. 12:44to be ready okay so you do an import on
  191. 12:50a status I oh and if it's not ready
  192. 12:57if status and busy so we read a port and
  193. 13:05if it's busy we yield
  194. 13:10let's do a little analysis of this okay
  195. 13:14first of all import just a rule of thumb
  196. 13:19ISM is an in or out instruction is one
  197. 13:22microsecond in or out is one microsecond
  198. 13:28yield that's where you save all your
  199. 13:32context and load all your context okay
  200. 13:39Linux has a large overhead for context
  201. 13:48they have to save the cr3 they have to
  202. 13:53change their entire memory map every
  203. 13:56time they change tasks I don't change my
  204. 13:59memory map and I don't I don't change
  205. 14:02privilege levels anytime you change
  206. 14:05privilege levels it has to load and save
  207. 14:07stuff and check stuff um this is going
  208. 14:11to blow people's minds I can do you want
  209. 14:18to know how many save restores I can do
  210. 14:20I can do four million savory stores per
  211. 14:24second this is hilarious I can save
  212. 14:30tasks and switch tasks faster than I can
  213. 14:33read a port okay reading the port is a
  214. 14:38million I can I can do four point five
  215. 14:42if you want to see me do it watch this
  216. 14:44okay so here's my context swaps we're
  217. 14:49doing 10,000 that's because I'm writing
  218. 14:51I'm making a video as we speak so let's
  219. 14:55go ahead and say wild true yield
  220. 15:02I don't need parentheses okay watch this
  221. 15:05okay we're doing well we're not hitting
  222. 15:11four or five but we're not doing too bad
  223. 15:14okay so let's do some analysis I can
  224. 15:20believe it or not I can get I can
  225. 15:23a lot of let's do it let's talk about
  226. 15:25SMP okay well first of all so my vision
  227. 15:31is a motorcycle so what do I mean by
  228. 15:35that a lot everybody who is a Linux
  229. 15:40person would move heaven and earth just
  230. 15:43so that you can play two video games at
  231. 15:46once they they they're full of pride
  232. 15:50it's like Russians okay NASA spent
  233. 15:55millions to make a Space Pen Russia used
  234. 15:58a pencil that's kind of the foolishness
  235. 16:01that's not that's a fable it's not a
  236. 16:03true fable and it's not necessarily
  237. 16:07something to be proud of I called my
  238. 16:09company trivial solutions
  239. 16:11well pencil would be a trivial solution
  240. 16:13I don't use privilege levels and anyway
  241. 16:19so uh so on mice this is all the tasks
  242. 16:24these these are all the tasks there's
  243. 16:26one let's call it sir there's one master
  244. 16:30tasks for you I don't know what it's
  245. 16:32called a set task Adam is the first task
  246. 16:35his children are set for the different
  247. 16:38course anyway uh so the set tasks in the
  248. 16:43Adam task so anyway I have eight cores
  249. 16:47and they're all they have one
  250. 16:49I guess called an executive task um so
  251. 16:53uh on my core zero my core zero I have I
  252. 17:02have a window manager which is in charge
  253. 17:05of painting the window this is my frame
  254. 17:09grabber and this is the TAT this is the
  255. 17:11current task that were the task ID
  256. 17:15that's the address of the task record
  257. 17:20anyway and then I have my Adam task so
  258. 17:24on a typical let's say you run a game
  259. 17:28that's that's what this is for running
  260. 17:31games like a Commodore 64 what are you
  261. 17:34going to do maybe you make
  262. 17:37animation tasks so basically you're
  263. 17:41going to run one application at a time
  264. 17:43and it might be multi-threaded on this
  265. 17:47operating system everything uses the
  266. 17:50same memory map so there's not a
  267. 17:53distinction between process and thread
  268. 17:55there's not in tasks there's just
  269. 17:59there's no distinction you know in
  270. 18:01fairness of okay so when I'm waiting for
  271. 18:06my disk I do well import yield okay and
  272. 18:17what it let's analyze this this is I
  273. 18:20don't know I don't care you know
  274. 18:22somebody's going to call it blocking its
  275. 18:24these little brainwashed book people who
  276. 18:27couldn't its Tesla being mocked by you
  277. 18:31know somebody you think it reads a book
  278. 18:33you know say if you got it out of a book
  279. 18:36yeah whatever
  280. 18:37so I adapt to a new reality they're all
  281. 18:42fighting the last war they're making
  282. 18:441970s mainframes I don't know why and
  283. 18:47they're mocking me so I can I can save
  284. 18:52tasks Oh what let's analyze this if we
  285. 18:55have five tasks and I do a round robin I
  286. 18:59don't do priorities is it because I
  287. 19:05can't do priorities no it's because an
  288. 19:09idiot admires complexity a genius admire
  289. 19:13simplicity a physicist tries to make it
  290. 19:16simple anyway an idiot anything the more
  291. 19:21complicated is the more he will admire
  292. 19:23it if you make something so cluster
  293. 19:26[ __ ] he can't understand it he's going
  294. 19:29to think you're a god because you made
  295. 19:30it so complicated nobody can understand
  296. 19:33it that's all the right journals and
  297. 19:36academic journal
  298. 19:38they they try to make it so complicated
  299. 19:40people think you're a genius
  300. 19:43okay anyway so if I have five tasks
  301. 19:48let's say two of them wanna listen
  302. 19:50long story short when you're waiting for
  303. 19:53a key it it's it doesn't get swapped in
  304. 19:57until I forgot all that works anyway
  305. 20:04yeah keys and there's if you're waiting
  306. 20:06for a message it it's permanently
  307. 20:09swapped out if you're waiting for a time
  308. 20:12a jiffy
  309. 20:13it's permanently swapped out when it
  310. 20:18goes around the circle scheduling
  311. 20:23sometimes it will never load it until
  312. 20:26it's ready on other things that will
  313. 20:29load it in check and then the task will
  314. 20:31swap out again if you have two tasks
  315. 20:34reading from the disk both of them are
  316. 20:36operating this code now let's analyze
  317. 20:39that if one is ready then it gets
  318. 20:43swapped in then and when it has to wait
  319. 20:47to come back around the circle of tasks
  320. 20:50it's a let's say you have five tasks
  321. 20:53you're going to take five times a
  322. 20:56quarter of a microsecond so it's going
  323. 21:00to take you a microsecond it's not it's
  324. 21:03not just in other words if you swap out
  325. 21:06it's not if you have five tasks if
  326. 21:11divide this by 5 so what if you have a
  327. 21:16hundred tasks now it's beginning to be a
  328. 21:19serious problem but that's not my
  329. 21:22concern I'm making a Commodore 64
  330. 21:25I don't do sharing so if your task is
  331. 21:29doing 20 mega
  332. 21:31disk read then you've got you lock it
  333. 21:35out from anybody else
  334. 21:37my vision is a single video game running
  335. 21:40with multiple threads and I don't I'm
  336. 21:46not trying to run two video games at
  337. 21:48once you know that's that's
  338. 21:53anyway so another thing is SMP this is
  339. 21:57kind of hilarious this is going to shock
  340. 21:59you I think just to make people shocked
  341. 22:02you know Linus the other day mentioned
  342. 22:04that multi-core was overrated well this
  343. 22:12is I'm not going to show you long story
  344. 22:16short I my plan is master slave so what
  345. 22:22that means is of all all applications
  346. 22:25run on core zero and when they want
  347. 22:29multi-core they make a slave task on
  348. 22:33another court directly so for example I
  349. 22:39have eight cores this flight simulator
  350. 22:43is running on eight cores Linus said the
  351. 22:47only thing that parallel is good for his
  352. 22:49graphics well he's using a GPU so he's
  353. 22:53only using one core on the CPU I I do my
  354. 22:57graphics with the CPU so I can actually
  355. 23:00use some now if I had if I have seven
  356. 23:04tasks doing graphics what if one of them
  357. 23:09what if the scheduler puts two of them
  358. 23:11on one core that's just not going to
  359. 23:15work because we need updates if if the
  360. 23:19scheduler decided to put two on one core
  361. 23:22you just it's you just blew your so
  362. 23:25instead of 60 frames per second right I
  363. 23:27do 30 instead of 30 frames per second
  364. 23:30you're doing 15 frames a second just
  365. 23:32because the scheduler put two on one
  366. 23:34core that is just not acceptable so if
  367. 23:38you want to do multi-core Temple OS is
  368. 23:41the only one that can use multi-core
  369. 23:43effectively Linux will run Linux will
  370. 23:48proudly run two applications faster
  371. 23:55they're very proud that can run two
  372. 23:58applications faster tempo OS can run one
  373. 24:04application fast
  374. 24:08temple OS can only run one application
  375. 24:11factor Linux can run two applications
  376. 24:15faster their genius is okay anyway so
  377. 24:19how about that so everything gets
  378. 24:23smaller when it gets better it doesn't
  379. 24:26just get bad when you scale up it gets
  380. 24:28worse doesn't just get better when you
  381. 24:31scale down namespaces if you have we can
  382. 24:35look at my namespace these are all the
  383. 24:40symbols in the symbol tables it's
  384. 24:43getting up there what are we at we're at
  385. 24:46I'm trying to I why doesn't show me line
  386. 24:49to code oh well Oh what is the line
  387. 24:54number I forgot I'm in the editor am I
  388. 24:57not I'm spacing out I could swear I have
  389. 25:04a line a line counter lies on the lines
  390. 25:07anyway so this is all my symbols if you
  391. 25:13if you keep it small you only need one
  392. 25:16namespace if you keep it small okay this
  393. 25:20is me I know somebody's going to
  394. 25:21contradict me okay so when it gets big
  395. 25:26you have to adapt and change your way of
  396. 25:29programming to use namespaces long
  397. 25:33variable names see unfortunately you
  398. 25:36can't get people to go the other
  399. 25:38direction if you have a my operating
  400. 25:41system is a hundred thousand lines of
  401. 25:43code Linus is very proud that his is 50
  402. 25:47million anyway I don't know 40 million
  403. 25:5120 million he's trying to make it bigger
  404. 25:54to intimidate people or something anyway
  405. 25:59so if you make it small you can use the
  406. 26:03variables okay there are arrogant people
  407. 26:07who let's say you're you're making a
  408. 26:14game for
  409. 26:16kids you're a kid you're making a game
  410. 26:19it's it's a couple-hundred it's honor
  411. 26:21what are we we're at 188 lines of code
  412. 26:24that was that's what wasn't showing them
  413. 26:28okay 180 lines of code now our global
  414. 26:32variables the right or the wrong answer
  415. 26:35for this situation there are a lot of
  416. 26:38people who will say oh you shouldn't use
  417. 26:42global variables you're not going to be
  418. 26:45a good programmer if you learn that way
  419. 26:48yeah we all started with calendar 64th
  420. 26:51nobody nobody knows where a pointer is
  421. 26:53nobody knows what assembly code is
  422. 26:56they've all been so confused by the
  423. 26:58Liberals trying to make it easy for them
  424. 27:01I don't understand how you can make
  425. 27:03malloc and free simpler if you they're
  426. 27:07making it so that nobody has any clue
  427. 27:10what really goes on you know it's a
  428. 27:13liberal with their bleeding heart trying
  429. 27:15to be nice to the poor people they're
  430. 27:17making it worse just man up and learn
  431. 27:22what malloc and free are I like Linus
  432. 27:26because he likes C and doesn't like C++
  433. 27:29I like C++ but I'm impressed by I like
  434. 27:34industry not academia anyway in industry
  435. 27:40in academia if it's good you publish in
  436. 27:45industry if it's good you keep it a
  437. 27:47secret
  438. 27:47it's anyway so I don't actually like
  439. 27:52that attitude anyway um so global
  440. 27:57variables are the right answer now the
  441. 28:00second question is long variable names
  442. 28:05if you scale down the right answer is
  443. 28:09short variable names and function names
  444. 28:13so I've been um f1 is my help I want
  445. 28:21this so that everybody can get their
  446. 28:22head around it like a Commodore 64 so um
  447. 28:28I'm trying to make short names are
  448. 28:31delightful you know that there there's
  449. 28:34just something very nice about short
  450. 28:36variable names I did 64-bit date times
  451. 28:39now isn't that cool let's just look at
  452. 28:43some of my other short names anyway oh
  453. 28:47whoa
  454. 28:48so that's that

About this transcript

This page contains the full transcript of Terry Davis' TempleOS Brutal Take Down of Linus Torvalds by Terry Davis Old Archive, generated from the public captions YouTube serves with the video. The transcript has 3,338 words across 454 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.

What you can do with it

Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to translate the transcript into 100+ languages.

Free YouTube transcript tool

YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, translation to 100+ languages, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.