Terry Davis' TempleOS Brutal Take Down of Linus Torvalds — Transcript
Full transcript
- 0:00okay so I'm going to talk about right -
- 0:06discussing spin locks
- 0:08spin locks anyway so I'm just going to
- 0:12give a little lecture here so Linux
- 0:20Linux wants to be a 1970s mainframe so
- 0:29being frame had limited resources let's
- 0:32say about two Meg of RAM and they had to
- 0:36operate with a hundred users and if it
- 0:40crashed
- 0:40that was terrible you would never want
- 0:42to crash my my operating system wants to
- 0:47be a Commodore 64 and then a Commodore
- 1:0264 user in the users manual that tells
- 1:06how to make binary numbers to make a
- 1:09sprite graphic so the users the purpose
- 1:13was to make sprite graphics with binary
- 1:15data that's what you did with a
- 1:18Commodore 64 little basic programs and
- 1:21stuff so those are that's now I like to
- 1:29say Linux Linux is the semi Windows is a
- 1:35car temple OS is a motorcycle the reason
- 1:45I call Linux Linux a semi a semi had has
- 1:4920 gears and that's never going to be a
- 1:54passenger car file permissions that does
- 1:59not belong in a consumer product file
- 2:04probably it's a big hassle so that the
- 2:08Linux people are all deluded anyway
- 2:12so you don't have side airbags no side
- 2:18airbags you know what's pretty crazy if
- 2:23you lean over on a motorcycle it crashes
- 2:27isn't that crazy
- 2:29don't do that I can crash my operating
- 2:33system pretty easily but that's not
- 2:37that's not very interesting anyway uh so
- 2:44let me just tell you something uh if I
- 2:49had to summarize how people think well
- 2:54first of all everybody is fighting the
- 2:57last war everybody is looking at 1970s
- 3:00mainframes and if you if anybody was
- 3:07discussing my operating system you can
- 3:10bet they would be reinventing a 1970s
- 3:13mainframe first of all the mainframe had
- 3:16to Meg for a hundred users it goes
- 3:23without saying you have to use virtual
- 3:25memory that's where you use the disk not
- 3:29on today's computers you have a gig
- 3:34every anyway so you don't have if you
- 3:39ever do cause it to start swapping to
- 3:45disk it's way too slow to be acceptable
- 3:49if anybody today started swapping to
- 3:53disk they would say oh this is
- 3:54unacceptable we need to change something
- 3:57so virtual memory that doesn't belong on
- 4:01a modern computer I'm interested in
- 4:06having pretty code anyway uh so I'm not
- 4:12talking about paging I'm talking about
- 4:13virtual memory virtual memory is where
- 4:15you swap to disk anyway of but there's
- 4:18other things if you have two Meg for a
- 4:22hundred users
- 4:24when you're compiling you better not use
- 4:28up very much memory because that's rude
- 4:33but on my operating system I I load
- 4:40whole files this is a totally different
- 4:44way of thinking on Linux you use a pipe
- 4:47you load a little chunk then you process
- 4:49it then you load a little chunk and you
- 4:52process it on my operating system I have
- 4:55loaded whole files so uh what am I
- 5:00trying to achieve my highest ideal is a
- 5:05minimum lines of code lines of code so
- 5:10if you have to make a choice pick the
- 5:12one that uses less code because we want
- 5:16our our vision is account or 64 and on a
- 5:20Commodore 64 it was user this is up on a
- 5:24patent this willing to make a trademark
- 5:26user developer okay user developer the
- 5:33Commodore 64 was a user developer
- 5:35machine okay so uh as a matter of fact I
- 5:40am really close to banning third-party
- 5:45developers my if I have to make a choice
- 5:51I picked the user developer over the
- 5:54third-party developer so I set a goal I
- 5:58set a limit of a hundred thousand lines
- 6:00of code and no third-party libraries
- 6:06okay my vision is a Commodore 64 and
- 6:12that had a ROM 20k ROM and everybody
- 6:18brought with them everything they needed
- 6:23so here's here's what I want to say all
- 6:28all computer people today have been Jedi
- 6:32Mind tricked they obsess on if there's
- 6:38one thing they all want to show you that
- 6:40they know is scaling scaling everybody
- 6:45is obsessed with scaling guess what
- 6:48scaling works both ways you can get
- 6:53bigger what happens if you look the
- 6:56other direction and you're scaled down
- 6:59everybody knows it doesn't get bad it
- 7:07gets worse when you scale up it doesn't
- 7:12get bad it gets worse in other words
- 7:16it's not linear guess what it doesn't
- 7:21just get better it gets well I don't
- 7:24have a word it gets better when you
- 7:27scale down so guess what a linker if I
- 7:33don't have a linker on my system I just
- 7:37you know how when you do CC I don't know
- 7:40test dot C and it makes an a dot out
- 7:45that's kind of how we operate we hit f5
- 7:49and we don't have a linker we don't have
- 7:52a make utility do you want to know it's
- 7:55funny
- 7:55once you want to see how I do a project
- 7:58I make a file with this is including
- 8:03code this is not headers this is
- 8:06hilarious anybody do you think that's
- 8:08funny you want to see me do a make off
- 8:11okay I want to do a make all I hit my I
- 8:13have one key that's make all I just made
- 8:17a 50,000 lines of code and that's I just
- 8:26compiled from scratch fifty thousand
- 8:29lines of code my kernel is twenty
- 8:32thousand my compiler is twenty thousand
- 8:35so fifty thousand anyway so that's all
- 8:39the code there is everything else is
- 8:41just in time and you saw how fast that
- 8:43was a second to do that the atom
- 8:46directory gets compiled during boot this
- 8:48is Adam as in Adam and Eve
- 8:51anyway so everybody else has been Jedi
- 8:55mind-trick
- 8:56this is funny when I tell people that I
- 9:01said a 2gig limit for codes okay there's
- 9:07a call instruction called relative 32
- 9:10and my operating system is 64-bit but I
- 9:16purposely use only call relative 32 and
- 9:20I put all code in the lowest two gig
- 9:24this instructions there's not there's
- 9:27not a 64-bit call instruction what you
- 9:30have to do is you have to move it into
- 9:33RA x1 do 3 4 you have to move it into RA
- 9:39X and then do a call ra X and look at
- 9:45this this takes up I don't know 10 bytes
- 9:47this instruction is 10 bytes and this
- 9:50instruction is whatever 3 bytes
- 9:53something like that 3/4 anyway my call
- 9:56relative is 5 so I'm looking at a lot
- 10:00fewer bytes anyway and it's faster so
- 10:06when I tell people I'm making a 2 gig
- 10:09limit do you know what they're thinking
- 10:10in their minds they have been Jedi mind
- 10:14trick bahahaha
- 10:17Bill Gates is so stupid
- 10:21he said 640k would be enough he is just
- 10:26stupid bah ha ha ha
- 10:29so when I say 2 gig they say we're not
- 10:33that stupid
- 10:34we know it's never enough ok well these
- 10:41are obviously not the sharpest sharpest
- 10:43knife in the drawer
- 10:44ok people what is what is enough you
- 10:48know what I'm saying like that's the
- 10:52difference in sheep and Shepherds Linux
- 10:57is a UNIX it's not really original
- 11:03so yeah there I kind of laugh at people
- 11:07who it's imagined in 1900 imagine a
- 11:13hotshot engineer at I don't know a
- 11:16Westinghouse or something
- 11:18hotshot electrical engineer and imagine
- 11:21him making fun of Tesla I'm just saying
- 11:24some some hotshot hotshot engineer I'm
- 11:29better than Tesla I know math and him
- 11:37being really arrogant and then you're
- 11:39saying dude you are no Tesla anyway so
- 11:47there's a lot of people who are really
- 11:49arrogant and you know physicists where
- 11:52there are 2,000 physicists at CERN or
- 11:55not CERN I don't know just 2,000
- 11:57physicists not one of them is famous
- 12:00because they haven't done anything
- 12:01original yet a lot of them are walking
- 12:04around as though they're in the same
- 12:06league as Tesla now there's a difference
- 12:09when it's not when you're following a
- 12:11trail you're not a trailblazer so you
- 12:17know it's funny um let's just say let's
- 12:22say import well let's say let's say
- 12:30we're reading a status let's do a little
- 12:34analysis let's say you're doing a hard
- 12:40bird driver and you're waiting on a disk
- 12:44to be ready okay so you do an import on
- 12:50a status I oh and if it's not ready
- 12:57if status and busy so we read a port and
- 13:05if it's busy we yield
- 13:10let's do a little analysis of this okay
- 13:14first of all import just a rule of thumb
- 13:19ISM is an in or out instruction is one
- 13:22microsecond in or out is one microsecond
- 13:28yield that's where you save all your
- 13:32context and load all your context okay
- 13:39Linux has a large overhead for context
- 13:48they have to save the cr3 they have to
- 13:53change their entire memory map every
- 13:56time they change tasks I don't change my
- 13:59memory map and I don't I don't change
- 14:02privilege levels anytime you change
- 14:05privilege levels it has to load and save
- 14:07stuff and check stuff um this is going
- 14:11to blow people's minds I can do you want
- 14:18to know how many save restores I can do
- 14:20I can do four million savory stores per
- 14:24second this is hilarious I can save
- 14:30tasks and switch tasks faster than I can
- 14:33read a port okay reading the port is a
- 14:38million I can I can do four point five
- 14:42if you want to see me do it watch this
- 14:44okay so here's my context swaps we're
- 14:49doing 10,000 that's because I'm writing
- 14:51I'm making a video as we speak so let's
- 14:55go ahead and say wild true yield
- 15:02I don't need parentheses okay watch this
- 15:05okay we're doing well we're not hitting
- 15:11four or five but we're not doing too bad
- 15:14okay so let's do some analysis I can
- 15:20believe it or not I can get I can
- 15:23a lot of let's do it let's talk about
- 15:25SMP okay well first of all so my vision
- 15:31is a motorcycle so what do I mean by
- 15:35that a lot everybody who is a Linux
- 15:40person would move heaven and earth just
- 15:43so that you can play two video games at
- 15:46once they they they're full of pride
- 15:50it's like Russians okay NASA spent
- 15:55millions to make a Space Pen Russia used
- 15:58a pencil that's kind of the foolishness
- 16:01that's not that's a fable it's not a
- 16:03true fable and it's not necessarily
- 16:07something to be proud of I called my
- 16:09company trivial solutions
- 16:11well pencil would be a trivial solution
- 16:13I don't use privilege levels and anyway
- 16:19so uh so on mice this is all the tasks
- 16:24these these are all the tasks there's
- 16:26one let's call it sir there's one master
- 16:30tasks for you I don't know what it's
- 16:32called a set task Adam is the first task
- 16:35his children are set for the different
- 16:38course anyway uh so the set tasks in the
- 16:43Adam task so anyway I have eight cores
- 16:47and they're all they have one
- 16:49I guess called an executive task um so
- 16:53uh on my core zero my core zero I have I
- 17:02have a window manager which is in charge
- 17:05of painting the window this is my frame
- 17:09grabber and this is the TAT this is the
- 17:11current task that were the task ID
- 17:15that's the address of the task record
- 17:20anyway and then I have my Adam task so
- 17:24on a typical let's say you run a game
- 17:28that's that's what this is for running
- 17:31games like a Commodore 64 what are you
- 17:34going to do maybe you make
- 17:37animation tasks so basically you're
- 17:41going to run one application at a time
- 17:43and it might be multi-threaded on this
- 17:47operating system everything uses the
- 17:50same memory map so there's not a
- 17:53distinction between process and thread
- 17:55there's not in tasks there's just
- 17:59there's no distinction you know in
- 18:01fairness of okay so when I'm waiting for
- 18:06my disk I do well import yield okay and
- 18:17what it let's analyze this this is I
- 18:20don't know I don't care you know
- 18:22somebody's going to call it blocking its
- 18:24these little brainwashed book people who
- 18:27couldn't its Tesla being mocked by you
- 18:31know somebody you think it reads a book
- 18:33you know say if you got it out of a book
- 18:36yeah whatever
- 18:37so I adapt to a new reality they're all
- 18:42fighting the last war they're making
- 18:441970s mainframes I don't know why and
- 18:47they're mocking me so I can I can save
- 18:52tasks Oh what let's analyze this if we
- 18:55have five tasks and I do a round robin I
- 18:59don't do priorities is it because I
- 19:05can't do priorities no it's because an
- 19:09idiot admires complexity a genius admire
- 19:13simplicity a physicist tries to make it
- 19:16simple anyway an idiot anything the more
- 19:21complicated is the more he will admire
- 19:23it if you make something so cluster
- 19:26[ __ ] he can't understand it he's going
- 19:29to think you're a god because you made
- 19:30it so complicated nobody can understand
- 19:33it that's all the right journals and
- 19:36academic journal
- 19:38they they try to make it so complicated
- 19:40people think you're a genius
- 19:43okay anyway so if I have five tasks
- 19:48let's say two of them wanna listen
- 19:50long story short when you're waiting for
- 19:53a key it it's it doesn't get swapped in
- 19:57until I forgot all that works anyway
- 20:04yeah keys and there's if you're waiting
- 20:06for a message it it's permanently
- 20:09swapped out if you're waiting for a time
- 20:12a jiffy
- 20:13it's permanently swapped out when it
- 20:18goes around the circle scheduling
- 20:23sometimes it will never load it until
- 20:26it's ready on other things that will
- 20:29load it in check and then the task will
- 20:31swap out again if you have two tasks
- 20:34reading from the disk both of them are
- 20:36operating this code now let's analyze
- 20:39that if one is ready then it gets
- 20:43swapped in then and when it has to wait
- 20:47to come back around the circle of tasks
- 20:50it's a let's say you have five tasks
- 20:53you're going to take five times a
- 20:56quarter of a microsecond so it's going
- 21:00to take you a microsecond it's not it's
- 21:03not just in other words if you swap out
- 21:06it's not if you have five tasks if
- 21:11divide this by 5 so what if you have a
- 21:16hundred tasks now it's beginning to be a
- 21:19serious problem but that's not my
- 21:22concern I'm making a Commodore 64
- 21:25I don't do sharing so if your task is
- 21:29doing 20 mega
- 21:31disk read then you've got you lock it
- 21:35out from anybody else
- 21:37my vision is a single video game running
- 21:40with multiple threads and I don't I'm
- 21:46not trying to run two video games at
- 21:48once you know that's that's
- 21:53anyway so another thing is SMP this is
- 21:57kind of hilarious this is going to shock
- 21:59you I think just to make people shocked
- 22:02you know Linus the other day mentioned
- 22:04that multi-core was overrated well this
- 22:12is I'm not going to show you long story
- 22:16short I my plan is master slave so what
- 22:22that means is of all all applications
- 22:25run on core zero and when they want
- 22:29multi-core they make a slave task on
- 22:33another court directly so for example I
- 22:39have eight cores this flight simulator
- 22:43is running on eight cores Linus said the
- 22:47only thing that parallel is good for his
- 22:49graphics well he's using a GPU so he's
- 22:53only using one core on the CPU I I do my
- 22:57graphics with the CPU so I can actually
- 23:00use some now if I had if I have seven
- 23:04tasks doing graphics what if one of them
- 23:09what if the scheduler puts two of them
- 23:11on one core that's just not going to
- 23:15work because we need updates if if the
- 23:19scheduler decided to put two on one core
- 23:22you just it's you just blew your so
- 23:25instead of 60 frames per second right I
- 23:27do 30 instead of 30 frames per second
- 23:30you're doing 15 frames a second just
- 23:32because the scheduler put two on one
- 23:34core that is just not acceptable so if
- 23:38you want to do multi-core Temple OS is
- 23:41the only one that can use multi-core
- 23:43effectively Linux will run Linux will
- 23:48proudly run two applications faster
- 23:55they're very proud that can run two
- 23:58applications faster tempo OS can run one
- 24:04application fast
- 24:08temple OS can only run one application
- 24:11factor Linux can run two applications
- 24:15faster their genius is okay anyway so
- 24:19how about that so everything gets
- 24:23smaller when it gets better it doesn't
- 24:26just get bad when you scale up it gets
- 24:28worse doesn't just get better when you
- 24:31scale down namespaces if you have we can
- 24:35look at my namespace these are all the
- 24:40symbols in the symbol tables it's
- 24:43getting up there what are we at we're at
- 24:46I'm trying to I why doesn't show me line
- 24:49to code oh well Oh what is the line
- 24:54number I forgot I'm in the editor am I
- 24:57not I'm spacing out I could swear I have
- 25:04a line a line counter lies on the lines
- 25:07anyway so this is all my symbols if you
- 25:13if you keep it small you only need one
- 25:16namespace if you keep it small okay this
- 25:20is me I know somebody's going to
- 25:21contradict me okay so when it gets big
- 25:26you have to adapt and change your way of
- 25:29programming to use namespaces long
- 25:33variable names see unfortunately you
- 25:36can't get people to go the other
- 25:38direction if you have a my operating
- 25:41system is a hundred thousand lines of
- 25:43code Linus is very proud that his is 50
- 25:47million anyway I don't know 40 million
- 25:5120 million he's trying to make it bigger
- 25:54to intimidate people or something anyway
- 25:59so if you make it small you can use the
- 26:03variables okay there are arrogant people
- 26:07who let's say you're you're making a
- 26:14game for
- 26:16kids you're a kid you're making a game
- 26:19it's it's a couple-hundred it's honor
- 26:21what are we we're at 188 lines of code
- 26:24that was that's what wasn't showing them
- 26:28okay 180 lines of code now our global
- 26:32variables the right or the wrong answer
- 26:35for this situation there are a lot of
- 26:38people who will say oh you shouldn't use
- 26:42global variables you're not going to be
- 26:45a good programmer if you learn that way
- 26:48yeah we all started with calendar 64th
- 26:51nobody nobody knows where a pointer is
- 26:53nobody knows what assembly code is
- 26:56they've all been so confused by the
- 26:58Liberals trying to make it easy for them
- 27:01I don't understand how you can make
- 27:03malloc and free simpler if you they're
- 27:07making it so that nobody has any clue
- 27:10what really goes on you know it's a
- 27:13liberal with their bleeding heart trying
- 27:15to be nice to the poor people they're
- 27:17making it worse just man up and learn
- 27:22what malloc and free are I like Linus
- 27:26because he likes C and doesn't like C++
- 27:29I like C++ but I'm impressed by I like
- 27:34industry not academia anyway in industry
- 27:40in academia if it's good you publish in
- 27:45industry if it's good you keep it a
- 27:47secret
- 27:47it's anyway so I don't actually like
- 27:52that attitude anyway um so global
- 27:57variables are the right answer now the
- 28:00second question is long variable names
- 28:05if you scale down the right answer is
- 28:09short variable names and function names
- 28:13so I've been um f1 is my help I want
- 28:21this so that everybody can get their
- 28:22head around it like a Commodore 64 so um
- 28:28I'm trying to make short names are
- 28:31delightful you know that there there's
- 28:34just something very nice about short
- 28:36variable names I did 64-bit date times
- 28:39now isn't that cool let's just look at
- 28:43some of my other short names anyway oh
- 28:47whoa
- 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.