ABSTRACT
Intrusive data structures (IDSes) are heavily used in system programming, where achieving high performance is one of the most important design goals. Yet, they are not supported in today's ownership type system that offer memory-safety without garbage collection. Instead, IDSes force programmers to choose either unsafety or runtime overhead. This limitation stems from the implicit assumptions pertaining to the memory layouts and access patterns created by IDSes.
In this paper, we propose a new technique, referred to as ownership pooling, which defines ownership for IDSes. Ownership pooling consists of three new types, FieldOf, OwnershipPool, and Shared, and their conversion rules.
We implemented the proposed types within Rust's type system and compared its performance capabilities against the existing memory-safe implementations and the C++ implementation without memory safety as baseline. The performance of our implementation shows far better performance than that of the existing memory-safe ones and comparable to that of C++ implementation without memory safety.
- Abhiram Balasubramanian, Marek S. Baranowski, Anton Burtsev, Aurojit Panda, Zvonimir Rakamarić, and Leonid Ryzhyk. 2017. System Programming in Rust: Beyond Safety. In ACM HotOS.Google Scholar
- Without Boats. 2018. Shifgrethor III: Rooting. https://boats.gitlab.io/blog/post/shifgrethor-iii/.Google Scholar
- Amanieu d'Antras. 2016. SeqLock. https://crates.io/crates/seqlock/0.1.1.Google Scholar
- Amanieu d'Antras. 2018. intrusive-collections. https://crates.io/crates/intrusive-collections/0.7.2.Google Scholar
- Amanieu d'Antras. 2018. parking_lot. https://crates.io/crates/parking_lot/0.6.4.Google Scholar
- Redox Project Developers. [n.d.]. Redox - Your Next(Gen) OS. https://www. redox-os.org.Google Scholar
- Tokio Project Developers. 2018. Tokio: A runtime for writing reliable, asynchronous, and slim applications with the Rust programming language. https://crates.io/crates/tokio/0.1.6.Google Scholar
- Galen C Hunt and James R Larus. 2007. Singularity: rethinking the software stack. ACM SIGOPS Operating Systems Review 41, 2 (2007), 37--49.Google ScholarDigital Library
- jemalloc Developers. [n.d.]. jemalloc memory allocator. http://jemalloc.net.Google Scholar
- Amit Levy, Bradford Campbell, Branden Ghena, Daniel B Giffin, Pat Pannuto, Prabal Dutta, and Philip Levis. 2017. Multiprogramming a 64kB Computer Safely and Efficiently. In ACM SOSP.Google Scholar
- Aurojit Panda, Sangjin Han, Keon Jang, Melvin Walls, Sylvia Ratnasamy, and Scott Shenker. 2016. NetBricks: Taking the V out of NFV.. In USENIX OSDI.Google Scholar
- Rishabh Poddar, Chang Lan, Raluca Ada Popa, and Sylvia Ratnasamy. 2018. SafeBricks: Shielding Network Functions in the Cloud. In USENIX NSDI.Google Scholar
- C++ Reference. 2018. RAII. https://en.cppreference.com/w/cpp/language/raii.Google Scholar
- Mozilla Research. [n.d.]. Servo, the Parallel Browser Engine Project. https://servo.org.Google Scholar
Recommendations
Visible watermarking with reversibility of multimedia images for ownership declarations
Digital watermarking technology is primarily the joining of the rightful owner of the protected media. Once the media are suspected to be illegally used, an open algorithm can be used to extract the digital watermark for the purpose of showing the media'...
A watermarking-based image ownership and tampering authentication scheme
Nowadays, image authentication schemes are widely applied to ownership protection and tampering detection of digital images. In this paper, we propose an image ownership and tampering authentication scheme based on watermarking techniques, which is ...
Watermarking and ownership problem: a revisit
DRM '05: Proceedings of the 5th ACM workshop on Digital rights managementWatermarking technologies have been envisioned as a potential means for establishing ownership on digital media objects. However, achievable robustness and false-positive rates of the state-of-the-art watermarking techniques raise doubts about ...
Comments