{"id":4901,"date":"2016-06-05T16:23:29","date_gmt":"2016-06-05T16:23:29","guid":{"rendered":"http:\/\/blog.bachi.net\/?p=4901"},"modified":"2016-06-10T12:53:41","modified_gmt":"2016-06-10T12:53:41","slug":"linux-kernel-development-threads","status":"publish","type":"post","link":"https:\/\/blog.bachi.net\/?p=4901","title":{"rendered":"Linux Kernel Development: Threads"},"content":{"rendered":"<p><a href=\"https:\/\/lwn.net\/Articles\/65178\/\">Kernel threads made easy<\/a><br \/>\n<a href=\"http:\/\/stackoverflow.com\/questions\/5280693\/kernel-thread-implementation\">Kernel Thread implementation<\/a><\/p>\n<h3>ioctl<\/h3>\n<p><a href=\"http:\/\/www.linuxjournal.com\/article\/6908\">Controlling Hardware with ioctls<\/a><br \/>\n<a href=\"http:\/\/stackoverflow.com\/questions\/15807846\/ioctl-linux-device-driver\">IOCTL Linux device driver<\/a><br \/>\n<a href=\"http:\/\/www.makelinux.net\/ldd3\/chp-6-sect-1\">ioctl<\/a><br \/>\n<a href=\"http:\/\/www.tldp.org\/LDP\/lkmpg\/2.4\/html\/x856.html\">7.1. Talking to Device Files (writes and IOCTLs)}<\/a><\/p>\n<h3>Example Source Code<\/h3>\n<p><a href=\"http:\/\/v4l.videotechnology.com\/dwg\/kernelthreads\/kernelthreads.html\">Linux Kernel Threads in Device Drivers<\/a><br \/>\n<a href=\"http:\/\/www.cs.usfca.edu\/~cruse\/cs326\/freydemo.c\">freydemo.c<\/a><\/p>\n<h3>Martin Frey<\/h3>\n<p><a href=\"https:\/\/www.xing.com\/profile\/Martin_Frey18\">Martin Frey<\/a><\/p>\n<h3>Swiss-TX<\/h3>\n<p><a href=\"https:\/\/www2.ife.ee.ethz.ch\/music\/\">ETHZ: Swiss-Tx<\/a><br \/>\n<a href=\"http:\/\/dit-archives.epfl.ch\/FI98\/fi-6-98\/6-98-page1.html\">EPFL: Swiss-TX<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kernel threads made easy Kernel Thread implementation ioctl Controlling Hardware with ioctls IOCTL Linux device driver ioctl 7.1. Talking to Device Files (writes and IOCTLs)} Example Source Code Linux Kernel Threads in Device Drivers freydemo.c Martin Frey Martin Frey Swiss-TX ETHZ: Swiss-Tx EPFL: Swiss-TX<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-4901","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/4901","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4901"}],"version-history":[{"count":4,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/4901\/revisions"}],"predecessor-version":[{"id":4915,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/4901\/revisions\/4915"}],"wp:attachment":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4901"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4901"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4901"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}