SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
Platform values, Rust, and the
implications for system software
CTO
bryan@joyent.com
Bryan Cantrill
@bcantrill
Software platform and values
ā€¢ Deciding on programming language, operating system, etc. ā€”
that is, deciding on a software platform ā€” is a big, important
decision with lasting consequences (even for small work)
ā€¢ One doesnā€™t merely select a language for where it is, but also
where itā€™s going ā€” and what it represents
ā€¢ In the post-open source world of software infrastructure, this is
reļ¬‚ected and guided by a communityā€™s values
ā€¢ Beyond right tool for the job, it is the right values for the jobā€¦
ā€¢ ā€¦and then the right software for the values
Some software platform values
ā€¢ Approachability
ā€¢ Availability
ā€¢ Compatibility
ā€¢ Composability
ā€¢ Debuggability
ā€¢ Expressiveness
ā€¢ Extensibility
ā€¢ Interoperability
ā€¢ Integrity
ā€¢ Maintainability
ā€¢ Measurability
ā€¢ Operability
ā€¢ Performance
ā€¢ Portability
ā€¢ Resiliency
ā€¢ Rigor
ā€¢ Robustness
ā€¢ Safety
ā€¢ Security
ā€¢ Simplicity
ā€¢ Stability
ā€¢ Thoroughness
ā€¢ Transparency
ā€¢ Velocity
Platform core values
ā€¢ All of these values are important ā€” but they are in tension
ā€¢ Platforms aspire to balance all of them ā€” but for every platform
some small subset represents its core values
ā€¢ These core values attract a like-minded community ā€” and
become self-reinforcingā€¦
Platform core values: C
ā€¢ Approachability
ā€¢ Availability
ā€¢ Compatibility
ā€¢ Composability
ā€¢ Debuggability
ā€¢ Expressiveness
ā€¢ Extensibility
ā€¢ Interoperability
ā€¢ Integrity
ā€¢ Maintainability
ā€¢ Measurability
ā€¢ Operability
ā€¢ Performance
ā€¢ Portability
ā€¢ Resiliency
ā€¢ Rigor
ā€¢ Robustness
ā€¢ Safety
ā€¢ Security
ā€¢ Simplicity
ā€¢ Stability
ā€¢ Thoroughness
ā€¢ Transparency
ā€¢ Velocity
Platform core values: K
ā€¢ Approachability
ā€¢ Availability
ā€¢ Compatibility
ā€¢ Composability
ā€¢ Debuggability
ā€¢ Expressiveness
ā€¢ Extensibility
ā€¢ Interoperability
ā€¢ Integrity
ā€¢ Maintainability
ā€¢ Measurability
ā€¢ Operability
ā€¢ Performance
ā€¢ Portability
ā€¢ Resiliency
ā€¢ Rigor
ā€¢ Robustness
ā€¢ Safety
ā€¢ Security
ā€¢ Simplicity
ā€¢ Stability
ā€¢ Thoroughness
ā€¢ Transparency
ā€¢ Velocity
Platform core values: OpenBSD
ā€¢ Approachability
ā€¢ Availability
ā€¢ Compatibility
ā€¢ Composability
ā€¢ Debuggability
ā€¢ Expressiveness
ā€¢ Extensibility
ā€¢ Interoperability
ā€¢ Integrity
ā€¢ Maintainability
ā€¢ Measurability
ā€¢ Operability
ā€¢ Performance
ā€¢ Portability
ā€¢ Resiliency
ā€¢ Rigor
ā€¢ Robustness
ā€¢ Safety
ā€¢ Security
ā€¢ Simplicity
ā€¢ Stability
ā€¢ Thoroughness
ā€¢ Transparency
ā€¢ Velocity
Platform core values: Awk
ā€¢ Approachability
ā€¢ Availability
ā€¢ Compatibility
ā€¢ Composability
ā€¢ Debuggability
ā€¢ Expressiveness
ā€¢ Extensibility
ā€¢ Interoperability
ā€¢ Integrity
ā€¢ Maintainability
ā€¢ Measurability
ā€¢ Operability
ā€¢ Performance
ā€¢ Portability
ā€¢ Resiliency
ā€¢ Rigor
ā€¢ Robustness
ā€¢ Safety
ā€¢ Security
ā€¢ Simplicity
ā€¢ Stability
ā€¢ Thoroughness
ā€¢ Transparency
ā€¢ Velocity
Platform core values: Scala?
ā€¢ Approachability
ā€¢ Availability
ā€¢ Compatibility
ā€¢ Composability
ā€¢ Debuggability
ā€¢ Expressiveness
ā€¢ Extensibility
ā€¢ Interoperability
ā€¢ Integrity
ā€¢ Maintainability
ā€¢ Measurability
ā€¢ Operability
ā€¢ Performance
ā€¢ Portability
ā€¢ Resiliency
ā€¢ Rigor
ā€¢ Robustness
ā€¢ Safety
ā€¢ Security
ā€¢ Simplicity
ā€¢ Stability
ā€¢ Thoroughness
ā€¢ Transparency
ā€¢ Velocity
Values: The challenge for system software
ā€¢ For system software ā€” that is, the software that abstracts
hardware and serves as a generic platform ā€” values are
deļ¬ned by expectations
ā€¢ For some values, if your system software doesnā€™t have it, the
system itself canā€™t ever have it!
Values we demand of system software:
ā€¢ Approachability
ā€¢ Availability
ā€¢ Compatibility
ā€¢ Composability
ā€¢ Debuggability
ā€¢ Expressiveness
ā€¢ Extensibility
ā€¢ Interoperability
ā€¢ Integrity
ā€¢ Maintainability
ā€¢ Measurability
ā€¢ Operability
ā€¢ Performance
ā€¢ Portability
ā€¢ Resiliency
ā€¢ Rigor
ā€¢ Robustness
ā€¢ Safety
ā€¢ Security
ā€¢ Simplicity
ā€¢ Stability
ā€¢ Thoroughness
ā€¢ Transparency
ā€¢ Velocity
Platform core values: C
ā€¢ Approachability
ā€¢ Availability
ā€¢ Compatibility
ā€¢ Composability
ā€¢ Debuggability
ā€¢ Expressiveness
ā€¢ Extensibility
ā€¢ Interoperability
ā€¢ Integrity
ā€¢ Maintainability
ā€¢ Measurability
ā€¢ Operability
ā€¢ Performance
ā€¢ Portability
ā€¢ Resiliency
ā€¢ Rigor
ā€¢ Robustness
ā€¢ Safety
ā€¢ Security
ā€¢ Simplicity
ā€¢ Stability
ā€¢ Thoroughness
ā€¢ Transparency
ā€¢ Velocity
Platform core values: C++
ā€¢ Approachability
ā€¢ Availability
ā€¢ Compatibility
ā€¢ Composability
ā€¢ Debuggability
ā€¢ Expressiveness
ā€¢ Extensibility
ā€¢ Interoperability
ā€¢ Integrity
ā€¢ Maintainability
ā€¢ Measurability
ā€¢ Operability
ā€¢ Performance
ā€¢ Portability
ā€¢ Resiliency
ā€¢ Rigor
ā€¢ Robustness
ā€¢ Safety
ā€¢ Security
ā€¢ Simplicity
ā€¢ Stability
ā€¢ Thoroughness
ā€¢ Transparency
ā€¢ Velocity
The system software disconnect
ā€¢ There is a tremendous divide between the values held by
system software programming languages and the values that
must be held by the software itself
ā€¢ Over the years (decades), we in system software have been
able to deliver relatively secure, relatively reliable systemsā€¦
ā€¢ ā€¦but it is despite the programming language, not because of it!
ā€¢ Can we do better?
Enter Rust?
ā€¢ Rust is a systems software programming language designed
around safety, parallelism, and speed
ā€¢ Rust has a novel system of ownership, whereby it can statically
determine when a memory object is no longer in use
ā€¢ This allows for the power of a garbage-collected language, but
with the performance of manual memory management
ā€¢ This is important because ā€” unlike C ā€” Rust is highly
composable, allowing for more sophisticated (and higher
performing!) primitives
Platform core values: Rust
ā€¢ Approachability
ā€¢ Availability
ā€¢ Compatibility
ā€¢ Composability
ā€¢ Debuggability
ā€¢ Expressiveness
ā€¢ Extensibility
ā€¢ Interoperability
ā€¢ Integrity
ā€¢ Maintainability
ā€¢ Measurability
ā€¢ Operability
ā€¢ Performance
ā€¢ Portability
ā€¢ Resiliency
ā€¢ Rigor
ā€¢ Robustness
ā€¢ Safety
ā€¢ Security
ā€¢ Simplicity
ā€¢ Stability
ā€¢ Thoroughness
ā€¢ Transparency
ā€¢ Velocity
Rust performance (my experience)
Source: http://dtrace.org/blogs/bmc/2018/09/28/the-relative-performance-of-c-and-rust/
Rust: Beyond ownership
ā€¢ Rust has a number of other features that make it highly
compelling for systems software implementation:
ā€¢ Algebraic types allow robust, concise error handling
ā€¢ Hygienic macros allow for safe syntax extensions
ā€¢ Foreign function interface allows for full-duplex integration
with C without sacriļ¬cing performance
ā€¢ ā€œunsafeā€ keyword allows for some safety guarantees to be
surgically overruled (though with obvious peril)
ā€¢ Also: terriļ¬c community, thriving ecosystem, etc.
Systems software in Rust: The promise
ā€¢ Rustā€™s values are an excellent ļ¬t for systems software
ā€¢ The beauty of Rust is that it shifts cognitive load from the
operation of software back to the developer
ā€¢ Further, Rustā€™s ownership restricts what the software can do
ā€¢ The process can be frustrating but the end result is often
satisfying:
Source: Programming Rust by Jim Blandy and Jason Orendorff, page 262
Systems software in Rust: The peril
ā€¢ While Rustā€™s advantages are themselves clear, itā€™s less clear
what the advantage is when replacing otherwise working code
ā€¢ Rust may be especially challenging in large, monolithic systems
like an OS kernel which often have multiply-owned structures
ā€¢ So an OS kernel ā€” despite its historic appeal and superļ¬cial ļ¬t
for Rust ā€” may represent more challenge than its worth
ā€¢ But what of hybrid approaches?
Hybrid approach I: Rust subsystems
ā€¢ One appeal of Rust is its ability to interoperate with C
ā€¢ One hybrid approach to explore would be to retain a traditional
(C-based) system while allowing for Rust-based components
ā€¢ This would allow for an incremental approach ā€” and instead of
rewriting, Rust can be used for new development
ā€¢ There is a prototype example of this in FreeBSD; others are
presumably possible
Hybrid approach II: Rust system components
ā€¢ System software is much broader than the operating system!
ā€¢ System software consists of many user-level components:
utilities, daemons, service-/device-/fault- management facilities,
debuggers, etc.
ā€¢ And then the distributed system that represents a multi-
computer control plane ā€” that itself includes many components
ā€¢ These components are much more prone to run-time failure!
ā€¢ Many of these are an excellent candidate for Rust!
Hybrid approach III: Rust-based ļ¬rmware
ā€¢ Below the operating system lurks hardware-facing special-
purpose software: ļ¬rmware
ā€¢ Firmware is a sewer of unobservable software with a long
history of infamous quality problems
ā€¢ Firmware has some of the same challenges as kernel
development (e.g., dealing with allocation failures), but may
otherwise be more amenable to Rust
ā€¢ This is especially true when/where ļ¬rmware is in user-space
and is network-facing! (e.g., OpenBMC)
Looking forward: Systems software in Rust
ā€¢ Rust represents something that we havenā€™t seen in a long time:
a modern language that represents an alternative throughout
the stack of software abstraction: we can have nice things!
ā€¢ Rustā€™s values are an excellent ļ¬t for system software!
ā€¢ Rustā€™s interoperability allows hybrid approaches, allowing for
productive kernel incrementalism rather than whole-system
rewrites
ā€¢ Firmware and user-level operating system software are two very
promising candidates for implementation in Rust!

Mais conteĆŗdo relacionado

Mais procurados

Linux Instrumentation
Linux InstrumentationLinux Instrumentation
Linux InstrumentationDarkStarSword
Ā 
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...Edureka!
Ā 
Introduction to Dev Ops and Containerisation with Docker
Introduction to Dev Ops and Containerisation with DockerIntroduction to Dev Ops and Containerisation with Docker
Introduction to Dev Ops and Containerisation with DockerShakthi Weerasinghe
Ā 
GPU Virtualization in Embedded Automotive Solutions
GPU Virtualization in Embedded Automotive SolutionsGPU Virtualization in Embedded Automotive Solutions
GPU Virtualization in Embedded Automotive SolutionsGlobalLogic Ukraine
Ā 
Introduction to High Performance Computing
Introduction to High Performance ComputingIntroduction to High Performance Computing
Introduction to High Performance ComputingUmarudin Zaenuri
Ā 
Advanced messaging with Apache ActiveMQ
Advanced messaging with Apache ActiveMQAdvanced messaging with Apache ActiveMQ
Advanced messaging with Apache ActiveMQdejanb
Ā 
Xen Project Contributor Training - Part 1 introduction v1.0
Xen Project Contributor Training - Part 1 introduction v1.0Xen Project Contributor Training - Part 1 introduction v1.0
Xen Project Contributor Training - Part 1 introduction v1.0The Linux Foundation
Ā 
Virtualization Vs. Containers
Virtualization Vs. ContainersVirtualization Vs. Containers
Virtualization Vs. Containersactualtechmedia
Ā 
nginx恮ē“¹ä»‹
nginx恮ē“¹ä»‹nginx恮ē“¹ä»‹
nginx恮ē“¹ä»‹Takashi Takizawa
Ā 
Building an SRE Organization @ Squarespace
Building an SRE Organization @ SquarespaceBuilding an SRE Organization @ Squarespace
Building an SRE Organization @ SquarespaceFranklin Angulo
Ā 
Achieving the Ultimate Performance with KVM
Achieving the Ultimate Performance with KVMAchieving the Ultimate Performance with KVM
Achieving the Ultimate Performance with KVMDevOps.com
Ā 
KVM tools and enterprise usage
KVM tools and enterprise usageKVM tools and enterprise usage
KVM tools and enterprise usagevincentvdk
Ā 
RĆ©seaux de stockage
RĆ©seaux de stockageRĆ©seaux de stockage
RĆ©seaux de stockageAntoine Benkemoun
Ā 
Svn vs mercurial vs github
Svn  vs  mercurial vs  githubSvn  vs  mercurial vs  github
Svn vs mercurial vs githubVinoth Kannan
Ā 
Java Performance Analysis on Linux with Flame Graphs
Java Performance Analysis on Linux with Flame GraphsJava Performance Analysis on Linux with Flame Graphs
Java Performance Analysis on Linux with Flame GraphsBrendan Gregg
Ā 
Linux kernel Architecture and Properties
Linux kernel Architecture and PropertiesLinux kernel Architecture and Properties
Linux kernel Architecture and PropertiesSaadi Rahman
Ā 

Mais procurados (20)

Linux Instrumentation
Linux InstrumentationLinux Instrumentation
Linux Instrumentation
Ā 
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
Ā 
Introduction to Dev Ops and Containerisation with Docker
Introduction to Dev Ops and Containerisation with DockerIntroduction to Dev Ops and Containerisation with Docker
Introduction to Dev Ops and Containerisation with Docker
Ā 
ZFS
ZFSZFS
ZFS
Ā 
GPU Virtualization in Embedded Automotive Solutions
GPU Virtualization in Embedded Automotive SolutionsGPU Virtualization in Embedded Automotive Solutions
GPU Virtualization in Embedded Automotive Solutions
Ā 
RunDeck
RunDeckRunDeck
RunDeck
Ā 
Dockerč¶…å…„é–€
Dockerč¶…å…„é–€Dockerč¶…å…„é–€
Dockerč¶…å…„é–€
Ā 
Introduction to High Performance Computing
Introduction to High Performance ComputingIntroduction to High Performance Computing
Introduction to High Performance Computing
Ā 
Advanced messaging with Apache ActiveMQ
Advanced messaging with Apache ActiveMQAdvanced messaging with Apache ActiveMQ
Advanced messaging with Apache ActiveMQ
Ā 
SRE in Startup
SRE in StartupSRE in Startup
SRE in Startup
Ā 
Xen Project Contributor Training - Part 1 introduction v1.0
Xen Project Contributor Training - Part 1 introduction v1.0Xen Project Contributor Training - Part 1 introduction v1.0
Xen Project Contributor Training - Part 1 introduction v1.0
Ā 
Virtualization Vs. Containers
Virtualization Vs. ContainersVirtualization Vs. Containers
Virtualization Vs. Containers
Ā 
nginx恮ē“¹ä»‹
nginx恮ē“¹ä»‹nginx恮ē“¹ä»‹
nginx恮ē“¹ä»‹
Ā 
Building an SRE Organization @ Squarespace
Building an SRE Organization @ SquarespaceBuilding an SRE Organization @ Squarespace
Building an SRE Organization @ Squarespace
Ā 
Achieving the Ultimate Performance with KVM
Achieving the Ultimate Performance with KVMAchieving the Ultimate Performance with KVM
Achieving the Ultimate Performance with KVM
Ā 
KVM tools and enterprise usage
KVM tools and enterprise usageKVM tools and enterprise usage
KVM tools and enterprise usage
Ā 
RĆ©seaux de stockage
RĆ©seaux de stockageRĆ©seaux de stockage
RĆ©seaux de stockage
Ā 
Svn vs mercurial vs github
Svn  vs  mercurial vs  githubSvn  vs  mercurial vs  github
Svn vs mercurial vs github
Ā 
Java Performance Analysis on Linux with Flame Graphs
Java Performance Analysis on Linux with Flame GraphsJava Performance Analysis on Linux with Flame Graphs
Java Performance Analysis on Linux with Flame Graphs
Ā 
Linux kernel Architecture and Properties
Linux kernel Architecture and PropertiesLinux kernel Architecture and Properties
Linux kernel Architecture and Properties
Ā 

Semelhante a Platform values, Rust, and the implications for system software

Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for youAmbientia
Ā 
Programming languages and techniques for todayā€™s embedded andIoT world
Programming languages and techniques for todayā€™s embedded andIoT worldProgramming languages and techniques for todayā€™s embedded andIoT world
Programming languages and techniques for todayā€™s embedded andIoT worldRogue Wave Software
Ā 
TechTalk 2021: Peran IT Security dalam Penerapan DevOps
TechTalk 2021: Peran IT Security dalam Penerapan DevOpsTechTalk 2021: Peran IT Security dalam Penerapan DevOps
TechTalk 2021: Peran IT Security dalam Penerapan DevOpsDicodingEvent
Ā 
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...Denim Group
Ā 
Application Streaming is dead. A smart way to choose an alternative
Application Streaming is dead. A smart way to choose an alternativeApplication Streaming is dead. A smart way to choose an alternative
Application Streaming is dead. A smart way to choose an alternativeDenis Gundarev
Ā 
Quality attributes in software architecture
Quality attributes in software architectureQuality attributes in software architecture
Quality attributes in software architectureGang Tao
Ā 
Challenges Scaling DevOps
Challenges Scaling DevOpsChallenges Scaling DevOps
Challenges Scaling DevOpsRachel Maxwell
Ā 
12 factor app - Core Guidelines To Cloud Ready Solutions
12 factor app - Core Guidelines To Cloud Ready Solutions12 factor app - Core Guidelines To Cloud Ready Solutions
12 factor app - Core Guidelines To Cloud Ready SolutionsKashif Ali Siddiqui
Ā 
KrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfKrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfQA or the Highway
Ā 
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...Perforce
Ā 
Application Virtualization overview - BayCUG
Application Virtualization overview - BayCUGApplication Virtualization overview - BayCUG
Application Virtualization overview - BayCUGDenis Gundarev
Ā 
Pain points of agile development
Pain points of agile developmentPain points of agile development
Pain points of agile developmentPerforce
Ā 
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austinDev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austinMatt Tesauro
Ā 
Infrastructure as Code Maturity Model v1
Infrastructure as Code Maturity Model v1Infrastructure as Code Maturity Model v1
Infrastructure as Code Maturity Model v1Gary Stafford
Ā 
Five Pain Points of Agile Development (And How Software Version Management Ca...
Five Pain Points of Agile Development (And How Software Version Management Ca...Five Pain Points of Agile Development (And How Software Version Management Ca...
Five Pain Points of Agile Development (And How Software Version Management Ca...Perforce
Ā 
Branching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessBranching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessPerforce
Ā 
AppSec in an Agile World
AppSec in an Agile WorldAppSec in an Agile World
AppSec in an Agile WorldDavid Lindner
Ā 
Distributed Systems Introduction and Importance
Distributed Systems Introduction and Importance Distributed Systems Introduction and Importance
Distributed Systems Introduction and Importance SHIKHA GAUTAM
Ā 
Developing PHP Applications Faster
Developing PHP Applications FasterDeveloping PHP Applications Faster
Developing PHP Applications FasterAdam Culp
Ā 

Semelhante a Platform values, Rust, and the implications for system software (20)

Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for you
Ā 
Programming languages and techniques for todayā€™s embedded andIoT world
Programming languages and techniques for todayā€™s embedded andIoT worldProgramming languages and techniques for todayā€™s embedded andIoT world
Programming languages and techniques for todayā€™s embedded andIoT world
Ā 
TechTalk 2021: Peran IT Security dalam Penerapan DevOps
TechTalk 2021: Peran IT Security dalam Penerapan DevOpsTechTalk 2021: Peran IT Security dalam Penerapan DevOps
TechTalk 2021: Peran IT Security dalam Penerapan DevOps
Ā 
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
Ā 
Application Streaming is dead. A smart way to choose an alternative
Application Streaming is dead. A smart way to choose an alternativeApplication Streaming is dead. A smart way to choose an alternative
Application Streaming is dead. A smart way to choose an alternative
Ā 
Quality attributes in software architecture
Quality attributes in software architectureQuality attributes in software architecture
Quality attributes in software architecture
Ā 
Challenges Scaling DevOps
Challenges Scaling DevOpsChallenges Scaling DevOps
Challenges Scaling DevOps
Ā 
12 factor app - Core Guidelines To Cloud Ready Solutions
12 factor app - Core Guidelines To Cloud Ready Solutions12 factor app - Core Guidelines To Cloud Ready Solutions
12 factor app - Core Guidelines To Cloud Ready Solutions
Ā 
KrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfKrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdf
Ā 
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Ā 
Application Virtualization overview - BayCUG
Application Virtualization overview - BayCUGApplication Virtualization overview - BayCUG
Application Virtualization overview - BayCUG
Ā 
Pain points of agile development
Pain points of agile developmentPain points of agile development
Pain points of agile development
Ā 
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austinDev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
Ā 
Infrastructure as Code Maturity Model v1
Infrastructure as Code Maturity Model v1Infrastructure as Code Maturity Model v1
Infrastructure as Code Maturity Model v1
Ā 
Five Pain Points of Agile Development (And How Software Version Management Ca...
Five Pain Points of Agile Development (And How Software Version Management Ca...Five Pain Points of Agile Development (And How Software Version Management Ca...
Five Pain Points of Agile Development (And How Software Version Management Ca...
Ā 
Branching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessBranching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development Process
Ā 
AppSec in an Agile World
AppSec in an Agile WorldAppSec in an Agile World
AppSec in an Agile World
Ā 
Distributed Systems Introduction and Importance
Distributed Systems Introduction and Importance Distributed Systems Introduction and Importance
Distributed Systems Introduction and Importance
Ā 
Developing PHP Applications Faster
Developing PHP Applications FasterDeveloping PHP Applications Faster
Developing PHP Applications Faster
Ā 
Software Standards
Software StandardsSoftware Standards
Software Standards
Ā 

Mais de bcantrill

Predicting the Present
Predicting the PresentPredicting the Present
Predicting the Presentbcantrill
Ā 
Sharpening the Axe: The Primacy of Toolmaking
Sharpening the Axe: The Primacy of ToolmakingSharpening the Axe: The Primacy of Toolmaking
Sharpening the Axe: The Primacy of Toolmakingbcantrill
Ā 
Coming of Age: Developing young technologists without robbing them of their y...
Coming of Age: Developing young technologists without robbing them of their y...Coming of Age: Developing young technologists without robbing them of their y...
Coming of Age: Developing young technologists without robbing them of their y...bcantrill
Ā 
I have come to bury the BIOS, not to open it: The need for holistic systems
I have come to bury the BIOS, not to open it: The need for holistic systemsI have come to bury the BIOS, not to open it: The need for holistic systems
I have come to bury the BIOS, not to open it: The need for holistic systemsbcantrill
Ā 
Towards Holistic Systems
Towards Holistic SystemsTowards Holistic Systems
Towards Holistic Systemsbcantrill
Ā 
The Coming Firmware Revolution
The Coming Firmware RevolutionThe Coming Firmware Revolution
The Coming Firmware Revolutionbcantrill
Ā 
Hardware/software Co-design: The Coming Golden Age
Hardware/software Co-design: The Coming Golden AgeHardware/software Co-design: The Coming Golden Age
Hardware/software Co-design: The Coming Golden Agebcantrill
Ā 
Tockilator: Deducing Tock execution flows from Ibex Verilator traces
Tockilator: Deducing Tock execution flows from Ibex Verilator tracesTockilator: Deducing Tock execution flows from Ibex Verilator traces
Tockilator: Deducing Tock execution flows from Ibex Verilator tracesbcantrill
Ā 
No Moore Left to Give: Enterprise Computing After Moore's Law
No Moore Left to Give: Enterprise Computing After Moore's LawNo Moore Left to Give: Enterprise Computing After Moore's Law
No Moore Left to Give: Enterprise Computing After Moore's Lawbcantrill
Ā 
Andreessen's Corollary: Ethical Dilemmas in Software Engineering
Andreessen's Corollary: Ethical Dilemmas in Software EngineeringAndreessen's Corollary: Ethical Dilemmas in Software Engineering
Andreessen's Corollary: Ethical Dilemmas in Software Engineeringbcantrill
Ā 
Is it time to rewrite the operating system in Rust?
Is it time to rewrite the operating system in Rust?Is it time to rewrite the operating system in Rust?
Is it time to rewrite the operating system in Rust?bcantrill
Ā 
dtrace.conf(16): DTrace state of the union
dtrace.conf(16): DTrace state of the uniondtrace.conf(16): DTrace state of the union
dtrace.conf(16): DTrace state of the unionbcantrill
Ā 
The Hurricane's Butterfly: Debugging pathologically performing systems
The Hurricane's Butterfly: Debugging pathologically performing systemsThe Hurricane's Butterfly: Debugging pathologically performing systems
The Hurricane's Butterfly: Debugging pathologically performing systemsbcantrill
Ā 
Papers We Love: ARC after dark
Papers We Love: ARC after darkPapers We Love: ARC after dark
Papers We Love: ARC after darkbcantrill
Ā 
Principles of Technology Leadership
Principles of Technology LeadershipPrinciples of Technology Leadership
Principles of Technology Leadershipbcantrill
Ā 
Zebras all the way down: The engineering challenges of the data path
Zebras all the way down: The engineering challenges of the data pathZebras all the way down: The engineering challenges of the data path
Zebras all the way down: The engineering challenges of the data pathbcantrill
Ā 
Debugging under fire: Keeping your head when systems have lost their mind
Debugging under fire: Keeping your head when systems have lost their mindDebugging under fire: Keeping your head when systems have lost their mind
Debugging under fire: Keeping your head when systems have lost their mindbcantrill
Ā 
Down Memory Lane: Two Decades with the Slab Allocator
Down Memory Lane: Two Decades with the Slab AllocatorDown Memory Lane: Two Decades with the Slab Allocator
Down Memory Lane: Two Decades with the Slab Allocatorbcantrill
Ā 
The State of Cloud 2016: The whirlwind of creative destruction
The State of Cloud 2016: The whirlwind of creative destructionThe State of Cloud 2016: The whirlwind of creative destruction
The State of Cloud 2016: The whirlwind of creative destructionbcantrill
Ā 
Oral tradition in software engineering: Passing the craft across generations
Oral tradition in software engineering: Passing the craft across generationsOral tradition in software engineering: Passing the craft across generations
Oral tradition in software engineering: Passing the craft across generationsbcantrill
Ā 

Mais de bcantrill (20)

Predicting the Present
Predicting the PresentPredicting the Present
Predicting the Present
Ā 
Sharpening the Axe: The Primacy of Toolmaking
Sharpening the Axe: The Primacy of ToolmakingSharpening the Axe: The Primacy of Toolmaking
Sharpening the Axe: The Primacy of Toolmaking
Ā 
Coming of Age: Developing young technologists without robbing them of their y...
Coming of Age: Developing young technologists without robbing them of their y...Coming of Age: Developing young technologists without robbing them of their y...
Coming of Age: Developing young technologists without robbing them of their y...
Ā 
I have come to bury the BIOS, not to open it: The need for holistic systems
I have come to bury the BIOS, not to open it: The need for holistic systemsI have come to bury the BIOS, not to open it: The need for holistic systems
I have come to bury the BIOS, not to open it: The need for holistic systems
Ā 
Towards Holistic Systems
Towards Holistic SystemsTowards Holistic Systems
Towards Holistic Systems
Ā 
The Coming Firmware Revolution
The Coming Firmware RevolutionThe Coming Firmware Revolution
The Coming Firmware Revolution
Ā 
Hardware/software Co-design: The Coming Golden Age
Hardware/software Co-design: The Coming Golden AgeHardware/software Co-design: The Coming Golden Age
Hardware/software Co-design: The Coming Golden Age
Ā 
Tockilator: Deducing Tock execution flows from Ibex Verilator traces
Tockilator: Deducing Tock execution flows from Ibex Verilator tracesTockilator: Deducing Tock execution flows from Ibex Verilator traces
Tockilator: Deducing Tock execution flows from Ibex Verilator traces
Ā 
No Moore Left to Give: Enterprise Computing After Moore's Law
No Moore Left to Give: Enterprise Computing After Moore's LawNo Moore Left to Give: Enterprise Computing After Moore's Law
No Moore Left to Give: Enterprise Computing After Moore's Law
Ā 
Andreessen's Corollary: Ethical Dilemmas in Software Engineering
Andreessen's Corollary: Ethical Dilemmas in Software EngineeringAndreessen's Corollary: Ethical Dilemmas in Software Engineering
Andreessen's Corollary: Ethical Dilemmas in Software Engineering
Ā 
Is it time to rewrite the operating system in Rust?
Is it time to rewrite the operating system in Rust?Is it time to rewrite the operating system in Rust?
Is it time to rewrite the operating system in Rust?
Ā 
dtrace.conf(16): DTrace state of the union
dtrace.conf(16): DTrace state of the uniondtrace.conf(16): DTrace state of the union
dtrace.conf(16): DTrace state of the union
Ā 
The Hurricane's Butterfly: Debugging pathologically performing systems
The Hurricane's Butterfly: Debugging pathologically performing systemsThe Hurricane's Butterfly: Debugging pathologically performing systems
The Hurricane's Butterfly: Debugging pathologically performing systems
Ā 
Papers We Love: ARC after dark
Papers We Love: ARC after darkPapers We Love: ARC after dark
Papers We Love: ARC after dark
Ā 
Principles of Technology Leadership
Principles of Technology LeadershipPrinciples of Technology Leadership
Principles of Technology Leadership
Ā 
Zebras all the way down: The engineering challenges of the data path
Zebras all the way down: The engineering challenges of the data pathZebras all the way down: The engineering challenges of the data path
Zebras all the way down: The engineering challenges of the data path
Ā 
Debugging under fire: Keeping your head when systems have lost their mind
Debugging under fire: Keeping your head when systems have lost their mindDebugging under fire: Keeping your head when systems have lost their mind
Debugging under fire: Keeping your head when systems have lost their mind
Ā 
Down Memory Lane: Two Decades with the Slab Allocator
Down Memory Lane: Two Decades with the Slab AllocatorDown Memory Lane: Two Decades with the Slab Allocator
Down Memory Lane: Two Decades with the Slab Allocator
Ā 
The State of Cloud 2016: The whirlwind of creative destruction
The State of Cloud 2016: The whirlwind of creative destructionThe State of Cloud 2016: The whirlwind of creative destruction
The State of Cloud 2016: The whirlwind of creative destruction
Ā 
Oral tradition in software engineering: Passing the craft across generations
Oral tradition in software engineering: Passing the craft across generationsOral tradition in software engineering: Passing the craft across generations
Oral tradition in software engineering: Passing the craft across generations
Ā 

ƚltimo

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
Ā 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
Ā 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
Ā 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
Ā 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
Ā 
CHEAP Call Girls in Pushp Vihar (-DELHI )šŸ” 9953056974šŸ”(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )šŸ” 9953056974šŸ”(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )šŸ” 9953056974šŸ”(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )šŸ” 9953056974šŸ”(=)/CALL GIRLS SERVICE9953056974 Low Rate Call Girls In Saket, Delhi NCR
Ā 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
Ā 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
Ā 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
Ā 
CALL ON āž„8923113531 šŸ”Call Girls Kakori Lucknow best sexual service Online ā˜‚ļø
CALL ON āž„8923113531 šŸ”Call Girls Kakori Lucknow best sexual service Online  ā˜‚ļøCALL ON āž„8923113531 šŸ”Call Girls Kakori Lucknow best sexual service Online  ā˜‚ļø
CALL ON āž„8923113531 šŸ”Call Girls Kakori Lucknow best sexual service Online ā˜‚ļøanilsa9823
Ā 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
Ā 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlanā€™s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlanā€™s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlanā€™s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlanā€™s ...OnePlan Solutions
Ā 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto GonzƔlez Trastoy
Ā 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
Ā 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
Ā 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
Ā 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
Ā 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfWilly Marroquin (WillyDevNET)
Ā 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
Ā 

ƚltimo (20)

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Ā 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Ā 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
Ā 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
Ā 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
Ā 
CHEAP Call Girls in Pushp Vihar (-DELHI )šŸ” 9953056974šŸ”(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )šŸ” 9953056974šŸ”(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )šŸ” 9953056974šŸ”(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )šŸ” 9953056974šŸ”(=)/CALL GIRLS SERVICE
Ā 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
Ā 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Ā 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
Ā 
CALL ON āž„8923113531 šŸ”Call Girls Kakori Lucknow best sexual service Online ā˜‚ļø
CALL ON āž„8923113531 šŸ”Call Girls Kakori Lucknow best sexual service Online  ā˜‚ļøCALL ON āž„8923113531 šŸ”Call Girls Kakori Lucknow best sexual service Online  ā˜‚ļø
CALL ON āž„8923113531 šŸ”Call Girls Kakori Lucknow best sexual service Online ā˜‚ļø
Ā 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
Ā 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlanā€™s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlanā€™s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlanā€™s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlanā€™s ...
Ā 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Ā 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Ā 
Vip Call Girls Noida āž”ļø Delhi āž”ļø 9999965857 No Advance 24HRS Live
Vip Call Girls Noida āž”ļø Delhi āž”ļø 9999965857 No Advance 24HRS LiveVip Call Girls Noida āž”ļø Delhi āž”ļø 9999965857 No Advance 24HRS Live
Vip Call Girls Noida āž”ļø Delhi āž”ļø 9999965857 No Advance 24HRS Live
Ā 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
Ā 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Ā 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
Ā 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
Ā 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
Ā 

Platform values, Rust, and the implications for system software

  • 1. Platform values, Rust, and the implications for system software CTO bryan@joyent.com Bryan Cantrill @bcantrill
  • 2. Software platform and values ā€¢ Deciding on programming language, operating system, etc. ā€” that is, deciding on a software platform ā€” is a big, important decision with lasting consequences (even for small work) ā€¢ One doesnā€™t merely select a language for where it is, but also where itā€™s going ā€” and what it represents ā€¢ In the post-open source world of software infrastructure, this is reļ¬‚ected and guided by a communityā€™s values ā€¢ Beyond right tool for the job, it is the right values for the jobā€¦ ā€¢ ā€¦and then the right software for the values
  • 3. Some software platform values ā€¢ Approachability ā€¢ Availability ā€¢ Compatibility ā€¢ Composability ā€¢ Debuggability ā€¢ Expressiveness ā€¢ Extensibility ā€¢ Interoperability ā€¢ Integrity ā€¢ Maintainability ā€¢ Measurability ā€¢ Operability ā€¢ Performance ā€¢ Portability ā€¢ Resiliency ā€¢ Rigor ā€¢ Robustness ā€¢ Safety ā€¢ Security ā€¢ Simplicity ā€¢ Stability ā€¢ Thoroughness ā€¢ Transparency ā€¢ Velocity
  • 4. Platform core values ā€¢ All of these values are important ā€” but they are in tension ā€¢ Platforms aspire to balance all of them ā€” but for every platform some small subset represents its core values ā€¢ These core values attract a like-minded community ā€” and become self-reinforcingā€¦
  • 5. Platform core values: C ā€¢ Approachability ā€¢ Availability ā€¢ Compatibility ā€¢ Composability ā€¢ Debuggability ā€¢ Expressiveness ā€¢ Extensibility ā€¢ Interoperability ā€¢ Integrity ā€¢ Maintainability ā€¢ Measurability ā€¢ Operability ā€¢ Performance ā€¢ Portability ā€¢ Resiliency ā€¢ Rigor ā€¢ Robustness ā€¢ Safety ā€¢ Security ā€¢ Simplicity ā€¢ Stability ā€¢ Thoroughness ā€¢ Transparency ā€¢ Velocity
  • 6. Platform core values: K ā€¢ Approachability ā€¢ Availability ā€¢ Compatibility ā€¢ Composability ā€¢ Debuggability ā€¢ Expressiveness ā€¢ Extensibility ā€¢ Interoperability ā€¢ Integrity ā€¢ Maintainability ā€¢ Measurability ā€¢ Operability ā€¢ Performance ā€¢ Portability ā€¢ Resiliency ā€¢ Rigor ā€¢ Robustness ā€¢ Safety ā€¢ Security ā€¢ Simplicity ā€¢ Stability ā€¢ Thoroughness ā€¢ Transparency ā€¢ Velocity
  • 7. Platform core values: OpenBSD ā€¢ Approachability ā€¢ Availability ā€¢ Compatibility ā€¢ Composability ā€¢ Debuggability ā€¢ Expressiveness ā€¢ Extensibility ā€¢ Interoperability ā€¢ Integrity ā€¢ Maintainability ā€¢ Measurability ā€¢ Operability ā€¢ Performance ā€¢ Portability ā€¢ Resiliency ā€¢ Rigor ā€¢ Robustness ā€¢ Safety ā€¢ Security ā€¢ Simplicity ā€¢ Stability ā€¢ Thoroughness ā€¢ Transparency ā€¢ Velocity
  • 8. Platform core values: Awk ā€¢ Approachability ā€¢ Availability ā€¢ Compatibility ā€¢ Composability ā€¢ Debuggability ā€¢ Expressiveness ā€¢ Extensibility ā€¢ Interoperability ā€¢ Integrity ā€¢ Maintainability ā€¢ Measurability ā€¢ Operability ā€¢ Performance ā€¢ Portability ā€¢ Resiliency ā€¢ Rigor ā€¢ Robustness ā€¢ Safety ā€¢ Security ā€¢ Simplicity ā€¢ Stability ā€¢ Thoroughness ā€¢ Transparency ā€¢ Velocity
  • 9. Platform core values: Scala? ā€¢ Approachability ā€¢ Availability ā€¢ Compatibility ā€¢ Composability ā€¢ Debuggability ā€¢ Expressiveness ā€¢ Extensibility ā€¢ Interoperability ā€¢ Integrity ā€¢ Maintainability ā€¢ Measurability ā€¢ Operability ā€¢ Performance ā€¢ Portability ā€¢ Resiliency ā€¢ Rigor ā€¢ Robustness ā€¢ Safety ā€¢ Security ā€¢ Simplicity ā€¢ Stability ā€¢ Thoroughness ā€¢ Transparency ā€¢ Velocity
  • 10. Values: The challenge for system software ā€¢ For system software ā€” that is, the software that abstracts hardware and serves as a generic platform ā€” values are deļ¬ned by expectations ā€¢ For some values, if your system software doesnā€™t have it, the system itself canā€™t ever have it!
  • 11. Values we demand of system software: ā€¢ Approachability ā€¢ Availability ā€¢ Compatibility ā€¢ Composability ā€¢ Debuggability ā€¢ Expressiveness ā€¢ Extensibility ā€¢ Interoperability ā€¢ Integrity ā€¢ Maintainability ā€¢ Measurability ā€¢ Operability ā€¢ Performance ā€¢ Portability ā€¢ Resiliency ā€¢ Rigor ā€¢ Robustness ā€¢ Safety ā€¢ Security ā€¢ Simplicity ā€¢ Stability ā€¢ Thoroughness ā€¢ Transparency ā€¢ Velocity
  • 12. Platform core values: C ā€¢ Approachability ā€¢ Availability ā€¢ Compatibility ā€¢ Composability ā€¢ Debuggability ā€¢ Expressiveness ā€¢ Extensibility ā€¢ Interoperability ā€¢ Integrity ā€¢ Maintainability ā€¢ Measurability ā€¢ Operability ā€¢ Performance ā€¢ Portability ā€¢ Resiliency ā€¢ Rigor ā€¢ Robustness ā€¢ Safety ā€¢ Security ā€¢ Simplicity ā€¢ Stability ā€¢ Thoroughness ā€¢ Transparency ā€¢ Velocity
  • 13. Platform core values: C++ ā€¢ Approachability ā€¢ Availability ā€¢ Compatibility ā€¢ Composability ā€¢ Debuggability ā€¢ Expressiveness ā€¢ Extensibility ā€¢ Interoperability ā€¢ Integrity ā€¢ Maintainability ā€¢ Measurability ā€¢ Operability ā€¢ Performance ā€¢ Portability ā€¢ Resiliency ā€¢ Rigor ā€¢ Robustness ā€¢ Safety ā€¢ Security ā€¢ Simplicity ā€¢ Stability ā€¢ Thoroughness ā€¢ Transparency ā€¢ Velocity
  • 14. The system software disconnect ā€¢ There is a tremendous divide between the values held by system software programming languages and the values that must be held by the software itself ā€¢ Over the years (decades), we in system software have been able to deliver relatively secure, relatively reliable systemsā€¦ ā€¢ ā€¦but it is despite the programming language, not because of it! ā€¢ Can we do better?
  • 15. Enter Rust? ā€¢ Rust is a systems software programming language designed around safety, parallelism, and speed ā€¢ Rust has a novel system of ownership, whereby it can statically determine when a memory object is no longer in use ā€¢ This allows for the power of a garbage-collected language, but with the performance of manual memory management ā€¢ This is important because ā€” unlike C ā€” Rust is highly composable, allowing for more sophisticated (and higher performing!) primitives
  • 16. Platform core values: Rust ā€¢ Approachability ā€¢ Availability ā€¢ Compatibility ā€¢ Composability ā€¢ Debuggability ā€¢ Expressiveness ā€¢ Extensibility ā€¢ Interoperability ā€¢ Integrity ā€¢ Maintainability ā€¢ Measurability ā€¢ Operability ā€¢ Performance ā€¢ Portability ā€¢ Resiliency ā€¢ Rigor ā€¢ Robustness ā€¢ Safety ā€¢ Security ā€¢ Simplicity ā€¢ Stability ā€¢ Thoroughness ā€¢ Transparency ā€¢ Velocity
  • 17. Rust performance (my experience) Source: http://dtrace.org/blogs/bmc/2018/09/28/the-relative-performance-of-c-and-rust/
  • 18. Rust: Beyond ownership ā€¢ Rust has a number of other features that make it highly compelling for systems software implementation: ā€¢ Algebraic types allow robust, concise error handling ā€¢ Hygienic macros allow for safe syntax extensions ā€¢ Foreign function interface allows for full-duplex integration with C without sacriļ¬cing performance ā€¢ ā€œunsafeā€ keyword allows for some safety guarantees to be surgically overruled (though with obvious peril) ā€¢ Also: terriļ¬c community, thriving ecosystem, etc.
  • 19. Systems software in Rust: The promise ā€¢ Rustā€™s values are an excellent ļ¬t for systems software ā€¢ The beauty of Rust is that it shifts cognitive load from the operation of software back to the developer ā€¢ Further, Rustā€™s ownership restricts what the software can do ā€¢ The process can be frustrating but the end result is often satisfying: Source: Programming Rust by Jim Blandy and Jason Orendorff, page 262
  • 20. Systems software in Rust: The peril ā€¢ While Rustā€™s advantages are themselves clear, itā€™s less clear what the advantage is when replacing otherwise working code ā€¢ Rust may be especially challenging in large, monolithic systems like an OS kernel which often have multiply-owned structures ā€¢ So an OS kernel ā€” despite its historic appeal and superļ¬cial ļ¬t for Rust ā€” may represent more challenge than its worth ā€¢ But what of hybrid approaches?
  • 21. Hybrid approach I: Rust subsystems ā€¢ One appeal of Rust is its ability to interoperate with C ā€¢ One hybrid approach to explore would be to retain a traditional (C-based) system while allowing for Rust-based components ā€¢ This would allow for an incremental approach ā€” and instead of rewriting, Rust can be used for new development ā€¢ There is a prototype example of this in FreeBSD; others are presumably possible
  • 22. Hybrid approach II: Rust system components ā€¢ System software is much broader than the operating system! ā€¢ System software consists of many user-level components: utilities, daemons, service-/device-/fault- management facilities, debuggers, etc. ā€¢ And then the distributed system that represents a multi- computer control plane ā€” that itself includes many components ā€¢ These components are much more prone to run-time failure! ā€¢ Many of these are an excellent candidate for Rust!
  • 23. Hybrid approach III: Rust-based ļ¬rmware ā€¢ Below the operating system lurks hardware-facing special- purpose software: ļ¬rmware ā€¢ Firmware is a sewer of unobservable software with a long history of infamous quality problems ā€¢ Firmware has some of the same challenges as kernel development (e.g., dealing with allocation failures), but may otherwise be more amenable to Rust ā€¢ This is especially true when/where ļ¬rmware is in user-space and is network-facing! (e.g., OpenBMC)
  • 24. Looking forward: Systems software in Rust ā€¢ Rust represents something that we havenā€™t seen in a long time: a modern language that represents an alternative throughout the stack of software abstraction: we can have nice things! ā€¢ Rustā€™s values are an excellent ļ¬t for system software! ā€¢ Rustā€™s interoperability allows hybrid approaches, allowing for productive kernel incrementalism rather than whole-system rewrites ā€¢ Firmware and user-level operating system software are two very promising candidates for implementation in Rust!