{"id":24072404,"url":"https://github.com/priyanshscpp/ece3406-linux-kernel-modules-os","last_synced_at":"2025-02-26T22:14:00.572Z","repository":{"id":261949647,"uuid":"841910383","full_name":"priyanshscpp/ECE3406-Linux-Kernel-Modules-OS","owner":"priyanshscpp","description":"Linux kernel modules to learn the basic concepts of kernel programming.","archived":false,"fork":false,"pushed_at":"2024-11-09T12:59:31.000Z","size":7,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-09T17:17:24.417Z","etag":null,"topics":["c","drivers","kernel","operating-system"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/priyanshscpp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-13T09:40:06.000Z","updated_at":"2024-11-09T12:59:34.000Z","dependencies_parsed_at":"2024-11-09T13:38:59.943Z","dependency_job_id":"8b1e5960-960a-4a3e-a377-2ba0a01d8a8e","html_url":"https://github.com/priyanshscpp/ECE3406-Linux-Kernel-Modules-OS","commit_stats":null,"previous_names":["priyanshuhbti/ece3406-linux-kernel-modules-os","priyanshscpp/ece3406-linux-kernel-modules-os"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/priyanshscpp%2FECE3406-Linux-Kernel-Modules-OS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/priyanshscpp%2FECE3406-Linux-Kernel-Modules-OS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/priyanshscpp%2FECE3406-Linux-Kernel-Modules-OS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/priyanshscpp%2FECE3406-Linux-Kernel-Modules-OS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/priyanshscpp","download_url":"https://codeload.github.com/priyanshscpp/ECE3406-Linux-Kernel-Modules-OS/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240941542,"owners_count":19882063,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","drivers","kernel","operating-system"],"created_at":"2025-01-09T17:17:33.769Z","updated_at":"2025-02-26T22:14:00.546Z","avatar_url":"https://github.com/priyanshscpp.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Linux Kernel Modules\n\n[![HitCount](http://hits.dwyl.com/Arna-Maity/Linux-Kernel-Modules.svg)](http://hits.dwyl.com/Arna-Maity/Linux-Kernel-Modules)\n\nThis repo contains some very basic linux kernel modules to illustrate the basic concepts of kernel programming.\n\nReference: [The LKM programming Guide](https://www.tldp.org/LDP/lkmpg/2.6/lkmpg.pdf).\n\n1. Basic Hello World Module.\n2. Usage of __init \u0026 __exit macros.\n3. Module Licensing and Documentation.\n4. Module Parameters.\n5. Simple Character Device Driver.\n6. /proc File System Module.\n7. /proc using Standard File System.\n8. Managing procfs with seq_file.\n9. IOCTL (Input/Output ConTroL).\n\n### Tracing syscalls while executing a program:\n`strace \u003cprg-name\u003e \u003cargs\u003e`\n\n### Some useful StackOverflow Threads:\n1. [proc_root](https://stackoverflow.com/questions/2531730/linux-kernel-module-creating-proc-file-proc-root-undeclared-error)\n2. [Using newer Kernel APIs](https://devarea.com/linux-kernel-development-creating-a-proc-file-and-interfacing-with-user-space/#.XtSHRhbhWUk)\n3. [create_proc_entry() alternative](https://stackoverflow.com/questions/18565381/what-is-alternative-of-create-proc-entry)\n\n### Courses on Basic Linux Kernel Development\n\n1. [A Beginners Guide to Linux Kernel Development](https://training.linuxfoundation.org/training/a-beginners-guide-to-linux-kernel-development-lfd103/) (Linux Foundation)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpriyanshscpp%2Fece3406-linux-kernel-modules-os","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpriyanshscpp%2Fece3406-linux-kernel-modules-os","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpriyanshscpp%2Fece3406-linux-kernel-modules-os/lists"}