SlideShare ist ein Scribd-Unternehmen logo
1 von 39
illumos 
State of the Community 
POSIX Update 
Garrett D’Amore 
Advanced Micro Devices, Inc.
illumos is… 
• Open Source System V (Solaris) Derived 
• Development home for DTrace and ZFS 
• Kernel + core for OmniOS, SmartOS, NexentaStor 
• Four years on its own, but really ~25 years old
Recent Developments 
• Network Virtualization 
• Virtualization (LX brand, Bhyve, etc.) 
• Persistent L2ARC 
• SMB2 / SMB3 
• Hardware drivers 
• POSIX & Compatibility
Pace 
• Good stuff happening 
• But, 
• without the frenetic churn 
• this is a good thing 
• but, 
• its also a concern
State of POSIX in Tree 
• Mostly complete support for POSIX.1-2001, SUSv3 
• Failings are in user land mostly (e.g. more, pax, etc.) 
• Minimal support for POSIX 2008 updates. Largest 
of which is locale_t (newlocale(3c)& friends) 
• Some 2008 interfaces present, but not exposed, and 
many removed interfaces exposed
Driving Real $$ 
• Standbys: Nexenta, Joyent, Delphix, OmniTI 
• New comers: RackTop, Pluribus Networks 
• “Stealthy” players: e.g. Tegile 
• Total “market” value: > $100M (perhaps >>)
Challenges & 
Opportunities
No “Formal” 
Organization
things we lack 
• Bounties 
• Governance (?!?) 
• Ownership 
• Marketing 
• Legal presence
Opportunities for non- 
Gurus 
• Write & improve documentation 
• Localization 
• Test development 
• Marketing
~150 Contributors
~0 ♀ Contributors
Where are the 
women?
Hire a Female Kernel 
Engineer. Today.
Groupthink. 
— people are sheeple
Linux 
—“easy” choice
FUD. 
(Not Elmer.)
Drift & Divergence
Lots of private forks
less is more
less(1) is more(1)
less bloat is more 
(better)
less (compatible) is more 
(compatible)
less talking is more coding
illumos-core
illumos-core vision 
• focus on code 
• standards compliant - by default 
• less is more 
• self-hosting 
• self-testing 
• cross-platform 
• illumos coding standards (RTI ready by default)
Standards 
• SunOS 4.x (and 3.x) is truly ancient (32-bit SPARC only!) 
• XPG3 - this is really, really old 
• POSIX is really, really old (1988) 
• XPG4 - is also really old 
• SUS - aka XPG4v2 - also old 
• SUSv2 - UNIX98 
• SUSv3 - POSIX.1 2001 
• SUSv4 - POSIX.1 2008 - work in progress
Ancient & Useless Stuff 
• htable, gettable - last possible use was in 1990 (DNS anyone?!) 
• Wireless USB. DOA. 
• 16-bit PCMCIA. Seriously?!? 
• SunOS 4.x a.out support 
• kssl - no TLS support 
• NCA/NL7C - Global Zone only, actually slows all other traffic down 
• LMS (AMT/HECI) - Can you say security risk/pointless?
readdir_r(3c) case study 
• Standardized by POSIX in 1995 (IEEE Std. 1003.1c-1995) 
• Earlier Draft version (Draft 6) supported in Solaris 2.6 - 11 
• By default 
• Solaris is the only common operating system to still do this
readdir_r(3c) case study 
• struct dirent *readdir_r(DIR *, struct dirent ***); 
• unless… 
• _POSIX_C_SOURCE - 0 >= 199506L or… 
• _POSIX_PTHREAD_SEMANTICS or… 
• _LP64 or… 
• _FILE_OFFSET_BITS != 32 
• in which case… 
• int readdir_r(DIR *, struct dirent *, struct dirent **); 
• note that return value semantics are different!
readdir_r(3c) resolution 
• struct dirent *readdir_r(DIR *, struct dirent ***); 
• unless… 
• _POSIX_C_SOURCE - 0 >= 199506L or… 
• _POSIX_PTHREAD_SEMANTICS or… 
• _LP64 or… 
• _FILE_OFFSET_BITS == 32 or… 
• !_SUNOS_SOURCE 
• in which case… 
• int readdir_r(DIR *, struct dirent *, struct dirent **); 
• (note that you now get POSIX compliant by DEFAULT!)
accomplishments so far 
• less(1) is more(1) 
• uname & puname 
• fexecve(2), O_TTY_INIT, O_DIRECTORY 
• removed a lot of bloat (~200KLOC) 
• suppression and updates for POSIX 2008 symbols we already had (-D_XOPEN_SOURCE=700) 
• s/awk/nawk/ 
• no more dbus or hal dependencies 
• rich self tests for POSIX (and non-POSIX) interfaces (>3000 tests) 
• 85 separate bugs/features integrated (started Aug 14, approx 2 per day) 
• vi(1) is real vi, not vim(1)
uname(2) 
• uname -s == “illumos” 
• uname -r == 0.9.x (x == months since Aug 2010) 
• puname(1) utility 
• puname -S uname -s -r == “SunOS 5.11” 
• puname -S uname -v == “alternate-uname” 
• puname -U to restore 
• implemented as new flag in process uarea
uname breakage 
• 64-bit Studio (checks for SunOS > 5.7) 
• hald - fixed (in separate git repo), breaks X 
• config.guess (auto*) - can override in configure 
command line 
• pkgdepend - (fixed?) via terminatorlib/cwd.py 
• DTrace printf test (test checks uname == SunOS)
Remaining Compliance Work for C APIs 
• System Interfaces (POSIX.1-2008) 
• memory streams 
• dprintf (universe explodes…) 
• pthreads changes 
• C11 support 
• interfaces to improve security
Shell & Utilities Work 
• pax (not star, thank you very much) 
• modernize (slightly) awk 
• lots of minor updates (mv, cp, ls, etc.) 
• replace ksh93 with dash + libedit 
• Test suite development, Standard(s) trolling
Can I Help? 
YES! YOU CAN!
• Code & Documentation reviews 
• Testing 
• Help upstreaming 
• Code contributions (pull requests!) 
• http://bitbucket.org/gdamore/illumos-gate 
• “core” branch
Thank you!!

Weitere ähnliche Inhalte

Was ist angesagt?

WIndows Kernel-Land exploitation
WIndows Kernel-Land exploitationWIndows Kernel-Land exploitation
WIndows Kernel-Land exploitationkyaw thiha
 
Arm device tree and linux device drivers
Arm device tree and linux device driversArm device tree and linux device drivers
Arm device tree and linux device driversHoucheng Lin
 
Upstream Allwinner ARM SoC (sunxi) Support
Upstream Allwinner ARM SoC (sunxi) SupportUpstream Allwinner ARM SoC (sunxi) Support
Upstream Allwinner ARM SoC (sunxi) SupportChen-Yu Tsai
 
Software update for embedded systems - elce2014
Software update for embedded systems - elce2014Software update for embedded systems - elce2014
Software update for embedded systems - elce2014Stefano Babic
 
Jonny_Martin-Asterisk
Jonny_Martin-AsteriskJonny_Martin-Asterisk
Jonny_Martin-Asterisktutorialsruby
 
XPDS16: Hypervisor Enforced Data Loss Prevention - Neil Sikka, A1LOGIC
XPDS16: Hypervisor Enforced Data Loss Prevention - Neil Sikka, A1LOGICXPDS16: Hypervisor Enforced Data Loss Prevention - Neil Sikka, A1LOGIC
XPDS16: Hypervisor Enforced Data Loss Prevention - Neil Sikka, A1LOGICThe Linux Foundation
 
Kernel Recipes 2013 - Crosstool-NG, a cross-toolchain generator
Kernel Recipes 2013 - Crosstool-NG, a cross-toolchain generatorKernel Recipes 2013 - Crosstool-NG, a cross-toolchain generator
Kernel Recipes 2013 - Crosstool-NG, a cross-toolchain generatorAnne Nicolas
 
RAID, Replication, and You
RAID, Replication, and YouRAID, Replication, and You
RAID, Replication, and YouGreat Wide Open
 
Git Money
Git MoneyGit Money
Git MoneyTim N
 
Aide 2014 - Fundamentals of Linux Privilege Escalation
Aide 2014 - Fundamentals of Linux Privilege EscalationAide 2014 - Fundamentals of Linux Privilege Escalation
Aide 2014 - Fundamentals of Linux Privilege Escalationnullthreat
 
IoT mit Rust programmieren
IoT mit Rust programmierenIoT mit Rust programmieren
IoT mit Rust programmierenLars Gregori
 
linux-sunxi - OSDC.tw 2014 Lightning Talk
linux-sunxi - OSDC.tw 2014 Lightning Talklinux-sunxi - OSDC.tw 2014 Lightning Talk
linux-sunxi - OSDC.tw 2014 Lightning TalkChen-Yu Tsai
 

Was ist angesagt? (19)

WIndows Kernel-Land exploitation
WIndows Kernel-Land exploitationWIndows Kernel-Land exploitation
WIndows Kernel-Land exploitation
 
Introduction to Linux
Introduction to LinuxIntroduction to Linux
Introduction to Linux
 
References
ReferencesReferences
References
 
Arm device tree and linux device drivers
Arm device tree and linux device driversArm device tree and linux device drivers
Arm device tree and linux device drivers
 
Upstream Allwinner ARM SoC (sunxi) Support
Upstream Allwinner ARM SoC (sunxi) SupportUpstream Allwinner ARM SoC (sunxi) Support
Upstream Allwinner ARM SoC (sunxi) Support
 
Software update for embedded systems - elce2014
Software update for embedded systems - elce2014Software update for embedded systems - elce2014
Software update for embedded systems - elce2014
 
File Systems
File SystemsFile Systems
File Systems
 
Jonny_Martin-Asterisk
Jonny_Martin-AsteriskJonny_Martin-Asterisk
Jonny_Martin-Asterisk
 
XPDS16: Hypervisor Enforced Data Loss Prevention - Neil Sikka, A1LOGIC
XPDS16: Hypervisor Enforced Data Loss Prevention - Neil Sikka, A1LOGICXPDS16: Hypervisor Enforced Data Loss Prevention - Neil Sikka, A1LOGIC
XPDS16: Hypervisor Enforced Data Loss Prevention - Neil Sikka, A1LOGIC
 
Kernel Recipes 2013 - Crosstool-NG, a cross-toolchain generator
Kernel Recipes 2013 - Crosstool-NG, a cross-toolchain generatorKernel Recipes 2013 - Crosstool-NG, a cross-toolchain generator
Kernel Recipes 2013 - Crosstool-NG, a cross-toolchain generator
 
RAID, Replication, and You
RAID, Replication, and YouRAID, Replication, and You
RAID, Replication, and You
 
Low-level Accesses
Low-level AccessesLow-level Accesses
Low-level Accesses
 
Character Drivers
Character DriversCharacter Drivers
Character Drivers
 
Git Money
Git MoneyGit Money
Git Money
 
PCI Drivers
PCI DriversPCI Drivers
PCI Drivers
 
Aide 2014 - Fundamentals of Linux Privilege Escalation
Aide 2014 - Fundamentals of Linux Privilege EscalationAide 2014 - Fundamentals of Linux Privilege Escalation
Aide 2014 - Fundamentals of Linux Privilege Escalation
 
tizen-oshw-tds14sh
tizen-oshw-tds14shtizen-oshw-tds14sh
tizen-oshw-tds14sh
 
IoT mit Rust programmieren
IoT mit Rust programmierenIoT mit Rust programmieren
IoT mit Rust programmieren
 
linux-sunxi - OSDC.tw 2014 Lightning Talk
linux-sunxi - OSDC.tw 2014 Lightning Talklinux-sunxi - OSDC.tw 2014 Lightning Talk
linux-sunxi - OSDC.tw 2014 Lightning Talk
 

Ähnlich wie Surge2014 talk - illumos State of the Community & POSIX Update

Operating Systems 1 (5/12) - Architectures (Unix)
Operating Systems 1 (5/12) - Architectures (Unix)Operating Systems 1 (5/12) - Architectures (Unix)
Operating Systems 1 (5/12) - Architectures (Unix)Peter Tröger
 
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
 
Live Memory Forensics on Android devices
Live Memory Forensics on Android devicesLive Memory Forensics on Android devices
Live Memory Forensics on Android devicesNikos Gkogkos
 
オペレーティングシステム 設計と実装 第3版(20101211)
オペレーティングシステム 設計と実装 第3版(20101211)オペレーティングシステム 設計と実装 第3版(20101211)
オペレーティングシステム 設計と実装 第3版(20101211)Ryousei Takano
 
A Brief History of System Calls
A Brief History of System CallsA Brief History of System Calls
A Brief History of System Callsahl0003
 
Network Stack in Userspace (NUSE)
Network Stack in Userspace (NUSE)Network Stack in Userspace (NUSE)
Network Stack in Userspace (NUSE)Hajime Tazaki
 
Gentoo Linux, or Why in the World You Should Compile Everything
Gentoo Linux, or Why in the World You Should Compile EverythingGentoo Linux, or Why in the World You Should Compile Everything
Gentoo Linux, or Why in the World You Should Compile EverythingDonnie Berkholz
 
Running Applications on the NetBSD Rump Kernel by Justin Cormack
Running Applications on the NetBSD Rump Kernel by Justin Cormack Running Applications on the NetBSD Rump Kernel by Justin Cormack
Running Applications on the NetBSD Rump Kernel by Justin Cormack eurobsdcon
 
Systems Performance: Enterprise and the Cloud
Systems Performance: Enterprise and the CloudSystems Performance: Enterprise and the Cloud
Systems Performance: Enterprise and the CloudBrendan Gregg
 
Android Mind Reading: Android Live Memory Analysis with LiME and Volatility
Android Mind Reading: Android Live Memory Analysis with LiME and VolatilityAndroid Mind Reading: Android Live Memory Analysis with LiME and Volatility
Android Mind Reading: Android Live Memory Analysis with LiME and VolatilityJoe Sylve
 
Introduction to Linux Kernel by Quontra Solutions
Introduction to Linux Kernel by Quontra SolutionsIntroduction to Linux Kernel by Quontra Solutions
Introduction to Linux Kernel by Quontra SolutionsQUONTRASOLUTIONS
 
Auditing the Opensource Kernels
Auditing the Opensource KernelsAuditing the Opensource Kernels
Auditing the Opensource KernelsSilvio Cesare
 
Ice Age melting down: Intel features considered usefull!
Ice Age melting down: Intel features considered usefull!Ice Age melting down: Intel features considered usefull!
Ice Age melting down: Intel features considered usefull!Peter Hlavaty
 
Nikita Abdullin - Reverse-engineering of embedded MIPS devices. Case Study - ...
Nikita Abdullin - Reverse-engineering of embedded MIPS devices. Case Study - ...Nikita Abdullin - Reverse-engineering of embedded MIPS devices. Case Study - ...
Nikita Abdullin - Reverse-engineering of embedded MIPS devices. Case Study - ...DefconRussia
 
The Ultimate IBM and Lotus on Linux Workshop for Windows Admins
The Ultimate IBM and Lotus on Linux Workshop for Windows AdminsThe Ultimate IBM and Lotus on Linux Workshop for Windows Admins
The Ultimate IBM and Lotus on Linux Workshop for Windows AdminsBill Malchisky Jr.
 
Linux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old SecretsLinux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old SecretsBrendan Gregg
 
Linux Knowledge Transfer
Linux Knowledge TransferLinux Knowledge Transfer
Linux Knowledge TransferTapio Vaattanen
 
A Reimplementation of NetBSD Based on a Microkernel by Andrew S. Tanenbaum
A Reimplementation of NetBSD Based on a Microkernel by Andrew S. TanenbaumA Reimplementation of NetBSD Based on a Microkernel by Andrew S. Tanenbaum
A Reimplementation of NetBSD Based on a Microkernel by Andrew S. Tanenbaumeurobsdcon
 
Jonny_Martin-Asterisk
Jonny_Martin-AsteriskJonny_Martin-Asterisk
Jonny_Martin-Asterisktutorialsruby
 
Jonny_Martin-Asterisk
Jonny_Martin-AsteriskJonny_Martin-Asterisk
Jonny_Martin-Asterisktutorialsruby
 

Ähnlich wie Surge2014 talk - illumos State of the Community & POSIX Update (20)

Operating Systems 1 (5/12) - Architectures (Unix)
Operating Systems 1 (5/12) - Architectures (Unix)Operating Systems 1 (5/12) - Architectures (Unix)
Operating Systems 1 (5/12) - Architectures (Unix)
 
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
 
Live Memory Forensics on Android devices
Live Memory Forensics on Android devicesLive Memory Forensics on Android devices
Live Memory Forensics on Android devices
 
オペレーティングシステム 設計と実装 第3版(20101211)
オペレーティングシステム 設計と実装 第3版(20101211)オペレーティングシステム 設計と実装 第3版(20101211)
オペレーティングシステム 設計と実装 第3版(20101211)
 
A Brief History of System Calls
A Brief History of System CallsA Brief History of System Calls
A Brief History of System Calls
 
Network Stack in Userspace (NUSE)
Network Stack in Userspace (NUSE)Network Stack in Userspace (NUSE)
Network Stack in Userspace (NUSE)
 
Gentoo Linux, or Why in the World You Should Compile Everything
Gentoo Linux, or Why in the World You Should Compile EverythingGentoo Linux, or Why in the World You Should Compile Everything
Gentoo Linux, or Why in the World You Should Compile Everything
 
Running Applications on the NetBSD Rump Kernel by Justin Cormack
Running Applications on the NetBSD Rump Kernel by Justin Cormack Running Applications on the NetBSD Rump Kernel by Justin Cormack
Running Applications on the NetBSD Rump Kernel by Justin Cormack
 
Systems Performance: Enterprise and the Cloud
Systems Performance: Enterprise and the CloudSystems Performance: Enterprise and the Cloud
Systems Performance: Enterprise and the Cloud
 
Android Mind Reading: Android Live Memory Analysis with LiME and Volatility
Android Mind Reading: Android Live Memory Analysis with LiME and VolatilityAndroid Mind Reading: Android Live Memory Analysis with LiME and Volatility
Android Mind Reading: Android Live Memory Analysis with LiME and Volatility
 
Introduction to Linux Kernel by Quontra Solutions
Introduction to Linux Kernel by Quontra SolutionsIntroduction to Linux Kernel by Quontra Solutions
Introduction to Linux Kernel by Quontra Solutions
 
Auditing the Opensource Kernels
Auditing the Opensource KernelsAuditing the Opensource Kernels
Auditing the Opensource Kernels
 
Ice Age melting down: Intel features considered usefull!
Ice Age melting down: Intel features considered usefull!Ice Age melting down: Intel features considered usefull!
Ice Age melting down: Intel features considered usefull!
 
Nikita Abdullin - Reverse-engineering of embedded MIPS devices. Case Study - ...
Nikita Abdullin - Reverse-engineering of embedded MIPS devices. Case Study - ...Nikita Abdullin - Reverse-engineering of embedded MIPS devices. Case Study - ...
Nikita Abdullin - Reverse-engineering of embedded MIPS devices. Case Study - ...
 
The Ultimate IBM and Lotus on Linux Workshop for Windows Admins
The Ultimate IBM and Lotus on Linux Workshop for Windows AdminsThe Ultimate IBM and Lotus on Linux Workshop for Windows Admins
The Ultimate IBM and Lotus on Linux Workshop for Windows Admins
 
Linux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old SecretsLinux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old Secrets
 
Linux Knowledge Transfer
Linux Knowledge TransferLinux Knowledge Transfer
Linux Knowledge Transfer
 
A Reimplementation of NetBSD Based on a Microkernel by Andrew S. Tanenbaum
A Reimplementation of NetBSD Based on a Microkernel by Andrew S. TanenbaumA Reimplementation of NetBSD Based on a Microkernel by Andrew S. Tanenbaum
A Reimplementation of NetBSD Based on a Microkernel by Andrew S. Tanenbaum
 
Jonny_Martin-Asterisk
Jonny_Martin-AsteriskJonny_Martin-Asterisk
Jonny_Martin-Asterisk
 
Jonny_Martin-Asterisk
Jonny_Martin-AsteriskJonny_Martin-Asterisk
Jonny_Martin-Asterisk
 

Kürzlich hochgeladen

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 

Kürzlich hochgeladen (20)

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

Surge2014 talk - illumos State of the Community & POSIX Update

  • 1. illumos State of the Community POSIX Update Garrett D’Amore Advanced Micro Devices, Inc.
  • 2. illumos is… • Open Source System V (Solaris) Derived • Development home for DTrace and ZFS • Kernel + core for OmniOS, SmartOS, NexentaStor • Four years on its own, but really ~25 years old
  • 3. Recent Developments • Network Virtualization • Virtualization (LX brand, Bhyve, etc.) • Persistent L2ARC • SMB2 / SMB3 • Hardware drivers • POSIX & Compatibility
  • 4. Pace • Good stuff happening • But, • without the frenetic churn • this is a good thing • but, • its also a concern
  • 5. State of POSIX in Tree • Mostly complete support for POSIX.1-2001, SUSv3 • Failings are in user land mostly (e.g. more, pax, etc.) • Minimal support for POSIX 2008 updates. Largest of which is locale_t (newlocale(3c)& friends) • Some 2008 interfaces present, but not exposed, and many removed interfaces exposed
  • 6. Driving Real $$ • Standbys: Nexenta, Joyent, Delphix, OmniTI • New comers: RackTop, Pluribus Networks • “Stealthy” players: e.g. Tegile • Total “market” value: > $100M (perhaps >>)
  • 9. things we lack • Bounties • Governance (?!?) • Ownership • Marketing • Legal presence
  • 10. Opportunities for non- Gurus • Write & improve documentation • Localization • Test development • Marketing
  • 13. Where are the women?
  • 14. Hire a Female Kernel Engineer. Today.
  • 15. Groupthink. — people are sheeple
  • 22. less bloat is more (better)
  • 23. less (compatible) is more (compatible)
  • 24. less talking is more coding
  • 26. illumos-core vision • focus on code • standards compliant - by default • less is more • self-hosting • self-testing • cross-platform • illumos coding standards (RTI ready by default)
  • 27. Standards • SunOS 4.x (and 3.x) is truly ancient (32-bit SPARC only!) • XPG3 - this is really, really old • POSIX is really, really old (1988) • XPG4 - is also really old • SUS - aka XPG4v2 - also old • SUSv2 - UNIX98 • SUSv3 - POSIX.1 2001 • SUSv4 - POSIX.1 2008 - work in progress
  • 28. Ancient & Useless Stuff • htable, gettable - last possible use was in 1990 (DNS anyone?!) • Wireless USB. DOA. • 16-bit PCMCIA. Seriously?!? • SunOS 4.x a.out support • kssl - no TLS support • NCA/NL7C - Global Zone only, actually slows all other traffic down • LMS (AMT/HECI) - Can you say security risk/pointless?
  • 29. readdir_r(3c) case study • Standardized by POSIX in 1995 (IEEE Std. 1003.1c-1995) • Earlier Draft version (Draft 6) supported in Solaris 2.6 - 11 • By default • Solaris is the only common operating system to still do this
  • 30. readdir_r(3c) case study • struct dirent *readdir_r(DIR *, struct dirent ***); • unless… • _POSIX_C_SOURCE - 0 >= 199506L or… • _POSIX_PTHREAD_SEMANTICS or… • _LP64 or… • _FILE_OFFSET_BITS != 32 • in which case… • int readdir_r(DIR *, struct dirent *, struct dirent **); • note that return value semantics are different!
  • 31. readdir_r(3c) resolution • struct dirent *readdir_r(DIR *, struct dirent ***); • unless… • _POSIX_C_SOURCE - 0 >= 199506L or… • _POSIX_PTHREAD_SEMANTICS or… • _LP64 or… • _FILE_OFFSET_BITS == 32 or… • !_SUNOS_SOURCE • in which case… • int readdir_r(DIR *, struct dirent *, struct dirent **); • (note that you now get POSIX compliant by DEFAULT!)
  • 32. accomplishments so far • less(1) is more(1) • uname & puname • fexecve(2), O_TTY_INIT, O_DIRECTORY • removed a lot of bloat (~200KLOC) • suppression and updates for POSIX 2008 symbols we already had (-D_XOPEN_SOURCE=700) • s/awk/nawk/ • no more dbus or hal dependencies • rich self tests for POSIX (and non-POSIX) interfaces (>3000 tests) • 85 separate bugs/features integrated (started Aug 14, approx 2 per day) • vi(1) is real vi, not vim(1)
  • 33. uname(2) • uname -s == “illumos” • uname -r == 0.9.x (x == months since Aug 2010) • puname(1) utility • puname -S uname -s -r == “SunOS 5.11” • puname -S uname -v == “alternate-uname” • puname -U to restore • implemented as new flag in process uarea
  • 34. uname breakage • 64-bit Studio (checks for SunOS > 5.7) • hald - fixed (in separate git repo), breaks X • config.guess (auto*) - can override in configure command line • pkgdepend - (fixed?) via terminatorlib/cwd.py • DTrace printf test (test checks uname == SunOS)
  • 35. Remaining Compliance Work for C APIs • System Interfaces (POSIX.1-2008) • memory streams • dprintf (universe explodes…) • pthreads changes • C11 support • interfaces to improve security
  • 36. Shell & Utilities Work • pax (not star, thank you very much) • modernize (slightly) awk • lots of minor updates (mv, cp, ls, etc.) • replace ksh93 with dash + libedit • Test suite development, Standard(s) trolling
  • 37. Can I Help? YES! YOU CAN!
  • 38. • Code & Documentation reviews • Testing • Help upstreaming • Code contributions (pull requests!) • http://bitbucket.org/gdamore/illumos-gate • “core” branch