A blog for kernel development

Amit Kumar free.amit.kumar at gmail.com
Thu Mar 10 20:15:50 EST 2022


Hi,
Thank you for your replies.
I am just laying the foundation. After a couple of weeks, I will start
posing about the Linux kernel on my blog.
I am also planning to give online Linux kernel training after some
time. This might be free.
So, keep in touch.

Regards,
Amit Kumar

On Thu, Mar 10, 2022 at 10:47 PM Rogério Valentim Feitoza da Silva
<rogerio.silva3920 at gmail.com> wrote:
>
> On Thursday, 10 March 2022, Amit Kumar <free.amit.kumar at gmail.com> wrote:
>>
>> Hi,
>> Your mail is very inspirational.
>> My aspiration of becoming a Linux kernel developer is very old.
>> https://lore.kernel.org/all/1482241064-7504-1-git-send-email-free.amit.kumar@gmail.com/
>> I used to be a Java developer. Due to my personal problems, I have
>> been distracted for a long time from my career.
>> Now, I am back in my career and decided to give a try again to my
>> aspirations. I want to create such a blog that lead a newbie step by
>> step in becoming a Linux kernel developer.
>> So if Linux is written entirely in C and C programs everytime take
>> main function right, okay where is main function of kernel?
>> A kernel runs in a freestanding environment i.e. there is no libc
>> available. In other words, kernel runs on the bare metal, we use
>> assembly language and linker script to set up everything on our own.
>> https://elixir.bootlin.com/linux/v5.17-rc7/source/init/main.c#L927
>> Last but not least, Robotics is on my radar.
>>
>> Regards,
>> Amit Kumar
>>
>>
>> On Thu, Mar 10, 2022 at 7:38 AM Ozgur Kara <ozgur at goosey.org> wrote:
>> >
>> >
>> >
>> > 10.03.2022, 04:30, "Amit Kumar" <free.amit.kumar at gmail.com>:
>> >
>> > Hi,
>> >
>> >
>> > Hello,
>> >
>> > maybe if you want to be a kernel developer you should go to some reference sources before that.
>> >
>> > Really Important: The C Programming Language
>> >
>> > 1. Understanding Linux Kernel (I/O and Process Management
>> > 2. Understanding Memory Addressing
>> > 3. Understanding Processes
>> > 4. Understanding Intterupts
>> > 5. Understanding Timing and Clock
>> > 6. Kernel Address Space
>> > 7. Kernel Namespaces
>> > 8. System Calls
>> > 9. Signals
>> >
>> > A) Linux Device Drivers
>> >
>> > 1. Module
>> > 2. Communication
>> > 3. Buffer Character and Blocks
>> > 4. Pooling
>> > 5. User Space and Kernel Space
>> > 6. Learn Linux kernel header file
>> >
>> > B) Kernel Internals
>> >
>> > 1. Boot Loader (Booting)
>> > 2. Virtual File Systems
>> > 3. Caching and Paging
>> > 4. Task Structure
>> > 5. Scheduler
>> > 6. Queue
>> > 7. File Structure
>> > 8. IPC
>> > 9. Synronization
>> > 10. Data Types in the kernel
>> > 11. PCI and USB
>> > 12. DMA
>> >
>> > so as soon as you know these you are already in an active kernel developer mode but you probably have to be very interested in hardware. So the Linux kernel is not just software and almost all developers strive for hardware compatibility.
>> >
>> > Operating System standards (POSIX) are already largely complete on Linux and you can bid and join workgroups for porting a new software solution for example a new filesystem.
>> >
>> > Regardless of your hardware knowledge and C knowledg will be declared you a "developer" and for example i dont even know most of them and i have been using Linux for many years and sometimes i even heard words when my C skills were not enough they fired me from there :)
>> >
>> > but don't be discouraged by it, its good keyword:
>> >
>> > "Just For Fun"
>> >
>> > yes, do everything to be fun and learn. Now download a linux kernel, unzip it and examine source codes.
>> > Check out inside Documents and then open kernel menu and play with some changes and try to compile.
>> >
>> > if you dont get an error, boot and run from new kernel and test. in this case, learn bootloader, initramfs and actuall real kernel file where is it and what is size for example?
>> >
>> > An example question:
>> >
>> > So if Linux is written entirely in C and C programs everytime take main function right, okay where is main function of kernel? :)
>> >
>> > Good Luck and always include your research on these in your blog.
>> > Regards
>> >
>> > zgur
>> >
>> >
>> > https://blog.freeark1.tv/2022/03/a-blog-for-linux-kernel-development.html
>> >
>> > I am thinking of sharing everything which will lead a normal
>> > application developer to become a Linux kernel developer. This will be
>> > just my journey journal to become a Linux kernel developer. Please,
>> > feel free to share your views so that I can serve the purpose.
>> >
>> > Regards,
>> > Amit Kumar
>> >
>> > On Sat, Mar 5, 2022 at 8:55 AM Amit Kumar <free.amit.kumar at gmail.com> wrote:
>> >
>> >
>> >  Hi,
>> >  I have started this mail thread to interact with other kernel
>> >  learners. I am also running a blog for stuff related to Linux kernel
>> >  development.
>> >  https://blog.freeark1.tv
>> >  When a new post will appear on this blog I'll mail it on this thread.
>> >  Soon I'll start posting about kernel development.
>> >
>> >  Regards,
>> >  Amit Kumar
>>
>> _______________________________________________
>> Kernelnewbies mailing list
>> Kernelnewbies at kernelnewbies.org
>> https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>
> Userspace applications also run on bare metal, but they run on user mode (in x86 that's ring 3) and need the kernel's system call interface (in x86 that's the 129th CPU interrupt, called using "int 0x80" or "int 128", and in ARM, the SWI instruction is used) to do kernel-only tasks such as file I/O, process management and networking.



More information about the Kernelnewbies mailing list