this post was submitted on 26 Jan 2025
128 points (100.0% liked)

Linux

5766 readers
617 users here now

A community for everything relating to the linux operating system

Also check out [email protected]

Original icon base courtesy of [email protected] and The GIMP

founded 2 years ago
MODERATORS
 

Milestone passed with the debut of Linux 6.14 rc1.

top 25 comments
sorted by: hot top controversial new old
[–] [email protected] 27 points 4 days ago* (last edited 4 days ago) (3 children)

More lines = more attack vectors, more maintenance, more bloat.

[–] [email protected] 34 points 4 days ago (2 children)

Time to refactor the whole kernel into a one-liner!

[–] [email protected] 10 points 4 days ago

A single line of lambda calculus.

With about forty million parentheses.

[–] [email protected] 1 points 4 days ago* (last edited 4 days ago) (1 children)

That's cheating. It won't actually make the code smaller.

[–] [email protected] 5 points 4 days ago (1 children)
[–] [email protected] 1 points 4 days ago (1 children)

Common sense. Just making the same code into a single line won't change much.

[–] [email protected] 7 points 4 days ago (1 children)

that doesn't sound right, it's so much smaller if it's just one line

[–] [email protected] 0 points 4 days ago (1 children)

The line will be like several quadrillion characters long though.

[–] [email protected] 13 points 4 days ago

but if there's a bug I'll know exactly which line to look at

[–] [email protected] 16 points 4 days ago

Easy fix. Just remove newline characters.

[–] [email protected] 8 points 3 days ago* (last edited 3 days ago)

Except the vast majority of the kernel is in driver modules.

So for an individual machine, the attack surface is not really any bigger than it needs to be.

The OS will only load modules it needs for your hardware, so the "bloat" only exists at the source code and binary size level. You are free to compile an optimized binary for your hardware. The complete kernel binary should fit in a 200MB boot partition.

As for maintenance, that's a fair point, but the effort is at least somewhat distributed if hardware devs provide the drivers.

[–] [email protected] 21 points 4 days ago* (last edited 4 days ago) (4 children)

is this a good thing or an issue? I just play RuneScape -~-

[–] [email protected] 48 points 4 days ago* (last edited 4 days ago) (1 children)

Depends on your perspective I suppose. One good reason might be that it means more hardware is supported. A bad one might be that it increases the overall attack surface from a security point of view.

[–] [email protected] 3 points 4 days ago (2 children)

I’d like to see them hire some formal methods people to at least formally verify crucial parts of it.

It might actually also be good to analyze it with an LLM to identify any hidden problem areas.

I’m interested to hear why my idea is probably foolish as well, though.

[–] [email protected] 21 points 4 days ago* (last edited 4 days ago)

A great deal of work is going into this area. In fact, I believe there’s quite a few parties using LLMs to look for security bugs, and the US Department of defense had a multimillion dollar competition to motivate just that.

[–] [email protected] 19 points 4 days ago (1 children)

llms have no abstract reasoning, so while they can write an okay-sounding bug report, often it's wrong meow.

i do think the linux foundation hires security people, and almost certainly the big contributors do.

[–] [email protected] 6 points 4 days ago (1 children)

Doesn’t the new Chinese model just released actually do abstract reasoning?

DeepSeek-R1 leverages a pure RL approach, enabling it to autonomously develop chain-of-thought (CoT) reasoning, self-verification, and reflection—capabilities critical for solving complex problems.

To my untrained self, that sounds like reasoning.

[–] [email protected] 19 points 4 days ago (1 children)

With chain of thought it basically asks itself to generate related sub questions and then answers for those sub questions.

Basically it’s just the same but recursive. So, like it looks like it can tell you things, it just also looks like reasoning.

Now it may well be an improvement, but it’s still basically. “I have this word, what is statistically most likely to be the next word” over and over again.

[–] [email protected] 5 points 4 days ago* (last edited 4 days ago)

Thanks.

Edit: Not sure who’s downvoting me for asking reasonable questions.

[–] [email protected] 31 points 4 days ago

An awful lot of that growth is drivers. Consequence of being a monokernel.

[–] [email protected] 4 points 4 days ago

My opinion is this isn’t a problem. There’s a lot of hardware out there, and the vast majority of that code isn’t going to be loaded into any one kernel installation.

[–] [email protected] 4 points 4 days ago

An issue for sure. Larger code is never good.

[–] [email protected] 5 points 4 days ago (1 children)

Ooo! Now I want to go run scc on the source and see how much of that is Rust.

[–] [email protected] 3 points 3 days ago (1 children)

~15k lines of actual Rust code.

@  ❯ git clone https://github.com/torvalds/linux && cd linux && tokei
Cloning into 'linux'...
remote: Enumerating objects: 10655741, done.
remote: Counting objects: 100% (1067/1067), done.
remote: Compressing objects: 100% (208/208), done.
remote: Total 10655741 (delta 961), reused 859 (delta 859), pack-reused 10654674 (from 3)
Receiving objects: 100% (10655741/10655741), 5.13 GiB | 13.37 MiB/s, done.
Resolving deltas: 100% (8681589/8681589), done.
Updating files: 100% (87840/87840), done.
===============================================================================
 Language            Files        Lines         Code     Comments       Blanks
===============================================================================
 Alex                    2          222          180            0           42
 ASN.1                  15          656          441           87          128
 Assembly               10         5226         4764            0          462
 GNU Style Assembly   1336       372898       271937        56600        44361
 Autoconf                5          433          377           26           30
 Automake                3           31           23            3            5
 BASH                   59         2029         1368          352          309
 C                   34961     24854959     18510957      2766479      3577523
 C Header            25450     10090846      7834037      1503620       753189
 C++                     7         2267         1946           81          240
 C++ Header              2          125           59           55           11
 CSS                     3          295          172           69           54
 Device Tree          5582      1744314      1430810        83215       230289
 Gherkin (Cucumber)      1          333          199           97           37
 Happy                  10         6049         5332            0          717
 HEX                     2          173          173            0            0
 INI                     2           13            6            5            2
 JSON                  894       542554       542552            0            2
 LD Script               8          377          289           29           59
 Makefile             3062        81226        55970        12993        12263
 Module-Definition       2          128          113            0           15
 Objective-C             1           89           72            0           17
 Perl                   61        43843        34461         3909         5473
 Python                280        84204        66996         5198        12010
 RPM Specfile            1          131          111            2           18
 ReStructuredText     3672       761388       577410            0       183978
 Ruby                    1           29           25            0            4
 Shell                 957       187353       130476        23721        33156
 SVG                    79        52122        50727         1303           92
 SWIG                    1          252          154           27           71
 TeX                     1          234          155           73            6
 Plain Text           1455       134747            0       110453        24294
 TOML                    3           47           28           12            7
 Unreal Script           5          671          415          158           98
 Apache Velocity         1           15           15            0            0
 Vim script              1           42           33            6            3
 XSL                    10          200          122           52           26
 XML                    24        22177        19862         1349          966
 YAML                 4545       512759       417504        19285        75970
-------------------------------------------------------------------------------
 HTML                    2           28           22            3            3
 |- JavaScript           1            7            7            0            0
 (Total)                             35           29            3            3
-------------------------------------------------------------------------------
 Markdown                1          248            0          177           71
 |- BASH                 1            2            2            0            0
 |- C                    1           20           12            6            2
 (Total)                            270           14          183           73
-------------------------------------------------------------------------------
 Rust                   91        15207        11065         2248         1894
 |- Markdown            85         7773          747         5253         1773
 (Total)                          22980        11812         7501         3667
===============================================================================
 Total               82608     39520940     29971358      4591687      4957895
===============================================================================
[–] [email protected] 2 points 3 days ago

One cucumber 🥒 👀