{"id":32302,"date":"2021-04-29T20:02:57","date_gmt":"2021-04-30T00:02:57","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=32302"},"modified":"2021-05-20T11:07:08","modified_gmt":"2021-05-20T15:07:08","slug":"30-years-of-linux","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2021\/04\/29\/30-years-of-linux\/","title":{"rendered":"30 Years of Linux"},"content":{"rendered":"<p><a href=\"https:\/\/www.tag1consulting.com\/blog\/interview-linus-torvalds-linux-and-git\">Jeremy Andrews<\/a> (via <a href=\"https:\/\/news.ycombinator.com\/item?id=26969595\">Hacker News<\/a>):<\/p>\n<blockquote cite=\"https:\/\/www.tag1consulting.com\/blog\/interview-linus-torvalds-linux-and-git\"><p>Thirty years ago, Linus Torvalds was a 21 year old student at the University of Helsinki when he first released the Linux Kernel. <a href=\"https:\/\/en.wikipedia.org\/wiki\/History_of_Linux#The_creation_of_Linux\">His announcement started<\/a>, &ldquo;I&rsquo;m doing a (free) operating system (just a hobby, won&rsquo;t be big and professional&#8230;)&rdquo;. Three decades later, <a href=\"https:\/\/www.linuxfoundation.org\/\">the top 500 supercomputers are all running Linux<\/a>, as are over 70% of all smartphones. Linux is clearly both big and professional.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/www.tag1consulting.com\/blog\/interview-linus-torvalds-linux-and-git\">Linus Torvalds<\/a>:<\/p>\n<blockquote cite=\"https:\/\/www.tag1consulting.com\/blog\/interview-linus-torvalds-linux-and-git\"><p>I&rsquo;m 100% convinced that the license has been a big part of the success of Linux (and Git, for that matter). I think everybody involved ends up being much happier when they know that everybody has equal rights, and nobody is special with regards to licensing. [&#8230;] The right to fork and do your own thing is important, but the other side of the coin is <em>equally<\/em> important - the right to then always join back together when a fork was shown to be successful.<\/p><p>[&#8230;]<\/p><p>I use this abomination called &ldquo;micro-emacs&rdquo;, which has absolutely nothing to do with GNU emacs except that some of the key bindings are similar. I got used to it at the University of Helsinki when I was a wee lad, and I&rsquo;ve not been able to wean myself from it, although I suspect I will have to soon enough.<\/p><p>[&#8230;]<\/p><p>But that &ldquo;mailing list as an archive&rdquo; model works very well, and works seamlessly together with the whole &ldquo;send patches between developers as emails&rdquo; and &ldquo;send problem reports as emails&rdquo;.<\/p><p>[&#8230;]<\/p><p>If anything, what is interesting about the last decade is how we&rsquo;ve actually kept the actual development model really smooth, and what hasn&rsquo;t changed. [&#8230;] So for the last decade, we&rsquo;ve made absolutely huge changes (Git makes it easy to show some statistics in numbers: about three quarters of a million commits by over 17 thousand people).<\/p><p>[&#8230;]<\/p><p>So one of the main things the VFS layer does is really handle all the locking and caching of pathname components, and handle all the serialization and the mount point traversal, and do it all with mostly lock-free algorithms (<a href=\"https:\/\/en.wikipedia.org\/wiki\/Read-copy-update\">RCU<\/a>), but also with some really clever lock-like things (the Linux kernel &ldquo;lockref&rdquo; lock is a very special &ldquo;spinlock with reference count&rdquo; which was literally designed <em>for<\/em> the dcache caching, and it&rsquo;s basically a specialized lock-aware reference count that can do lock elision for certain common situations). [&#8230;] The Linux dcache is simply in a class all its own.<\/p><\/blockquote>\n\n<p>See also: <a href=\"https:\/\/www.linuxjournal.com\/content\/25-years-later-interview-linus-torvalds\">25 Years Later: Interview with Linus Torvalds<\/a> (via <a href=\"https:\/\/news.ycombinator.com\/item?id=19559970\">Hacker News<\/a>).<\/p>\n\n<p>Previously:<\/p>\n<ul>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2021\/04\/15\/rust-support-in-the-linux-kernel\/\">Rust Support in the Linux Kernel<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2021\/03\/24\/mac-os-x-at-20\/\">Mac OS X at 20<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2020\/12\/21\/ffmpeg-is-20-years-old\/\">FFmpeg Is 20 Years Old<\/a><\/li>\n<\/ul>\n\n<p id=\"id-30-years-of-linux-update-2021-05-07\">Update (2021-05-07): <a href=\"https:\/\/www.tag1consulting.com\/blog\/interview-linus-torvalds-open-source-and-beyond-part-2\">Linus Torvalds<\/a> (via <a href=\"https:\/\/news.ycombinator.com\/item?id=27074627\">Hacker News<\/a>):<\/p>\n<blockquote cite=\"https:\/\/www.tag1consulting.com\/blog\/interview-linus-torvalds-open-source-and-beyond-part-2\"><p>The other big thing is that you have to be open. And I mean that in multiple ways. It&rsquo;s really easy to create some kind of &ldquo;clique&rdquo; of people, where you have an inner cabal that discusses things in private, and then you see really only the end result (or the fringe work) in the open, because all the important stuff happened inside a company or within a core group of people, and outsiders have a hard time breaking into that clique, and often have a hard time even seeing what is going on in that core group because it was so private and exclusive.<\/p><p>It&rsquo;s one of the reasons I really like open mailing lists. Not some &ldquo;by invitation&rdquo; list. Not something you even have to sign up to participate in. Really open. And pretty much all the development discussions should be there.<\/p><p>[&#8230;]<\/p><p>But is it sustainable? Yes. I&rsquo;m personally 100% convinced that not only is open source sustainable, but for complex technical issues you really need open source simply because the problem space ends up being too complex to manage inside one single company. Even a big and competent tech company.<\/p><p>[&#8230;]<\/p><p>I don&rsquo;t have a &ldquo;30-year plan&rdquo;. I don&rsquo;t even have a 5-year plan. In fact, I don&rsquo;t plan ahead more than a release or two (which is obviously just a few months).<\/p><p>As an engineer, I have this strongly held opinion that &ldquo;details matter&rdquo;. Details are almost the <em>only<\/em> thing that matters. If you get the details right, the rest will follow.<\/p><\/blockquote>","protected":false},"excerpt":{"rendered":"<p>Jeremy Andrews (via Hacker News): Thirty years ago, Linus Torvalds was a 21 year old student at the University of Helsinki when he first released the Linux Kernel. His announcement started, &ldquo;I&rsquo;m doing a (free) operating system (just a hobby, won&rsquo;t be big and professional&#8230;)&rdquo;. Three decades later, the top 500 supercomputers are all running [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2021-04-30T00:03:00Z","apple_news_api_id":"853f2df6-3b22-4b2b-812a-d97a9154a4c1","apple_news_api_modified_at":"2021-05-20T15:07:12Z","apple_news_api_revision":"AAAAAAAAAAAAAAAAAAAAAw==","apple_news_api_share_url":"https:\/\/apple.news\/AhT8t9jsiSyuBKtl6kVSkwQ","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[2],"tags":[2070,800,150,124,537,377,285,295,286,448,1172,991,71],"class_list":["post-32302","post","type-post","status-publish","format-standard","hentry","category-technology","tag-anniversary","tag-concurrency","tag-email","tag-emacs","tag-filesystem","tag-git","tag-gcc","tag-history","tag-interview","tag-linux","tag-mailing-lists","tag-open-source-software","tag-programming"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/32302","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=32302"}],"version-history":[{"count":4,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/32302\/revisions"}],"predecessor-version":[{"id":32541,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/32302\/revisions\/32541"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=32302"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=32302"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=32302"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}