{"id":"https://openalex.org/W2973038336","doi":"https://doi.org/10.1109/ancs.2019.8901892","title":"The Case for Writing Network Drivers in High-Level Programming Languages","display_name":"The Case for Writing Network Drivers in High-Level Programming Languages","publication_year":2019,"publication_date":"2019-09-01","ids":{"openalex":"https://openalex.org/W2973038336","doi":"https://doi.org/10.1109/ancs.2019.8901892","mag":"2973038336"},"language":"en","primary_location":{"id":"doi:10.1109/ancs.2019.8901892","is_oa":false,"landing_page_url":"https://doi.org/10.1109/ancs.2019.8901892","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"2019 ACM/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS)","raw_type":"proceedings-article"},"type":"preprint","indexed_in":["arxiv","crossref","datacite"],"open_access":{"is_oa":true,"oa_status":"green","oa_url":"https://arxiv.org/pdf/1909.06344","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5075627663","display_name":"Paul Emmerich","orcid":null},"institutions":[],"countries":[],"is_corresponding":true,"raw_author_name":"Paul Emmerich","raw_affiliation_strings":["Technical University ot Munich"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Technical University ot Munich","institution_ids":[]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5046097518","display_name":"Simon Ellmann","orcid":null},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Simon Ellmann","raw_affiliation_strings":["Technical University ot Munich"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Technical University ot Munich","institution_ids":[]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5064077600","display_name":"Fabian Bonk","orcid":"https://orcid.org/0000-0001-6805-8776"},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Fabian Bonk","raw_affiliation_strings":["Technical University ot Munich"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Technical University ot Munich","institution_ids":[]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5033786678","display_name":"Alex Egger","orcid":null},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Alex Egger","raw_affiliation_strings":["Technical University ot Munich"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Technical University ot Munich","institution_ids":[]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5030725412","display_name":"Esa\u00fa Garc\u00eda S\u00e1nchez-Torija","orcid":null},"institutions":[{"id":"https://openalex.org/I9617848","display_name":"Universitat Polit\u00e8cnica de Catalunya","ror":"https://ror.org/03mb6wj31","country_code":"ES","type":"education","lineage":["https://openalex.org/I9617848"]}],"countries":["ES"],"is_corresponding":false,"raw_author_name":"Esa\u00fa Garc\u00eda S\u00e1nchez-Torija","raw_affiliation_strings":["Universitat Polit&#x00E8;cnica de Catalunya"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Universitat Polit&#x00E8;cnica de Catalunya","institution_ids":["https://openalex.org/I9617848"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5110010066","display_name":"Thomas G\u00fcnzel","orcid":null},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Thomas G\u00fcnzel","raw_affiliation_strings":["Technical University ot Munich"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Technical University ot Munich","institution_ids":[]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5065794063","display_name":"Sebastian Di Luzio","orcid":null},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Sebastian di Luzio","raw_affiliation_strings":["Technical University ot Munich"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Technical University ot Munich","institution_ids":[]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5006072851","display_name":"Alexandru Obada","orcid":null},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Alexandru Obada","raw_affiliation_strings":["Technical University ot Munich"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Technical University ot Munich","institution_ids":[]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5042120173","display_name":"Maximilian Stadlmeier","orcid":null},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Maximilian Stadlmeier","raw_affiliation_strings":["Ludwig-Maximilians-Universit&#x00E4;t M&#x00FC;nchen"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Ludwig-Maximilians-Universit&#x00E4;t M&#x00FC;nchen","institution_ids":[]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5037535096","display_name":"Sebastian Voit","orcid":null},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Sebastian Voit","raw_affiliation_strings":["Technical University ot Munich"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Technical University ot Munich","institution_ids":[]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5060144977","display_name":"Georg Carle","orcid":"https://orcid.org/0000-0002-2347-1839"},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Georg Carle","raw_affiliation_strings":["Technical University ot Munich"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Technical University ot Munich","institution_ids":[]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":11,"corresponding_author_ids":["https://openalex.org/A5075627663"],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":0.0,"has_fulltext":true,"cited_by_count":0,"citation_normalized_percentile":{"value":0.12760628,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":null,"biblio":{"volume":null,"issue":null,"first_page":"1","last_page":"13"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10714","display_name":"Software-Defined Networks and 5G","score":0.9994999766349792,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10714","display_name":"Software-Defined Networks and 5G","score":0.9994999766349792,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T11424","display_name":"Security and Verification in Computing","score":0.9969000220298767,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T12127","display_name":"Software System Performance and Reliability","score":0.9969000220298767,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8221061825752258},{"id":"https://openalex.org/keywords/memory-safety","display_name":"Memory safety","score":0.7641706466674805},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.6967340707778931},{"id":"https://openalex.org/keywords/garbage-collection","display_name":"Garbage collection","score":0.6198174357414246},{"id":"https://openalex.org/keywords/python","display_name":"Python (programming language)","score":0.5253609418869019},{"id":"https://openalex.org/keywords/manual-memory-management","display_name":"Manual memory management","score":0.5075434446334839},{"id":"https://openalex.org/keywords/just-in-time-compilation","display_name":"Just-in-time compilation","score":0.4975006878376007},{"id":"https://openalex.org/keywords/haskell","display_name":"Haskell","score":0.4729326069355011},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.4675302505493164},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.44734737277030945},{"id":"https://openalex.org/keywords/javascript","display_name":"JavaScript","score":0.4368118345737457},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.34955400228500366},{"id":"https://openalex.org/keywords/garbage","display_name":"Garbage","score":0.2876274883747101},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.13850682973861694}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8221061825752258},{"id":"https://openalex.org/C28180684","wikidata":"https://www.wikidata.org/wiki/Q4080983","display_name":"Memory safety","level":3,"score":0.7641706466674805},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.6967340707778931},{"id":"https://openalex.org/C105122174","wikidata":"https://www.wikidata.org/wiki/Q322202","display_name":"Garbage collection","level":3,"score":0.6198174357414246},{"id":"https://openalex.org/C519991488","wikidata":"https://www.wikidata.org/wiki/Q28865","display_name":"Python (programming language)","level":2,"score":0.5253609418869019},{"id":"https://openalex.org/C82810778","wikidata":"https://www.wikidata.org/wiki/Q6752316","display_name":"Manual memory management","level":4,"score":0.5075434446334839},{"id":"https://openalex.org/C76782552","wikidata":"https://www.wikidata.org/wiki/Q110546","display_name":"Just-in-time compilation","level":3,"score":0.4975006878376007},{"id":"https://openalex.org/C2780624054","wikidata":"https://www.wikidata.org/wiki/Q34010","display_name":"Haskell","level":3,"score":0.4729326069355011},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.4675302505493164},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.44734737277030945},{"id":"https://openalex.org/C544833334","wikidata":"https://www.wikidata.org/wiki/Q2005","display_name":"JavaScript","level":2,"score":0.4368118345737457},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.34955400228500366},{"id":"https://openalex.org/C75403996","wikidata":"https://www.wikidata.org/wiki/Q5521979","display_name":"Garbage","level":2,"score":0.2876274883747101},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.13850682973861694}],"mesh":[],"locations_count":4,"locations":[{"id":"doi:10.1109/ancs.2019.8901892","is_oa":false,"landing_page_url":"https://doi.org/10.1109/ancs.2019.8901892","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"2019 ACM/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS)","raw_type":"proceedings-article"},{"id":"pmh:oai:arXiv.org:1909.06344","is_oa":true,"landing_page_url":"http://arxiv.org/abs/1909.06344","pdf_url":"https://arxiv.org/pdf/1909.06344","source":{"id":"https://openalex.org/S4306400194","display_name":"arXiv (Cornell University)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I205783295","host_organization_name":"Cornell University","host_organization_lineage":["https://openalex.org/I205783295"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"text"},{"id":"mag:2973038336","is_oa":true,"landing_page_url":"http://arxiv.org/pdf/1909.06344.pdf","pdf_url":null,"source":{"id":"https://openalex.org/S4306400194","display_name":"arXiv (Cornell University)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I205783295","host_organization_name":"Cornell University","host_organization_lineage":["https://openalex.org/I205783295"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"arXiv (Cornell University)","raw_type":null},{"id":"doi:10.48550/arxiv.1909.06344","is_oa":true,"landing_page_url":"https://doi.org/10.48550/arxiv.1909.06344","pdf_url":null,"source":{"id":"https://openalex.org/S4306400194","display_name":"arXiv (Cornell University)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I205783295","host_organization_name":"Cornell University","host_organization_lineage":["https://openalex.org/I205783295"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":null,"raw_source_name":null,"raw_type":"article-journal"}],"best_oa_location":{"id":"pmh:oai:arXiv.org:1909.06344","is_oa":true,"landing_page_url":"http://arxiv.org/abs/1909.06344","pdf_url":"https://arxiv.org/pdf/1909.06344","source":{"id":"https://openalex.org/S4306400194","display_name":"arXiv (Cornell University)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I205783295","host_organization_name":"Cornell University","host_organization_lineage":["https://openalex.org/I205783295"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"text"},"sustainable_development_goals":[{"display_name":"Quality Education","id":"https://metadata.un.org/sdg/4","score":0.5199999809265137}],"awards":[],"funders":[],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2973038336.pdf","grobid_xml":"https://content.openalex.org/works/W2973038336.grobid-xml"},"referenced_works_count":40,"referenced_works":["https://openalex.org/W29273864","https://openalex.org/W1608999459","https://openalex.org/W1864473657","https://openalex.org/W1979866793","https://openalex.org/W1994926493","https://openalex.org/W2010365467","https://openalex.org/W2011435523","https://openalex.org/W2043548758","https://openalex.org/W2044119008","https://openalex.org/W2072916763","https://openalex.org/W2097889836","https://openalex.org/W2105545278","https://openalex.org/W2105986919","https://openalex.org/W2111734949","https://openalex.org/W2129075596","https://openalex.org/W2134939854","https://openalex.org/W2135446949","https://openalex.org/W2155750235","https://openalex.org/W2156368296","https://openalex.org/W2333828266","https://openalex.org/W2342821505","https://openalex.org/W2418656106","https://openalex.org/W2579461576","https://openalex.org/W2806986292","https://openalex.org/W2887276772","https://openalex.org/W2899375714","https://openalex.org/W2900935390","https://openalex.org/W2901938775","https://openalex.org/W2984027569","https://openalex.org/W3102982213","https://openalex.org/W4240472169","https://openalex.org/W4242878916","https://openalex.org/W4254354095","https://openalex.org/W4254760511","https://openalex.org/W4255737837","https://openalex.org/W6636548729","https://openalex.org/W6636558983","https://openalex.org/W6639197187","https://openalex.org/W6732133682","https://openalex.org/W6756008223"],"related_works":["https://openalex.org/W2984079836","https://openalex.org/W20534961","https://openalex.org/W1594062223","https://openalex.org/W1978680977","https://openalex.org/W2160174747","https://openalex.org/W2915531162","https://openalex.org/W3097336359","https://openalex.org/W2899375714","https://openalex.org/W2787428865","https://openalex.org/W2124565726","https://openalex.org/W2085821234","https://openalex.org/W3112595864","https://openalex.org/W2289095019","https://openalex.org/W2020136418","https://openalex.org/W2810690796","https://openalex.org/W1500555433","https://openalex.org/W2164563754","https://openalex.org/W2789383461","https://openalex.org/W34536026","https://openalex.org/W1488168341"],"abstract_inverted_index":{"Drivers":[0],"are":[1,45,107,184],"written":[2,86],"in":[3,27,41,43,47,75,89],"C":[4,154],"or":[5],"restricted":[6],"subsets":[7],"of":[8,24,32,101,132],"C++":[9],"on":[10],"all":[11],"production-grade":[12],"server,":[13],"desktop,":[14],"and":[15,84,99,120,188],"mobile":[16],"operating":[17],"systems.":[18],"They":[19],"account":[20],"for":[21,59,66,92,177],"66":[22],"%":[23,140,149],"the":[25,67,93,130],"code":[26],"Linux,":[28],"but":[29,114,145,172],"39":[30],"out":[31],"40":[33],"security":[34],"bugs":[35,50],"related":[36],"to":[37,124],"memory":[38],"safety":[39,112,116,133],"found":[40],"Linux":[42],"2017":[44],"located":[46],"drivers.":[48,60],"These":[49],"could":[51],"have":[52],"been":[53],"prevented":[54],"by":[55],"using":[56,102],"high-level":[57],"languages":[58,106,169],"We":[61,96],"present":[62],"user":[63],"space":[64],"drivers":[65],"Intel":[68],"ixgbe":[69],"10":[70],"Gbit/s":[71],"network":[72],"cards":[73],"implemented":[74],"Rust,":[76],"Go,":[77],"C#,":[78],"Java,":[79],"OCaml,":[80],"Haskell,":[81],"Swift,":[82],"JavaScript,":[83],"Python":[85],"from":[87],"scratch":[88],"idiomatic":[90],"style":[91],"respective":[94],"languages.":[95],"quantify":[97],"costs":[98],"benefits":[100],"these":[103],"languages:":[104],"High-level":[105],"safer":[108],"(fewer":[109],"bugs,":[110],"more":[111,141],"checks),":[113],"run-time":[115],"checks":[117],"reduce":[118],"throughput":[119],"garbage":[121,157],"collection":[122],"leads":[123],"latency":[125],"spikes.":[126],"Out-of-order":[127],"CPUs":[128],"mitigate":[129],"cost":[131],"checks:":[134],"Our":[135],"Rust":[136],"driver":[137],"executes":[138],"63":[139],"instructions":[142],"per":[143],"packet":[144],"is":[146],"only":[147],"4":[148],"slower":[150],"than":[151],"a":[152],"reference":[153],"implementation.":[155],"Go's":[156],"collector":[158],"keeps":[159],"latencies":[160],"below":[161],"100":[162],"\u03bcs":[163],"even":[164],"under":[165],"heavy":[166],"load.":[167],"Other":[168],"fare":[170],"worse,":[171],"their":[173],"unique":[174],"properties":[175],"make":[176],"an":[178],"interesting":[179],"case":[180],"study.":[181],"All":[182],"implementations":[183],"available":[185],"as":[186],"free":[187],"open":[189],"source":[190],"at":[191],"https://githud.com/ixy-languages/ixy-languages.":[192]},"counts_by_year":[],"updated_date":"2026-05-05T08:41:31.759640","created_date":"2025-10-10T00:00:00"}
