接下来我将根据《Linux C编程完全解密》这本书,整理Linux系列相关笔记,并写成文章。本文将是该系列文章的第一篇。

第1章 Linux操作系统概述

1.1 认识Linux操作系统

1.1.1 Linux操作系统发展背景

Linux操作系统核心最早是由芬兰的Linus Torvalds于1991年8月在芬兰赫尔辛基大学上学时发布的。后来经过众多世界顶尖软件工程师的不断修改和完善,Linux得以在全球普及开来,应用于服务器领域及个人桌面版,在嵌入式开发方面更是具有其他操作系统无可比拟的优势。
Linux是一套免费的32位多人多工的操作系统,其稳定性、多工能力与网络功能是许多商业操作系统无法比拟的。另外,Linux的最大特色在于源代码完全公开,任何人皆可自由取得、散布,甚至修改源代码。

1.1.2 Linux操作系统的特点

Linux的基本思想有两点:第一,一切都是文件,即系统中的所有内容都归结为一个文件,包括命令硬件软件设备操作系统进程等;第二,每个软件都有确定的用途。对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于UNIX的,很大程度上也是因为这两者的基本思想十分相近。下面介绍Linux的特点:

1.完全免费
2.完全兼容POSIX 1.0 标准:这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows程序。这为用户从Windows转到Linux奠定了基础,消除了他们的疑虑

3.多用户多任务:Linux支持多用户,每个用户的文件设备都有自己特殊的权利,保证了用户之间互不影响。多任务则是Linux最主要的一个特点,Linux可以使多个程序同时并独立运行
4.良好的界面:Linux同时具有字符界面图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。图形界面则是类似Windows的X-Window系统,用户可以使用鼠标对其进行操作,其环境和Windows类似,可以说是一个Linux版本的Windows。
5.支持多种平台:Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是嵌入式操作系统,可以运行在掌上电脑机顶盒游戏机。2001年1月份发布的Linux2.4版内核已经能够完全支持Intel 64位芯片架构。同时Linux也支持多处理技术,多个处理器同时工作,使系统性能大大提高。

1.1.3 Linux操作系统的应用现状

互联网产业的迅速发展,促使云计算、大数据产业形成并快速发展,云计算、大数据作为一个基于开源软件的平台,Linux占据了核心优势。据Linux基金会调查,86%的企业已经使用Linux操作系统进行云计算、大数据平台的构建,成为最受青睐的云计算、大数据平台操作系统。

目前企业大量使用Linux作为服务器,Tomcat、jobss这一类都是搭建在Linux上的,以及需要学习的数据库mysql、Qracle、DB2、Greenplum等也都是使用Linux搭建的。
在全球超级计算机TOP500强操作系统排行榜中,Linux的占比长期保持在85%以上,且呈快速增长的趋势。

1.2 Linux C开发概述

Linux的本质只是操作系统的核心,负责控制硬件、管理文件系统、程序进程等。Linux Kernel(内核)并不负责提供用户强大的应用程序,它没有编译器、系统管理工具、网络工具、Office套件、多媒体、绘图软件等,其系统无法发挥强大功能,用户也不能利用这个系统进行工作,因此有人提出以Linux为核心再集成搭配各式各样的系统程序或应用工具程序组成一套完整的操作系统,而经过如此组合的Linux套件即称为Linux发行版

国外封装的Linux以Red Hat(又称为“红帽Linux”)、UbantuOpen LinuxSUSETurbo Linux等最为成功;国内Linux发行版做得相对成功得是红旗中软两个版本。

1.2.1 Linux C开发简介

Linux C开发和以前学过的C语言有什么本质的区别呢?C语言学习的主要内容包括:
(1)C的语法 (2)标准C的库函数

而Linux下的C开发课程学习的是Linux系统调用,也就是如何使用Linux操作系统提供的函数,这是内核提供的函数,而系统调用属于底层调用,适合硬件编程,比如驱动等的编程。

应用程序既可以使用系统调用,也可以使用库函数。系统调用通常提供一种最小的接口,而库函数通常提供比较复杂的功能,实际上也可以将库函数理解为对系统调用的封装。C库函数和系统调用的关系及差别如图所示:

1.2.2 IEEE POSIX

POSIX是由IEEE(电气电子工程师学会)制定的标准族。POSIX是指可移植性操作系统接口(Portable Operating System Interface)。它定义了操作系统应该为应用程序提供的接口标准,是IEEE为要在各种UNIX操作系统上运行的软件而定义的一系列API标准的总称,目的是提升应用程序在各个UNIX系统环境之间的可移植性。

1.2.3 Linux C开发工具

在Linux操作系统下,C语言编辑器一般采用vi、gedit,其中vi是使用比较广泛的编辑器,文件名后缀为.c。编译工具通常采用gcc编译器。gcc是GNU推出的基于C/C++ 的编译器,是开放源代码领域应用最广泛的编译器,其功能强大,编译代码支持性能优化。目前,gcc可以用来编译C/C++、Java等语言程序,开发人员可以根据需要安装支持的语言。

1.3 小结

本章首先介绍了Linux操作系统的发展前景、特点以及应用现状,然后介绍了Linux下的C编程的主要内容和主要步骤,最后简单介绍了Linux下C/C++语言源程序编译工具gcc。希望读者通过本章的学习,对Linux操作系统以及Linux下的C编程有了一个基本认识。

更多推荐

第一章 Linux操作系统概述