Hacker News new | ask | show | jobs
by ken 2760 days ago
Nobody ever wrote a 25MLOC program from start to finish, so I don't think it makes much sense to read it that way.

I'd read it the way it was written: from the beginning. What's Linux 0.01 look like? What's the next changeset after that release look like? What was necessary to add the driver for your favorite device? What changes were made for your particular CPU?

Programs are not static works (except maybe TeX and Metafont). They exist in the form they do in order to be amenable to changes. So look at the changes that drove it.

2 comments

Read the early versions, that's exactly what I am doing too!

I read Bitcoin 0.1.5 [1], which only has 15,000LOC and is the first tagged version on Github. Compared with the current Bitcoin codebase with 320,000LOC, it's much less daunting!

[1]: https://github.com/CodeReaderMe/awesome-code-reading/issues/...

Have you actually done this? What was your experience?
Not for Linux, but it's how I approach new programs I have to work on.

I can't decipher this 1000-line function, but it came from somewhere. What did it start out as? That's what the author originally intended it to be. What caused it to grow? That's what features someone else thought it needed.

How long does this sort of thing take? Its a really neat approach but seems huge