Linux从用户层到内核层系列 - GNU系列之glibc介绍
题记:本系列文章的目的是抛开书本从源代码和使用的角度分析Linux内核和相关源代码,byhankswang和你一起玩转linux开发
轻松搞定TCP/IP协议栈,原创文章欢迎交流, byhankswang@gmail.com
欢迎加入到CHLK - Linux开发交流群 QQ:327084515 讨论Linux开发相关问题
介绍
最近写程序的时候突然想到一个问题,我们在做内核开发的时候很少使用到C库函数,在linux kernel中使用到C库的几个重要的地方如系统启动时候的标准输入输出,scsi驱动部分还有就是linux/tools。我们修改内核代码的时候都使用内核自身提供的函数接口或者变量,我们可以直接调用系统提供的API,在我们做应用层开发的时候我们却大量的使用了libc,libc和内核开发出来的接口是如何衔接起来的呢?libc对kernel提供的接口是如何封装的?从用户层调用的libc如何映射到系统中断向量表中?glibc系列文章将逐一弄明白这写问题。磨刀不误砍柴功,首先从glibc说起。
说明:对于glibc的介绍没有比GNU官方Web介绍更为简洁和明了的了。由于原文没有太难的英文词汇和复杂的语法,就不再翻译了。
文章引用自GNU官网:http://www.gnu.org/software/libc/index.html
Overview
Any Unix-like operating system needs a C library: the library which defines the ``system calls'' and other basic facilities such as open, malloc, printf, exit...
The GNU C Library is used as the C library in the GNU systems and most systems with the Linux kernel.
Project Goals
The GNU C Library is primarily designed to be aportable and high performance C library. It follows all relevant standards including ISO C11 and POSIX.1-2008. It is also internationalized and has one of the most complete internationalization interfaces known.
Current Status
The current stable version of glibc is 2.17. See the NEWS file in the glibc sources for more information.
Latest News
2012-12-25: glibc 2.17 released.
2012-06-30: glibc 2.16 released.
2012-03-21: glibc 2.15 released.
2011-06-07: glibc 2.14 released.
2011-02-04: glibc 2.13 released.
History
The history of Unix and various standards determine much of the interface of the C library. In general the GNU C Library supports the ISO C and POSIX standards. We also try to support the features of popular Unix variants (including BSD and System V) when those do not conflict with the standards. Different compatibility modes (selectable when you compile an application) allow the peaceful coexistence of compatibility support for different varieties of Unix.
People
The GNU C Library is currently maintained by a community of developers many of which are listed on the MAINTAINERS page of the project wiki.
Many others have contributed in large amounts as documented in the glibc Contributors.
Thank you to all who have contributed, either in bug reports, or by answering a question, your help is appreciated.
Linux从用户层到内核层系列 - GNU系列之glibc介绍的更多相关文章
- 【windows 操作系统】【CPU】用户模式和内核模式(用户层和内核层)
		
所有的现代操作系统中,CPU是在两种不同的模式下运行的: 注意以下内容来自微软: windows用户模式和内核模式 运行 Windows 的计算机中的处理器有两个不同模式:用户模式 和内核模式 . 用 ...
 - linux之用户态和内核态
		
一. Unix/Linux的体系架构 如上图所示,从宏观上来看,Linux操作系统的体系架构分为用户态和内核态(或者用户空间和内核).内核从本质上看是一种软件——控制计算机的硬件资源,并提供上层应用程 ...
 - 如何看待Linux操作系统的用户空间和内核空间
		
作为中央核心处理单元的CPU,除了生产工艺的不断革新进步外,在处理数据和响应速度方面也需要有权衡.稍有微机原理基础的人都知道Intel X86体系的CPU提供了四种特权模式ring0~ring3,其中 ...
 - [内核驱动] miniFilter 内核层与应用程序通信
		
转载:http://blog.csdn.net/heyabo/article/details/8721611 转载:http://www.cnblogs.com/ljinshuan/archive/2 ...
 - [置顶] Linux Malloc分析-从用户空间到内核空间【转】
		
转自:http://blog.csdn.net/ordeder/article/details/41654509 版权声明:本文为博主(http://blog.csdn.net/ordeder)原创文 ...
 - Linux Malloc分析-从用户空间到内核空间【转】
		
转自:http://blog.csdn.net/ordeder/article/details/41654509 版权声明:本文为博主(http://blog.csdn.net/ordeder)原创文 ...
 - Linux环境下用户空间与内核空间数据的交换方式
		
在linux环境开发过程中,经常会需要在用户空间和内核空间之间进行数据交换. 介绍了 Linux 系统下用户空间与内核空间数据交换的几种方式 第一节:使用procfs实现内核交互简明教程(1) 第二节 ...
 - linux用户态和内核态通信之netlink机制【转】
		
本文转载自:http://blog.csdn.net/zcabcd123/article/details/8272360 这是一篇学习笔记,主要是对<Linux 系统内核空间与用户空间通信的实现 ...
 - Linux 内核层和 用户层 配置  GPIO 引脚
		
Linux BSP 开发的基础就是和GPIO打交道, 下面总结下这几天对某家开发板的GPIO控制的知识. 公司的开发板用的是 DTB 模式 ,首先,进入 dts,dtsi文件查看关于GPIO 的模块 ...
 
随机推荐
- Eclipse验证码
			
package MyEclipse; import java.io.*; public class MyEclipseGen { private static final String ...
 - HttpURLConnection中使用代理(Proxy)及其验证(Authentication)
			
HttpURLConnection中使用代理(Proxy)及其验证(Authentication) 使用Java的HttpURLConnection类可以实现HttpClient的功能,而不需要依赖任 ...
 - mysql双机热备的配置步骤
			
设置双机热备: 首先要在两台机器上建立同步用户: grant replication slave on *.* to 'repdcs'@'192.168.21.39' identified by '1 ...
 - Android 它们的定义View视图
			
创建一个新视图将满足我们独特UI需求. 本文介绍的发展将指南针罗盘接口使用UI,通过继承View定义自己的视图类工具,为了深入了解自己的自定义视图. 实现效果图: 源码: 布局文件activity_m ...
 - 重操JS旧业第八弹:面向对象与继承
			
js里面没有语言语法层面的继承机制,但这并不意味着js就不能实现继承,利用js属性和方法动态性来模拟实现继承,通过总结大概有如下方法实现: 1 原型链继承 我们知道原型在对象中扮演着重要的角色,函数本 ...
 - Inhouse interview(websense)
			
1.Tell me about yourself? My name is xxx,i 'm from xxx. now , I am a postgratuation and my major sub ...
 - JAVA中字符串比較equals()和equalsIgnoreCase()的差别
			
.使用equals( )方法比較两个字符串是否相等.它具有例如以下的一般形式: boolean equals(Object str) 这里str是一个用来与调用字符串(String)对象做比較的字符串 ...
 - 499 - What's The Frequency, Kenneth?
			
What's The Frequency, Kenneth? #include <stdio.h> main() { int i; char *suffix[]= { "st ...
 - Servlet的学习之ServletContext(1)
			
本篇来介绍Servlet中非常重要的对象,如ServletConfig类和ServletContext类,尤其是ServletContext类中的一些方法,本篇先讲述一部分,在下一篇中继续补充. 在对 ...
 - TCP/IP协议的编写《转载》
			
基于HHARM9-EDU的TCP/IP(UDP)协议的实现 原文网址:http://blog.csdn.net/lhj0503/article/details/3323788 摘 要:嵌入式技术的发展 ...