前言
细心的朋友会发现,我之前写的【C 语言】系列在【C 语言入门】完结后,就停止更新了,从 5 月 29 号到今天,已经停了有 一个半月了。并不是姐我变懒了,而是在我想把【C 语言初级】及后面的系列的例程迁移到 Linux 系统上去实现,【C 语言入门】的例程都是基于 Windows 的 Visual Studio 去做的,为了提高自己的能力,同时挑战下自己,我用了一个半月的时间去初步阅读了《Linux C 从入门到精通》这本书,对 Linux 操作系统算是有了大概的印象,能在 Linux 上敲敲指令和写写简单代码。
如果您也是个 Linux 初学者,我极力不推荐这本《Linux C 从入门到精通》。理由有如下几点:
- 并未详细介绍 Linux 操作系统。
- 在你读完了这本书后,也不清楚这本书的读者群体是谁。我看完了这本书,我并不知道,我能用 Linux + C 去实现什么, 目的性不强。
- 最重要的是,例程 Bug 巨多!
- 此外还有在我看来是大问题的:例程排版巨差!
NOTE:希望不要遭黑!
当然,我也只是粗略的看了一遍,可能是我看得仔细。接下来在做笔记(第 2 次阅读,仔细阅读)的时候,希望我能对这本书有所改观。
Linux 的历史
在学习一个新知识点之前,先了解他的历史背景,更事半功倍。因为历史造就了它的辉煌,述说了它的前世今生,就好比,要了解什么是中国人,先看中国的历史,现在站在大街上的每一个中国人,他的一举一动,都在体现着中华上下五千年的历史。扯远了,请略过!
操作系统
计算机系统:由硬件系统和软件系统组成。
软件系统的基础:操作系统。
那操作系统是做什么的呢?
操作系统:管理着计算机内所有的硬件资源和软件资源。
主流的三大类操作系统:
- 微软的 Windows 系统
- 苹果的 Mac 系统
- Linux 系统,开源的,属于所有人的~
Linux的起源与发展
Linux 的内核
内核是操作系统的核心部分,系统的其他部分必须依靠内核部分软件提供服务。
内核的功能:承上启下
- 对底层硬件:提供对计算机系统的硬件设备的管理,对硬件设备进行驱动。
- 对上层应用软件:提供与硬件交互的纽带。
应用程序通过内核实现对硬件设备的访问。
内核的目的:
- 简化应用程序开发的难度
- 更好的保护硬件
内核的组成:
- 中断服务程序
- 调度程序
- 内存管理程序
- 网络和进程间通讯等
NOTE:
Linux 内核独立于普通应用程序,拥有内核空间(受保护的内存空间和对硬件访问的所有权限)。
Linux 的主要特点:
- 支持动态加载内核模块 —— 内核可裁剪。
- 支持对称多处理机制((Symmetrical Multi-Processing), SMP)
- 充分体现自由开发
- 对一些 UNIX 中的拙劣功能进行了优化和删除
- 不区分线程和其他一般进程