{"id":20251934,"url":"https://github.com/jillmpla/linuxkernelproject","last_synced_at":"2025-03-03T16:41:26.443Z","repository":{"id":130358819,"uuid":"225001211","full_name":"jillmpla/linuxkernelproject","owner":"jillmpla","description":"A loadable Linux Kernel Module (LKM) that creates a file in /proc and provides read + write functionality.","archived":false,"fork":false,"pushed_at":"2020-08-27T02:14:42.000Z","size":678,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-14T02:47:54.224Z","etag":null,"topics":["kernel","kernel-modules","kernel-space","linux","linux-kernel","linux-kernel-module"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jillmpla.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","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},"funding":{"github":"JMPPMJ"}},"created_at":"2019-11-30T11:21:18.000Z","updated_at":"2023-08-25T13:14:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"90f0520c-7cf1-4461-941b-69d9cfcdc465","html_url":"https://github.com/jillmpla/linuxkernelproject","commit_stats":null,"previous_names":["jillmpla/linuxkernelproject"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jillmpla%2Flinuxkernelproject","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jillmpla%2Flinuxkernelproject/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jillmpla%2Flinuxkernelproject/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jillmpla%2Flinuxkernelproject/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jillmpla","download_url":"https://codeload.github.com/jillmpla/linuxkernelproject/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241702732,"owners_count":20006031,"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":["kernel","kernel-modules","kernel-space","linux","linux-kernel","linux-kernel-module"],"created_at":"2024-11-14T10:13:56.306Z","updated_at":"2025-03-03T16:41:26.423Z","avatar_url":"https://github.com/jillmpla.png","language":"C","readme":"\u003cb\u003eA loadable Linux Kernel Module (LKM) that creates a \"pseudo\"-file in /proc and provides read + write functionality for a message on the current development state of the running kernel.\u003c/b\u003e\n\nFocus was placed on learning about and understanding /proc, how to communicate between user-space and kernel-space, as well as how to load and unload kernel modules while the kernel is running.\n\n***\n\n\u003cb\u003eProject Overview:\u003c/b\u003e\n\n- The proc file system is a virtual file system created when the system boots and destroyed at system shut down. It contains information about various processes running and is generally considered the main kernel information source about the kernel while the kernel is running.\n- Linux kernel supports loadable device drivers / kernel modules. These can be added at runtime and can be added without recompiling the entire kernel. They are particularly useful when developing for the kernel and debugging the kernel while the kernel is live.\n- After building the C program available in this GitHub, it can be loaded to create a new \"pseudo\"-file under /proc.\n- Current developer / development status can be written and read via the command-line / user-space, helping to keep track of what part of the kernel was last worked on, when it was last worked on, and who last worked on it.\n- \u003ci\u003eProject can easily be repurposed to keep track of other information relevant while the Linux OS/kernel is running.\u003c/i\u003e\n\nPlease view powerpoint (\u003cb\u003eLinux.pptx\u003c/b\u003e file in this GitHub) for further details on the project.\n\n***\n\n\u003cb\u003eTo Use on a Linux machine:\u003c/b\u003e\n- download \u003ci\u003edevstate.c\u003c/i\u003e and \u003ci\u003eMakefile\u003c/i\u003e from folder \"Code\" in this GitHub\n- \u003cb\u003esudo -s\u003c/b\u003e - to stay in superuser mode\n- \u003cb\u003ecd\u003c/b\u003e to where the \u003ci\u003edevstate.c\u003c/i\u003e and accompanying \u003ci\u003eMakefile\u003c/i\u003e are located\n- run \u003cb\u003emake\u003c/b\u003e command\n- \u003cb\u003einsmod devstate.ko\u003c/b\u003e - load the module into the kernel\n- \u003cb\u003elsmod\u003c/b\u003e - list kernel modules that are currently running, look for devstate at the top\n- \u003ci\u003eTo Write: \u003c/i\u003e\u003cb\u003eecho \"Date:12/01/19, Time:12:00PM, Working on:/proc file system, Author:JPlatts\" \u003e\u003e /proc/devstate\u003c/b\u003e - updates/overwrites previous development state message\n- \u003ci\u003eTo Read: \u003c/i\u003e\u003cb\u003ecat /proc/devstate\u003c/b\u003e - get current development state message\n- \u003cb\u003ermmod devstate\u003c/b\u003e - remove module from kernel\n\n***\n\n\u003cb\u003eTools Used:\u003c/b\u003e\n\n\u003ca href=\"https://www.virtualbox.org/\" target=\"_blank\"\u003eVirtual Box\u003c/a\u003e\n\nLinux distribution / kernel - \u003ca href=\"https://linuxmint.com/\" target=\"_blank\"\u003eLinux Mint 19.2 Cinnamon\u003c/a\u003e, kernel: \u003ca href=\"https://www.kernel.org/\" target=\"_blank\"\u003e4.15.0-54-generic\u003c/a\u003e, x86-64 architecture.\u003c/b\u003e\n\n\u003ca href=\"https://github.com/torvalds/linux\" target=\"_blank\"\u003eLinux Kernel Documentation\u003c/a\u003e\n","funding_links":["https://github.com/sponsors/JMPPMJ"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjillmpla%2Flinuxkernelproject","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjillmpla%2Flinuxkernelproject","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjillmpla%2Flinuxkernelproject/lists"}