Skip to main content

Learning Linux start up

Linux kernel can be very intimidating and I am still struggling to
catchup with the code. I was fascinated by list.h that gives an
implementation of a generic linked list merely using macros! :) I was
helped through the process management by a colleague - a good place to
start. I loved the bit on scheduling and the neat tricks used there. A
lot of people wud advise u to join the lkml mailing list but it would be
good to know something so that u can understand the exchanges there.
kernel newbies is a better place to be.

Do it in order
1. get yourself a copy of *Linux Kernel Development by Robert
Love
*. It is a very good place to start and will briefly discuss code
snippets to get you started and clears the concepts very well.

2 start working on *Linux Device Drivers (LDD) by Alessandro
Rubini
* (available online and helps since u can use while coding) soon
after or in parallel. The coding examples in this book are a must!!!

3. Try *Understanding the Linux Kernel by Bovet* - the latest
edition and it is pretty detailed if you are interested to that level.

The most important link I found was

Best link to get started
off! A good site for other stuff as well


Boot up process

Another article on boot process

Linux Init process

Differnec between 2.6 and 2.4

Finally I wud like to share the most interesting link on this subject -
not useful technically but just to know that a Doctor turned into a
hacker merely looking at Kernel code (he did not know C!!!) and also
delivered patches!!!

http://kerneltrap.org/node/465
kernel developer Con

Comments

Popular posts from this blog

Dotnet, .Net 3.5, 2.0, C# Interview Questions

Few questions on dotnet, C# 2.0, 3.5 On Object oriented concepts 1)What is inheritance with e.g 2)What is polymorphism -function overloading -Function overriding -virtual keyword use -Static keyword and use -Abstract classes -Interface -Object 3)What is threading and how do we use in realtime application(cognizant) 4)What is threadpooling, lock, monitor(write code sample) 5)Architecture of current project 6)Session state, diffrent types of state management. 7)What is Application_Start, how it works. 8)Type of authentication in asp.net 9)How to configure ASP.NET application. 10) What is Impersonation. 11) What is WebService, WSDL, UDDI, Discovery, asmx files. 12) How to implement WebService and use it. 13) When to use WebServices. 14) WPF, how to implement(BOA) 15) Testing concvepts. 16) Test attributes 17) Flow of Automation Test Method execution 18) Features of dotnet 3.5 19) CLR, garbage collection 20) Finally block 21) Manifest, Metadata, MSIL 22) Assemblies, Type of assemblies, str...

Linux SMB write performance With Simple Tips

SMB write performance can be increased by Tuning the buffer cache. The secret to good performance is to keep as much of the data in memory for as long as is possible. Writing to the disk is the slowest part of any filesystem. If you know that the filesystem will be heavily used, then you can tune this process for Linux Samba. writing out dirty blocks to the disk until the filesystem buffer cache is 80 percent full (80). default is 40%, source = http://tldp.org/LDP/solrhe/Securing-Optimizing-Linux-RH-Edition-v1.3/chap29sec287.html by writing echo 80 > /proc/sys/vm/dirty_ratio I am getting around 2MB increase while write operation, tested in Xp. I have tried with this single option, as the ref source is for linux 2.2 and we are using 2.6 kernel. we can try out Linux General Optimization suggested at http://tldp.org/LDP/solrhe/Securing-Optimizing-Linux-RH-Edition-v1.3/gen-optim.html Tried with smb.conf, I am getting around 1MB gain while read and write. socket options = TCP_NODELAY I...

Creating & Working On a CVS Branch Example Usage

Example usage OF Creating & Working On a CVS Branch Tried working hard on CVs commands, here is simple example for working in branch using CVS, CVS is becoming nomore use with everyone opting for SVN, still CVS usages is wide as it is old, Lets start with CVS commands to create a branch This is done with two commands, cvs tag -b release-1 //create branch cvs update -j release-1 //merge the changes in main tot Lets see with simple example Creating and working on a branch for the existing kernel source. #cvs co kernel/linux-2.6.26 #cd kernel/linux-2.6.26/ #cvs tag -b release-1 First we created a branch to the kernel source, as we are doing first release. Continue your development work for second release. After some time, reported a problem in the first release. So you need to Get the kernel source code of first release. #cvs co -r release-1 kernel/linux-2.6.24 and fix the problems Now If you want to merge these changes in to main trunk. #cvs update -j release-1 And you are done with ...