第一章 Linux操作系统概述

article/2025/9/30 2:07:55

接下来我将根据《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库函数和系统调用的关系及差别如图所示:

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编程有了一个基本认识。


http://chatgpt.dhexx.cn/article/A6nqvw6G.shtml

相关文章

SRE运维工程师笔记-安装linux系统(国产统信UOS操作系统)

SRE运维工程师笔记-安装linux系统(国产统信UOS操作系统) 1. 安装统信UOS系统1.1 针对统信UOS操作系统创建虚拟机环境1.2 安装国产统信UOS操作系统 1. 安装统信UOS系统 1.1 针对统信UOS操作系统创建虚拟机环境 简单介绍一下国产统信系统的安装&#xff…

Linux操作系统——定制自己的 Linux 系统

文章目录 22 定制自己的 Linux 系统22.1 基本介绍22.2 基本原理22.3 制作 min linux 思路分析22.4 操作步骤 22 定制自己的 Linux 系统 22.1 基本介绍 通过裁剪现有 Linux 系统(CentOS7.6),创建属于自己的 min Linux 小系统,可以加深我们对 linux 的理…

linux系统下的基本操作

Linux 操作系统 1. Linux操作系统认知 1.1 操作系统(Operation System简称OS) 定义 操作系统是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控…

Linux 系统相关介绍

Linux 系统相关说明 Linux 内核版本 没有图形化页面 稳定版 : 面向普通用户 开发版 : 面向开发人员 Linux 发行版 在内核版本的基础上, 增加比如桌面/音乐播放器等应用软件的系统 (不同公司的发行版, 名称不同)

讲讲Linux系统工程师的职业规划

时至今日,Linux操作系统越来越成为主流的桌面操作系统,自从在一年前看到了编程大神王垠写的一篇文章——完全用Linux工作,我决定学习使用Linux操作系统。因Windows在服务器领域的份额越来越低,学习具有安全和高效等特点的Linux操作…

Linux系统编程之进程退出,父进程等待子进程退出

1.首先讲一下进程的退出 进程的退出分为正常退出和异常退出: 正常退出: (1)main函数调用return (2)进程调用exit(),标准C库 (3)进程调用_exit()或_Exit(),属于系统调用 (4)进程最后一…

linux开发工程师主要是干什么的?

转载自:http://emb.hqyj.com/linux/10328.html 作者:清华远见 在新手眼里,大多数都不知道linux开发工程师主要是干什么的。其实linux开发工程师的主要工作内容有很多,需要学习的知识点也挺多的。学习这些东西以后,就可…

Linux 下怎么查看服务器的cpu和内存的硬件信息

一、top命令 top # 实时显示进程状态用户 和 查看CPU利用率 二、查看总内存的方法: free命令主要用于显示内存数量,如下图中内容所表示 free -h 命令 free -m 命令

如何通过命令查看服务器的内存条使用情况

其实就一个命令就搞定了:dmidecode。 最常用的选项就是用 -t 或者 --type 来限定关键字: bios, system, baseboard, chassis, processor, memory, cache, connector, slot 关于这些关键字可以百度是什么意思, 或者去看man手册页,这…

Linux 查看服务器内存、CPU、网络等占用情况的命令--汇总

搭建测试环境过程中,需要对正在使用的aws服务器,查看它在运行脚本,启动脚本时的内存,CPU,网络等使用情况 1、查看物理CPU个数:cat cat /proc/cpuinfo | grep "physical id" | sort | uniq | w…

服务器显示内存不足怎么查看,怎么查看服务器总内存

怎么查看服务器总内存 内容精选 换一换 华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。 当您购买的云服务器规格无法满足业务需要时,可…

Linux查看服务器内存、磁盘、cpu、网络占用、端口占用情况

1、查看物理CPU个数:cat cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l2、查看服务器CPU内核个数:cat 每个物理CPU中core的个数(即核数) cat /proc/cpuinfo | grep "cpu cores" | uniq 3…

如何查服务器运行内存条,怎么查看服务器的cpu和内存的硬件信息

可以按照如下方式进行操作: 一、查看cpu总个数方法: 1、首先执行top命令,如下图中内容所表示。 2、在top命令的显示界面,按数字键1,即可查看到当前系统中的总cpu数,如下图中内容所表示。 二、查看总内存的方…

如何查看linux 服务器的内存容量

如何查看linux 服务器的内存容量 cat /proc/meminfo cat /proc/meminfo

linux常用查看服务器内存的命令

1.free free 命令用来显示系统内存状态,包括系统物理内存、虚拟内存(swap 交换分区)、共享内存和系统缓存的使用情况,其输出和 top 命令的内存部分非常相似。 free 命令的基本格式如下: [rootlocalhost ~]# free [选项…

查看SQL-SERVER数据库及各个表的数据量及占用空间大小

1、查看某个数据库,直接执行存储过程sp_spaceused即可 exec sp_spaceused; 2、查看某个表,在存储过程后面加上表名即可 EXEC sp_spaceused T_XXXXX; 3、查看该数据库中的所有表,可以写一个存储过程,然后执行即可 存储过程如下&…

linux查看服务器内存占用情况

查看某个进程的占用内存情况(以‘device_maintenance’为例) 1.查找进程号 ps -ef | grep device_maintenance 或 ps -aux | grep device_maintenance2.查看服务器整体内存占用情况1 3.查看服务器整体内存占用情况2 free -htotal: 内存总数 used: 已经使用内存数 free: 完全…

查看服务器CPU内存

查看linux系统的内存有很多方法,以下为总结版本: 1- 内存:cat /proc/meminfo; cpu:cat /proc/cpuinfo; 2- 查看内存使用情况!!!! 使用命令:free -m 3- 查看CPU使用情况 使用命令:top 基本上使用上述三个命令就可以解决你的问题,以下是对这三个命令的详细…

Linux查看服务器总内存和总硬盘大小

一、linux CPU大小 其实应该通过Physical Processor ID来区分单核和双核。而Physical Processor ID可以从cpuinfo或者dmesg中找到. flags 如果有 ht 说明支持超线程技术 判断物理CPU的个数可以查看physical id 的值,相同则为同一个物理CPU 可以看到上面&#xff0…