Your SlideShare is downloading. ×
Sioux Hot-or-Not: The future of Linux (Alan Cox)
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Sioux Hot-or-Not: The future of Linux (Alan Cox)

2,029
views

Published on

Sioux Hot-or-Not 5 maart 2008, The future of Linux met Alan Cox

Sioux Hot-or-Not 5 maart 2008, The future of Linux met Alan Cox

Published in: Business, Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,029
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
61
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Transcript

    • 1. The future of Linux Arnoud de Geus March 5 th 2008
    • 2. Welcome @Sioux
      • Agenda
      • 18:00 hrs Welcome
      • Alan Cox I
      • 19:30 – 20:00 hrs Break
      • Alan Cox II
      • 21:00 hrs Social
      © Sioux Embedded Systems 2008 | Confidential |
    • 3. Introduction
      • Arnoud de Geus
      • Business Development Manager
      • Responsible for Linux @ Sioux
    • 4. Hot-or-Not @Sioux
      • Why Hot-or-Not?
      • Increase productivity by innovation
      • We invite experts from all around the world to inspire us in improving the productivity of our region.
      • Is it ‘Hot’? or is it ‘Not’?
      © Sioux Embedded Systems 2008 | Confidential |
    • 5. Innovation & Open Source
      • Open source accelerates innovation
      • Open innovation is the only way for certain commodities such as operating systems
      • Embedded appliance of open source layers accelerates time-to-market enormously
      • OEM: focus on core technologies
      • One of the best examples: Linux
      © Sioux Embedded Systems 2008 | Confidential |
    • 6. Linux @Sioux
      • Linux frequently used in projects @Sioux since end 90’s
      • Stable open platform used in both embedded environments and on application level
      • Examples
        • Consumer Electronics (like high end TV’s, ADSL modems, domotics, Wifi routers, ..)
        • Professional Equipment (like copiers, electron microscope’s, wafer scanners, ..)
          • Fri-Jado Food vending machine > demo
      © Sioux Embedded Systems 2008 | Confidential |
    • 7. Linux Knowledge @Sioux
      • Kernel related
        • Linux kernel tweaking, Linux device driver development, USB, Linux system boot, Linux system configuration, ..
      • Development / Test environment
        • GNU, MontaVista, WindRiver, Eclipse, ..
      • Linux user space
        • Graphics subsystems like DirectFB, VNC, ..
      © Sioux Embedded Systems 2008 | Confidential |
    • 8. Employee Programs @Sioux
      • Embedded Linux Courses (MontaVista)
      • Device Driver Courses (MontaVista)
      • Linux Knowledge Expertise Group ~25 members (both Belgium & Netherlands)
      • Linux conference attendance
      • Actively acquiring Linux projects (frequently we choose Linux for projects @ Sioux Development Centre)
      © Sioux Embedded Systems 2008 | Confidential |
    • 9. © Sioux Embedded Systems 2008 | Confidential | The future of Linux Alan Cox
    • 10. Welcome to HTS valley
      • High Tech Systems Industry 2004-2007
        • 20-24 Billion € growth, average > 6% growth
      • Consumer Electronics / Telecom, Professional equipment with high accuracy, Medical systems, Automotive, Semiconductor
      • E.g. ASML, Bosch, FEI, NXP, Oc é, Medtronic, TomTom, Thomson, Philips, Vanderlande, …
      © Sioux Embedded Systems 2008 | Confidential |
    • 11. Alan Cox
      • Linux entrepreneur
      • Early Linux adopter at University of Wales ( Rewriting the network layer)
      • Alan Cox branches –ac (2.4 branch) (Very stable platform for vendor branches)
      • Supports programming freedom Is against software patents
      • Honorary degree CS, MBA University of Wales
      • Advisory board FIPR, ORG
      • Working @Red Hat
      • Living in Wales with Telsa Gwynne
      © Sioux Embedded Systems 2008 | Confidential |
    • 12. THE FUTURE OF LINUX presented at Hot-or-Not powered by Sioux March 5th 2008 Alan Cox
    • 13. How do we predict the future
      • Analyze The Past
      • Identify Trends
      • Propose The Result
      We cannot predict the future of the kernel by considering the kernel alone
    • 14. What Influences Linux Development
      • Business Evolution
      • Hardware Is Evolving
      • Software Methodologies Are Improving
      • The Security Situation
      • Microsoft
      • Law and Politics
    • 15. Why Put Business First
      • Most Technology Benefits Come Through
      • Exploiting Business Opportunities
      • Enabling People and Processes
      • Focus on the code and you are walking blindly
    • 16. What Is Business Driving
      • Small Footprint
      • Embedded Devices Have Memory Constraints
      • Flash Size Determines Profits
      • Virtualization: Memory Is No Longer Free
      • Power
      • Battery Limitations In Laptop/Embedded
      • Cost Of Power For Server Rooms
      • State and Economic Pricing Pressure
    • 17. What Is Business Driving
      • Real Time
      • Embedded Uses
      • Large Servers Needing Predictible Response
      • Trading Floor
      • Scalability
      • More Storage
      • More Memory
      • More Processors
      • More Systems To Manage
    • 18. Hardware Evolution
      • Storage
      • Solid State Storage
      • Disk Approaches Flat Cost
      • Scaling File Systems
      • Scaling Search/Index/Backup
      • Price
      • Ever Downward
      • Enabling New Opportunities (EeePC)
      • Almost No Margin For Software
    • 19. Hardware Evolution
      • Performance
      • Single Thread Of Execution Ceiling
      • Multi-threaded, Multi-core
      • Challenges Of Parallelism
      • Dynamic Configuration
      • Hardware Used To Change At Power Cycle
      • Dynamic Devices
      • Object Lifetimes
      • Dynamic Application Events
    • 20. Software
      • Validation
      • New Better Tools
      • Find Bugs At Compile Time
      • Verifiers At Runtime
      • Languages And Tools
      • More Interpreters
      • Stronger Security Models
      • Faster Locking Models
    • 21. Security
      • Liability (Notably For Data Loss)
      • Interest In Real Security
      • Systems Which Fail Safe
      • Compartments
      • Strong Encryption
      • Smart Cards
    • 22. Legal Evolution
      • Liability Law
      • EU Determined To "Fix" Software Liability
      • Standards Of Design
      • Standards Of Operation
      • Properly Stating What Software Is Fit For
      • Patents
      • EU Software Patents War Goes On
    • 23. Big Picture
      • Everyone wants
      • security
      • power management
      • real time
      • performance/efficiency
      • There are clashes between
      • footprint and scalability
      • dynamic devices and footprint
      • security and performanc
    • 24. Dynamic Configuration
      • Historical Unix System
      • Device configuration at compile
      • Device configuration at boot
      • Object lifetime is kernel
      • Administrator manages /dev
      • User Interface
      • User driven
      • No event model
      • (User requests status)
      • Dynamic reconfiguration
    • 25. Dynamic Configuration
      • Modern Systems
      • Device hotplug
      • System responds to events
      • User application events
      • New Rules
      • Object lifetimes matter
      • Kernel to user events exist
      • Device namespace is dynamic
    • 26. Dynamic Configuration
      • KObject
      • A basic kernel refcount and name
      • Refcounted
      • Can be grouped
      • No garbage collectors
      • Used to build other objects
      • Device objects
      • Sysfs - generic configuration
      • And many many more
    • 27. Dynamic Configuration
      • Sysfs
      • Built on kobject and devices
      • Heirarchical file system
      • Namespace for configuration
      • Replaces much of /proc/sys and sysctl
      • Dynamically extensible
      Allow user space to configure and explore the object heirarchy in the kernel.
    • 28. Dynamic Configuration
      • Triggering User Actions
      • /sbin/hotplug
      • netlink
      • User Space
      • HAL
      • Dbus
      • Desktop events
    • 29. Dynamic Configuration
      • The /dev Problem
      • MAKEDEV
      • Devfs (policy in the wrong place)
      • Use events
      • Udev
      • Udev can also drive user space via HAL.
    • 30. Dynamic Configuration
      • Modern Desktop Is Complicated
      • Inserting An SD Card
      • Kernel: New hardware found
      • Hotplug: Load module
      • Kernel: New device
      • UDev: Make device node
      • Kernel: New volume found
      • HAL: Mount it
      • ...
    • 31. Dynamic Configuration
      • Inserting an SD Card (2)
      • Kernel: Key Event
      • HAL: Password Prompt, Send key
      • Kernel: Mounted
      • HAL: Dbus message to apps
      • Desktop: Add new icon
      • Desktop: Umm "dcim/"...
      • Desktop: Start photo manager
      • And at any point the card might be removed!
    • 32. Usual Implementation
      • Usage Counts
      • foo_get and foo_put operators
      • destroy is delayed until users = 0
      • internal implementation via locks/atomic types
      • Problems
      • Easy to get use counts wrong
      • Scaling of use counters across processors
      • Fine for most object types
    • 33. Speeding Updates
      • Read Copy Update
      • Self consistent object view
      • Less synchronization
      • No or little locking
      • Some memory overhead
      Objects are copied before update and then the pointer atomically switched. Old objects are discarded at a point we know they are no longer in use.
    • 34. Driver Mentality
      • Historically
      • Driver entry point scans for devices
      • Driver creates devices
      • Today
      • Devices are enumerated by bus drivers
      • Device match functions
      • Bus matches device to drivers
      • Bus calls driver probe/remove methods
      • Everything assumed to be dynamic
    • 35. Power Management
      • Saving Power
      • increases battery life
      • reduces cooling cost
      • saves money and planets
      • It is not
      • just about hardware
      • just about kernels
    • 36. Power Management
      • Full Stack Optimisation
      • Hardware supports power levels
      • Kernel makes best use of them
      • Governors set strategy
      • User Space
      • Fewerwatts.org
      • Reduce unneccessary wakeup events
      • Tools to identify power hogs
      Open source means we can fix the entire stack without being limited by a single badly performing vendor.
    • 37. Power Management
      • We need to know
      • How to turn stuff off
      • When to turn stuff off
      • The order to do it
      Old Linux kernels had a simple power event model, unsuited to anything but firmware managed power. Today we use bus and device heirarchies to sequence power events.
    • 38. Mainframes and Phones
      • Why are mainframes and phones alike ?
      • Virtualisation needs reduced wakeup events in order to be efficient. Phones need reduced wakeup events to save power.
      • We need to identify
      • Common goals
      • Different goals with a common solution
      • Sometimes this is hard with embedded
      • Power specific memory
    • 39. Tickless Kernel
      • Our most rapid wakeup becomes the clock
      • Avoid the clock tick
      • Initial ’stop clock when idle’ hack
      • Proper timer based methods
      • Identify timeouts
      • Maintainer a timer for the timeout point
      • Aggregate nearby time events
      • Still Needed
      • Ability to indicate required accuracy
    • 40. Real Time Linux
      • Historically
      • Soft (very soft) real time
      • Memory locking
      • Adding Pre-emption points
      • Pre-emptible kernel
      • Approaches
      • Guest OS on RT uKernel (RTLinux)
      • Add on patches (many)
      • Fix the kernel cleanly (hard)
    • 41. Real Time Linux
      • Systematic Approach
      • Replace most semaphores with mutexes
      • Support schedulable interrupt handlers
      • Preserve most existing behaviour guarantees
      • Compromises
      • Reader/writer lock is actually single reader
      Linux is developed by evolution. Sudden large changes are generally opposed. Thus the realtime patches must not break existing code.
    • 42. Real Time Linux
      • Priority Inversion
      • Multireader locks cause problems
      • Fixable for mutexes and single reader locks
      • RCU never causes priority inversion
      • Schedulable interrupts permit sleeping IRQs
      Switch any problematic reader/writer locks to RCU and boost performance for all. Can deliver 100uS - 1mS guarantees dependant on hardware.
    • 43. The Trouble With Disks
      • Disk Scaling
      • Capacity Keeps Doubling
      • Seek Time Unchanged
      • Data Rate Rises Too Slowly
      • Disks typically perform under 300 ops/second.
    • 44. The Trouble With Disks
      • Filesystems
      • How to lay out the file store
      • Block pointers and bitmaps
      • Scalable error recovery
      • Linear runs are important
      • Short Term Approaches
      • Grow the on the disk pointer sizes
      • Adjust layout for faster checking
      • Add Encryption
    • 45. The Trouble With Disks
      • Long Term
      • Support partial disk checking
      • Integrity and self healing
      • Media level assistance
      • Flash addons for power management
      • Will we be using disks ?
    • 46. The Trouble With Disks
      • User Space
      • Back up times
      • Find/Search times
      • Versioning data
      • Visualising disk usage
    • 47. Memory Scaling
      • Page Size
      • Stuck at 4K on PC systems
      • Very large number of pages
      • Lot of meta data
      • Makes paging and I/O decisions costly
      • Memory Management
      • Free memory management
      • Virtualisation
      • Caches and SMP
    • 48. Management
      • Drowning in PCs
      • Want to reduce data centre cost
      • Want to save power
      • PC systems mostly idle resource
      • Virtualisation
      • Dynamic resource assignment
      • Higher total utilisation
      • Less hardware
      • Isolate software from hardware
    • 49. Virtualisation
      • Impacts
      • Wasted resources are now real waste
      • How to manage memory dynamically
      • Disk optimisation between guests
      • Too many cooks
      • Approaches
      • Xen - microkernel plus special guest
      • KVM - Linux as hypervisor
    • 50. Virtualisation
      • User Space
      • Management interfaces (libvirt)
      • Removing waste
      • Visualising and controlling
      • Integration with older tools
      • Software licensing
      • Research Areas
      • Disk management
      • Timer management across guests
      • Gang scheduling
      • RT and Hypervisors
    • 51. Multiprocessing
      • Threaded Software
      • Poor C language support
      • More threads more bugs
      • Cost of locking
      • Cache affinity management
      • Approaches
      • Kernel futex locks
      • NUMA and affinity aware scheduler
      • Reconsidering software models
    • 52. Multiprocessing
      • Avoiding Kernel Bugs
      • Validation tools for locking
      • Debug aids
      • Well defined locking policies
      • We can’t change language
      • User Space
      • Language choice
      • Threading or messaging
      • Give hard jobs to tools
    • 53. Software Quality And Approach
      • Once Upon A Time
      • Well written tight code
      • Programmers wrote programs
      • Programmers fixed inefficiencies
      • Kernel developers told users to fix sillyness
      • Nowdays
      • Non programmers put together code
      • PC CPU is cheaper than fixing code
      • Systems must be robust to poor coding
      • Efficiency under stupid loads
    • 54. Video Support
      • Hardware Changes
      • 2D to 3D
      • Fast programmable 3D engines
      • Fast main memory paths
      • Much harder to program
      • Fortunately there are few players left who matter
    • 55. Video Support
      • Software Demands
      • Alpha blending for truetype
      • Video playback overlay and compositing
      • OpenGL 3D
      • Robustness with speed
      • Compositing for effects
      • User Space
      • Cairo
      • X EXA Acceleration Model
      • RandR
      • Xv
    • 56. Video Support
      • In The Pipeline
      • Kernel side video mode setting
      • Oops reporting in graphics mode
      • Improved 3D and DRI integration
      • Hardware Direction
      • Closer CPU and 3D integration
      • From 3D engine to parallel CPU
      • Expect on CPU video
    • 57. Different Hardware
      • Unix Model
      • Processor with MMU
      • Memory
      • Disks
      • Block/Char devices
      • tty device for console
      • Linux Today
      • MMU optional
      • Disks or Flash or RAM
      • Block devices optional
      • Still need memory 8)
    • 58. Different Hardware
      • Currently Unsupported
      • 36bit systems (no PDP 10)
      • Very small embedded
      • Processors without atomic pointer_t writes
      • Really warped hardware designs
    • 59. And finally..
      • To understand the future we need to understand the processes involved
      • Nobody understands how free software happens ?
      • 1995 - True
      • 2008 - False
    • 60. Systems Theory
      • Systems Theory
      • Models to explain how self organising systems behave.
      • Hard mathematics to analyse those models
      • Understanding of emergent behaviour
      We thus finally have the tools to make important breakthroughs in understanding how free software communities form, why they are robust against people dropping out and how they scale. For both good and bad uses that may prove to be the most important development yet.
    • 61. The future of Linux © Sioux Embedded Systems 2008 | Confidential |
    • 62. More Hot-or-Not
      • Erlang - is functional programming the newest trend after OO?
      • Joe Armstrong May 8 th
      • Agile Manifesto - the essentials unveiled
      • Alistair Cockburn June 26 th
      • The evolution of testing - xUnit Test Patterns
      • Gerard Meszaros September 10 th
      • Taking Software Architecting into the next decade
      • Bran Selic October 8 th
      • www.jouwontwikkelingtelt.nl
      © Sioux Embedded Systems 2008 | Confidential |
    • 63. Alan Cox and Linux...
      • Sioux will donate € 3.000,- to
      • Foundation for a Free Information Infrastructure
      • Free Software Foundation Europe
      • Electronic Frontier Foundation Europe
      • You will choose the destination(s)!
      © Sioux Embedded Systems 2008 | Confidential |
    • 64. Alan Cox and Linux...
      • Sioux will donate € 3.000,- to
      • Foundation for a Free Information Infrastructure
      • Free Software Foundation Europe
      • Electronic Frontier Foundation Europe
      • You will choose the destination(s)!
      © Sioux Embedded Systems 2008 | Confidential |
    • 65. Alan Cox and trains... © Sioux Embedded Systems 2008 | Confidential | Alan has a passion for software, and also a passion for model trains. This train (scale 1:160), which carries the city of Eindhoven logo, is a present for Alan to remember his visit to the Netherlands.
    • 66. www.sioux.eu [email_address] +31(0)40 2677100