<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>operating systems | UCSC OSPO</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/tag/operating-systems/</link><atom:link href="https://deploy-preview-1007--ucsc-ospo.netlify.app/tag/operating-systems/index.xml" rel="self" type="application/rss+xml"/><description>operating systems</description><generator>Wowchemy (https://wowchemy.com)</generator><language>en-us</language><lastBuildDate>Fri, 28 Feb 2025 00:00:00 +0000</lastBuildDate><image><url>https://deploy-preview-1007--ucsc-ospo.netlify.app/media/logo_hub6795c39d7c5d58c9535d13299c9651f_74810_300x300_fit_lanczos_3.png</url><title>operating systems</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/tag/operating-systems/</link></image><item><title>IO logger: IO tracing in the modern computing era</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/harvard/iologger/</link><pubDate>Fri, 28 Feb 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/harvard/iologger/</guid><description>&lt;h3 id="overview">Overview&lt;/h3>
&lt;p>Storage systems are critical components of modern computing infrastructures, and understanding their performance characteristics is essential for optimizing system efficiency. There were many works from twenty to thirty years ago, but the landscape has changed significantly with the advent of&lt;/p>
&lt;ul>
&lt;li>cloud computing, virtualization, and storage disaggregation on the &lt;strong>server side&lt;/strong>&lt;/li>
&lt;li>ubiquitous fast wireless networking for &lt;strong>end users&lt;/strong> that make remote storage feasible&lt;/li>
&lt;li>AI and ML workloads that generate and move massive data both in the cloud and on the edge.&lt;/li>
&lt;/ul>
&lt;p>In this project, we aim to develop an IO logger, a tool for tracing, logging and analyzing IO operations in various computing environments. The IO logger will capture detailed information about read and write operations, latency, throughput, and other metrics to help researchers and practitioners understand the behavior of storage systems under different workloads and configurations. By providing a comprehensive view of IO performance, the IO logger will enable users to identify bottlenecks, optimize resource utilization, and improve system efficiency.&lt;/p>
&lt;p>This project will have two phases:&lt;/p>
&lt;ol>
&lt;li>IO logger for *NIX systems: Develop a tool leveraging eBPF and other tools for tracing IO operations on Linux and other Unix-like systems. The tool will capture detailed information about disk reads and writes, network transfers, and other IO activities, providing insights into system performance. The tool will be open-sourced, and we will work with industry partners and testbeds to integrate it into existing monitoring and analysis tools. Moreover, we will collect and open source the IO traces to benefit the community.&lt;/li>
&lt;li>IO logger for personal computing environment: Develop a tool for end-users to trace IO operations on their personal devices, such as laptops, desktops, and mobile phones. We will design and implement tools for three different platforms, Window, MacOS and Andriod. We will use the tools to collect IO traces from volunteers and real-world applications. providing insights into storage usage, network activity, and application performance. The tool will be user-friendly, lightweight, and privacy-preserving, ensuring that users can monitor their IO activities without compromising their data security.&lt;/li>
&lt;/ol>
&lt;p>Notable difference and challenges compared to the existing works are:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>more IO requests with rich features&lt;/strong>: open-source traces from previous works were collected all after page cache, which are often write-heavy, lose most IO requests, and do not provide enough features, e.g., process name. To address this, we will build a tool that can also records requests served by page cache, which requires the tool to be efficient and cannot impose significant overhead to the ruuning systems.&lt;/li>
&lt;li>&lt;strong>focus on new applications and workloads&lt;/strong>: the existing works were mostly outdated from the 1990s, during which the Internet has not been widely used, and applications are mostly processing local data and does not communicate with outside world. While there have been a few works looked into mobile storage a decade ago. The landscape has changed significantly since then, especially with the advent of AI and ML workloads that generate and move massive data both in the cloud and on the edge. This project will look into the difference and challenges brought by these new applications and workloads.&lt;/li>
&lt;/ul>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> tracing tool, operating system, eBPF, performance evaluation&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> C programming, system programming, eBPF, Linux kernel, mobile application development&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Hard&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (350 hours).&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/juncheng-yang/">Juncheng Yang&lt;/a>&lt;/li>
&lt;/ul>
&lt;h4 id="related-works">Related works&lt;/h4>
&lt;ul>
&lt;li>[COSMOS] (&lt;a href="https://dl.acm.org/doi/abs/10.1145/3460095" target="_blank" rel="noopener">https://dl.acm.org/doi/abs/10.1145/3460095&lt;/a>)&lt;/li>
&lt;li>&lt;a href="https://dl.acm.org/doi/abs/10.1145/2987443.2987465" target="_blank" rel="noopener">mobile storage usage&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://dl.acm.org/doi/abs/10.1145/2043106.2043112" target="_blank" rel="noopener">mobile storage performance measurement&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://ieeexplore.ieee.org/abstract/document/7897092" target="_blank" rel="noopener">mobile application IO performance&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://dl.acm.org/doi/abs/10.1145/1140103.1140280" target="_blank" rel="noopener">stardust&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://dl.acm.org/doi/abs/10.1145/3149376" target="_blank" rel="noopener">GPFS&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Assessing and Enhancing CC-Snapshot for Reproducible Experiment Environments</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/uchicago/cc-snapshot/</link><pubDate>Tue, 18 Feb 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/uchicago/cc-snapshot/</guid><description>&lt;h2 id="overview">Overview&lt;/h2>
&lt;p>A critical challenge in computer systems research reproducibility is establishing and sharing experimental environments. While open testbeds like Chameleon provide access to hardware resources, researchers still face significant barriers when attempting to recreate the precise software configurations, dependencies, and system states needed for reproducible experiments. Environment snapshotting tools offer a solution, but face technical challenges in consistently capturing running systems without introducing distortions or requiring disruptive system modifications. This project addresses these fundamental reproducibility barriers by enhancing CC-Snapshot, an tool capturing the experimental environment configured by the user on bare metal images, to create more reliable and consistent system captures that can be shared and redeployed without loss of fidelity.&lt;/p>
&lt;p>&lt;a href="https://chameleoncloud.readthedocs.io/en/latest/technical/images.html#the-cc-snapshot-utility" target="_blank" rel="noopener">CC-Snapshot&lt;/a> is a tool on the &lt;a href="chameleoncloud.org">Chameleon&lt;/a> testbed that enables users to package their customized environments as complex images or appliances. By allowing researchers to share these environments easily, CC-Snapshot offers a powerful mechanism for reproducibility, ensuring that experiments can be replicated and extended by others.&lt;/p>
&lt;p>In this project, you will review existing CC-Snapshot workflows, research the latest snapshotting technologies, and develop enhancements that improve the tool’s usability and reliability. This includes ensuring snapshots are created consistently (even when the OS is actively running), preserving the integrity of user systems, and exploring advanced features such as out-of-band snapshotting and API-based triggers.&lt;/p>
&lt;h2 id="key-outcomes">Key Outcomes&lt;/h2>
&lt;ul>
&lt;li>Improved Snapshot Consistency: New methods to capture the full state of a disk without risking corruption or data inconsistency.&lt;/li>
&lt;li>Enhanced Reproducibility: A refined workflow that allows researchers to reliably share custom environments, facilitating collaborative and repeatable experiments.&lt;/li>
&lt;li>User-Friendly Tooling: Streamlined processes that reduce disruption to running systems—so installing dependencies or rebooting into special environments is less burdensome.&lt;/li>
&lt;li>Exploratory Features (Stretch Goals): Advanced mechanisms to stream disk data in real time during snapshotting and to initiate snapshots via an API call (for parity with VM snapshots).&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Topics&lt;/strong>: Cloud Computing, Systems &amp;amp; Infrastructure, Reproducibility, Operating System Internals&lt;/p>
&lt;p>&lt;strong>Skills&lt;/strong>: Linux / OS Concepts, Cloud Tools, Systems Programming / Scripting, DevOps / CI&lt;/p>
&lt;p>&lt;strong>Difficulty&lt;/strong>: Moderate&lt;/p>
&lt;p>&lt;strong>Size&lt;/strong>: Medium&lt;/p>
&lt;p>&lt;strong>Mentors&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/michael-sherman/">Michael Sherman&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/mark-powers/">Mark Powers&lt;/a>&lt;/p>
&lt;p>&lt;strong>Tasks&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>Ensure Snapshot Consistency
&lt;ul>
&lt;li>Reboot into a ramdisk and copy the offline disk.&lt;/li>
&lt;li>Use kexec to switch to/from a ramdisk environment without a full reboot.&lt;/li>
&lt;li>Change images to use a snapshot-capable filesystem (e.g., LVM) for safer live snapshots.&lt;/li>
&lt;li>Investigate additional methods (e.g., blog.benjojo.co.uk) for safely imaging live disks.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Prevent System Modifications During Snapshot
&lt;ul>
&lt;li>Currently, CC-Snapshot installs dependencies (e.g., qemu-img) on the running system, affecting its state.&lt;/li>
&lt;li>In-Band Fix: Download and run tools in a temp directory with static linking, avoiding system-level changes.&lt;/li>
&lt;li>Out-of-Band Approach: Snapshots done via ramdisk or kexec do not require altering the running system.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>API-Triggered Snapshots
&lt;ul>
&lt;li>Extend or integrate with the Nova “snapshot instance” API to support the same workflow for bare metal.&lt;/li>
&lt;li>Leverage Ironic’s new “service steps” feature for an automated snapshot pipeline.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>(Stretch Goal) Streaming Snapshots
&lt;ul>
&lt;li>Modify the workflow to stream data directly to storage, rather than making a full local copy first.&lt;/li>
&lt;li>Explore incremental or differential snapshot techniques to reduce bandwidth usage and storage overhead.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>eBPF Monitoring Tools</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/lanl/ebpftools/</link><pubDate>Tue, 21 Feb 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/lanl/ebpftools/</guid><description>&lt;p>&lt;a href="https://ebpf.io" target="_blank" rel="noopener">eBPF&lt;/a> is a technology that allows sandboxed programs to run in a priviledged context such as a Linux kernel. eBPF is for operating systems what Javascript is for web browsers: new functionality can be safely loaded without restarting or continually upgrading the operating system or browser and executed efficiently. eBPF is used to introduce new functionality into a running Linux kernel, including next-generation networking, observability, and security functionality. The following is just one idea of many possible.&lt;/p>
&lt;h3 id="implement-darshan-functionality-as-ebpf-tool">Implement Darshan functionality as eBPF tool&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> performance, I/O, workload characterization&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium or large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:treddy@lanl.gov">Tyler Reddy&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>&lt;a href="https://www.mcs.anl.gov/research/projects/darshan/" target="_blank" rel="noopener">Darshan&lt;/a> is an HPC I/O characterization tool that collect statistics using a lightweight design that makes it suitable for full time deployment. Darshan is an interposer library that catches and counts IO requests (open, write, read, etc.) to a file/file system and it keeps the counters in buckets in data structure that can be queried. How many reads of small size, medium size, large size) for example are the types of things that are counted.&lt;/p>
&lt;p>Having this be an interposer library requires users to link their application with this library. Having this function in epbf would make this same function transparent to users. Darshan has all the functions and could provide the list of functions to implement and the programmer could build and test these functions in ebpf on a linux machine. This could be a broadly available open tool that would be generally useful and but one of perhaps hundreds of examples of where ebpf based tools that could be in the open community for all to leverage.&lt;/p></description></item></channel></rss>