Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Personally, I think of DNA as being like the Linux kernel codebase. There's a lot of raw "code" there — but not all of it ends up in every running kernel!

DNA methyl-groups, acetylated histones, etc — these are the config file generated by running `menuconfig`. They determine:

1. which components of the kernel the "compiler toolchain" (RNA polymerase) will actually "compile" (transcribe) into kernel-module objects (RNA sequences, proteins) — in turn determining which "features" (developmental or metabolic processes) each of the components (cell/tissue types) of the resulting system (organism) will have; and

2. which #IFDEFs (coding regions) within those modules will actually be macro-enabled (expressed) during compile-time (transcription) — in turn influencing / varying / tuning the strategies and logic (frequency of production / likelihood of expression, final shape / folding / binding affinities of proteins) used by any given component (cell/tissue type) to perform a given "feature" (developmental or metabolic process).

(And just a tweak to steer this intuition pump — your body doesn't have one kernel, compiled once at conception; rather, your body is more like a distributed system composed of machines running Gentoo — every cell has its own kernel, and each cell is "tweaking" and "recompiling" its kernel regularly. When cells undergo mitosis, both daughter cells inherit these tweaks — that's like setting up a new one of these machines by mirroring the hard drive from an existing machine, carrying over not just the kernel but also the at-snapshot version of the `menuconfig` configuration file.)



> Personally, I think of DNA as being like the Linux kernel codebase

oh my god would you shut up already



to the kernel developer everything is a kernel


I'm not a kernel developer!

The Linux kernel is just a much closer analogy than your average piece of software would be, because the Linux kernel actually has this distinct step that generates a standalone build config file that later build steps read.

Most regular software build infrastructure (autoconf, cmake, etc) just directly "burns in" any passed-in build config as generated code, without any intermediary file storing the config itself — which is a very different and not-very-analogous process. (That'd be more like if our epigenome was an extra chromosome of DNA built up during development!)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: