HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
torvalds
linux
C2010–2026
torvalds / linux

linux

Linux kernel source tree

742Distinct people
940Mentions
5Explicit recommenders
255.5KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Linux kernel source tree

GitHub

Where it is used

  • Ubuntu — Ubuntu uses the Linux kernel at the core of the operating system to manage and control hardware resources like I/O, memory, and CPU. Source
  • Android — Android uses the upstream Linux LTS kernel as the base of its Android kernel. Google then adds Android-specific patches to produce Android Common Kernels. Source
  • 1 more documented example

What people are saying

For critical applications, I for one would like to know the story behind a commit, preferably in the commit itself and not a reference to an external system like idk, Jira. My…

Cthulhu_ used a recommendation phrase. 5 indexed comments match. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 12:01:02 AM UTC.

GitHub Down Again? direct repository linkCritical

Users report that GitHub's official status page inaccurately claims all systems are operational while widespread 504 gateway timeouts and download failures disrupt CI/CD pipelines and software distribution. The conversation highlights significant frustration with the platform's reliability and transparency, leading to debates about migrating to self-hosted or alternative services like Codeberg.

57 readable replies · Supporting reply 1 · Supporting reply 2 · Supporting reply 3 · Supporting reply 4

Mentions over time

HN mentions by year940 dated mentions

Observed mentions: 2010-07-15 18:39:05 UTC to 2026-10-29 13:46:22 UTC.

02550751002010-01-01 00:00:00 UTC to 2011-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20102011-01-01 00:00:00 UTC to 2012-01-01 00:00:00 UTC (exclusive): 13 mentions; 3 submissions, 10 comments2012-01-01 00:00:00 UTC to 2013-01-01 00:00:00 UTC (exclusive): 24 mentions; 2 submissions, 22 comments2013-01-01 00:00:00 UTC to 2014-01-01 00:00:00 UTC (exclusive): 23 mentions; 5 submissions, 18 comments2014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 31 mentions; 7 submissions, 24 comments2015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 42 mentions; 4 submissions, 38 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 55 mentions; 9 submissions, 46 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 72 mentions; 8 submissions, 64 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 57 mentions; 8 submissions, 49 comments20182019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 66 mentions; 6 submissions, 60 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 80 mentions; 6 submissions, 74 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 91 mentions; 8 submissions, 83 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 104 mentions; 8 submissions, 96 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 76 mentions; 3 submissions, 73 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 76 mentions; 6 submissions, 70 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 72 mentions; 7 submissions, 65 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 57 mentions; 8 submissions, 49 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20102010-01-01 00:00:00 UTC2011-01-01 00:00:00 UTC101
20112011-01-01 00:00:00 UTC2012-01-01 00:00:00 UTC13310
20122012-01-01 00:00:00 UTC2013-01-01 00:00:00 UTC24222
20132013-01-01 00:00:00 UTC2014-01-01 00:00:00 UTC23518
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC31724
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC42438
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC55946
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC72864
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC57849
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC66660
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC80674
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC91883
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC104896
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC76373
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC76670
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC72765
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC57849

What Hacker News says

66 sources
Ease of development is underestimation. I’ve built a few user space Linux drivers for SPI and USB devices. Was easy, I have consumed stable APIs exposed by usbdevfs, libudev, and a few others. No need to recompile OS kernel. Because Linux kernel API is stable, not only OS kernel upgrades don’t break my stuff, they don’t even require me to recompile my code. Creating a kernel mode Linux driver is much harder in comparison. Merging a driver into the mainline Linux is borderline impossible. Even Google with all their corporate resources and platinum membership of Linux foundation was unable to do so, instead they are supporting many thousands lines of patches: https://source.android.com/devices/architecture/kernel/andro... It’s safe to assume you won’t be able to push your custom driver either. You’ll have to do it the same way as everyone e
Read the rest
lse — patch locally. This is not trivial either, but this time the challenge is technical, not political, as Linux kernel doesn’t have stable API nor ABI: https://github.com/torvalds/linux/blob/master/Documentation/...
In Show HN: Linux driver for the Xbox One wireless dongle
#define ERANGE 34 /* Math result not representable */ > Hold on. Math result? But we don't do any math in the call that triggers that. Do we? If you "man errno", you'll open a man page from Linux Programmer's Manual which tells you that "ERANGE" means "result too large" and it was defined in POSIX.1 and C99 standard, using it for either math overflow or size in general is appropriate. Particularly, in C99 (page 214, page 311) [0] , ERANGE is often returned by math functions (but it was also used by strtol, strtoll, strtoul, and strtoull for indicating buffer overflow), and simply defines it as "ERANGE: Result too large" [1]. So the conclusion is, although abusing the errno in an ad-hoc basis is not uncommon, but clearly this is not the case here, it's perfectly in compliance and it's even documented. It was simply the case which the comm
Read the rest
ent itself in <asm-generic/errno-base.h> was outdated and misleading. I suspect "ERANGE" was originally introduced to <asm-generic/errno-base.h> for some math or softfloat code and/or it was a copy-and-paste of the C manual, but later it was picked up by other system calls, and the original comment was never updated. The fact that #define EDOM 33 /* Math argument out of domain of func */ was just above ERANGE is possibly my circumstantial evidence. However, I just looked through "git log" but I couldn't confirm my hypothesis, since the code has been there since 2005 [3] in the first git release. The comment must be ancient, a real historical artifact. [0] http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf [1] https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/er... [3] https://github.com/torvalds/linux/blob/0d7614f09c1ebdbaa1599...
In Dissecting Linux Kernel Code
No, see the source from Linux kernel: https://github.com/torvalds/linux/blob/master/arch/x86/Kconf... For all x86 processors, now there is a name "X86_32" which "depends on !64BIT" (i.e. 64BIT flag has to be off). and there is a name "X86_64" which "depends on 64BIT" (i.e. 64BIT flag being on). Under new convention X86 is a common prefix for both 32 and 64-bit kernels for x86 processors, and the suffix _32 means the kernel uses only 32bit instructions, and _64 that it uses 64bit instructions. And also, there's handling of an old arch name "i386" which is recognized to mean 64BIT is off and if only "x86" is seen as arch name then there is a prompt that asks 64BIT yes or no. It also notes that the old name used for kernel with 64BIT off was "i386" and the old name used for kernel with 64BIT on was "x86_64". Finally, the support for X32 AB
Read the rest
I (allowing running executables which use 64-bit instructions but only "short" 32bit pointers in 64-bit kernel https://en.wikipedia.org/wiki/X32_ABI) is enabled in my 64-bit distro: ~$ sudo grep -P G_X86_X?\\d{2}= /boot/config-$(uname -r) CONFIG_X86_64=y CONFIG_X86_X32=y The first line means this is a 64bit kernel for x86 processors, the second that X32 support is enabled on that kernel. In short, there are two kinds of X86 kernels: X86_32 -- formerly known as i386 X86_64 -- formerly known as x86_64 and an option for existence of X32 ABI in X86_64 called CONFIG_X86_X32.
In Lots of bugs in 32-bit x86 Linux entry code
The Go team has found that recent Linux kernels break the recently integrated goroutine preemption logic. There is deep analysis here https://github.com/golang/go/issues/35326#issuecomment-55821... They have bisected the kernel and found that https://github.com/torvalds/linux/commit/d9c9ce34ed5c892323c... is the culprit. Apparently, it introduces changes in the signal handling behavior only visible when compiled with GCC 9, presumably because it uses AVX registers. The entire discussion is a nice read.
In Go issue: memory corruption on Linux 5.3.x from async preemption
So Intel decided to kill the HLE part of TSX on current CPUs via a microcode update... and on Linux it was chosen to kill the other part too instead of relying on mitigations. Even more bizarre that this seems to apply only for the new CPUs with MDS mitigated. For older CPUs, https://github.com/torvalds/linux/blob/eb094f06963bb0fd8134c... which contains "The system will use VERW to clear CPU buffers. Cross-thread attacks are still possible on SMT machines."...
In TSX turned off outright as the default for TAA-affected Intel CPUs on Linux

Showing the 15 most recent of 66 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.