diff options
| author | Arturs Artamonovs <dos21h@gmail.com> | 2023-12-22 10:02:03 +0000 | 
|---|---|---|
| committer | Arturs Artamonovs <dos21h@gmail.com> | 2023-12-22 10:02:03 +0000 | 
| commit | b4faa70d6f59d3c6d426ae052f2a53ef12648ce9 (patch) | |
| tree | 22893c1fb68bfd8246c63efdb293d9d5120feec0 /md/notes | |
| parent | 660438d0f123d87c04dea1eef26a4167123e3390 (diff) | |
| download | md-content-b4faa70d6f59d3c6d426ae052f2a53ef12648ce9.tar.gz md-content-b4faa70d6f59d3c6d426ae052f2a53ef12648ce9.zip  | |
New topic order, add few not finished posts
Diffstat (limited to 'md/notes')
| -rw-r--r-- | md/notes/kernel/create_sysfs_entry.md | 16 | ||||
| -rw-r--r-- | md/notes/kernel/irq_handler.md | 64 | ||||
| -rw-r--r-- | md/notes/kernel/topics.md | 27 | 
3 files changed, 100 insertions, 7 deletions
diff --git a/md/notes/kernel/create_sysfs_entry.md b/md/notes/kernel/create_sysfs_entry.md new file mode 100644 index 0000000..2af3cca --- /dev/null +++ b/md/notes/kernel/create_sysfs_entry.md @@ -0,0 +1,16 @@ +title:Create sysfs entry +keywords:kernel,linux,threads + +# Create sysfs entry + +## Starting point + + +## Links + +https://man7.org/linux/man-pages/man5/sysfs.5.html   +https://embetronicx.com/tutorials/linux/device-drivers/sysfs-in-linux-kernel/   +https://elixir.bootlin.com/linux/v6.1.64/source/include/linux/sysfs.h   +https://docs.kernel.org/filesystems/sysfs.html   + + diff --git a/md/notes/kernel/irq_handler.md b/md/notes/kernel/irq_handler.md new file mode 100644 index 0000000..a4ce3cd --- /dev/null +++ b/md/notes/kernel/irq_handler.md @@ -0,0 +1,64 @@ +title:IRQ handler +keywords:kernel,linux,irq + +# IRQ handler + +Lets extend hello world driver.  + +## Starting point + +__Makefile__ +```Makefile +obj-m += procfs_entry.o + +KDIR ?= /lib/modules/$(shell uname -r)/build + +all: +	make -C $(KDIR) M=$(PWD) modules + +clean: +	make -C $(KDIR) M=$(PWD) clean +``` + +__procfs_entry.c__ +```c +#include <linux/module.h>  /* Needed by all modules */ +#include <linux/kernel.h> + +int procfs_entry_init( void ) +{ +	printk(KERN_DEBUG "Hello Procfs!\n"); +	return 0; +} + +void procfs_entry_exit( void ) +{ +	printk(KERN_DEBUG "Exit Procfs!\n"); +} + +module_init( procfs_entry_init ); +module_exit( procfs_entry_exit ); + +MODULE_LICENSE("GPL"); +``` + + + +## List of procfs functions used + +| Function name | Note | +|---|---| +| proc_mkdir | Create procfs directory | +| proc_create | Create procfs file | +| proc_remove | Remove procfs entry | + +## Final result + + + +## Links + + + + + diff --git a/md/notes/kernel/topics.md b/md/notes/kernel/topics.md index b959bad..86ce50c 100644 --- a/md/notes/kernel/topics.md +++ b/md/notes/kernel/topics.md @@ -3,20 +3,33 @@ keywords:blog,projects  # -Linux kernel programming topics +Linux kernel programming topics, mostly for those who have some programming +experience and linux command line expertise. Making notes on all fundamental  +kernel API's.   ## Topic +### Basics +  [Compile kernel](/writeup/compile_linux_kernel.md)    [Hello world driver](/writeup/kernel_hello_world.md)   -<!-- DMA programming   --> -<!--[Create thread](/notes/kernel/create_thread.md)  --> -<!-- Sysfs  --> +[Create thread](/notes/kernel/create_thread.md)   +[Sysfs](/notes/kernel/create_sysfs_entry.md)     [Procfs](/notes/kernel/create_procfs_entry.md)   +[User mode helpers](/notes/kernel/usermode_helper.md)   +  <!-- Ramfs   --> -<!-- Systemcalls   --> +<!-- Add new syscall   -->  <!-- Write files to user space   -->  <!-- Read files from user space   --> +<!-- Create character device --> +<!-- Create netfilter firewall --> +<!-- DMA programming   --> + +### Intermediate  + +[Kernel /dev/hwrng](/writeup/kernel_dev_hwrng.md)    <!-- Netlink -->   -<!--[User mode helpers](/notes/kernel/usermode_helper.md)  --> -[Kernel /dev/hwrng](/writeup/kernel_dev_hwrng.md) + +### Deep into kernel +  | 
