题记:本系列文章的目的是抛开书本从源代码和使用的角度分析Linux内核和相关源代码,byhankswang和你一起玩转linux开发

轻松搞定TCP/IP协议栈,原创文章欢迎交流, byhankswang@gmail.com

欢迎加入到CHLK - Linux开发交流群 QQ:327084515 讨论Linux开发相关问题

GNU系列之glibc 介绍

最近写程序的时候突然想到一个问题,我们在做内核开发的时候很少使用到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

    Glibc的API开发手册和函数的详细说明: http://www.gnu.org/software/libc/manual/

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.

转载于:https://www.cnblogs.com/dyllove98/p/3188357.html

Linux从用户层到内核层系列 - GNU系列之glibc介绍相关推荐

  1. 用户层和内核层异常的处理流程

    文章目录 内核层异常的处理流程 用户层异常和内核层异常 KiDispatchException函数详解 RtlDispatchException函数的执行流程 用户层异常的处理流程 用户异常的处理流程 ...

  2. linux 内核空间 sy,在 Linux 下用户空间与内核空间数据交换的方式,第 1 部分: 内核启动参数、模块参数与sysf...

    级别: 初级 燚 杨 (), 计算机科学硕士 2006 年 2 月 16 日 本系列文章包括两篇,它们文详细地介绍了 Linux 系统下用户空间与内核空间数据交换的九种方式,包括内核启动参数.模块参数 ...

  3. Linux的用户空间与内核空间

    一. 简介 Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间.两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针 ...

  4. linux之用户空间和内核空间

    linux驱动程序一般工作在内核空间,但也可以工作在用户空间.下面我们将详细解析,什么是内核空间,什么是用户空间,以及如何判断他们. Linux简化了分段机制,使得虚拟地址与线性地址总是一致,因此,L ...

  5. linux内核层是什么,从用户层到内核层 - Linux内核中的信号机制_Linux编程_Linux公社-Linux系统门户网站...

    1.简介 如果进程要处理某一信号,那么要在进程中注册该信号.注册信号主要用来确定信号值及进程针对该信号值的动作之间的映射关系,即进程将要处理哪个进程和该信号被传递给进程时,将执行何种操作.主要有两个函 ...

  6. linux之用户态和内核态

    https://www.cnblogs.com/cyyz-le/p/10962818.html

  7. 【Linux 内核 内存管理】内存管理架构 ④ ( 内存分配系统调用过程 | 用户层 malloc free | 系统调用层 brk mmap | 内核层 kmalloc | 内存管理流程 )

    文章目录 一.内存分配系统调用过程 ( 用户层 | 系统调用 | 内核层 ) 二.内存管理流程 一.内存分配系统调用过程 ( 用户层 | 系统调用 | 内核层 ) " 堆内存 " ...

  8. Linux Malloc分析-从用户空间到内核空间【转】

    转自:http://blog.csdn.net/ordeder/article/details/41654509 版权声明:本文为博主(http://blog.csdn.net/ordeder)原创文 ...

  9. Linux 用户空间和内核空间指的是什么?

    Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间.两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数 ...

  10. Linux 用户态与内核态的交互——netlink 篇

    [size=4]Linux 用户态与内核态的交互 --netlink 篇[/size] 作者:Kendo 2006-9-3 这是一篇学习笔记,主要是对<Linux 系统内核空间与用户空间通信的实 ...

最新文章

  1. 第二篇: Mysql____语法格式——键值
  2. python中的import详解_python中的import
  3. Ice_cream's world I HDU - 2120(并查集判环)
  4. python三引号注释_python使用三引号来注释的具体原因?
  5. Windows Phone
  6. Codeforces-GYM101873 G Water Testing 皮克定理
  7. python网络数据采集 第二版_Python网络数据采集 第2版(Python Web Scraping 2017) 完整pdf原版...
  8. linux 查看c库版本号,C语言再学习 -- 查看版本及内核信息(转)
  9. 托福考试前你需要知道哪些事情
  10. 食品进销存十大品牌排行榜新鲜出炉,来看看哪个最适合你
  11. 邮箱地址是什么,163vip.com怎么注册、价格、申请入口、功能!
  12. 计算机一级B考试总结500字,第一次月考总结与反思500字
  13. cd linux menu.lst,Windows 7 中使用 grldr + menu.lst 引導 linux系統和win7.
  14. mysql error1205 博客_Mysql Error:1205错误诊断
  15. vue 监听键盘回车事件 @keyup.enter || @keyup.enter.native
  16. 小米手机定价与《怪诞行为学》
  17. AI科普文章 | 语音识别准不准?—— ASR 效果评测原理与实践
  18. 二本大龄程序员居然拿到百度offer(百度面经)
  19. 增加你的生产力!VS Code程序员鼓励师插件,你值得拥有!
  20. 滴滴快车VS易到“易来”到底谁便宜?结果惊呆了

热门文章

  1. 一个c++程序员对大学生的友情提醒
  2. Win32 文件(2)
  3. 进程缓存和缓存服务,如何抉择?
  4. 再见, VS Code !你好,GitHub!
  5. 傻傻分不清之 Cookie、Session、Token、JWT这次让你彻底搞懂,还不懂你来找我
  6. 基于私有云的数据库高可用架构实践
  7. 大厂首选,为什么 SRE 比传统运维更抢手?
  8. Linux 下 4 种禁用 Root 登陆的方法,你掌握了哪几种呢?
  9. 提防最近一些公司的小九九!
  10. 推荐两份学习 Kotlin 和机器学习的资料