{"id":27129214,"url":"https://github.com/gotz1480/linux-char-driver-tutorial","last_synced_at":"2025-04-07T19:22:27.436Z","repository":{"id":125834360,"uuid":"598449220","full_name":"gotz1480/linux-char-driver-tutorial","owner":"gotz1480","description":"Linux char driver tutorial","archived":false,"fork":false,"pushed_at":"2023-02-10T14:33:48.000Z","size":19,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-04T13:13:19.811Z","etag":null,"topics":["char-drivers","scull"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gotz1480.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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,"publiccode":null,"codemeta":null}},"created_at":"2023-02-07T06:01:48.000Z","updated_at":"2024-07-03T05:22:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"5d673f3f-e39b-4799-ba78-5d8709b1e7e4","html_url":"https://github.com/gotz1480/linux-char-driver-tutorial","commit_stats":null,"previous_names":["gotz1480/linux-char-driver-tutorial"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gotz1480%2Flinux-char-driver-tutorial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gotz1480%2Flinux-char-driver-tutorial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gotz1480%2Flinux-char-driver-tutorial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gotz1480%2Flinux-char-driver-tutorial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gotz1480","download_url":"https://codeload.github.com/gotz1480/linux-char-driver-tutorial/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247713464,"owners_count":20983718,"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":["char-drivers","scull"],"created_at":"2025-04-07T19:22:26.585Z","updated_at":"2025-04-07T19:22:27.408Z","avatar_url":"https://github.com/gotz1480.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# linux-char-driver-tutorial\n\nImplementation of a SCULL driver (Simple Character Utility for Loading Localities) example of Linux kernel development.\n\n## Linux Kernel version\n\n5.10.0-21-amd64\n\n## Description\n\nSCULL is an region is memory that the kernel treats as if it was device or memory in device. It is used for learning to write device drivers and is also used for testing simple drivers.\n\n### Datatypes\n\n- `dev_t` (defined in \u003clinux/types.h\u003e) is used to hold device numbers - both the major and minor parts\n- `const struct file_operations` (defined in \u003clinux/fs.h\u003e) hold the file operations performed on this device\n\n### Commands\n\n - `cat /proc/devices` \u003cbr\u003e\n - `sudo tail -f /var/log/syslog` \u003cbr\u003e\n - `sudo mknod -m 666 /dev/scull c \u003cMAJOR_NUMBER\u003e \u003cMINOR_NUMBER\u003e` \u003cbr\u003e\n - `sudo rm /dev/scull` \u003cbr\u003e\n\n### Testing\n\nAfter loading and creating the device in /dev/, test with `cat /dev/scull` while monitoring with `sudo tail -f /var/log/syslog` for open-read-close and, as root, `echo \"testing\" \u003e /dev/scull` for open-write-close.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgotz1480%2Flinux-char-driver-tutorial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgotz1480%2Flinux-char-driver-tutorial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgotz1480%2Flinux-char-driver-tutorial/lists"}