[video output=30mlocp member=cmuratori stream_platform=twitch stream_username=handmade_hero project=misc medium=speech title="The Thirty-Million Line Problem" vod_platform=youtube id=kZRE7HIO3vk annotator=Miblo]
[0:00][Welcome to the lecture][:hardware :isa :"operating system"]
[1:20][:Hardware Quality is At Its Historical Best]
[4:06][Software Quality is At Its Historical Worst]
[8:15][It's Not Hard to See Why]
[12:12][How Many LOC Does It Take To Read a Text File?]
[17:04][The 30-Million-Line Problem][:"operating system"]
[18:19][1980–1990: Thousands of Consumer Operating Systems][:"operating system"]
[21:36][2000–2015: Three Consumer Operating Systems][:"operating system"]
[25:19][1995: USB / Plug-and-Play][:peripheral]
[26:01][1996: Mandatory Hardware-accelerated Graphics][:hardware]
[27:30][This Curve Continues Because of the Late 90s]
[28:43][An SoC is a Super-powered 1980s Home Computer][:hardware]
[34:02][What if we were to extend the conceptual model of the x86 :ISA to cover an entire SoC?][:hardware]
[36:39][More Efficient, Reliable, Secure and Maintainable[ref
    site=USENIX
    page="Arrakis: The Operating System is the Control Plane"
    url=https://www.usenix.org/node/186141]][:hardware :"operating system"]
[43:45][][quote 615]
[44:01][Requirements for Direct Coding]
[48:21][A Collaborative Effort][:isa]
[51:27][First Steps][:isa :"operating system"]
[55:39][The Negative and Positive Hypotheticals]
[1:07:14][Thanks for Listening!]
[1:10:40][Q&A]
[1:11:08][@areriff][Q: Is IncludeOS[ref
    site=GitHub
    page="hioa-cs / IncludeOS"
    url=https://github.com/hioa-cs/IncludeOS] going in the right direction? It does not contain OS, only your program (except for bootloader)][:"operating system"]
[1:12:02][@vateferfout][Q: Did you have any returns since you made that talk?]
[1:15:15][@onebitbrain][Q: [@cmuratori Casey], have you seen Redox OS? It's a 20kloc minix][:"operating system"]
[1:17:00][@thebaker__][Q: What can someone who isn't a :hardware vendor do towards this cause?]
[1:18:15][@runamar][Q: What about :security? Should that be part of a new OS or built into :hardware somehow directly?][:"operating system"]
[1:21:41][@pragmascrypt][This will be uploaded to YouTube, right?]
[1:21:44][@ws_ubi][Q: Include OS runs on C++. What about the programming languages issue (just focusing on relying on a programming :language that is messy)][:"operating system"]
[1:23:22][@jessem3y3r][Q: Have you had a chance to evaluate Ager Fog's :ISA?[ref
    site=ForwardCom	
    url=http://www.forwardcom.info/]]
[1:24:19][@vodonikhs][Q: For smaller code you need reusability and for reusability you need generic programming. Programmers are not used to writing generic code and companies don't care about reusability as long as they ship features? Do you think generic programming should be taught and practiced more?]
[1:25:20][@penapenasd][Q: Can you give an example of how the interface would be simpler for your common programmer?]
[1:26:34][@vtlmks][Q: Not much harder to set up 64bit than 32bit, just one more step]
[1:26:43][@guitarm87][Q: Damn, I missed most of the talk. Will it be watchable / visible somewhere?]
[1:26:53][@internal_static_void_][Q: So do you propose that we should make a chip that doesn't support consumer features, or features that a consumer expects?][:isa]
[1:27:53][@internal_static_void_][Q: Do you think that maybe the reason that some of this software and driver has become more bloated, and some of the code paths are larger is because the :hardware is more complicated than it used to be as well?]
[1:31:08][@the_troll_toll][Q: Does the world you're promoting mean the end or at least a big decrease in interoperability? If so, wouldn't that make developing applications much harder across multiple systems?]
[1:33:41][@nilsirl][@handmade_hero Isn't that what Android (and, I believe, iOS) do?]
[1:33:50][@andmyselfesteem][Q: In a world where every program runs its own OS how do you handle running two programs simultaneously? Or am I misunderstanding?][:"operating system"]
[1:36:19][@voxeloot][Q: So you propose that there is no multitasking? Because if you start separating applications you will start to get all of the requirements of modern operating systems over time...][:"operating system"]
[1:40:14][@hedgehogs_are_really_cute][Q: So all we really need is for USB to be in the :ISA and CPUs with enough cores for GPUs to be irrelevant?]
[1:41:59][@emosaru][Do you feel there's a risk to locking things in an :ISA that are potentially still substantially evolving? The average lifespan of an ISA is / should be substantially longer than an API, and I worry that the rate of progress would necessarily change for the worse]
[1:43:34][@internal_static_void_][Q: The Amiga GPU was just a wire that went across the screen. The GPUs today literally have specific units for texture mapping, and they have cores specifically made for computing, and specialized memory][:hardware]
[1:44:55][@onebitbrain][Q: Is Arrakis part of the Dune OS?][:"operating system"]
[1:45:14][Summarise the notion that switching to an :ISA oriented industry merely slows but doesn't halt innovation]
[1:46:52][@bigmofo1][Q: But the Amiga didn't evolve since 1985. Why do you want to freeze PC into 2018 design?]
[1:48:12][@alexkelbo][Q: Are you still in contact with Intel about this?]
[1:48:36][Wrap it up]
[/video]
