Linux开发必知内容整理 | libc、glibc和glib的关系

Linux开发必知内容整理 | libc、glibc和glib的关系,第1张

在进行Linux开发不可避免的要调用一些系统的API,我们经常开到的概念有诸如glibc、libc和glib等等。那么这些系统库之前的关系是什么样的呢?下面我带大家了解一下这些库之前的共同点和差异,希望对以后的编程开发提供帮助。

glibc 和 libc 都是 Linux 下的C函数库。libc是Linux下的ANSI C函数库;glibc 是 Linux 下的 GUN C函数库。

那么ANSI C和GNU C有什么区别呢?

ANSI C函数库是基本的C语言函数库,包含了C语言最基本的库函数。这个库可以根据头文件划分为 15 个部分,其中包括:

GNU C函数库是一种类似于第三方插件的东西。由于 Linux 是用C语言写的,所以Linux的一些 *** 作是用C语言实现的。因此,GUN 组织开发了一个 C 语言的库以便让我们更好的利用 C 语言开发基于 Linux *** 作系统的程序。不过现在的不同的 Linux 的发行版本对这两个函数库有不同的处理方法,有的可能已经集成在同一个库里了。

查看当前系统的 glibc 版本的方法:

通过执行libc.so.6

切换到libc.so.6所在的目录,执行如下命令

执行ldd命令

错误观点: GLib 前面有个"g",所以认为glib是GNU的东东;同时认为glibc是 GLib 的一个子集。其实,glib和glibc 基本上没有太大联系,可能唯一的共同点就是,其都是C编程需要调用的库而已。

GLib 是Gtk+库和Gnome的基础。 GLib 是一个跨平台的、用C语言编写的五个底层库的集合,为GNOME所使用。其支持的平台包括Linux、Unix和Windows 等。 GLib 为许多标准的、常用的C语言结构提供了相应的替代物。GLib中包含了近二十种实用功能,从简单的字符处理到初学者很难理解的XML解析功能。

官方说明

关于Glib的官方说明:

关于Glibc的官方说明

libc 实际上是一个泛指。凡是符合实现了C标准规定的内容,都是一种 libc 。

glibc是GNU组织对libc的一种实现。它是unix/linux的根基之一。

微软也有自己的libc实现,叫msvcrt 。

嵌入式行业里还常用uClibc ,是一个迷你版的libc 。

Linux概述与系统部署

Linux是一个类似于Windows的 *** 作系统,大部分企业与公司会选择这种系统, 运行公司网站、app、小程序、游戏。

其原因在于:

Linux开源:社区活跃,通过命令即可实现配置与使用,比较直观,可定制化;

Windows Server收费,大量使用会有各种问题,需要定期重启。

Linux由四部分组成:

Linux系统内核:控制与 *** 作硬件;

Linux命令解释器:运行命令、程序(shell);

Linux系统的程序软件;

GNU软件+Linux内核(GNU/Linux);

Linux常见发行版本

Debian系列:稳定安全、更新慢

Ubuntu乌班图:桌面好看,工具较多,也可以用于Ubuntu Server服务器;

Ubuntu kylin麒麟Linux:国产;

Kali:用于安全检测(渗透测试)Linux系统;

红旗Linux:国产,Red Flag;

Suse(商业版本)、OpenSUSE(开源)德国企业,高级数据库,邮件服务

Red Hat 红帽Linux

RHEL红帽企业版(商业);

CentOS系统,创建一个与RedHat二进制级别一样的系统。去掉红帽商业软件logo;

Rocky Linux CentOS作者新建系统;

Fedora红帽系统的测试版本;

原来流程:Fedora ->RHEL->CentOS

现在流程:Fedora->CentOS Stream ->RHEL->Rocky

FreeBSD类Unix系统

那么问题来了,Linux版本这么多,该如何选择合适自己的?

入职的时候公司用什么,我们使用什么即可,如果有选择权,优先熟悉、熟练的。

版本选择:尽量最新稳定版本或长期支持版本(LTS)。

1、类Unix系统(英文:Unix-like)是指继承UNIX的设计风格演变出来的系统(比如GNU/Linux、FreeBSD、OpenBSD、SUN公司的Solaris、Minix、QNX等),这些 *** 作系统虽然有的是自由软件,有的是商业软件,但都相当程度地继承了原始UNIX的特性,有许多相似处,但是它们却并不含有UNIX的源代码。

2、UNIX的源代码为SCO公司所有,属于商业软件,UNIX的商标权和UNIX标准认定属于OPENGROUP所有。由于UNIX标准认定价格昂贵,所以唯一获得UNIX标准认定的为苹果的MACOS系统。

3、Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX *** 作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的 *** 作系统。

4、Linux的基本思想有两点:第一,一切都是文件;第二,每个文件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、 *** 作系统、进程等等对于 *** 作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。

5、Linux是一款免费的 *** 作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。

6、Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。

7、Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式 *** 作系统,可以运行在掌上电脑、机顶盒或 游戏 机上。2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel64位芯片架构。

8、由于Linux系统的处理能力非常强悍,具备不可比拟的稳定性特征,因而Linux系统就不用经常进行重启,Linux系统的变化可以在配置的过程中实现,所以Linux服务器出现故障的概率比较小,所以很多企业组织在计算机配置的过程中经常使用Linux系统,从而降低服务器发生崩溃的可能性。

9、在Linux之下,远程的登录系统具备两种认证的形式:即密钥与密码认证。其中,密钥认证的形式,主要是将公钥储存在远程的服务器之上,私钥存储在本地。当进行系统登陆的时候,再通过本地的私钥,以及远程的服务器公钥,进行配对认证的 *** 作,若是认证的匹配度一致,则用户便能够畅通无阻的登录系统。此类认证的方式,并不会受到暴力破解的威胁。与此同时,只需要确保本地私钥的安全,使其不会被黑客所盗取即可,攻击者便不能够通过此类认证方式登陆到系统中。所以,推荐使用密钥方式进行系统登陆。

10、Linux *** 作系统的常用命令:

常用命令及技巧

1、date:打印或者设置系统的日期和时间

2、stty-a:可以查看或者打印控制字符(Ctrl-C、Ctrl-D、Ctrl-Z等)

3、passwd:用passwd-h查看

4、logout,login:登录shell的登录和注销命令

5、more,less,head tail:显示或部分显示文件内容

6、lp/lpstat/cancel,lpr/lpq/lprm:打印文件

7、chmod u+x:更改文件权限

8、rm -fr dir:删除非空目录

9、cp -R dir:拷贝目录

10、fg jobid:可以将一个后台进程放到前台

11、kill的作用:send a signal to a process、eg:kill-9发送的是SIG_KILL信号,具体发送什么信号可以通过man kill查看、

12、ps的用法,ps-e或ps-o pid,ppid,session,tpgid,comm(其中session显示的sessionid,tpgid显示前台进程组id,comm显示命令名称)

13 ip a 查看 ip 地址信息的命令

14 zcat /proc/config.gz >config 到内核配置文件

关于Linux *** 作系统,你知道哪些知识点,可以在评论区补充!


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/yw/8307106.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-15
下一篇2023-04-15

发表评论

登录后才能评论

评论列表(0条)

    保存