SlideShare a Scribd company logo
1 of 63
Download to read offline
1
A REIMPLEMENTATION OF NETBSD
BASED ON A MICROKERNEL
Andrew S. Tanenbaum
and a team of students and programmers who
actually did all the work. Three of them,
Ben Gras, Lionel Sambuc, and Arun Thomas are here!
Vrije Universiteit
Amsterdam, The Netherlands
2
GOAL OF OUR WORK: BUILD A RELIABLE OS
Tanenbaum’s definition of a reliable OS:
“An operating system is said to be reliable when a
typical user has never experienced even a single
failure in his or her lifetime and does not know
anybody who has ever experienced a failure.”
In engineering terms, this is probably
mean time to failure > 50 years
I don’t think we are there yet
3
THE TELEVISION MODEL (BEFORE SMART TVs)
1. You buy the television
2. You plug it in
3. It works perfectly for the next 10 years
4
THE COMPUTER MODEL (WINDOWS EDITION)
5
THE COMPUTER MODEL (WINDOWS EDITION)
1. You buy the computer
2. You plug it in
3. You install service packs 1 through 9f
4. You install 18 new emergency security patches
5. You find and install 7 new device drivers
6. You install antivirus software
7. You install antispyware software
8. You install antihacker software (firewall)
9. You install antispam software
10. You reboot the computer
6
THE COMPUTER MODEL (2)
11. It doesn’t work
12. You call the helpdesk
13. You wait on hold for 30 minutes
14. They tell you to reinstall Windows
7
TYPICAL USER REACTION
The New York Times recently reported that 25% of
computer users have gotten so angry at their computer
that they physically hit it.
IS RELIABILITY SO IMPORTANT?
• Annoying
• Lost work
• But also think about
– Industrial control systems in factories
– Power grids
– Hospital operating rooms
– Banking and e-commerce servers
– Emergency phone centers
– Control software in cars, airplanes, etc.
8
IS THIS FEASIBLE?
• We won’t find out if we don’t try
• Dutch Royal Academy gave me €2 million to try
• European Union gave me €2.5 million to give it a shot
• So, we’re trying
9
10
IS RELIABILITY ACHIEVABLE AT ALL?
• Systems can survive hardware failures!
– RAIDs can survive failed disks
– ECC memory can survive parity errors in memory
– TCP/IP can survive lost packets
– CD-ROM drives can correct many simultaneous errors
• We need to be able to survive software failures, too
11
A NEED TO RETHINK OPERATING SYSTEMS
• Operating systems research need to be refocused
– We have powerful hardware on PC-class machines
– Plenty of CPU cycles, RAM, bandwidth
– Current software has tons of (useless) features
– Consequently, the software is slow, bloated, and buggy
• To achieve the TV model, future OSes, must be
– Small
– Simple
– Modular
– Reliable
– Secure
– Self-healing
BRIEF HISTORY OF OUR WORK
• (1976) John Lions wrote a book on UNIX V6
• (1979) AT&T released V7 and forbade books on it 
• (1985) I started to write a UNIX-like OS from scratch
• (1987) MINIX 1 + book for teaching OS classes released
• (1997) MINIX 2 (POSIX) & 2nd edition of book released
• (2000) MINIX 2 license changed to BSD
• (2004) MINIX 3: start of work making a reliable OS
• (2006) 3rd edition of book
• (2008) European grant
• (2010) Focus moved towards embedded systems
• (2013) MINIX 3.3.0 moves to NetBSD “compatibility”
12
THREE EDITIONS OF THE BOOK
13
1 2 3
14
INTELLIGENT DESIGN
• Microkernel (13,000 LoC vs. > 15 million for Linux)
– Bugs per 1000 LoC: Most S/W (1-10)
– MINIX 3 at least 13 kernel bugs; Linux has > 15,000
– Drivers have 3-7x more bugs than rest of kernel
– About 70% of the code is drivers
• Highly modular
• OS runs as multiple user-mode server processes
AS APPLIED TO OPERATING SYSTEMS
15
STEP 1: ISOLATE COMPONENTS
• Move all loadable modules out of the kernel
– includes all device drivers, file systems, mem mgt, etc.
• Run each module as a separate process with POLA
(Principle Of Least Authority)
16
STEP 2: ISOLATE I/O
• Isolate I/O devices
• Limit access to I/O ports
• Constrain DMA (needs hardware assistance)
17
STEP 3: ISOLATE COMMUNICATION
• Limit interprocess communication
• Restrict IPC on a ‘need-to-communicate’ basis
• Restrict kernel calls on a per-component basis
• Make sure faulty receiver cannot hang sender
18
ARCHITECTURE OF MINIX 3
Microkernel handles interrupts,
processes, scheduling, IPC
Clock
FS 1 FS 2 Proc. Other... Servers
User
mode
Disk TTY Net Print Other... Drivers
Shell Make User...
Process
19
USER-MODE DEVICE DRIVERS
• Each driver runs as a user-mode process
• No superuser privileges
• Protected by the MMU
• Do not have access to I/O ports, privileged instrs
• They have to ask the microkernel
20
USER-MODE SERVERS
• Each server runs as a separate process
• Some key servers
– Virtual file server (implements VFS)
– Actual file servers (e.g., MINIX FS, EXT2, ISO 9660)
– Process manager
– Memory manager
– Network server
– Reincarnation server
– Part of the scheduler
21
A SIMPLIFIED EXAMPLE: DOING A READ
User
mode Servers
Drivers
Users
Kernel
File access when the block is in the FS cache
1
2 3
4
User
Disk
FSFS
22
FILE SERVER (2)
File access when the block is NOT in the FS cache
Servers
User
mode
Drivers
Users
Kernel
1
2
3
9
4
6
7,85
Notification
FS
User
Disk
23
REINCARNATION SERVER
• Parent of all the drivers and servers
• When a driver or server dies, RS collects it
• RS checks a table for action to take e.g., restart it
• RS also pings drivers and servers frequently
24
DISK DRIVER RECOVERY
Servers
User
mode
Drivers
Users
Kernel
User1
FS
2
Disk
driverX 3. Crash!
New
driver
4
RSRS
5
System is self healing—this is how we hope to make it reliable
25
KERNEL RELIABILITY/SECURITY
• Fewer LoC means fewer kernel bugs
• Small kernel (13,000 LoC) means reduced TCB
• NO foreign code (e.g., drivers) in the kernel
• Static data structures (no malloc in kernel)
• Moving bugs to user space puts them in cages
26
IPC RELIABILITY/SECURITY
• Fixed-length messages (no buffer overruns)
• Rendezvous system was simple
– No lost messages
– No buffer management
– We had to add asynchronous messages
• Interrupts and messages are unified
27
DRIVER RELIABILITY/SECURITY
• Untrusted code: heavily isolated
• Bugs, viruses cannot spread to other modules
• Cannot touch kernel data or other drivers/servers
• Bad pointers, buffer overruns crash only one driver
• Infinite loops detected and driver restarted
• Access to I/O ports is restricted
• Access to kernel calls is limited and checked
• Restricted power to do damage (not superuser)
28
OTHER ADVANTAGES OF USER COMPONENTS
• Short development cycle
• Normal programming model
• No down time for crash and reboot
• Easy debugging
• Good flexibility (applies to drivers, file systems, etc.)
29
FAULT INJECTION EXPERIMENT
• We injected 800,000 faults into each of 3 drivers
• Done on the binary drivers
• Examples, change src addr, dest addr, loop condition
• 100 faults were injected on each experiment
• Waited 1 sec to see if the driver crashed
• If no crash, inject another 100 faults and repeat
• The driver crashed in 18,038 trials
• The operating system NEVER crashed
30
PORT OF MINIX 3 TO ARM
• Restructured source tree for multiple architectures
• Changed booting to support u-boot for ARM
• Rewrote the low-level code dealing with hardware
• Changed code for context switching, paging, etc.
• Removed x86 segmentation code
• Imported NetBSD ARM headers and libraries
• Ported build.sh for cross-toolchain support
• Wrote drivers for SD card and other Beagle devices
31
EMBEDDED SYSTEMS
9 cm
5cm BeagleBone Black
32
BBB CHARACTERISTICS
Item BeagleBone Black
CPU ARM v7
Clock 1 GHz
RAM 512 MB
Flash 4 GB
Video HDMI/1080p
GPIO pins 92
Ethernet 10/100 Mbps
USB 1
Open source/documentation Yes
Price (quantity 1) $55
I ADMIT I WAS WRONG
• On 29 Jan 1992 I posted to comp.os.minix this:
• “Don’t get me wrong, I am not unhappy with LINUX. It will
get all the people who want to turn MINIX in BSD UNIX off
my back.”
• I Apologize. Now I do want to turn MINIX into BSD. It just
took me 20 years to realize this.
33
MINIX 3 MEETS BSD
34
+ =
BSD Daemon is copyright 1988 by Marshall Kirk McKusick and is used with permission.
OR MAYBE
35
WHY BSD?
• MINIX 3 didn’t have enough application software
• BSD is a proven, portable, quality product
• BSD has better code quality than Linux
• Pkgsrc handles packages better than what we had
• Thousands of excellent packages available
• Active community
• License compatibility
• Why NetBSD?
• Mostly due to its emphasis on portability
36
NETBSD FEATURES IN MINIX 3.3.0
• Clang/LLVM compiler
• NetBSD build system (build.sh)
• ELF file format
• Source code tree modeled on NetBSD
• Headers and libraries are from NetBSD
• Pkgsrc works and builds >4200 NetBSD packages
• Nevertheless, built on MINIX 3 kernel & servers
• X11 coming back soon (almost there)
37
NETBSD FEATURES MISSING IN MINIX 3.3.0
• Kernel threads (we do have userland pthreads)
• Some system calls:
– All _LWP*, MSG*, SEM* calls
– CLONE
– Some GET, IOCTL calls
– KQUEUE, KTRACE
– Job control
• Some weird socket options
• Nevertheless, we can build over 4200 packages
38
KYUA TESTS
39
Conclusion: 2139 out of 2651 passed (81%)
40
SYSTEM ARCHITECTURE
Servers
…
…
…
Drivers
Microkernel (this is the only part running in kernel mode)
Net
VFS
TTYDisk USB
FS MM Rein
carnat
OS
(MINIX)
Clang Pkgsrc (libc)
…Pkg 1 Pkg n
Users
User-
Land
(NetBSD)
MINIX 3 ON THE THREE BEAGLE BOARDS
41
YOUR ROLE
• MINIX 3 is an open-source project
• I hope some of you will join and help us
• Things to do
– Add crucial missing system calls
– Port more packages (Java, a browser, etc.)
– Write the missing drivers for the Beagle series
– Get it running on Raspberry Pi & other platforms
– Port Rump
– Port required libraries and then port a GUI
– Much more
• Get involved!
42
43
MINIX 3 IN A NUTSHELL
• Microkernel reimplementation of NetBSD
• Fully open source with BSD license
• Highly compatible with NetBSD
• Supports both LLVM and gcc
• Uses NetBSD pkgsrc
• Over 4200 packages build
• Live update coming soon
• Good security by design (modularity, randomization)
• Go get it at www.minix3.org and try it
44
POSITIONING OF MINIX
• Show that multiserver systems are
– reliable
– secure
– practical
• Demonstrate that drivers belong in user mode
• High-reliability and fault-tolerant applications
• $50 single-chip, small-RAM laptops for 3rd world
• Embedded systems
45
MINIX 3 LOGO
• Why a raccoon?
– Small
– Cute
– Clever
– Agile
– Eats bugs
– More likely to visit your house than a penguin
46
WEBSITE: www.minix3.org
DOCUMENTATION IS IN A WIKI
• Wiki.minix3.org
• You can help
document the system
47
48
TRAFFIC TO WWW.MINIX3.ORG
Total visits to the main page since 2004: 2.9 million
Total visits to the download page since 2004: 1.1 million
Actual downloads since 2007: 600,000
Visits to download pageVisits to www.minix3.org
49
MINIX 3 GOOGLE NEWSGROUP
50
CONCLUSION
• Current OSes are bloated
• MINIX 3 is an attempt at a reliable, secure OS
• Kernel is very small (13,000 LoC)
• OS runs as a collection of user processes
• Each driver is a separate process
• Each OS component has restricted privileges
• Faulty drivers can be replaced automatically
• Live update is possible (not in current release)
• Uses NetBSD userland and packages
SURVEY
• Please download from www.minix3.org
• Give it a try
• Fill out the survey on the www.minix3.org page
• We had 14,000 downloads in Sept. but we don’t
know who they are or what they are doing
• We are trying to build an active community
51
MASTERS DEGREE AT THE VU
• If you are interested in a Masters in systems
• Google me, go to my home page
• Click on the YouTube video there
52
53
THE END
54
WEBSITE: www.minix3.org
55
56
DISK PERFORMANCE
57
THE COST OF DRIVER RECOVERY
• We killed the Ethernet driver every t sec to simulate
repeated driver crashes
Driver recovery takes about 360 msec
58
RESEARCH: LIVE UPDATE
• We can update almost the entire system on the fly
• How: create new process (driver or server)
• New one contacts old one to get the state
• After state is transferred, third process is created
• It runs the state transfer backwards as a check
• If it is OK, connections are rerouted to the new one
• Applications don’t even notice this has happened
59
MUCH BETTER THAN KSPLICE
• KSPLICE can handle only small security patches
• SPLICE patches the running process
• Over time, crud accumulates in the process
• If the update fails, there is no recovery
60
RESEARCH: MULTICORE CHIPS
• Network stack has components
• Chips may be heterogeneous
• Where to put each component?
• Experiments scaling frequencies
• Sometimes slower is faster!
• Sleep/wakeup is expensive
TCP IP
Ether Kernel
Multicore chip
Core
61
RESEARCH: NEW FILE SYSTEM--LORIS
• Better reliabilty
• Better flexibility
• Handles heterogeneity better
• File rather than block oriented
• Uses checksums to detect corruption
VFS
Naming
Cache
Logical
Physical
Driver
Introduces concept of a logical file
(1 or more phys files spread or striped over possibly
heterogeneous devices)
62
RESEARCH: FAULT INJECTION
Inject
fault?
Original
unmodified
basic block
Basic block
with fault
injected
This structure is created automatically by the LLVM compiler
63
NEW PROGRAM STRUCTURE

More Related Content

What's hot

Containers are the future of the Cloud
Containers are the future of the CloudContainers are the future of the Cloud
Containers are the future of the CloudPavel Odintsov
 
The Linux Block Layer - Built for Fast Storage
The Linux Block Layer - Built for Fast StorageThe Linux Block Layer - Built for Fast Storage
The Linux Block Layer - Built for Fast StorageKernel TLV
 
Kernel Recipes 2015 - So you want to write a Linux driver framework
Kernel Recipes 2015 - So you want to write a Linux driver frameworkKernel Recipes 2015 - So you want to write a Linux driver framework
Kernel Recipes 2015 - So you want to write a Linux driver frameworkAnne Nicolas
 
Advanced Namespaces and cgroups
Advanced Namespaces and cgroupsAdvanced Namespaces and cgroups
Advanced Namespaces and cgroupsKernel TLV
 
High Performance Storage Devices in the Linux Kernel
High Performance Storage Devices in the Linux KernelHigh Performance Storage Devices in the Linux Kernel
High Performance Storage Devices in the Linux KernelKernel TLV
 
Linux Interrupts
Linux InterruptsLinux Interrupts
Linux InterruptsKernel TLV
 
HKG15-305: Real Time processing comparing the RT patch vs Core isolation
HKG15-305: Real Time processing comparing the RT patch vs Core isolationHKG15-305: Real Time processing comparing the RT patch vs Core isolation
HKG15-305: Real Time processing comparing the RT patch vs Core isolationLinaro
 
Introduction to linux containers
Introduction to linux containersIntroduction to linux containers
Introduction to linux containersGoogle
 
Modern net bsd kernel module
Modern net bsd kernel moduleModern net bsd kernel module
Modern net bsd kernel moduleMasaru Oki
 
Virtualization which isn't: LXC (Linux Containers)
Virtualization which isn't: LXC (Linux Containers)Virtualization which isn't: LXC (Linux Containers)
Virtualization which isn't: LXC (Linux Containers)Dobrica Pavlinušić
 
Linux cgroups and namespaces
Linux cgroups and namespacesLinux cgroups and namespaces
Linux cgroups and namespacesLocaweb
 
Linux architecture
Linux architectureLinux architecture
Linux architecturemcganesh
 
Linux containers – next gen virtualization for cloud (atl summit) ar4 3 - copy
Linux containers – next gen virtualization for cloud (atl summit) ar4 3 - copyLinux containers – next gen virtualization for cloud (atl summit) ar4 3 - copy
Linux containers – next gen virtualization for cloud (atl summit) ar4 3 - copyBoden Russell
 
Kernel Recipes 2015: Kernel packet capture technologies
Kernel Recipes 2015: Kernel packet capture technologiesKernel Recipes 2015: Kernel packet capture technologies
Kernel Recipes 2015: Kernel packet capture technologiesAnne Nicolas
 
Real-time soultion
Real-time soultionReal-time soultion
Real-time soultionNylon
 
FD.io Vector Packet Processing (VPP)
FD.io Vector Packet Processing (VPP)FD.io Vector Packet Processing (VPP)
FD.io Vector Packet Processing (VPP)Kirill Tsym
 

What's hot (20)

Containers are the future of the Cloud
Containers are the future of the CloudContainers are the future of the Cloud
Containers are the future of the Cloud
 
The Linux Block Layer - Built for Fast Storage
The Linux Block Layer - Built for Fast StorageThe Linux Block Layer - Built for Fast Storage
The Linux Block Layer - Built for Fast Storage
 
Kernel Recipes 2015 - So you want to write a Linux driver framework
Kernel Recipes 2015 - So you want to write a Linux driver frameworkKernel Recipes 2015 - So you want to write a Linux driver framework
Kernel Recipes 2015 - So you want to write a Linux driver framework
 
Advanced Namespaces and cgroups
Advanced Namespaces and cgroupsAdvanced Namespaces and cgroups
Advanced Namespaces and cgroups
 
High Performance Storage Devices in the Linux Kernel
High Performance Storage Devices in the Linux KernelHigh Performance Storage Devices in the Linux Kernel
High Performance Storage Devices in the Linux Kernel
 
Linux Interrupts
Linux InterruptsLinux Interrupts
Linux Interrupts
 
First steps on CentOs7
First steps on CentOs7First steps on CentOs7
First steps on CentOs7
 
HKG15-305: Real Time processing comparing the RT patch vs Core isolation
HKG15-305: Real Time processing comparing the RT patch vs Core isolationHKG15-305: Real Time processing comparing the RT patch vs Core isolation
HKG15-305: Real Time processing comparing the RT patch vs Core isolation
 
Introduction to linux containers
Introduction to linux containersIntroduction to linux containers
Introduction to linux containers
 
Basic Linux Internals
Basic Linux InternalsBasic Linux Internals
Basic Linux Internals
 
Real time Linux
Real time LinuxReal time Linux
Real time Linux
 
Modern net bsd kernel module
Modern net bsd kernel moduleModern net bsd kernel module
Modern net bsd kernel module
 
Mastering Real-time Linux
Mastering Real-time LinuxMastering Real-time Linux
Mastering Real-time Linux
 
Virtualization which isn't: LXC (Linux Containers)
Virtualization which isn't: LXC (Linux Containers)Virtualization which isn't: LXC (Linux Containers)
Virtualization which isn't: LXC (Linux Containers)
 
Linux cgroups and namespaces
Linux cgroups and namespacesLinux cgroups and namespaces
Linux cgroups and namespaces
 
Linux architecture
Linux architectureLinux architecture
Linux architecture
 
Linux containers – next gen virtualization for cloud (atl summit) ar4 3 - copy
Linux containers – next gen virtualization for cloud (atl summit) ar4 3 - copyLinux containers – next gen virtualization for cloud (atl summit) ar4 3 - copy
Linux containers – next gen virtualization for cloud (atl summit) ar4 3 - copy
 
Kernel Recipes 2015: Kernel packet capture technologies
Kernel Recipes 2015: Kernel packet capture technologiesKernel Recipes 2015: Kernel packet capture technologies
Kernel Recipes 2015: Kernel packet capture technologies
 
Real-time soultion
Real-time soultionReal-time soultion
Real-time soultion
 
FD.io Vector Packet Processing (VPP)
FD.io Vector Packet Processing (VPP)FD.io Vector Packet Processing (VPP)
FD.io Vector Packet Processing (VPP)
 

Viewers also liked

EuroBSDCon 2014 Program Front
EuroBSDCon 2014 Program FrontEuroBSDCon 2014 Program Front
EuroBSDCon 2014 Program Fronteurobsdcon
 
David Moore - Customer Engagement and Commerce: The Evolution of CRM
David Moore - Customer Engagement and Commerce: The Evolution of CRMDavid Moore - Customer Engagement and Commerce: The Evolution of CRM
David Moore - Customer Engagement and Commerce: The Evolution of CRMleahcenta
 
1.3.23 Решения для отраслевых задач от siemens и дкс. организация ввода и рас...
1.3.23 Решения для отраслевых задач от siemens и дкс. организация ввода и рас...1.3.23 Решения для отраслевых задач от siemens и дкс. организация ввода и рас...
1.3.23 Решения для отраслевых задач от siemens и дкс. организация ввода и рас...Igor Golovin
 
Enterprise Solutions
Enterprise SolutionsEnterprise Solutions
Enterprise SolutionsGetty Images
 
¿Podemos identificar maestros efectivos al momento de contratación? Las clase...
¿Podemos identificar maestros efectivos al momento de contratación? Las clase...¿Podemos identificar maestros efectivos al momento de contratación? Las clase...
¿Podemos identificar maestros efectivos al momento de contratación? Las clase...Instituto Nacional de Evaluación Educativa
 
Ontsnapping uit Lantin door verouderde beveiliging?
Ontsnapping uit Lantin door verouderde beveiliging?Ontsnapping uit Lantin door verouderde beveiliging?
Ontsnapping uit Lantin door verouderde beveiliging?Thierry Debels
 
Validacion de la regla de 3 Akiskal para el trastorno bipolar
Validacion de la regla de 3 Akiskal para el trastorno bipolarValidacion de la regla de 3 Akiskal para el trastorno bipolar
Validacion de la regla de 3 Akiskal para el trastorno bipolarMédico Psiquiatra
 
1.3.16 Система для организации рабочих мест
1.3.16 Система для организации рабочих мест 1.3.16 Система для организации рабочих мест
1.3.16 Система для организации рабочих мест Igor Golovin
 

Viewers also liked (12)

Interpreter, Compiler, JIT from scratch
Interpreter, Compiler, JIT from scratchInterpreter, Compiler, JIT from scratch
Interpreter, Compiler, JIT from scratch
 
EuroBSDCon 2014 Program Front
EuroBSDCon 2014 Program FrontEuroBSDCon 2014 Program Front
EuroBSDCon 2014 Program Front
 
David Moore - Customer Engagement and Commerce: The Evolution of CRM
David Moore - Customer Engagement and Commerce: The Evolution of CRMDavid Moore - Customer Engagement and Commerce: The Evolution of CRM
David Moore - Customer Engagement and Commerce: The Evolution of CRM
 
Modafinil 68693-11-8-api
Modafinil 68693-11-8-apiModafinil 68693-11-8-api
Modafinil 68693-11-8-api
 
1.3.23 Решения для отраслевых задач от siemens и дкс. организация ввода и рас...
1.3.23 Решения для отраслевых задач от siemens и дкс. организация ввода и рас...1.3.23 Решения для отраслевых задач от siemens и дкс. организация ввода и рас...
1.3.23 Решения для отраслевых задач от siemens и дкс. организация ввода и рас...
 
Enterprise Solutions
Enterprise SolutionsEnterprise Solutions
Enterprise Solutions
 
¿Podemos identificar maestros efectivos al momento de contratación? Las clase...
¿Podemos identificar maestros efectivos al momento de contratación? Las clase...¿Podemos identificar maestros efectivos al momento de contratación? Las clase...
¿Podemos identificar maestros efectivos al momento de contratación? Las clase...
 
Ontsnapping uit Lantin door verouderde beveiliging?
Ontsnapping uit Lantin door verouderde beveiliging?Ontsnapping uit Lantin door verouderde beveiliging?
Ontsnapping uit Lantin door verouderde beveiliging?
 
Ads01
Ads01Ads01
Ads01
 
The dictionary survival kit
The dictionary survival kitThe dictionary survival kit
The dictionary survival kit
 
Validacion de la regla de 3 Akiskal para el trastorno bipolar
Validacion de la regla de 3 Akiskal para el trastorno bipolarValidacion de la regla de 3 Akiskal para el trastorno bipolar
Validacion de la regla de 3 Akiskal para el trastorno bipolar
 
1.3.16 Система для организации рабочих мест
1.3.16 Система для организации рабочих мест 1.3.16 Система для организации рабочих мест
1.3.16 Система для организации рабочих мест
 

Similar to A REIMPLEMENTATION OF NETBSD BASED ON A MICROKERNEL AND THE GOAL OF ACHIEVING RELIABLE OPERATING SYSTEMS

Iot Bootcamp - abridged - part 1
Iot Bootcamp - abridged - part 1Iot Bootcamp - abridged - part 1
Iot Bootcamp - abridged - part 1Marcus Tarquinio
 
Include os @ flossuk 2018
Include os @ flossuk 2018Include os @ flossuk 2018
Include os @ flossuk 2018Per Buer
 
What Linux can learn from Solaris performance and vice-versa
What Linux can learn from Solaris performance and vice-versaWhat Linux can learn from Solaris performance and vice-versa
What Linux can learn from Solaris performance and vice-versaBrendan Gregg
 
Mces MOD 1.pptx
Mces MOD 1.pptxMces MOD 1.pptx
Mces MOD 1.pptxRadhaC10
 
Basics of micro controllers for biginners
Basics of  micro controllers for biginnersBasics of  micro controllers for biginners
Basics of micro controllers for biginnersGerwin Makanyanga
 
Four Ways to Improve Linux Performance IEEE Webinar, R2.0
Four Ways to Improve Linux Performance IEEE Webinar, R2.0Four Ways to Improve Linux Performance IEEE Webinar, R2.0
Four Ways to Improve Linux Performance IEEE Webinar, R2.0Michael Christofferson
 
UNIT 3 - General Purpose Processors
UNIT 3 - General Purpose ProcessorsUNIT 3 - General Purpose Processors
UNIT 3 - General Purpose ProcessorsButtaRajasekhar2
 
Network Stack in Userspace (NUSE)
Network Stack in Userspace (NUSE)Network Stack in Userspace (NUSE)
Network Stack in Userspace (NUSE)Hajime Tazaki
 
Introduction to Embedded System
Introduction to Embedded SystemIntroduction to Embedded System
Introduction to Embedded SystemZakaria Gomaa
 
Bit_Bucket_x31_Final
Bit_Bucket_x31_FinalBit_Bucket_x31_Final
Bit_Bucket_x31_FinalSam Knutson
 
My First 100 days with an Exadata (PPT)
My First 100 days with an Exadata (PPT)My First 100 days with an Exadata (PPT)
My First 100 days with an Exadata (PPT)Gustavo Rene Antunez
 
Maxwell siuc hpc_description_tutorial
Maxwell siuc hpc_description_tutorialMaxwell siuc hpc_description_tutorial
Maxwell siuc hpc_description_tutorialmadhuinturi
 
Designs, Lessons and Advice from Building Large Distributed Systems
Designs, Lessons and Advice from Building Large Distributed SystemsDesigns, Lessons and Advice from Building Large Distributed Systems
Designs, Lessons and Advice from Building Large Distributed SystemsDaehyeok Kim
 
Embedded Systems Introduction
Embedded Systems IntroductionEmbedded Systems Introduction
Embedded Systems IntroductionSagar Adroja
 
Embedded systems introduction
Embedded systems introductionEmbedded systems introduction
Embedded systems introductionSagar Adroja
 

Similar to A REIMPLEMENTATION OF NETBSD BASED ON A MICROKERNEL AND THE GOAL OF ACHIEVING RELIABLE OPERATING SYSTEMS (20)

Iot Bootcamp - abridged - part 1
Iot Bootcamp - abridged - part 1Iot Bootcamp - abridged - part 1
Iot Bootcamp - abridged - part 1
 
Include os @ flossuk 2018
Include os @ flossuk 2018Include os @ flossuk 2018
Include os @ flossuk 2018
 
What Linux can learn from Solaris performance and vice-versa
What Linux can learn from Solaris performance and vice-versaWhat Linux can learn from Solaris performance and vice-versa
What Linux can learn from Solaris performance and vice-versa
 
Mces MOD 1.pptx
Mces MOD 1.pptxMces MOD 1.pptx
Mces MOD 1.pptx
 
CSC204PPTNOTES
CSC204PPTNOTESCSC204PPTNOTES
CSC204PPTNOTES
 
Basics of micro controllers for biginners
Basics of  micro controllers for biginnersBasics of  micro controllers for biginners
Basics of micro controllers for biginners
 
Four Ways to Improve Linux Performance IEEE Webinar, R2.0
Four Ways to Improve Linux Performance IEEE Webinar, R2.0Four Ways to Improve Linux Performance IEEE Webinar, R2.0
Four Ways to Improve Linux Performance IEEE Webinar, R2.0
 
Lect18
Lect18Lect18
Lect18
 
UNIT 3 - General Purpose Processors
UNIT 3 - General Purpose ProcessorsUNIT 3 - General Purpose Processors
UNIT 3 - General Purpose Processors
 
Network Stack in Userspace (NUSE)
Network Stack in Userspace (NUSE)Network Stack in Userspace (NUSE)
Network Stack in Userspace (NUSE)
 
Window ce
Window ceWindow ce
Window ce
 
Introduction to Embedded System
Introduction to Embedded SystemIntroduction to Embedded System
Introduction to Embedded System
 
Bit_Bucket_x31_Final
Bit_Bucket_x31_FinalBit_Bucket_x31_Final
Bit_Bucket_x31_Final
 
My First 100 days with an Exadata (PPT)
My First 100 days with an Exadata (PPT)My First 100 days with an Exadata (PPT)
My First 100 days with an Exadata (PPT)
 
Maxwell siuc hpc_description_tutorial
Maxwell siuc hpc_description_tutorialMaxwell siuc hpc_description_tutorial
Maxwell siuc hpc_description_tutorial
 
Designs, Lessons and Advice from Building Large Distributed Systems
Designs, Lessons and Advice from Building Large Distributed SystemsDesigns, Lessons and Advice from Building Large Distributed Systems
Designs, Lessons and Advice from Building Large Distributed Systems
 
PILOT Session for Embedded Systems
PILOT Session for Embedded Systems PILOT Session for Embedded Systems
PILOT Session for Embedded Systems
 
Embedded Systems Introduction
Embedded Systems IntroductionEmbedded Systems Introduction
Embedded Systems Introduction
 
Embedded systems introduction
Embedded systems introductionEmbedded systems introduction
Embedded systems introduction
 
Clustering
ClusteringClustering
Clustering
 

More from eurobsdcon

EuroBSDCon 2014 tutorials program Thursday & Friday
EuroBSDCon 2014 tutorials program Thursday & FridayEuroBSDCon 2014 tutorials program Thursday & Friday
EuroBSDCon 2014 tutorials program Thursday & Fridayeurobsdcon
 
EuroBSDCon 2014 Sofia Welcome
EuroBSDCon 2014 Sofia WelcomeEuroBSDCon 2014 Sofia Welcome
EuroBSDCon 2014 Sofia Welcomeeurobsdcon
 
EuroBSDCon 2014 Sofia Closing talk
EuroBSDCon 2014 Sofia Closing talkEuroBSDCon 2014 Sofia Closing talk
EuroBSDCon 2014 Sofia Closing talkeurobsdcon
 
Submitting documents anonymously by Atanas Chobanov
Submitting documents anonymously by Atanas ChobanovSubmitting documents anonymously by Atanas Chobanov
Submitting documents anonymously by Atanas Chobanoveurobsdcon
 
Porting the drm/kms graphic drivers to DragonFlyBSD by Francois Tigeot
Porting the drm/kms graphic drivers to DragonFlyBSD by Francois TigeotPorting the drm/kms graphic drivers to DragonFlyBSD by Francois Tigeot
Porting the drm/kms graphic drivers to DragonFlyBSD by Francois Tigeoteurobsdcon
 
University of Oslo's TSD service - storing sensitive & restricted data by D...
  University of Oslo's TSD service - storing sensitive & restricted data by D...  University of Oslo's TSD service - storing sensitive & restricted data by D...
University of Oslo's TSD service - storing sensitive & restricted data by D...eurobsdcon
 
secure lazy binding, and the 64bit time_t development process by Philip Guenther
secure lazy binding, and the 64bit time_t development process by Philip Guenthersecure lazy binding, and the 64bit time_t development process by Philip Guenther
secure lazy binding, and the 64bit time_t development process by Philip Guenthereurobsdcon
 
The entropic principle: /dev/u?random and NetBSD by Taylor R Campbell
  The entropic principle: /dev/u?random and NetBSD by Taylor R Campbell  The entropic principle: /dev/u?random and NetBSD by Taylor R Campbell
The entropic principle: /dev/u?random and NetBSD by Taylor R Campbelleurobsdcon
 
The LLDB Debugger in FreeBSD by Ed Maste
The LLDB Debugger in FreeBSD by Ed MasteThe LLDB Debugger in FreeBSD by Ed Maste
The LLDB Debugger in FreeBSD by Ed Masteeurobsdcon
 
Porting Valgrind to NetBSD and OpenBSD by Masao Uebayashi
Porting Valgrind to NetBSD and OpenBSD by Masao UebayashiPorting Valgrind to NetBSD and OpenBSD by Masao Uebayashi
Porting Valgrind to NetBSD and OpenBSD by Masao Uebayashieurobsdcon
 
Multiplatform JIT Code Generator for NetBSD by Alexander Nasonov
Multiplatform JIT Code Generator for NetBSD by Alexander NasonovMultiplatform JIT Code Generator for NetBSD by Alexander Nasonov
Multiplatform JIT Code Generator for NetBSD by Alexander Nasonoveurobsdcon
 
OpenStack and OpenContrail for FreeBSD platform by Michał Dubiel
OpenStack and OpenContrail for FreeBSD platform by Michał DubielOpenStack and OpenContrail for FreeBSD platform by Michał Dubiel
OpenStack and OpenContrail for FreeBSD platform by Michał Dubieleurobsdcon
 
Porting NetBSD to the LatticeMico32 open source CPU by Yann Sionneau
Porting NetBSD to the LatticeMico32 open source CPU by Yann SionneauPorting NetBSD to the LatticeMico32 open source CPU by Yann Sionneau
Porting NetBSD to the LatticeMico32 open source CPU by Yann Sionneaueurobsdcon
 
Smartcom's control plane software, a customized version of FreeBSD by Boris A...
Smartcom's control plane software, a customized version of FreeBSD by Boris A...Smartcom's control plane software, a customized version of FreeBSD by Boris A...
Smartcom's control plane software, a customized version of FreeBSD by Boris A...eurobsdcon
 
Bugs Ex Ante by Kristaps Dzonsons
Bugs Ex Ante by Kristaps DzonsonsBugs Ex Ante by Kristaps Dzonsons
Bugs Ex Ante by Kristaps Dzonsonseurobsdcon
 
Cross Building the FreeBSD ports tree by Baptiste Daroussin
Cross Building the FreeBSD ports tree by Baptiste DaroussinCross Building the FreeBSD ports tree by Baptiste Daroussin
Cross Building the FreeBSD ports tree by Baptiste Daroussineurobsdcon
 
Building packages through emulation by Sean Bruno
Building packages through emulation by Sean BrunoBuilding packages through emulation by Sean Bruno
Building packages through emulation by Sean Brunoeurobsdcon
 
Making OpenBSD Useful on the Octeon Network Gear by Paul Irofti
Making OpenBSD Useful on the Octeon Network Gear by Paul IroftiMaking OpenBSD Useful on the Octeon Network Gear by Paul Irofti
Making OpenBSD Useful on the Octeon Network Gear by Paul Iroftieurobsdcon
 
Using routing domains / routing tables in a production network by Peter Hessler
Using routing domains / routing tables in a production network by Peter HesslerUsing routing domains / routing tables in a production network by Peter Hessler
Using routing domains / routing tables in a production network by Peter Hesslereurobsdcon
 
NPF scripting with Lua by Lourival Vieira Neto
NPF scripting with Lua by Lourival Vieira NetoNPF scripting with Lua by Lourival Vieira Neto
NPF scripting with Lua by Lourival Vieira Netoeurobsdcon
 

More from eurobsdcon (20)

EuroBSDCon 2014 tutorials program Thursday & Friday
EuroBSDCon 2014 tutorials program Thursday & FridayEuroBSDCon 2014 tutorials program Thursday & Friday
EuroBSDCon 2014 tutorials program Thursday & Friday
 
EuroBSDCon 2014 Sofia Welcome
EuroBSDCon 2014 Sofia WelcomeEuroBSDCon 2014 Sofia Welcome
EuroBSDCon 2014 Sofia Welcome
 
EuroBSDCon 2014 Sofia Closing talk
EuroBSDCon 2014 Sofia Closing talkEuroBSDCon 2014 Sofia Closing talk
EuroBSDCon 2014 Sofia Closing talk
 
Submitting documents anonymously by Atanas Chobanov
Submitting documents anonymously by Atanas ChobanovSubmitting documents anonymously by Atanas Chobanov
Submitting documents anonymously by Atanas Chobanov
 
Porting the drm/kms graphic drivers to DragonFlyBSD by Francois Tigeot
Porting the drm/kms graphic drivers to DragonFlyBSD by Francois TigeotPorting the drm/kms graphic drivers to DragonFlyBSD by Francois Tigeot
Porting the drm/kms graphic drivers to DragonFlyBSD by Francois Tigeot
 
University of Oslo's TSD service - storing sensitive & restricted data by D...
  University of Oslo's TSD service - storing sensitive & restricted data by D...  University of Oslo's TSD service - storing sensitive & restricted data by D...
University of Oslo's TSD service - storing sensitive & restricted data by D...
 
secure lazy binding, and the 64bit time_t development process by Philip Guenther
secure lazy binding, and the 64bit time_t development process by Philip Guenthersecure lazy binding, and the 64bit time_t development process by Philip Guenther
secure lazy binding, and the 64bit time_t development process by Philip Guenther
 
The entropic principle: /dev/u?random and NetBSD by Taylor R Campbell
  The entropic principle: /dev/u?random and NetBSD by Taylor R Campbell  The entropic principle: /dev/u?random and NetBSD by Taylor R Campbell
The entropic principle: /dev/u?random and NetBSD by Taylor R Campbell
 
The LLDB Debugger in FreeBSD by Ed Maste
The LLDB Debugger in FreeBSD by Ed MasteThe LLDB Debugger in FreeBSD by Ed Maste
The LLDB Debugger in FreeBSD by Ed Maste
 
Porting Valgrind to NetBSD and OpenBSD by Masao Uebayashi
Porting Valgrind to NetBSD and OpenBSD by Masao UebayashiPorting Valgrind to NetBSD and OpenBSD by Masao Uebayashi
Porting Valgrind to NetBSD and OpenBSD by Masao Uebayashi
 
Multiplatform JIT Code Generator for NetBSD by Alexander Nasonov
Multiplatform JIT Code Generator for NetBSD by Alexander NasonovMultiplatform JIT Code Generator for NetBSD by Alexander Nasonov
Multiplatform JIT Code Generator for NetBSD by Alexander Nasonov
 
OpenStack and OpenContrail for FreeBSD platform by Michał Dubiel
OpenStack and OpenContrail for FreeBSD platform by Michał DubielOpenStack and OpenContrail for FreeBSD platform by Michał Dubiel
OpenStack and OpenContrail for FreeBSD platform by Michał Dubiel
 
Porting NetBSD to the LatticeMico32 open source CPU by Yann Sionneau
Porting NetBSD to the LatticeMico32 open source CPU by Yann SionneauPorting NetBSD to the LatticeMico32 open source CPU by Yann Sionneau
Porting NetBSD to the LatticeMico32 open source CPU by Yann Sionneau
 
Smartcom's control plane software, a customized version of FreeBSD by Boris A...
Smartcom's control plane software, a customized version of FreeBSD by Boris A...Smartcom's control plane software, a customized version of FreeBSD by Boris A...
Smartcom's control plane software, a customized version of FreeBSD by Boris A...
 
Bugs Ex Ante by Kristaps Dzonsons
Bugs Ex Ante by Kristaps DzonsonsBugs Ex Ante by Kristaps Dzonsons
Bugs Ex Ante by Kristaps Dzonsons
 
Cross Building the FreeBSD ports tree by Baptiste Daroussin
Cross Building the FreeBSD ports tree by Baptiste DaroussinCross Building the FreeBSD ports tree by Baptiste Daroussin
Cross Building the FreeBSD ports tree by Baptiste Daroussin
 
Building packages through emulation by Sean Bruno
Building packages through emulation by Sean BrunoBuilding packages through emulation by Sean Bruno
Building packages through emulation by Sean Bruno
 
Making OpenBSD Useful on the Octeon Network Gear by Paul Irofti
Making OpenBSD Useful on the Octeon Network Gear by Paul IroftiMaking OpenBSD Useful on the Octeon Network Gear by Paul Irofti
Making OpenBSD Useful on the Octeon Network Gear by Paul Irofti
 
Using routing domains / routing tables in a production network by Peter Hessler
Using routing domains / routing tables in a production network by Peter HesslerUsing routing domains / routing tables in a production network by Peter Hessler
Using routing domains / routing tables in a production network by Peter Hessler
 
NPF scripting with Lua by Lourival Vieira Neto
NPF scripting with Lua by Lourival Vieira NetoNPF scripting with Lua by Lourival Vieira Neto
NPF scripting with Lua by Lourival Vieira Neto
 

Recently uploaded

DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 

A REIMPLEMENTATION OF NETBSD BASED ON A MICROKERNEL AND THE GOAL OF ACHIEVING RELIABLE OPERATING SYSTEMS

  • 1. 1 A REIMPLEMENTATION OF NETBSD BASED ON A MICROKERNEL Andrew S. Tanenbaum and a team of students and programmers who actually did all the work. Three of them, Ben Gras, Lionel Sambuc, and Arun Thomas are here! Vrije Universiteit Amsterdam, The Netherlands
  • 2. 2 GOAL OF OUR WORK: BUILD A RELIABLE OS Tanenbaum’s definition of a reliable OS: “An operating system is said to be reliable when a typical user has never experienced even a single failure in his or her lifetime and does not know anybody who has ever experienced a failure.” In engineering terms, this is probably mean time to failure > 50 years I don’t think we are there yet
  • 3. 3 THE TELEVISION MODEL (BEFORE SMART TVs) 1. You buy the television 2. You plug it in 3. It works perfectly for the next 10 years
  • 4. 4 THE COMPUTER MODEL (WINDOWS EDITION)
  • 5. 5 THE COMPUTER MODEL (WINDOWS EDITION) 1. You buy the computer 2. You plug it in 3. You install service packs 1 through 9f 4. You install 18 new emergency security patches 5. You find and install 7 new device drivers 6. You install antivirus software 7. You install antispyware software 8. You install antihacker software (firewall) 9. You install antispam software 10. You reboot the computer
  • 6. 6 THE COMPUTER MODEL (2) 11. It doesn’t work 12. You call the helpdesk 13. You wait on hold for 30 minutes 14. They tell you to reinstall Windows
  • 7. 7 TYPICAL USER REACTION The New York Times recently reported that 25% of computer users have gotten so angry at their computer that they physically hit it.
  • 8. IS RELIABILITY SO IMPORTANT? • Annoying • Lost work • But also think about – Industrial control systems in factories – Power grids – Hospital operating rooms – Banking and e-commerce servers – Emergency phone centers – Control software in cars, airplanes, etc. 8
  • 9. IS THIS FEASIBLE? • We won’t find out if we don’t try • Dutch Royal Academy gave me €2 million to try • European Union gave me €2.5 million to give it a shot • So, we’re trying 9
  • 10. 10 IS RELIABILITY ACHIEVABLE AT ALL? • Systems can survive hardware failures! – RAIDs can survive failed disks – ECC memory can survive parity errors in memory – TCP/IP can survive lost packets – CD-ROM drives can correct many simultaneous errors • We need to be able to survive software failures, too
  • 11. 11 A NEED TO RETHINK OPERATING SYSTEMS • Operating systems research need to be refocused – We have powerful hardware on PC-class machines – Plenty of CPU cycles, RAM, bandwidth – Current software has tons of (useless) features – Consequently, the software is slow, bloated, and buggy • To achieve the TV model, future OSes, must be – Small – Simple – Modular – Reliable – Secure – Self-healing
  • 12. BRIEF HISTORY OF OUR WORK • (1976) John Lions wrote a book on UNIX V6 • (1979) AT&T released V7 and forbade books on it  • (1985) I started to write a UNIX-like OS from scratch • (1987) MINIX 1 + book for teaching OS classes released • (1997) MINIX 2 (POSIX) & 2nd edition of book released • (2000) MINIX 2 license changed to BSD • (2004) MINIX 3: start of work making a reliable OS • (2006) 3rd edition of book • (2008) European grant • (2010) Focus moved towards embedded systems • (2013) MINIX 3.3.0 moves to NetBSD “compatibility” 12
  • 13. THREE EDITIONS OF THE BOOK 13 1 2 3
  • 14. 14 INTELLIGENT DESIGN • Microkernel (13,000 LoC vs. > 15 million for Linux) – Bugs per 1000 LoC: Most S/W (1-10) – MINIX 3 at least 13 kernel bugs; Linux has > 15,000 – Drivers have 3-7x more bugs than rest of kernel – About 70% of the code is drivers • Highly modular • OS runs as multiple user-mode server processes AS APPLIED TO OPERATING SYSTEMS
  • 15. 15 STEP 1: ISOLATE COMPONENTS • Move all loadable modules out of the kernel – includes all device drivers, file systems, mem mgt, etc. • Run each module as a separate process with POLA (Principle Of Least Authority)
  • 16. 16 STEP 2: ISOLATE I/O • Isolate I/O devices • Limit access to I/O ports • Constrain DMA (needs hardware assistance)
  • 17. 17 STEP 3: ISOLATE COMMUNICATION • Limit interprocess communication • Restrict IPC on a ‘need-to-communicate’ basis • Restrict kernel calls on a per-component basis • Make sure faulty receiver cannot hang sender
  • 18. 18 ARCHITECTURE OF MINIX 3 Microkernel handles interrupts, processes, scheduling, IPC Clock FS 1 FS 2 Proc. Other... Servers User mode Disk TTY Net Print Other... Drivers Shell Make User... Process
  • 19. 19 USER-MODE DEVICE DRIVERS • Each driver runs as a user-mode process • No superuser privileges • Protected by the MMU • Do not have access to I/O ports, privileged instrs • They have to ask the microkernel
  • 20. 20 USER-MODE SERVERS • Each server runs as a separate process • Some key servers – Virtual file server (implements VFS) – Actual file servers (e.g., MINIX FS, EXT2, ISO 9660) – Process manager – Memory manager – Network server – Reincarnation server – Part of the scheduler
  • 21. 21 A SIMPLIFIED EXAMPLE: DOING A READ User mode Servers Drivers Users Kernel File access when the block is in the FS cache 1 2 3 4 User Disk FSFS
  • 22. 22 FILE SERVER (2) File access when the block is NOT in the FS cache Servers User mode Drivers Users Kernel 1 2 3 9 4 6 7,85 Notification FS User Disk
  • 23. 23 REINCARNATION SERVER • Parent of all the drivers and servers • When a driver or server dies, RS collects it • RS checks a table for action to take e.g., restart it • RS also pings drivers and servers frequently
  • 24. 24 DISK DRIVER RECOVERY Servers User mode Drivers Users Kernel User1 FS 2 Disk driverX 3. Crash! New driver 4 RSRS 5 System is self healing—this is how we hope to make it reliable
  • 25. 25 KERNEL RELIABILITY/SECURITY • Fewer LoC means fewer kernel bugs • Small kernel (13,000 LoC) means reduced TCB • NO foreign code (e.g., drivers) in the kernel • Static data structures (no malloc in kernel) • Moving bugs to user space puts them in cages
  • 26. 26 IPC RELIABILITY/SECURITY • Fixed-length messages (no buffer overruns) • Rendezvous system was simple – No lost messages – No buffer management – We had to add asynchronous messages • Interrupts and messages are unified
  • 27. 27 DRIVER RELIABILITY/SECURITY • Untrusted code: heavily isolated • Bugs, viruses cannot spread to other modules • Cannot touch kernel data or other drivers/servers • Bad pointers, buffer overruns crash only one driver • Infinite loops detected and driver restarted • Access to I/O ports is restricted • Access to kernel calls is limited and checked • Restricted power to do damage (not superuser)
  • 28. 28 OTHER ADVANTAGES OF USER COMPONENTS • Short development cycle • Normal programming model • No down time for crash and reboot • Easy debugging • Good flexibility (applies to drivers, file systems, etc.)
  • 29. 29 FAULT INJECTION EXPERIMENT • We injected 800,000 faults into each of 3 drivers • Done on the binary drivers • Examples, change src addr, dest addr, loop condition • 100 faults were injected on each experiment • Waited 1 sec to see if the driver crashed • If no crash, inject another 100 faults and repeat • The driver crashed in 18,038 trials • The operating system NEVER crashed
  • 30. 30 PORT OF MINIX 3 TO ARM • Restructured source tree for multiple architectures • Changed booting to support u-boot for ARM • Rewrote the low-level code dealing with hardware • Changed code for context switching, paging, etc. • Removed x86 segmentation code • Imported NetBSD ARM headers and libraries • Ported build.sh for cross-toolchain support • Wrote drivers for SD card and other Beagle devices
  • 31. 31 EMBEDDED SYSTEMS 9 cm 5cm BeagleBone Black
  • 32. 32 BBB CHARACTERISTICS Item BeagleBone Black CPU ARM v7 Clock 1 GHz RAM 512 MB Flash 4 GB Video HDMI/1080p GPIO pins 92 Ethernet 10/100 Mbps USB 1 Open source/documentation Yes Price (quantity 1) $55
  • 33. I ADMIT I WAS WRONG • On 29 Jan 1992 I posted to comp.os.minix this: • “Don’t get me wrong, I am not unhappy with LINUX. It will get all the people who want to turn MINIX in BSD UNIX off my back.” • I Apologize. Now I do want to turn MINIX into BSD. It just took me 20 years to realize this. 33
  • 34. MINIX 3 MEETS BSD 34 + = BSD Daemon is copyright 1988 by Marshall Kirk McKusick and is used with permission.
  • 36. WHY BSD? • MINIX 3 didn’t have enough application software • BSD is a proven, portable, quality product • BSD has better code quality than Linux • Pkgsrc handles packages better than what we had • Thousands of excellent packages available • Active community • License compatibility • Why NetBSD? • Mostly due to its emphasis on portability 36
  • 37. NETBSD FEATURES IN MINIX 3.3.0 • Clang/LLVM compiler • NetBSD build system (build.sh) • ELF file format • Source code tree modeled on NetBSD • Headers and libraries are from NetBSD • Pkgsrc works and builds >4200 NetBSD packages • Nevertheless, built on MINIX 3 kernel & servers • X11 coming back soon (almost there) 37
  • 38. NETBSD FEATURES MISSING IN MINIX 3.3.0 • Kernel threads (we do have userland pthreads) • Some system calls: – All _LWP*, MSG*, SEM* calls – CLONE – Some GET, IOCTL calls – KQUEUE, KTRACE – Job control • Some weird socket options • Nevertheless, we can build over 4200 packages 38
  • 39. KYUA TESTS 39 Conclusion: 2139 out of 2651 passed (81%)
  • 40. 40 SYSTEM ARCHITECTURE Servers … … … Drivers Microkernel (this is the only part running in kernel mode) Net VFS TTYDisk USB FS MM Rein carnat OS (MINIX) Clang Pkgsrc (libc) …Pkg 1 Pkg n Users User- Land (NetBSD)
  • 41. MINIX 3 ON THE THREE BEAGLE BOARDS 41
  • 42. YOUR ROLE • MINIX 3 is an open-source project • I hope some of you will join and help us • Things to do – Add crucial missing system calls – Port more packages (Java, a browser, etc.) – Write the missing drivers for the Beagle series – Get it running on Raspberry Pi & other platforms – Port Rump – Port required libraries and then port a GUI – Much more • Get involved! 42
  • 43. 43 MINIX 3 IN A NUTSHELL • Microkernel reimplementation of NetBSD • Fully open source with BSD license • Highly compatible with NetBSD • Supports both LLVM and gcc • Uses NetBSD pkgsrc • Over 4200 packages build • Live update coming soon • Good security by design (modularity, randomization) • Go get it at www.minix3.org and try it
  • 44. 44 POSITIONING OF MINIX • Show that multiserver systems are – reliable – secure – practical • Demonstrate that drivers belong in user mode • High-reliability and fault-tolerant applications • $50 single-chip, small-RAM laptops for 3rd world • Embedded systems
  • 45. 45 MINIX 3 LOGO • Why a raccoon? – Small – Cute – Clever – Agile – Eats bugs – More likely to visit your house than a penguin
  • 47. DOCUMENTATION IS IN A WIKI • Wiki.minix3.org • You can help document the system 47
  • 48. 48 TRAFFIC TO WWW.MINIX3.ORG Total visits to the main page since 2004: 2.9 million Total visits to the download page since 2004: 1.1 million Actual downloads since 2007: 600,000 Visits to download pageVisits to www.minix3.org
  • 49. 49 MINIX 3 GOOGLE NEWSGROUP
  • 50. 50 CONCLUSION • Current OSes are bloated • MINIX 3 is an attempt at a reliable, secure OS • Kernel is very small (13,000 LoC) • OS runs as a collection of user processes • Each driver is a separate process • Each OS component has restricted privileges • Faulty drivers can be replaced automatically • Live update is possible (not in current release) • Uses NetBSD userland and packages
  • 51. SURVEY • Please download from www.minix3.org • Give it a try • Fill out the survey on the www.minix3.org page • We had 14,000 downloads in Sept. but we don’t know who they are or what they are doing • We are trying to build an active community 51
  • 52. MASTERS DEGREE AT THE VU • If you are interested in a Masters in systems • Google me, go to my home page • Click on the YouTube video there 52
  • 55. 55
  • 57. 57 THE COST OF DRIVER RECOVERY • We killed the Ethernet driver every t sec to simulate repeated driver crashes Driver recovery takes about 360 msec
  • 58. 58 RESEARCH: LIVE UPDATE • We can update almost the entire system on the fly • How: create new process (driver or server) • New one contacts old one to get the state • After state is transferred, third process is created • It runs the state transfer backwards as a check • If it is OK, connections are rerouted to the new one • Applications don’t even notice this has happened
  • 59. 59 MUCH BETTER THAN KSPLICE • KSPLICE can handle only small security patches • SPLICE patches the running process • Over time, crud accumulates in the process • If the update fails, there is no recovery
  • 60. 60 RESEARCH: MULTICORE CHIPS • Network stack has components • Chips may be heterogeneous • Where to put each component? • Experiments scaling frequencies • Sometimes slower is faster! • Sleep/wakeup is expensive TCP IP Ether Kernel Multicore chip Core
  • 61. 61 RESEARCH: NEW FILE SYSTEM--LORIS • Better reliabilty • Better flexibility • Handles heterogeneity better • File rather than block oriented • Uses checksums to detect corruption VFS Naming Cache Logical Physical Driver Introduces concept of a logical file (1 or more phys files spread or striped over possibly heterogeneous devices)
  • 62. 62 RESEARCH: FAULT INJECTION Inject fault? Original unmodified basic block Basic block with fault injected This structure is created automatically by the LLVM compiler