SlideShare una empresa de Scribd logo
1 de 82
Descargar para leer sin conexión
NetBSD goes
POSIX:2008 and C1X
Takehiko NOZAKI
<tnozaki@NetBSD.org>
What is the POSIX ?
What is the POSIX ?
 Portable
What is the POSIX ?
 Portable
 Operating System
What is the POSIX ?
 Portable
 Operating System
 Interface
What is the POSIX ?
 Portable
 Operating System
 Interface
 [for UNIX]
What does Interface means ?
What does Interface means ?
 User Interface (UI)
What does Interface means ?
 User Interface (UI)
 Command-line User Interface (CUI)
What does Interface means ?
 User Interface (UI)
 Command-line User Interface (CUI)
 Graphical User Interface (GUI)
What does Interface means ?
 User Interface (UI)
 Command-line User Interface (CUI)
 Graphical User Interface (GUI)
 Application Programming Interface
(API)
What does Interface means ?
 User Interface (UI)
 Command-line User Interface (CUI)
 Graphical User Interface (GUI)
 Application Programming Interface
(API)
 Application Binary Interface (ABI)
POSIX target is...
POSIX target is...
 User Interface (UI)
 Command-line User Interface (CUI)
 Graphical User Interface (GUI)
 Application Programming Interface
(API)
 Application Binary Interface (ABI)
Who revised the POSIX ?
Who revised the POSIX ?
 The Austin Common Standard Revision
Group (The Austin Group)
Who is the member of the Austin
Group ?
Who is the member of the Austin
Group ?
 The Open Group (TOG)
Who is the member of the Austin
Group ?
 The Open Group (TOG)
 IEEE PASC
Who is the member of the Austin
Group ?
 The Open Group (TOG)
 IEEE PASC
 ISO/IEC JTC1/SC22/PAG
The Open Group (TOG)
The Open Group (TOG)
 A vendor/technology-neutral
consortium
The Open Group (TOG)
 A vendor/technology-neutral
consortium
 The certifying body for the UNIX
trademark
IEEE PASC
IEEE PASC
 Institute of Electrical and Electronics
Engineers (米国電気電子学会)
IEEE PASC
 Portable Application Standards
Committee
IEEE PASC
 Latest POSIX version - IEEE Std
1003.1-2008
ISO/IEC JTC1/SC22/PAG
 International Organization for
Standardization (国際標準化機構)
ISO/IEC JTC1/SC22/PAG
 International Organization for
Standardization
 International Electrotechnical
Commission (国際電気標準会議)
ISO/IEC JTC1/SC22/PAG
 International Organization for
Standardization
 International Electrotechnical
Commission
 Joint Technical Committee 1 (第一合同
技術委員会)
ISO/IEC JTC1/SC22/PAG
 Sub Committee 22
ISO/IEC JTC1/SC22/PAG
 Sub Committee 22
 Programming languages and, Operating
System
ISO/IEC JTC1/SC22/PAG
 Sub Committee 22
 Programming languages and, Operating
System
 POSIX Advisory Group
ISO/IEC JTC1/SC22/PAG
 Sub Committee 22
 Programming languages and, Operating
System
 POSIX Advisory Group
 Former WG15 (Workgroup-15)
ISO/IEC JTC1/SC22/PAG
 Latest POSIX version – ISO/IEC
9945:2008
You can freely subscribe the
Austin Group Mailing Lists !
You can freely subscribe the
Austin Group Mailing Lists !
 austin-group-l
 general discussion
 austin-regexp-l
 regular expression subgroup
 austin-group-futures-l
 futures discussion
 austin-group-offtopic-l
 offtopic discussion
What’s new POSIX:2008
What’s new POSIX:2008
 The Open Group Base Specifications,
Issue 7
What’s new POSIX:2008
 The Open Group Base Specifications,
Issue 7
 Former Single UNIX Specifications
What’s new POSIX:2008
 The Open Group Base Specifications,
Issue 7
 The Base Definitions (XBD)
 The System Interfaces and Headers (XSH)
 The Commands and Utilities (XCU)
What’s new POSIX:2008
 The Open Group Base Specifications,
Issue 7
 The Base Definitions (XBD)
 The System Interfaces and Headers (XSH)
 The Commands and Utilities (XCU)
 Extended API Set, Part 1 - 4
Extended API Set, Part1
Extended API Set, Part1
 New APIs derived from Linux Standard
Base (LSB)
 fmemopen, open_w?memstream
 mbsnrtowcs, wcsnrtombs
 etc.
What is Linux Standard Base?
What is Linux Standard Base?
 Too many distribution
 Too many differences
 Too difficult to maintain compatibility
What is Linux Standard Base?
 Keep compatibility with several Linux
distributions
 POSIX (CUI and API) compatibility + α
 ABI
 Filesystem hierarchy Standard (FHS)
 Runlevel
 X Window System extensions
 Printing system
Who made Linux Standard Base ?
 History
 LI18NUX/OpenI18N → LINUX2000
 Linux Standard Base
 OpenI18N + LSB = Free Standard
Group(FSG)
 Open Source Development Labs(OSDL)
 FSG + OSDL = Linux Foundation
 ISO/IEC JTC1/SC22 Linux Studying
Group(LSG) → Extended API Set, Part1
Implementation status of
Extended API Set, Part1
 Linux
 FreeBSD
 NetBSD – patch provided (by me)
Extended API Set, Part2
Extended API Set, Part2
 New system calls with relative
pathname
 fdopendir, fexecve
 {open,link,readlink,rename,symlink,unlink}
at
 etc.
Extended API Set, Part2
 Background
 TOCTTOU (time of check to time of use)
races and vulnerabilities (e.g. symlink
attack)
 chdir(2) is not MT-safe
Implementation status of
Extended API Set, Part2
 Solaris 9
 Linux kernel 2.6.16
 FreeBSD 8
 NetBSD – patch provided(by ad@)
Extended API Set, Part3
Extended API Set, Part3
 New pthread API for robust mutexes
 pthread_mutex_consistent
 pthread_mutexattr_{get,set}robust
 EOWNERDEAD
 etc.
Extended API Set, Part3
 Background
 Deadlock possibility
Implementation status of
Extended API Set, Part3
 Solaris 9 later
 Linux/glibc2
Extended API Set, Part4
Extended API Set, Part4
 New locale APIs for multi-locale
 locale_t, newlocale, freelocale
 isw{alnum,alpha,blank,...}_l
 etc.
Extended API Set, Part4
 Background
 setlocale(3) is not MT-safe
 C++ std::locale requires multi-locale
 Thread-aware Locale Model (by Urlich
Drepper@Redhat)
Extended API Set, Part4
 Problems
 Bad design: too complecated, it's hard to
manage the set of locale_t, mbstate_t,
wchar_t for programmers
 Require Thread Local Storage support
Implementation status of
Extended API Set, Part4
 glibc2
 Microsoft Visual C/C++ 2005
 MacOS X
 NetBSD – patch provided (by me)
What is C1X?
What is C1X?
 The second revision of ISO/IEC 9899
“Programming Language C”
 And the first revision in the 21st
century
What is C1X?
 The second revision of ISO/IEC 9899
“Programming Language C”
 And the first revision in the 21st
century
 1990 - C90 (C89)
 1995 - C90 AMD1 (C95) [Ammendant-1]
 1999 – C99 [Second Edition]
 201X – C1X [Third Edition]
What's new in C1X ?
 C – The C1X Charter (N1250)
 Latest Draft of ISO/IEC 9899:201X
(N1425)
 Including “C Secure Coding Guidelines”
DTR 19769: New character type
in C (N1040)
 UTF{16,32} hardwired character type
 char{16,32}_t, u and U prefix
 mbrtoc{1632}, c{1632}rtomb
 etc.
DTR 19769: New character type
in C (N1040)
 Background
 C string function(e.g. strcmp, mbrtowc)
can't treat UTF{16,32} String (L'0' != '0')
 C99: __STDC_ISO_10646__ and Universal
Character Name (e.g. L“u3042”)
 C++0x: Native Unicode Support
 Unicode Raw String Literal (N1333)
DTR 19769: New character type
in C (N1040)
 Problem
 mbrtoc{16,32} / c{16,32}rtomb is just
lesser iconv(3)
DTR 19769: New character type
in C (N1040)
 Implementation status
 glibc2 and gcc4 - WIP
 NetBSD and pcc - NOT YET
TR24731: Extension to the C
library
TR24731: Extension to the C
library
 Part1: Bouns-checking interfaces
(N1225)
TR24731: Extension to the C
library
 Part1: Bouns-checking interfaces
(N1225)
 strcpy_s, strcat_s, sprintf_s
 fopen_s, getenv_s
 etc.
TR24731: Extension to the C
library
 Part2: Dynamic allocation functions
(N1337)
TR24731: Extension to the C
library
 Part2: Dynamic allocation functions
(N1337)
 fmemopen, open_w?memstream
 {str, wcs}n?dup
 Etc.
→ see POSIX:2008 Extended API Set, Part1
TR24731-1: Bouns-checking
interfaces (N1225)
 Background
 Smashing the Stack for Fun and Profit (by
Aleph One)
 No more stack buffer overflow
TR24731-1: Bouns-checking
interfaces (N1225)
 Problems
 gcc already have Stack Smashing Protector
(a.k.a Propolice) and libssp's checking
function, str{cat,cpy}_chk
 *BSD already have strl{cat, cpy} and widely
used by many applications
 And more, NetBSD have efun(3)'s estrl{cat,
cpy} in util.h
TR24731-1: Bouns-checking
interfaces (N1225)
 Implementation status
Microsoft Visual C/C++ 2005
(_CRT_SECURE_CPP_OVERLOAD_STANDARD
_NAMES)
 OpenWatcom
 NetBSD – patch provided (by me)
TR24731-2: Dynamic allocation
functions (N1337)
 Background
 strl{cat,cpy} flame war between Theo de
Raadt with Urlich Drepper
 Drepper wrote “Defensive Programming
for RHEL”
Others...
 TR 18037: Embedded C (N1169)
 TR 24732: Decimal floating point
(N1312)
 TR 24747: Mathematical special
functions
More C1X Proposal
 On The Removal of gets() (N1420)
 Blocks and GC Proposal (N1451)
 Atomic Proposal (N1473)
 Anonymous Member-Structures and
-Union (N1406)
 Toward support for attributes in C
(N1403)
 Type generic macro (N1405)
More C1X Proposal
 #macro Proposal (N1410)
 Adding Alignment support for C
(N1397)
 Namespace Reservation for the C
Standard (N1345)
 Thread Local Storage (N1329)
 Adding Threads to the C Standard
Library (N1325)

Más contenido relacionado

La actualidad más candente

C Under Linux
C Under LinuxC Under Linux
C Under Linuxmohan43u
 
BKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
BKK16-302: Android Optimizing Compiler: New Member Assimilation GuideBKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
BKK16-302: Android Optimizing Compiler: New Member Assimilation GuideLinaro
 
BPF - All your packets belong to me
BPF - All your packets belong to meBPF - All your packets belong to me
BPF - All your packets belong to me_xhr_
 
LAS16-TR02: Upstreaming 101
LAS16-TR02: Upstreaming 101LAS16-TR02: Upstreaming 101
LAS16-TR02: Upstreaming 101Linaro
 
An Essential Relationship between Real-time and Resource Partitioning
An Essential Relationship between Real-time and Resource PartitioningAn Essential Relationship between Real-time and Resource Partitioning
An Essential Relationship between Real-time and Resource PartitioningYoshitake Kobayashi
 
BUD17-302: LLVM Internals #2
BUD17-302: LLVM Internals #2 BUD17-302: LLVM Internals #2
BUD17-302: LLVM Internals #2 Linaro
 
BUD17-TR02: Upstreaming 101
BUD17-TR02: Upstreaming 101 BUD17-TR02: Upstreaming 101
BUD17-TR02: Upstreaming 101 Linaro
 
Cross-compilation native sous android
Cross-compilation native sous androidCross-compilation native sous android
Cross-compilation native sous androidThierry Gayet
 
Las16 309 - lua jit arm64 port - status
Las16 309 - lua jit arm64 port - statusLas16 309 - lua jit arm64 port - status
Las16 309 - lua jit arm64 port - statusLinaro
 
BKK16-407 AOSP Toolchain Evolution and experimental languages on AOSP
BKK16-407 AOSP Toolchain Evolution and experimental languages on AOSPBKK16-407 AOSP Toolchain Evolution and experimental languages on AOSP
BKK16-407 AOSP Toolchain Evolution and experimental languages on AOSPLinaro
 
ONNC - 0.9.1 release
ONNC - 0.9.1 releaseONNC - 0.9.1 release
ONNC - 0.9.1 releaseLuba Tang
 
RDMA, Scalable MPI-3 RMA, and Next-Generation Post-RDMA Interconnects
RDMA, Scalable MPI-3 RMA, and Next-Generation Post-RDMA InterconnectsRDMA, Scalable MPI-3 RMA, and Next-Generation Post-RDMA Interconnects
RDMA, Scalable MPI-3 RMA, and Next-Generation Post-RDMA Interconnectsinside-BigData.com
 
BKK16-106 ODP Project Update
BKK16-106 ODP Project UpdateBKK16-106 ODP Project Update
BKK16-106 ODP Project UpdateLinaro
 
Preventing cpu side channel attacks with kernel tracking
Preventing cpu side channel attacks with kernel trackingPreventing cpu side channel attacks with kernel tracking
Preventing cpu side channel attacks with kernel trackingMarian Marinov
 
Las16 200 - firmware summit - ras what is it- why do we need it
Las16 200 - firmware summit - ras what is it- why do we need itLas16 200 - firmware summit - ras what is it- why do we need it
Las16 200 - firmware summit - ras what is it- why do we need itLinaro
 
Bsdtw17: johannes m dieterich: high performance computing and gpu acceleratio...
Bsdtw17: johannes m dieterich: high performance computing and gpu acceleratio...Bsdtw17: johannes m dieterich: high performance computing and gpu acceleratio...
Bsdtw17: johannes m dieterich: high performance computing and gpu acceleratio...Scott Tsai
 

La actualidad más candente (20)

C Under Linux
C Under LinuxC Under Linux
C Under Linux
 
BKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
BKK16-302: Android Optimizing Compiler: New Member Assimilation GuideBKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
BKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
 
BPF - All your packets belong to me
BPF - All your packets belong to meBPF - All your packets belong to me
BPF - All your packets belong to me
 
LAS16-TR02: Upstreaming 101
LAS16-TR02: Upstreaming 101LAS16-TR02: Upstreaming 101
LAS16-TR02: Upstreaming 101
 
An Essential Relationship between Real-time and Resource Partitioning
An Essential Relationship between Real-time and Resource PartitioningAn Essential Relationship between Real-time and Resource Partitioning
An Essential Relationship between Real-time and Resource Partitioning
 
BUD17-302: LLVM Internals #2
BUD17-302: LLVM Internals #2 BUD17-302: LLVM Internals #2
BUD17-302: LLVM Internals #2
 
BUD17-TR02: Upstreaming 101
BUD17-TR02: Upstreaming 101 BUD17-TR02: Upstreaming 101
BUD17-TR02: Upstreaming 101
 
Cross-compilation native sous android
Cross-compilation native sous androidCross-compilation native sous android
Cross-compilation native sous android
 
GPU Computing
GPU ComputingGPU Computing
GPU Computing
 
Parsers -
Parsers -Parsers -
Parsers -
 
Andes open cl for RISC-V
Andes open cl for RISC-VAndes open cl for RISC-V
Andes open cl for RISC-V
 
Las16 309 - lua jit arm64 port - status
Las16 309 - lua jit arm64 port - statusLas16 309 - lua jit arm64 port - status
Las16 309 - lua jit arm64 port - status
 
BKK16-407 AOSP Toolchain Evolution and experimental languages on AOSP
BKK16-407 AOSP Toolchain Evolution and experimental languages on AOSPBKK16-407 AOSP Toolchain Evolution and experimental languages on AOSP
BKK16-407 AOSP Toolchain Evolution and experimental languages on AOSP
 
G++ & GCC
G++ & GCCG++ & GCC
G++ & GCC
 
ONNC - 0.9.1 release
ONNC - 0.9.1 releaseONNC - 0.9.1 release
ONNC - 0.9.1 release
 
RDMA, Scalable MPI-3 RMA, and Next-Generation Post-RDMA Interconnects
RDMA, Scalable MPI-3 RMA, and Next-Generation Post-RDMA InterconnectsRDMA, Scalable MPI-3 RMA, and Next-Generation Post-RDMA Interconnects
RDMA, Scalable MPI-3 RMA, and Next-Generation Post-RDMA Interconnects
 
BKK16-106 ODP Project Update
BKK16-106 ODP Project UpdateBKK16-106 ODP Project Update
BKK16-106 ODP Project Update
 
Preventing cpu side channel attacks with kernel tracking
Preventing cpu side channel attacks with kernel trackingPreventing cpu side channel attacks with kernel tracking
Preventing cpu side channel attacks with kernel tracking
 
Las16 200 - firmware summit - ras what is it- why do we need it
Las16 200 - firmware summit - ras what is it- why do we need itLas16 200 - firmware summit - ras what is it- why do we need it
Las16 200 - firmware summit - ras what is it- why do we need it
 
Bsdtw17: johannes m dieterich: high performance computing and gpu acceleratio...
Bsdtw17: johannes m dieterich: high performance computing and gpu acceleratio...Bsdtw17: johannes m dieterich: high performance computing and gpu acceleratio...
Bsdtw17: johannes m dieterich: high performance computing and gpu acceleratio...
 

Destacado

Now Perform Excel Recovery Mac
Now Perform Excel Recovery Mac Now Perform Excel Recovery Mac
Now Perform Excel Recovery Mac ExcelRecoveryMac
 
Reorganization nmsuica development-dec11draft#1
Reorganization nmsuica development-dec11draft#1Reorganization nmsuica development-dec11draft#1
Reorganization nmsuica development-dec11draft#1styckrunner
 
Michael W. McLaughlin Principal MindShare Consulting LLC Coauthor Guerrilla M...
Michael W. McLaughlin Principal MindShare Consulting LLC Coauthor Guerrilla M...Michael W. McLaughlin Principal MindShare Consulting LLC Coauthor Guerrilla M...
Michael W. McLaughlin Principal MindShare Consulting LLC Coauthor Guerrilla M...Imbang Jaya Trenggana
 
Finding Your Files with The Digital Tiger
Finding Your Files with The Digital TigerFinding Your Files with The Digital Tiger
Finding Your Files with The Digital TigerAnne McGurty
 
Presentation2 mrp
Presentation2 mrpPresentation2 mrp
Presentation2 mrpgsuicmez
 
Russia Geopolitics 2015
Russia Geopolitics 2015Russia Geopolitics 2015
Russia Geopolitics 2015Ankush Singh
 
Джейми Пек о борьбе с креативным классом Ричарда Флориды
Джейми Пек о борьбе с креативным классом Ричарда ФлоридыДжейми Пек о борьбе с креативным классом Ричарда Флориды
Джейми Пек о борьбе с креативным классом Ричарда ФлоридыAnastasia Yeremenko
 
Crescy Cannan - Social Action with Children and Families A Community Developm...
Crescy Cannan - Social Action with Children and Families A Community Developm...Crescy Cannan - Social Action with Children and Families A Community Developm...
Crescy Cannan - Social Action with Children and Families A Community Developm...Imbang Jaya Trenggana
 
Battered woman's syndrome Emily Winters
Battered woman's syndrome Emily WintersBattered woman's syndrome Emily Winters
Battered woman's syndrome Emily WintersEmily Winters
 
Factory-Whitepaper-Sustainability-Aptean-Weisman
Factory-Whitepaper-Sustainability-Aptean-WeismanFactory-Whitepaper-Sustainability-Aptean-Weisman
Factory-Whitepaper-Sustainability-Aptean-WeismanRobyn Weisman
 
Preparazione di un estere aromatico
Preparazione di un estere aromatico Preparazione di un estere aromatico
Preparazione di un estere aromatico Giuseppe Venturi
 

Destacado (20)

Taiden at All-over-IP 2013
Taiden at All-over-IP 2013Taiden at All-over-IP 2013
Taiden at All-over-IP 2013
 
Now Perform Excel Recovery Mac
Now Perform Excel Recovery Mac Now Perform Excel Recovery Mac
Now Perform Excel Recovery Mac
 
Nie zabijaj
Nie zabijajNie zabijaj
Nie zabijaj
 
Reorganization nmsuica development-dec11draft#1
Reorganization nmsuica development-dec11draft#1Reorganization nmsuica development-dec11draft#1
Reorganization nmsuica development-dec11draft#1
 
Polygon
PolygonPolygon
Polygon
 
HTML
HTMLHTML
HTML
 
Web site oganization
Web site oganizationWeb site oganization
Web site oganization
 
Michael W. McLaughlin Principal MindShare Consulting LLC Coauthor Guerrilla M...
Michael W. McLaughlin Principal MindShare Consulting LLC Coauthor Guerrilla M...Michael W. McLaughlin Principal MindShare Consulting LLC Coauthor Guerrilla M...
Michael W. McLaughlin Principal MindShare Consulting LLC Coauthor Guerrilla M...
 
Finding Your Files with The Digital Tiger
Finding Your Files with The Digital TigerFinding Your Files with The Digital Tiger
Finding Your Files with The Digital Tiger
 
START STOP CONTINUE
START STOP CONTINUESTART STOP CONTINUE
START STOP CONTINUE
 
Presentation2 mrp
Presentation2 mrpPresentation2 mrp
Presentation2 mrp
 
Russia Geopolitics 2015
Russia Geopolitics 2015Russia Geopolitics 2015
Russia Geopolitics 2015
 
GroteckSmartEvent
GroteckSmartEventGroteckSmartEvent
GroteckSmartEvent
 
Джейми Пек о борьбе с креативным классом Ричарда Флориды
Джейми Пек о борьбе с креативным классом Ричарда ФлоридыДжейми Пек о борьбе с креативным классом Ричарда Флориды
Джейми Пек о борьбе с креативным классом Ричарда Флориды
 
Crescy Cannan - Social Action with Children and Families A Community Developm...
Crescy Cannan - Social Action with Children and Families A Community Developm...Crescy Cannan - Social Action with Children and Families A Community Developm...
Crescy Cannan - Social Action with Children and Families A Community Developm...
 
Metode penelitian bab iv
Metode penelitian bab ivMetode penelitian bab iv
Metode penelitian bab iv
 
2015_MWCUA_Annual_Report-LR
2015_MWCUA_Annual_Report-LR2015_MWCUA_Annual_Report-LR
2015_MWCUA_Annual_Report-LR
 
Battered woman's syndrome Emily Winters
Battered woman's syndrome Emily WintersBattered woman's syndrome Emily Winters
Battered woman's syndrome Emily Winters
 
Factory-Whitepaper-Sustainability-Aptean-Weisman
Factory-Whitepaper-Sustainability-Aptean-WeismanFactory-Whitepaper-Sustainability-Aptean-Weisman
Factory-Whitepaper-Sustainability-Aptean-Weisman
 
Preparazione di un estere aromatico
Preparazione di un estere aromatico Preparazione di un estere aromatico
Preparazione di un estere aromatico
 

Similar a 2010 JNUG BoF

Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)Hajime Tazaki
 
Enterprise PL1 - Peter Elderon
Enterprise PL1 - Peter ElderonEnterprise PL1 - Peter Elderon
Enterprise PL1 - Peter ElderonNRB
 
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoTInria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoTStéphanie Roger
 
Digital design with Systemc
Digital design with SystemcDigital design with Systemc
Digital design with SystemcMarc Engels
 
jhkghj
jhkghjjhkghj
jhkghjAdmin
 
test2PPT
test2PPTtest2PPT
test2PPTAdmin
 
Introdot Netc Sharp En
Introdot Netc Sharp EnIntrodot Netc Sharp En
Introdot Netc Sharp EnGregory Renard
 
Talk Python To Me: Stream Processing in your favourite Language with Beam on ...
Talk Python To Me: Stream Processing in your favourite Language with Beam on ...Talk Python To Me: Stream Processing in your favourite Language with Beam on ...
Talk Python To Me: Stream Processing in your favourite Language with Beam on ...Aljoscha Krettek
 
Unit 2
Unit 2Unit 2
Unit 2siddr
 
Unifying Network Filtering Rules for the Linux Kernel with eBPF
Unifying Network Filtering Rules for the Linux Kernel with eBPFUnifying Network Filtering Rules for the Linux Kernel with eBPF
Unifying Network Filtering Rules for the Linux Kernel with eBPFNetronome
 
“eXtending” the Automation Toolbox: Introduction to TwinCAT 3 Software and eX...
“eXtending” the Automation Toolbox: Introduction to TwinCAT 3 Software and eX...“eXtending” the Automation Toolbox: Introduction to TwinCAT 3 Software and eX...
“eXtending” the Automation Toolbox: Introduction to TwinCAT 3 Software and eX...Design World
 
Linux firmware for iRMC controller on Fujitsu Primergy servers
Linux firmware for iRMC controller on Fujitsu Primergy serversLinux firmware for iRMC controller on Fujitsu Primergy servers
Linux firmware for iRMC controller on Fujitsu Primergy serversVladimir Shakhov
 
Summit 16: How to Compose a New OPNFV Solution Stack?
Summit 16: How to Compose a New OPNFV Solution Stack?Summit 16: How to Compose a New OPNFV Solution Stack?
Summit 16: How to Compose a New OPNFV Solution Stack?OPNFV
 
LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1Hajime Tazaki
 

Similar a 2010 JNUG BoF (20)

Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
 
Enterprise PL1 - Peter Elderon
Enterprise PL1 - Peter ElderonEnterprise PL1 - Peter Elderon
Enterprise PL1 - Peter Elderon
 
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoTInria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
 
Digital design with Systemc
Digital design with SystemcDigital design with Systemc
Digital design with Systemc
 
Embedded system
Embedded systemEmbedded system
Embedded system
 
Asp dot net
Asp dot netAsp dot net
Asp dot net
 
jhkghj
jhkghjjhkghj
jhkghj
 
test2PPT
test2PPTtest2PPT
test2PPT
 
Asp net
Asp netAsp net
Asp net
 
Asp net
Asp netAsp net
Asp net
 
Synapse india reviews sharing asp.net
Synapse india reviews sharing  asp.netSynapse india reviews sharing  asp.net
Synapse india reviews sharing asp.net
 
3DD 1e 31 Luglio Apertura
3DD 1e 31 Luglio Apertura3DD 1e 31 Luglio Apertura
3DD 1e 31 Luglio Apertura
 
Introdot Netc Sharp En
Introdot Netc Sharp EnIntrodot Netc Sharp En
Introdot Netc Sharp En
 
Talk Python To Me: Stream Processing in your favourite Language with Beam on ...
Talk Python To Me: Stream Processing in your favourite Language with Beam on ...Talk Python To Me: Stream Processing in your favourite Language with Beam on ...
Talk Python To Me: Stream Processing in your favourite Language with Beam on ...
 
Unit 2
Unit 2Unit 2
Unit 2
 
Unifying Network Filtering Rules for the Linux Kernel with eBPF
Unifying Network Filtering Rules for the Linux Kernel with eBPFUnifying Network Filtering Rules for the Linux Kernel with eBPF
Unifying Network Filtering Rules for the Linux Kernel with eBPF
 
“eXtending” the Automation Toolbox: Introduction to TwinCAT 3 Software and eX...
“eXtending” the Automation Toolbox: Introduction to TwinCAT 3 Software and eX...“eXtending” the Automation Toolbox: Introduction to TwinCAT 3 Software and eX...
“eXtending” the Automation Toolbox: Introduction to TwinCAT 3 Software and eX...
 
Linux firmware for iRMC controller on Fujitsu Primergy servers
Linux firmware for iRMC controller on Fujitsu Primergy serversLinux firmware for iRMC controller on Fujitsu Primergy servers
Linux firmware for iRMC controller on Fujitsu Primergy servers
 
Summit 16: How to Compose a New OPNFV Solution Stack?
Summit 16: How to Compose a New OPNFV Solution Stack?Summit 16: How to Compose a New OPNFV Solution Stack?
Summit 16: How to Compose a New OPNFV Solution Stack?
 
LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1
 

Último

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
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
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
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
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
🐬 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
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 

Último (20)

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
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
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 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
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 

2010 JNUG BoF

  • 1. NetBSD goes POSIX:2008 and C1X Takehiko NOZAKI <tnozaki@NetBSD.org>
  • 2. What is the POSIX ?
  • 3. What is the POSIX ?  Portable
  • 4. What is the POSIX ?  Portable  Operating System
  • 5. What is the POSIX ?  Portable  Operating System  Interface
  • 6. What is the POSIX ?  Portable  Operating System  Interface  [for UNIX]
  • 8. What does Interface means ?  User Interface (UI)
  • 9. What does Interface means ?  User Interface (UI)  Command-line User Interface (CUI)
  • 10. What does Interface means ?  User Interface (UI)  Command-line User Interface (CUI)  Graphical User Interface (GUI)
  • 11. What does Interface means ?  User Interface (UI)  Command-line User Interface (CUI)  Graphical User Interface (GUI)  Application Programming Interface (API)
  • 12. What does Interface means ?  User Interface (UI)  Command-line User Interface (CUI)  Graphical User Interface (GUI)  Application Programming Interface (API)  Application Binary Interface (ABI)
  • 14. POSIX target is...  User Interface (UI)  Command-line User Interface (CUI)  Graphical User Interface (GUI)  Application Programming Interface (API)  Application Binary Interface (ABI)
  • 15. Who revised the POSIX ?
  • 16. Who revised the POSIX ?  The Austin Common Standard Revision Group (The Austin Group)
  • 17. Who is the member of the Austin Group ?
  • 18. Who is the member of the Austin Group ?  The Open Group (TOG)
  • 19. Who is the member of the Austin Group ?  The Open Group (TOG)  IEEE PASC
  • 20. Who is the member of the Austin Group ?  The Open Group (TOG)  IEEE PASC  ISO/IEC JTC1/SC22/PAG
  • 21. The Open Group (TOG)
  • 22. The Open Group (TOG)  A vendor/technology-neutral consortium
  • 23. The Open Group (TOG)  A vendor/technology-neutral consortium  The certifying body for the UNIX trademark
  • 25. IEEE PASC  Institute of Electrical and Electronics Engineers (米国電気電子学会)
  • 26. IEEE PASC  Portable Application Standards Committee
  • 27. IEEE PASC  Latest POSIX version - IEEE Std 1003.1-2008
  • 28. ISO/IEC JTC1/SC22/PAG  International Organization for Standardization (国際標準化機構)
  • 29. ISO/IEC JTC1/SC22/PAG  International Organization for Standardization  International Electrotechnical Commission (国際電気標準会議)
  • 30. ISO/IEC JTC1/SC22/PAG  International Organization for Standardization  International Electrotechnical Commission  Joint Technical Committee 1 (第一合同 技術委員会)
  • 32. ISO/IEC JTC1/SC22/PAG  Sub Committee 22  Programming languages and, Operating System
  • 33. ISO/IEC JTC1/SC22/PAG  Sub Committee 22  Programming languages and, Operating System  POSIX Advisory Group
  • 34. ISO/IEC JTC1/SC22/PAG  Sub Committee 22  Programming languages and, Operating System  POSIX Advisory Group  Former WG15 (Workgroup-15)
  • 35. ISO/IEC JTC1/SC22/PAG  Latest POSIX version – ISO/IEC 9945:2008
  • 36. You can freely subscribe the Austin Group Mailing Lists !
  • 37. You can freely subscribe the Austin Group Mailing Lists !  austin-group-l  general discussion  austin-regexp-l  regular expression subgroup  austin-group-futures-l  futures discussion  austin-group-offtopic-l  offtopic discussion
  • 39. What’s new POSIX:2008  The Open Group Base Specifications, Issue 7
  • 40. What’s new POSIX:2008  The Open Group Base Specifications, Issue 7  Former Single UNIX Specifications
  • 41. What’s new POSIX:2008  The Open Group Base Specifications, Issue 7  The Base Definitions (XBD)  The System Interfaces and Headers (XSH)  The Commands and Utilities (XCU)
  • 42. What’s new POSIX:2008  The Open Group Base Specifications, Issue 7  The Base Definitions (XBD)  The System Interfaces and Headers (XSH)  The Commands and Utilities (XCU)  Extended API Set, Part 1 - 4
  • 44. Extended API Set, Part1  New APIs derived from Linux Standard Base (LSB)  fmemopen, open_w?memstream  mbsnrtowcs, wcsnrtombs  etc.
  • 45. What is Linux Standard Base?
  • 46. What is Linux Standard Base?  Too many distribution  Too many differences  Too difficult to maintain compatibility
  • 47. What is Linux Standard Base?  Keep compatibility with several Linux distributions  POSIX (CUI and API) compatibility + α  ABI  Filesystem hierarchy Standard (FHS)  Runlevel  X Window System extensions  Printing system
  • 48. Who made Linux Standard Base ?  History  LI18NUX/OpenI18N → LINUX2000  Linux Standard Base  OpenI18N + LSB = Free Standard Group(FSG)  Open Source Development Labs(OSDL)  FSG + OSDL = Linux Foundation  ISO/IEC JTC1/SC22 Linux Studying Group(LSG) → Extended API Set, Part1
  • 49. Implementation status of Extended API Set, Part1  Linux  FreeBSD  NetBSD – patch provided (by me)
  • 51. Extended API Set, Part2  New system calls with relative pathname  fdopendir, fexecve  {open,link,readlink,rename,symlink,unlink} at  etc.
  • 52. Extended API Set, Part2  Background  TOCTTOU (time of check to time of use) races and vulnerabilities (e.g. symlink attack)  chdir(2) is not MT-safe
  • 53. Implementation status of Extended API Set, Part2  Solaris 9  Linux kernel 2.6.16  FreeBSD 8  NetBSD – patch provided(by ad@)
  • 55. Extended API Set, Part3  New pthread API for robust mutexes  pthread_mutex_consistent  pthread_mutexattr_{get,set}robust  EOWNERDEAD  etc.
  • 56. Extended API Set, Part3  Background  Deadlock possibility
  • 57. Implementation status of Extended API Set, Part3  Solaris 9 later  Linux/glibc2
  • 59. Extended API Set, Part4  New locale APIs for multi-locale  locale_t, newlocale, freelocale  isw{alnum,alpha,blank,...}_l  etc.
  • 60. Extended API Set, Part4  Background  setlocale(3) is not MT-safe  C++ std::locale requires multi-locale  Thread-aware Locale Model (by Urlich Drepper@Redhat)
  • 61. Extended API Set, Part4  Problems  Bad design: too complecated, it's hard to manage the set of locale_t, mbstate_t, wchar_t for programmers  Require Thread Local Storage support
  • 62. Implementation status of Extended API Set, Part4  glibc2  Microsoft Visual C/C++ 2005  MacOS X  NetBSD – patch provided (by me)
  • 64. What is C1X?  The second revision of ISO/IEC 9899 “Programming Language C”  And the first revision in the 21st century
  • 65. What is C1X?  The second revision of ISO/IEC 9899 “Programming Language C”  And the first revision in the 21st century  1990 - C90 (C89)  1995 - C90 AMD1 (C95) [Ammendant-1]  1999 – C99 [Second Edition]  201X – C1X [Third Edition]
  • 66. What's new in C1X ?  C – The C1X Charter (N1250)  Latest Draft of ISO/IEC 9899:201X (N1425)  Including “C Secure Coding Guidelines”
  • 67. DTR 19769: New character type in C (N1040)  UTF{16,32} hardwired character type  char{16,32}_t, u and U prefix  mbrtoc{1632}, c{1632}rtomb  etc.
  • 68. DTR 19769: New character type in C (N1040)  Background  C string function(e.g. strcmp, mbrtowc) can't treat UTF{16,32} String (L'0' != '0')  C99: __STDC_ISO_10646__ and Universal Character Name (e.g. L“u3042”)  C++0x: Native Unicode Support  Unicode Raw String Literal (N1333)
  • 69. DTR 19769: New character type in C (N1040)  Problem  mbrtoc{16,32} / c{16,32}rtomb is just lesser iconv(3)
  • 70. DTR 19769: New character type in C (N1040)  Implementation status  glibc2 and gcc4 - WIP  NetBSD and pcc - NOT YET
  • 71. TR24731: Extension to the C library
  • 72. TR24731: Extension to the C library  Part1: Bouns-checking interfaces (N1225)
  • 73. TR24731: Extension to the C library  Part1: Bouns-checking interfaces (N1225)  strcpy_s, strcat_s, sprintf_s  fopen_s, getenv_s  etc.
  • 74. TR24731: Extension to the C library  Part2: Dynamic allocation functions (N1337)
  • 75. TR24731: Extension to the C library  Part2: Dynamic allocation functions (N1337)  fmemopen, open_w?memstream  {str, wcs}n?dup  Etc. → see POSIX:2008 Extended API Set, Part1
  • 76. TR24731-1: Bouns-checking interfaces (N1225)  Background  Smashing the Stack for Fun and Profit (by Aleph One)  No more stack buffer overflow
  • 77. TR24731-1: Bouns-checking interfaces (N1225)  Problems  gcc already have Stack Smashing Protector (a.k.a Propolice) and libssp's checking function, str{cat,cpy}_chk  *BSD already have strl{cat, cpy} and widely used by many applications  And more, NetBSD have efun(3)'s estrl{cat, cpy} in util.h
  • 78. TR24731-1: Bouns-checking interfaces (N1225)  Implementation status Microsoft Visual C/C++ 2005 (_CRT_SECURE_CPP_OVERLOAD_STANDARD _NAMES)  OpenWatcom  NetBSD – patch provided (by me)
  • 79. TR24731-2: Dynamic allocation functions (N1337)  Background  strl{cat,cpy} flame war between Theo de Raadt with Urlich Drepper  Drepper wrote “Defensive Programming for RHEL”
  • 80. Others...  TR 18037: Embedded C (N1169)  TR 24732: Decimal floating point (N1312)  TR 24747: Mathematical special functions
  • 81. More C1X Proposal  On The Removal of gets() (N1420)  Blocks and GC Proposal (N1451)  Atomic Proposal (N1473)  Anonymous Member-Structures and -Union (N1406)  Toward support for attributes in C (N1403)  Type generic macro (N1405)
  • 82. More C1X Proposal  #macro Proposal (N1410)  Adding Alignment support for C (N1397)  Namespace Reservation for the C Standard (N1345)  Thread Local Storage (N1329)  Adding Threads to the C Standard Library (N1325)