
My Kid Will Never Hack Linux - signa11
http://blog.jonasoberg.net/kids-will-never-hack-linux/
======
gabesullice
Perhaps I need a history lesson, but I don't think the kernel developers 25
years ago had any idea that some kid would be learning C through the code they
wrote.

I also doubt the engineers at Texas Instruments thought that enabling programs
on my TI-84 would spawn my or many others' passion for programming. It was
simply coincidence paired with curiosity.

I think curious children of the right mindset will find the opportunity to
learn whether we intentionally pursue it or not. In fact, by planning out
learning environments for those kids we might be doing them a disservice by
structuring their learning towards what WE think is important at a particular
moment in time.

But sure, flying car software should be open source.

~~~
Jtsummers
Actually, I think programming on the TI-84 was deliberately intended to get
people interested. Math textbooks from the 1980s and 1990s included BASIC
snippets at the end of chapters/sections (in the US). The dialects varied, but
porting was a trivial task.

In the 1980s there was a push for programming as part of the standard
curriculum. Whether it was TI's corporate intent, or motivated by satisfying
educators' goals, they made programming available on their calculators quite
deliberately.

~~~
Hydraulix989
As a completely irrelevant aside, I quickly moved onto Z80 assembly when I was
a kid because TI-BASIC was so slow and limited. It was amazing getting sprites
drawn at real-time rates.

~~~
Jtsummers
Same, though I was too dumb[0] to grok what I was doing in high school. It
took me until my third CS course in college to finally understand what I was
doing at that level of programming.

[0] Not really dumb. I was accomplishing my goals, but I had no understanding.
It was a combination of rote copying and imitation, and dumb luck.

------
synack
Games. The first computers kids will start to wonder about are the ones
they're using to play games, be it a game console, tablet, or PC. Modding
comes first, slightly tweaking the game to add a new item, map, or remove some
annoying limitation. The truly curious and persistent kids will eventually
want to learn how to make their own games. This is where you'll find the next
generation of programmers.

~~~
bigtunacan
Definitely games. This is what got me first hacking when I was a kid. Now as a
parent, my oldest daughter (now 13), has been hacking on things for a few
years now. First it was with Legos, then Minecraft modding, and most recently
she's been trying to hack Movie Star Planet.

Believe me; I was quite shocked we she came to me out of the blue and was
like, "Hey dad; can you come take a look at this? I'm having a problem with
Charles and I thought you could help." I was thinking, "Ok, I don't know who
Charles is, but I'll listen to her." Turns out she was referring to Charles
the web debugging proxy
([https://www.charlesproxy.com/documentation/proxying/ssl-
prox...](https://www.charlesproxy.com/documentation/proxying/ssl-proxying/))
and that she was doing traffic analysis on her games to see if she could hack
the data being passed around; not all that much different from Burp which I
use for security auditing some of my apps at work.

~~~
cr0sh
> and that she was doing traffic analysis on her games to see if she could
> hack the data being passed around

I hope you had - either after or prior to that point - a heart to heart talk
with your daughter about what she was doing.

It's one thing to do that on a game or whatnot - but we all know where that
can lead, whether accidentally or deliberately, and we have all heard stories
of people (usually guys - but I bet that's going to change in the future)
doing something "for the lulz" or "because they were curious" or "just to see
what would happen" \- and then quickly finding themselves on the dark end of a
TLA agent.

------
analognoise
"And we need to adapt our thinking accordingly: we don't need free and open
source software and copyleft so that the next generation can hack the Linux
kernel; we need it so they can hack a flying car."

Jesus, if there was ever anything that shouldn't be developed like the Linux
kernel, it is anything in the air large enough to cause damage if it crashes.

~~~
pif
> if there was ever ... enough to cause damage if it crashes.

Sure, let's learn from the past: let's make sure there is a monopoly behind
flying cars. It will be nice when you will be flying your family on a Sunday
afternoon and suddenly you will have to choose between up(?)grading to
FlyingCars 10.0 (a.k.a. RustyBikeWithDoors) or paying your house's worth in
ransom to get the privilege of landing safely one more time.

~~~
piaste
Data point: avionics software has avoided that particular trap so far, not
through open source licensing but rather through mandatory safety regulations.

------
daxorid
_Children growing up today won 't learn C programming by reading the Linux
kernel source code._

With any luck, children growing up today won't learn C at all, or at least
ONLY for historical understanding. It is an absolute security nightmare. Do we
not want the next generation to exclusively use safe languages?

~~~
toast0
> Do we not want the next generation to exclusively use safe languages?

Someone has to write (and maintain) the safe languages.

~~~
moosingin3space
Counterexample: Rust compiler is written in Rust.

~~~
PeterisP
Doesn't Rust compilation rely on LLVM for all the actual compilation from IR
to machine code?

~~~
kibwen
For now it does, but there's an upcoming experimental alternative backend
written in Rust. Furthermore, there's no reason that LLVM has to be written in
C++, it was just the best choice available when LLVM got started 15 years ago.
Suffice to say, there are higher priorities for the Rust project than porting
LLVM. :P

------
cookiecaper
There are plenty of small, toy-level kernels out there for people to cut their
teeth on. Linux used to be this way, now it's more grown up. There's nothing
wrong with that, no reason people have to specifically target the Linux
kernel.

With Raspberry Pi, Arduino, and lots of other tinkerer platforms out there,
the rising generation should have more opportunity than ever to experiment and
learn about hardware and make meaningful open-source contributions.

While keeping the codebase of any project simple enough that a novice can pick
it up with minimal difficulty is a great ideal, the real world generally
limits that and forces some ugly/unpleasant complexity into place.

------
gm-conspiracy
Meh.

Summary - we need open-source licenses for flying cars, so our children can
tinker with the kernel code, since the current Liunx kernel is too complex for
children starting out.

I've always wondered about teaching Linux "history" via hands-on with older
hardware and OS (like 2.x kernel building on an older version of Slackware
with a 486 or Pentium 90).

~~~
rijoja
Well sure but nowadays you can do that with virtual boxes and whatnot. Much
more convenient. Remember that build your own linux post from not to long ago?
Following those instructions I not only built linux from scratch with custom
compiled libc and busybox. Sure I did that when I was 16 or 17, but in those
days the same work would have taken me days not hours. And if you want to
teach people, you can easily record what is going on on the screen. So you
definitely you should do that but with modern tooling. Both for your own
sanity and for better outreach!

~~~
gm-conspiracy
What I am trying to get at, your days spent learning what took you hours
today, would not have been possible without the foundation you created during
those several days as a teenager.

I would get nowhere near the experience (and appreciation) of watching you do
this on Youtube, compared to the several days experience on real "vintage"
hardware.

------
gens
You can help them understand by writing and submitting documentation. Let's be
honest, the linux kernel documentation mostly sucks and (more commonly)
doesn't exist.

PS Don't underestimate children. Some will learn C.

~~~
icedchai
I taught myself C when I was 14. This was back in the late 80's.

It would be a lot easier to do now.

~~~
nv-vn
Definitely. HN probably doesn't think about it much, but go to high school
hackathons or take a look at Github -- there are a bunch of teenagers around
who have learned pretty incredible amounts of programming. Here's an example
of one who learner C and wrote his own kernel, among other things:
[https://github.com/GruntTheDivine?tab=repositories](https://github.com/GruntTheDivine?tab=repositories)

------
z92
Your children will probably be learning AI, ML and neural networks instead of
the lower level stuffs which their dads completed working on.

~~~
nv-vn
That bubble's gonna pop eventually, I don't foresee it staying around for 10+
more years.

~~~
_rpd
What do you think will stop artificial intelligence from becoming a closer and
closer approximation of human intelligence?

~~~
SomeStupidPoint
Your question as asked has lots of reasonable answers, such as the fact humans
aren't all that intelligent on average, and certainly not some asymptotic
limit we're aiming for.

That said, AI is here to stay.

~~~
nv-vn
I'm sure that it's here to stay, only that it will become much less valuable
in the near future. Just like how the .com bubble popping didn't cause the
Internet to disappear, the ML bubble popping will not cause machine learning
to go away. Instead, it will make it something ubiquitous that gets used with
very little thought, removing most of the specialized job market for it.

------
MarkusWandel
Who even needs a kernel? First start learning to program on the bare metal,
like us oldsters used to do. The Arduino environment is wonderful for this.
Dirt cheap, easy to get started by copy/paste code, and the environment is
full C++. I have thousands of lines of code running on Arduinos and none of it
took skills that a 12 year old couldn't master.

------
camtarn
While I like the sentiment - hacking a flying car seems like a _terrible_
example! Regulations on any flying passenger transport don't seem like they
would, or should, ever allow this to happen.

Hacking around on the flying car's infotainment systems, suitably isolated
from the rest of the flying car's systems - sure.

~~~
rijoja
People have been doing that to cars for years, and if you have an object
weighing a ton or so moving at 50 km/h, we're dealing with 16 Mega Joule
already so hacking cars should not be that different. If you are not able to
do anything significantly bad, you will probably not be able to do anything
remotely useful either.

~~~
camtarn
I guess it depends what you're doing.

Remapping some engine timings, where the worst thing that could happen is you
blow up your engine: mostly fine, although there's a small risk that you cause
an accident if that causes you to lose acceleration on the highway. Reading
OBD or CAN buses, fine. Writing to the buses: nope nope nope.

And that's just for cars. Flying cars, where many system failures result in an
inability of the car to stay in the air: I'd expect this to be thoroughly
illegal and heavily prosecuted, because I for one quite like being alive and
not underneath a crashed flying car.

Does this stifle innovation? For sure. Does it restrict one's ability to
modify the things you own? Definitely. Are aircraft regs sometimes over the
top? (For instance, preventing you from updating old built-in gps systems, as
came up on HN recently.) Yup. But the regs exist for good reasons.

------
frabbit
I cannot think of anything worse than flying cars. The noise, visual
pollution, lack of privacy, waste of energy and sheer lack of imagination of
finding a new way to live on this planet makes me grind my teeth. I hope they
are easily hackable so that they can all be programmed to stay on the ground
for ever.

------
omarforgotpwd
We've move up the stack. Kernels are a lot more developed than they were when
the author was a kid and in the present day there's a lot less to be gained by
writing your own / hacking on an existing one. His kid will hack on something
else even more interesting higher up the stack.

------
gtycomb
>When I was a teenager, around 15-16 years old, I started to learn C
programming by reading the source code for the Linux kernel.

True story from a part of my life from around the time the author mentions: A
Fields Medal winner (this is the highest prize in the field of mathematics,
for solving hard open problems that puzzled people for centuries) I have
known, by himself read the source of Unix (Sun OS) and learned C. He did it
when a young PhD student presented him with code related to problems he
discussed with this teacher.

This being said, my 9 year old surprised me this week when he showed me an
online computer game that someone abandoned which he fixed by going into the
code. A few thousands had played it and given it 4 or 5 stars by the time I
saw this working. I had no clue that a kid could do something like this in a
rather fancy 3D game. I'd say, lets leave the kids to themselves and try our
best to help them keep out of trouble as they go along.

------
robotiamsowhat
So? Perhaps his kid will hkac MINIX. According to wiki page[1], there is only
6000 lines in its kernel. Not everybody has to start by cakhing a monolith. As
long as there are smaller things.

[1]
[https://en.wikipedia.org/wiki/MINIX_3#Reduce_kernel_size](https://en.wikipedia.org/wiki/MINIX_3#Reduce_kernel_size)

EDIT: Yes, Linux kernel slowly approaches point when gigabyte of source is a
long gone story of a past. I doubt there anybody out there who can say they
actually understand the whole of it. And this is probably bad for a lot of
reasons, of which being not accessible to a beginner is one of the smallest
concern.

EDIT2: Even more so for hardware which is harder to investigate under the hood
and probably much less understood - when was the last time when you could
claim to have inner mental model of your computer and software on it?

------
osullivj
My kid will never learn Z80 assembler on a Sinclair micro.

~~~
mmphosis
Probably not unless they are interested historians, but who can predict?
Hardware of tomorrow may have open quantum cores that simulate the Sinclair
micro down to a microscopic scale. The future internet archive may include
tooling to port their designs to Z80 assembler on the fly.

    
    
        Make a flying car run on the Sinclair micro.
        Show me the assembly code.
    

Anything is possible.

------
joncp
Content aside, it feels odd that the banner image is bigger than the whole
article.

What's driving the recent trend to put big images at the top of every webpage?

------
zeptomu
Although the kernel is obviously more complex, I think there was never a time
were people _started_ programming in C with the Linux kernel. Most people
start with "normal" user-space C before going into the kernel.

One has to gain fundamental knowledge about operating systems and low-level
system programming to tackle problems like kernel development - I do not think
it was much easier 25 years ago.

------
jdironman
I think a Raspberry Pi is a very suitable beginning device, and even runs
Linux. A lot of documentation and projects and a lot of possibilities both
hardware and software wise.

Just my opinion.

------
amirouche
well said pro AGPL license apology.

