cs4414: Class 4 (Dos a Cero)
How to share a processor among multiple programs - non-preemptive and preemptive multitasking.
Why Senators shouldn't play games on their mobile devices during classified hearings.
Notes: http://www.cs.virginia.edu/~evans/cs4414-fall2013/class4.html
Lecture on shells in operating systems class, but mostly about teaching philosophy.
Notes: http://www.cs.virginia.edu/~evans/cs4414-fall2013/class5.html
The story of humanity, from the big bang through the first billion Android activations.
Notes available at: http://www.cs.virginia.edu/~evans/cs4414-fall2013/class-3-zero-to-a-billion-in-486-years.html
The morals:
- War and scarity are powerful motivators, but in the long run, openness and altruism always win.
- Its a really exciting time in computing! The next new platform to reach a billion devices should take much less than five years, and we probably haven't yet heard of it.
Bandwidth
History of the Internet
Midterm Questions
How to tell if its a hardware or software problem?
What makes the fan go?
Benchmarking
Cheating on Benchmarks
Web Benchmarks
Apache is very good!
Lecture on shells in operating systems class, but mostly about teaching philosophy.
Notes: http://www.cs.virginia.edu/~evans/cs4414-fall2013/class5.html
The story of humanity, from the big bang through the first billion Android activations.
Notes available at: http://www.cs.virginia.edu/~evans/cs4414-fall2013/class-3-zero-to-a-billion-in-486-years.html
The morals:
- War and scarity are powerful motivators, but in the long run, openness and altruism always win.
- Its a really exciting time in computing! The next new platform to reach a billion devices should take much less than five years, and we probably haven't yet heard of it.
Bandwidth
History of the Internet
Midterm Questions
How to tell if its a hardware or software problem?
What makes the fan go?
Benchmarking
Cheating on Benchmarks
Web Benchmarks
Apache is very good!
What the &~#@<!? (Memory Management in Rust)David Evans
Operating Systems course lecture on memory management in Rust.
Browser design from 1990s (one process) to 2000s (one process per tag) to 2010s and beyond (enough processes to efficiently use machine resources to provide good user experience).
malloc, free, double-free vulnerabilities
Reverse engineering and instrumentation of android appsGaurav Lochan
Our product (Little Eye Labs) is a performance monitoring and optimization tool for Android apps.
We wanted to expose detailed network usage information from the app, and we explored binary instrumentation as a way to do this.
The presentation covers many learnings from the process - what are different reverse engineering tools on android, which ones specifically help with instrumentation, and a link to some of the source code from this process.
Research @ RELEASeD (presented at SATTOSE2013)kim.mens
An overview of recent research results and directions at Prof. Kim Mens's RELEASeD research lab. Presented in July 2013 at SATTOSE2013 in Bern, Switzerland.
Public compute clouds provide a flexible platform to host applications as a set of appliances, e.g., web servers or databases. Each appliance usually contains an OS kernel and userspace processes, within which applications access resources via APIs such as POSIX. The flexible architecture of the cloud comes at a cost: the addition of another layer in the already complex software stack. This reduces performance and increases the size of the trusted computing base.
Our new Mirage operating system proposes a radically different way of building these appliances. Mirage supports the progressive specialisation of functional language (OCaml) application source code, and gradually replaces traditional OS components with type-safe libraries. This ultimately results in “unikernels”: sealed, fixed-purpose images that run directly on the hypervisor without an intervening guest OS such as Lin ux.
Developers no longer need to become sysadmins, expert in the configuration of all manner of system components, to use cloud resources. At the same time, they can develop their code using their usual tools, only making the final push to the cloud once they are satisfied their code works. As they explicitly link in components that would normally be provided by the host OS, the resulting unikernels are also highly compact: facilities that are not used are simply not included in the resulting unikernel. For example, the self-hosting Mirage web server image is less than a megabyte in size!
We will describe the architecture of Mirage in the talk, show some code examples, and interesting benchmark results that compare the performance of our unikernels to traditional applications such as Apache, BIND and OpenSSH.
Lessons I Learned While Scaling to 5000 Puppet AgentsPuppet
Russ Johnson of StubHub talks about "Learning Lessons Scaling to 5000 Puppet Agents" at Puppet Camp San Francisco 2013. Find a Puppet Camp near you: puppetlabs.com/community/puppet-camp/
An overview session on Grid Computing conducted in a AICTE approved STTP Virtualization, Cloud Computing and Big Data at Vidyalankar Institute of Technology, Mumbai between December 9 and 20, 2013. About 53 participants from various colleges across the state attended it. Courtesy: Consolidation from Internet.
Trick or Treat?: Bitcoin for Non-Believers, Cryptocurrencies for CypherpunksDavid Evans
David Evans
DC Area Crypto Day
Johns Hopkins University
30 October 2015
This (non-research) talk will start with a tutorial introduction to cryptocurrencies and how bitcoin works (and doesn’t work) today. We’ll touch on some of the legal, policy, and business aspects of bitcoin and discuss some potential research opportunities in cryptocurrencies.
What the &~#@<!? (Memory Management in Rust)David Evans
Operating Systems course lecture on memory management in Rust.
Browser design from 1990s (one process) to 2000s (one process per tag) to 2010s and beyond (enough processes to efficiently use machine resources to provide good user experience).
malloc, free, double-free vulnerabilities
Reverse engineering and instrumentation of android appsGaurav Lochan
Our product (Little Eye Labs) is a performance monitoring and optimization tool for Android apps.
We wanted to expose detailed network usage information from the app, and we explored binary instrumentation as a way to do this.
The presentation covers many learnings from the process - what are different reverse engineering tools on android, which ones specifically help with instrumentation, and a link to some of the source code from this process.
Research @ RELEASeD (presented at SATTOSE2013)kim.mens
An overview of recent research results and directions at Prof. Kim Mens's RELEASeD research lab. Presented in July 2013 at SATTOSE2013 in Bern, Switzerland.
Public compute clouds provide a flexible platform to host applications as a set of appliances, e.g., web servers or databases. Each appliance usually contains an OS kernel and userspace processes, within which applications access resources via APIs such as POSIX. The flexible architecture of the cloud comes at a cost: the addition of another layer in the already complex software stack. This reduces performance and increases the size of the trusted computing base.
Our new Mirage operating system proposes a radically different way of building these appliances. Mirage supports the progressive specialisation of functional language (OCaml) application source code, and gradually replaces traditional OS components with type-safe libraries. This ultimately results in “unikernels”: sealed, fixed-purpose images that run directly on the hypervisor without an intervening guest OS such as Lin ux.
Developers no longer need to become sysadmins, expert in the configuration of all manner of system components, to use cloud resources. At the same time, they can develop their code using their usual tools, only making the final push to the cloud once they are satisfied their code works. As they explicitly link in components that would normally be provided by the host OS, the resulting unikernels are also highly compact: facilities that are not used are simply not included in the resulting unikernel. For example, the self-hosting Mirage web server image is less than a megabyte in size!
We will describe the architecture of Mirage in the talk, show some code examples, and interesting benchmark results that compare the performance of our unikernels to traditional applications such as Apache, BIND and OpenSSH.
Lessons I Learned While Scaling to 5000 Puppet AgentsPuppet
Russ Johnson of StubHub talks about "Learning Lessons Scaling to 5000 Puppet Agents" at Puppet Camp San Francisco 2013. Find a Puppet Camp near you: puppetlabs.com/community/puppet-camp/
An overview session on Grid Computing conducted in a AICTE approved STTP Virtualization, Cloud Computing and Big Data at Vidyalankar Institute of Technology, Mumbai between December 9 and 20, 2013. About 53 participants from various colleges across the state attended it. Courtesy: Consolidation from Internet.
Trick or Treat?: Bitcoin for Non-Believers, Cryptocurrencies for CypherpunksDavid Evans
David Evans
DC Area Crypto Day
Johns Hopkins University
30 October 2015
This (non-research) talk will start with a tutorial introduction to cryptocurrencies and how bitcoin works (and doesn’t work) today. We’ll touch on some of the legal, policy, and business aspects of bitcoin and discuss some potential research opportunities in cryptocurrencies.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
4. Recap:
Last Class
12 September 2013 University of Virginia cs4414 3
Program Computer
Center
Your Program Runs
Program A
Program B
Program C
A
B
A
C
Batch Processing
Multiprogramming
5. Kinds of Processor-Sharing
Multiprogramming
User program X runs until it gets stuck, then
supervisor program takes over.
Non-preemptive multi-tasking
User program X runs until it decides to let the
supervisor program run.
Preemptive multi-tasking
User program X runs until the (approximately)
supervisor decides to let another program run.
12 September 2013 University of Virginia cs4414 4
7. 12 September 2013 University of Virginia cs4414 6
MULTICS (1969)
UNIX (1975)
PowerMac G5
(Mac OS 9)
2006
MacBook Air
(Mac OS X)
2011
Microsoft
Windows 2.1x
1988
Which have
preemptive
multitasking?
8. Which have preemptive
multitasking?
12 September 2013 University of Virginia cs4414 7
MULTICS (1969)
UNIX (1975)
PowerMac G5
(Mac OS 9)
2006
MacBook Air
(Mac OS X)
2011
Microsoft
Windows 2.1x
1988
9. How could I prove it?
12 September 2013 University of Virginia cs4414 8
11. Quiz
Which are results of preemptive multitasking?
A. A computer running Mac OS X crashes less
than one running Mac OS 9
B. A computer running Mac OS X needs
fewer hard reboots than one running Mac
OS 9
C. When you watch Gangnam Style even for
the 50th time, the video jitters
D. A Senator can play poker on an iPhone
during an important hearing
12 September 2013 University of Virginia cs4414 10
12. 12 September 2013 University of Virginia cs4414 11
How did Apple add preemptive multitasking to Mac OS?
Mac OS X (Cheetah)
24 March 2001
Mac OS 9.2.2
5 Dec 2001
13. 12 September 2013 University of Virginia cs4414 12
http://www.youtube.com/watch?v=YsWBJ_usRck&t=2m18s
(The answer is
probably not in this
movie.)
14. 12 September 2013 University of Virginia cs4414 13
“Once you make them talk, they
won’t be inanimate anymore.”
Steve Jobs (as quoted by Sorkin
earlier in interview)
15. 12 September 2013 University of Virginia cs4414 14
https://upload.wikimedia.org/wikipedia/commons/7/77/Unix_history-simple.svg
19. 12 September 2013 University of Virginia cs4414 18
Tim Berners Lee finishing PS1 23 years early!
20. 12 September 2013 University of Virginia cs4414 19
MULTICS
Unix
BSD
Linux
Minix
Android
NextStep
Mac OS X
iOS
Code (carries license)
“Ideas” (no license,
possible patent lawsuits)
FreeBSD
23. 12 September 2013 University of Virginia cs4414 22
Non-Malicious
Developers
I am not making this up (really)!:
http://www.pkr.com/en/community/news-events/pkr-for-iphone/
Senator’s Phone
24. 12 September 2013 University of Virginia cs4414 23
So, which API
do I use to
turn on his
microphone?
25. 12 September 2013 University of Virginia cs4414 24
Malicious
Developers
(This one is speculative…)
PRK
senate hearing
Senator’s Phone
26. Actually just a little harder…
12 September 2013 University of Virginia cs4414 25
Malicious
Developers
27. Is “App Review” Possible?
12 September 2013 University of Virginia cs4414 26
Ok! Never
turns on
microphone.
Some
program
execution
turns on the
microphone!
28. 12 September 2013 University of Virginia cs4414 27
Not on my
machine, muc
hachas!
29. What Seems To Be Possible
12 September 2013 University of Virginia cs4414 28
Ok! Never
turns on
microphone.
Some
program
execution
turns on the
microphone!Not
sure…let’s
send it to
NSA just in
case.
31. 12 September 2013 University of Virginia cs4414 30
USENIX Security 2013 (click picture for talk video)
32. What Is Actually Possible
12 September 2013 University of Virginia cs4414 31
Ok! Never
turns on
microphone.
Some
program
execution
turns on the
microphone!Not
sure…let’s
send it to
NSA just in
case.
33. The Good News!
12 September 2013 University of Virginia cs4414 32
May have been posted by malicious app, not US senator.
34. How can
preemptive multitasking
even be possible?!?
12 September 2013 University of Virginia cs4414 33
More bad news…?
Preemptive multi-tasking
User program X runs until the supervisor
decides to let another program run.
35. Preemptive (?) Multitasking
12 September 2013 University of Virginia cs4414 34
Program A
Program B
Program C
A
B
A
Supervisor
Supervisor
Supervisor
A
38. Interrupts
12 September 2013 University of Virginia cs4414 37
How frequently
should the
supervisor’s alarm
clock (“kernel
timer interrupt”)
go off to check on
the workers?
39. My MacBook (Ubuntu)
12 September 2013 University of Virginia cs4414 38
bash-3.2$ uname -a
Darwin Davids-MacBook-Air-2.local 11.4.2 Darwin Kernel
Version 11.4.2: Thu Aug 23 16:25:48 PDT 2012; root:xnu-
1699.32.7~1/RELEASE_X86_64 x86_64
bash-3.2$ gcc timer.c ; ./a.out
kernel timer interrupt frequency is approx. 4016 Hz or higher
timer.c is a 50-line C program from
http://www.advenage.com/topics/linux-timer-interrupt-frequency.php (link on notes)
Midterm exemption opportunity:
make a Rust version (and convince me it is accurate)
40. Timer Interrupts
12 September 2013 University of Virginia cs4414 39
A B
Super
visor
set alarm clock
switch to program A
What makes the alarm clock ring?
Supervisor
set alarm clock
switch to program B
Supervisor
41. Who interrupts the supervisor?
12 September 2013 University of Virginia cs4414 40
43. 12 September 2013 University of Virginia cs4414 42
Support for hypervisor added
to Intel x86 in 2005 (VT-x)
44. 12 September 2013 University of Virginia cs4414 43
More general (quite
similar) idea in MULTICS
(but with 8-levels of
supervision in hardware
by 1975)
45. PS2: The Good Ole Shell
12 September 2013 University of Virginia cs4414 44
$ echo ‘Wha-hoo-wa!’
$ !!
$ traceroute 128.143.22.36
$ id -p ray
$ !!
$ fsck; !mount -u VA!