Monday, February 25, 2008
Function Ptrs in the C/C++ languages
In the C/C++ languages, the notion of function ptrs has been used only in a limited way, to my thought, though they provide quite a expressive setting. This is thought to be due to the cumbersome and/or difficult syntax for writing functions ptrs and their types.
To relieve this problem, a nice tutorial is given by Lars Haendel:
The Function Pointer Tutorials
- http://www.newty.de/zip/e_fpt.pdf
* Should correct something with sidebars!
==
type-name: (type-specifier type-qualifier)+ abstract-declarator?
type-specifier: ("void" "char" "short" "int" "long" "float" "double" "signed" "unsigned" struct-or-union-specifier enum-specifier typedef-name)
type-qualifier: ("const" "volatile")
abstract-declarator: pointer ("(" abstract-declarator ")")? ( "[" constant-expression? "]" "(" parameter-type-list? ")" )*
enum-specifier: "enum" (identifier identifier? "{" enumerator% "}")
enumerator: identifier ("=" constant-expression)?
struct-or-union-specifier: ("struct" "union") ( identifier? "{" struct-declaration+ "}" identifier )
struct-declaration: (type-specifier type-qualifier)+ struct-declarator%
struct-declarator: declarator declarator? ":" constant-expression
pointer: ("*" type-qualifier*)*
parameter-type-list: parameter-declaration% ("," "...")?
parameter-declaration: declaration-specifiers (declarator abstract-declarator)?
==
To relieve this problem, a nice tutorial is given by Lars Haendel:
The Function Pointer Tutorials
- http://www.newty.de/zip/e_fpt.pdf
* Should correct something with sidebars!
==
type-name: (type-specifier type-qualifier)+ abstract-declarator?
type-specifier: ("void" "char" "short" "int" "long" "float" "double" "signed" "unsigned" struct-or-union-specifier enum-specifier typedef-name)
type-qualifier: ("const" "volatile")
abstract-declarator: pointer ("(" abstract-declarator ")")? ( "[" constant-expression? "]" "(" parameter-type-list? ")" )*
enum-specifier: "enum" (identifier identifier? "{" enumerator% "}")
enumerator: identifier ("=" constant-expression)?
struct-or-union-specifier: ("struct" "union") ( identifier? "{" struct-declaration+ "}" identifier )
struct-declaration: (type-specifier type-qualifier)+ struct-declarator%
struct-declarator: declarator declarator? ":" constant-expression
pointer: ("*" type-qualifier*)*
parameter-type-list: parameter-declaration% ("," "...")?
parameter-declaration: declaration-specifiers (declarator abstract-declarator)?
==
History of Linux File Systems
History of Linux File Systems
* Minix file system [????]
- Max file size: 64M
- Max file name length: 14 chars
- 16bit operations used internally
* EXT (Extended file system) [1992]
- 32bit file system to support 32bit Linux OS
- Max file size: 2G
- Max file name length: 255 chars
* EXT2 [1993]
- Some features of FFS (Fast File System) in BSD
- Weakness of the file system particularly when OS goes down abruptly with no run of shutdown
* reiserfs
- Max file size : 8T
- Journaling file system
- Fast speed by recording only meta data
- Tail packing to relive the internal fragmentation problem due to less than 4k bytes files such as in web server, news server, and mail server
- Hans Reiser, DARPA
* EXT3 [2001]
- EXT2+ journaling feature
- 3-level journaling. More stable but 10 to 15 times slower than reiserfs
- compatible with EXT2 (tune2fs)
- Max file size 16G (4k file block size), 32T (4M file block size)
* Minix file system [????]
- Max file size: 64M
- Max file name length: 14 chars
- 16bit operations used internally
* EXT (Extended file system) [1992]
- 32bit file system to support 32bit Linux OS
- Max file size: 2G
- Max file name length: 255 chars
* EXT2 [1993]
- Some features of FFS (Fast File System) in BSD
- Weakness of the file system particularly when OS goes down abruptly with no run of shutdown
* reiserfs
- Max file size : 8T
- Journaling file system
- Fast speed by recording only meta data
- Tail packing to relive the internal fragmentation problem due to less than 4k bytes files such as in web server, news server, and mail server
- Hans Reiser, DARPA
* EXT3 [2001]
- EXT2+ journaling feature
- 3-level journaling. More stable but 10 to 15 times slower than reiserfs
- compatible with EXT2 (tune2fs)
- Max file size 16G (4k file block size), 32T (4M file block size)
Subscribe to:
Posts (Atom)