On Friday, 22 March 2013 19:17:24 UTC+1, Kristopher Micinski wrote:
>
> I did kernel development when the big kernel lock existed, but my 
> intuition was that that was just a bad idea to begin with :-)..  [...]
>

My point was to look at the *migration* process from BKL to the current 
structure. (And how long that took.)
 

> I'm not proposing a single solution, just looking for current problems.
>
Mhm. Your original question was

I understand that Android maintains a different version of the kernel for 
> each specific platform.
> I was wondering why this is the case, and why the code isn't simply 
> offered as a single kernel with a 
> configuration set for relevant devices? 
> Is it simply that modifying the kernel's build system is a pain, or is 
> there some deeper programming problem? 
>
 ...and I tried to show a few reasons why things are as they are. Sorry if 
I spun away from the core.

BTW. my own very small amount of experience with the kernel comes from some 
work to consolidate Linux kernels and an Android root file systems for the 
demonstration platforms we need in-house (all ARM-based). I hoped to be 
able to re-use a single kernel and root file system for all of them.
Part of the work involved porting platform-specific changes from an older 
kernel version to the slightly newer one used for the other two platforms. 
Not pretty, it took me quite some time, but I learned a lot.
[We basically froze the trial when we learned that the platform-specific 
graphics acceleration for Panda required too many incompatible changes. (A 
variant based on a pure framebuffer would probably be possible. But slow.)]

There are multiple proposals to do this: software product lines (static 
> analysis and modular testing has been developed in a composable way), 
> feature oriented programming, aspect oriented programming.  Each of these 
> basically treats features as a first class feature of the language. 
>

Yes, a lot of useful methodologies exist. Very interesting stuff for 
academic research.

For me the litmus test is: is something usable by real-world companies for 
developing real-world products? 

It will be much easier to promote a solution that gives companies a 
"competitive advantage", than a solution that is academically "the right 
thing to do", but has negative impact for the current bread-winning project.

Maybe my focus s too much on application than on purely academic research. 
Sorry.

> This scheme minimizes the time spent by the individual developer to 
> support her specific SoC or eval board. 
>
> Right, this is basically what I've done in the past, and what I assumed 
> was done by vendors at large. 
>
Any ideas how to change this? Because that's what is urgently needed. I 
hope someone will find a solution.

Linus' intervention has moved a lot in the ARM space. Maybe the codebase 
maintainers just need a "code of conduct" or something. The problem I see 
is that companies need to develop as fast as possible, but the kernel 
maintainers need everything to keep as clean and maintainable as possible. 
These are conflicting goals.
 

> I was wondering what the most difficult parts of kernel development were, 
>
...for me these parts are the human factor, i.e. try and move people "to do 
the right thing". :-)

but I'm starting to think that it's just that most people who do kernel 
> development are inexperienced
>
...hopefully not. OK, there will always be newbies who want to call 
themselves "kernel hacker", but usually they don't stay long in kernel 
development - too much work, too little to show off.

Or what do your refer to? "Inexperienced" for their specific SoC structure? 
"Inexperienced" in the newest {buzzword*} technologies? "Inexperienced" in 
kernel development as a whole?
 

> and the economics [punish developers for] correctly integrating changes. 
>
..yup! Even a seasoned developer can be forced to do a "quick-and-dirty" 
implementation in order to meet a product deadline. To keep the company in 
business. Or just to keep being employed and feed her family.

Good luck!  -H

-- 
-- 
unsubscribe: android-kernel+unsubscr...@googlegroups.com
website: http://groups.google.com/group/android-kernel
--- 
You received this message because you are subscribed to the Google Groups 
"Android Linux Kernel Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to android-kernel+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to