Learn about linux kernel development robert love, we have the largest and most updated linux kernel development robert love information on alibabacloud.com
2003-12-21-Robert lovelinux Kernel
An interview conducted by Alain buret
Fosdem-First and traditional Question: Please present yourself...
Robert love-My name is Robert love. I live in Gainesville, Florida, USA and work on the
/PRINTK (can be viewed or modified)/******* symbol symbols Each module relies on the example *****/--------/********hello.c*********/----#include #include Module_license ("GPL");Module_author ("Junroc Jinx");Module_description ("Hello,world module!");Module_alias ("A simple Modle test");extern int Add_integar (int a,int b);extern int Sub_integar (int a,int b);static int __init Hello_init (){int res = Add_integar (n);return 0;}static void __exit Hello_exit (){int res = Sub_integar (2,1);}Module_i
DMESG can see the last line more:[2333.481131] Goodbye world ...This is exactly the "Goodbye World ..." printed in the First_drv_exit function, and the same principle as the Insmod First_drv.ko, when the Rmmod First_drv.ko is executed, it is equivalent to calling First_ Module_exit (First_drv_exit) in drv.c, and then calls the First_drv_exit function to print out the "Goodbye World ..." message.In fact, Ubuntu each time only the driver module without license issued a warning printing informatio
Linux Kernel development-Process Control and Linux kernel development process
This chapter mainly analyzes the definition, status, data structure, and other concepts of processes from the perspective of code.
Process Definition
A
Features of Linux kernel development
Compared with applications in a user spaceProgramThere are many differences in development and kernel development. The most important differences include:
1) The C library cannot be accesse
Linux Kernel development-process scheduling and Linux kernel Process Scheduling
This section briefly introduces the knowledge about process scheduling in kernel development.
What is
[dedicated to learning in depthLinuxDevelopment of Netizens] LinuxA concise Guide to application development to kernel development. Preface, Linux/unix Community of the section is not lively, novice too many, master too busy, I put myself this several years of the process of Linux
Before trying kernel development, you need to have a general understanding of the kernel. Main Content: Obtain the kernel source code. The kernel source code is structured and compiled. kernel
Http://blogold.chinaunix.net/u3/101649/showart.php? Id = 2073912
Follow these steps to draw the following conclusions:
Copy Linux kernel from 0x00060000 to 0x30008000, size = 0x00500000... DoneZimage magic = 0x016f2818Setup Linux parameters at 0x30000100Linux Command Line is: "noinitrd root =/dev/mtdblock3 init =/linuxrc console = ttysaC0"Machine Type = 1999N
Communication code
Kernel
A core subsystem such as a scheduler
Lib
Same kernel function
Mm
Memory management subsystem and VMS
Net
Network subsystem
Samples
Example, demo code
Scripts
Scripts used to compile the kernel
Security
Yang Chinese translator: Jong Triplex Chung Chen Qi Maggie Chen Cong Wang Cong The following is the text---------------------------------------------------------------------How to participate in Linux kernel development---------------------This is the ultimate secret to clean sweep about how to participate in Linux
in our daily life that requires root to be deleted.During the installation of the Linux kernel, it is important to note that to use the Linux GUI you need to download and install QT.Summary: Android porting is primarily a Linux kernel migration.
structure used by the kernel timer (different kernel timing events are connected in the form of a doubly linked list):struct Timer_list {struct list_head entry;//list header unsigned long expires;//delay time struct tvec_base *base;void (*function) (uns igned long); The target function is called unsigned Long data when the timing time arrives; The data that the target function carries ...};
Init_t
Loader to do two things, let's start with the first item, load the kernel into memory:1. Load the kernel into memory.2. Jump into protected mode.When you first compile a no-kernel:NASM Boot.asm-o Boot.binNASM Loader.asm-o Loader.binDD if=boot.bin of=a.img bs=512 count=1 conv=notruncsudo mount-o loop a.img/mnt/hgfs/sudo cp loader.bin/mnt/hgfs/-Vsudo umount/mnt/hgfs/The results of the operation are as follows
Linux Kernel series-10. Operating System Development kernel HelloWorld, linuxhelloworld
A. Let's first try assembly programming in Linux. For details, refer to the code.
[Section. data]; data in strHellodb "Hello, world! ", 0 AhSTRLENequ $-strHello [section. text]; Code in t
]; Code in this global _start; We must export the _start to allow the linker to identify the global myprint; Export this function in order for BAR.C to use _start:pushdword [num2nd]; '. Pushdword [num1st]; | Callchoose; | Choose (num1st, num2nd); Addesp, 8; /MOVEBX, 0moveax, 1; sys_exitint0x80; system calls; void Myprint (char* msg, int len) Myprint:movedx, [ESP + 8]; LENMOVECX, [ESP + 4]; MSGMOVEBX, 1moveax, 4; sys_writeint0x80; System call RET1. Because the function myprint () is used in bar
Basic concepts
1. A linked list is a commonly used data structure that passes through pointers
Connect a series of data nodes into a single data chain.
Phase
For the array, the linked list has a better dynamic nature, and establishes
Linked list without prior knowledge of the total amount of data, you can randomly
Allocate space that can be efficiently in any bit of the list
Inserts or deletes data in real time.
2. The cost of the linked list is mainly
is the order of access and the loss of
"Linux device Driver development in detail: Based on the latest Linux 4.0 kernel" China-pub today on-line into the pre-sale stage: http://product.china-pub.com/4733972650) this.width=650; "src=" Http://s3.51cto.com/wyfs02/M00/71/30/wKiom1XISFmwMoxqABlXLgvpEio656.jpg "title=" Linux
Linux driver development kernel module compilation-Makefile getting started tutorial, driver development makefile
I. Module Compilation
In the previous kernel compilation, we mentioned that driver compilation is dividedStatic CompilationAndDynamic CompilationStatic compilat
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.