Linux 基础笔记 | 青训营笔记

102 阅读4分钟

这节课让我对计算机操作系统有了更深的了解,特别是Linux系统的特点和功能。我从以下几个方面总结了我的课程笔记:

  • 操作系统的基本概念和启动流程:操作系统是管理计算机硬件和软件资源的程序,它提供了用户和应用程序与计算机交互的接口。操作系统的启动流程分为四个阶段:BIOS、Boot Loader、Kernel、Init。BIOS是基本输入输出系统,它负责检测硬件设备并加载Boot Loader。Boot Loader是引导加载程序,它负责加载操作系统内核到内存中。Kernel是操作系统内核,它负责初始化硬件驱动、设置内存管理、创建进程等。Init是初始化程序,它负责启动各种服务和应用程序。
  • Linux的版本、发行版、内核版本、应用、基本组成、体系结构:Linux是一种自由开源的类Unix操作系统,它有多个版本和发行版,适用于不同的场景和需求。Linux的版本号由三部分组成:主版本号、次版本号、修订号,表示了Linux内核的开发历程和功能变化。Linux的发行版是指基于Linux内核和一系列软件包构建的操作系统,例如Ubuntu、Red Hat、Debian等。Linux的应用是指运行在Linux系统上的各种程序,例如文本编辑器、浏览器、数据库等。Linux的基本组成包括内核、Shell、文件系统、工具和应用程序等。Linux的体系结构是指Linux支持的不同类型的处理器,例如x86、ARM、MIPS等。
  • 进程管理、进程调度、文件系统、用户账户、用户权限、软件包管理:进程管理是指操作系统对进程的创建、执行、终止等操作,以及对进程的状态、资源、优先级等属性的控制。进程调度是指操作系统根据一定的算法选择合适的进程运行在处理器上,以实现高效的资源利用和公平的资源分配。文件系统是指操作系统对磁盘空间的组织和管理方式,以及对文件和目录的命名、存储、访问等规则。用户账户是指操作系统为每个使用者分配的身份标识,包括用户名和密码等信息。用户权限是指操作系统对不同用户对文件和目录的读写执行等权限的控制。软件包管理是指操作系统对软件包的安装、更新、卸载等操作,以及对软件包的依赖关系和版本控制等问题的处理。

通过这节课,我学习了很多有关操作系统和Linux系统的知识,也对计算机硬件和软件之间的关系有了更清晰的认识。我觉得这些知识对于理解计算机原理和开发计算机应用都非常有帮助。

有几个思考题:

Linux 有这么多不同的文件系统,如何实现对用户提供统一调用接口的?

Linux 系统通过虚拟文件系统(VFS)来实现对不同文件系统的统一调用接口。VFS 提供了一个抽象层,它允许不同的文件系统通过相同的接口进行访问。这样,用户就可以使用相同的命令和系统调用来访问不同的文件系统,而无需关心底层文件系统的具体实现。

程序启动必须有操作系统来执行,那操作系统本身也是一个程序,那是如何在开机时被执行的呢?

其实这个玩过单片机的都知道,是有BootLoader的。

操作系统的启动流程分为四个阶段:BIOS、Boot Loader、Kernel、Init。当计算机开机时,首先运行的是 BIOS(基本输入输出系统),它负责检测硬件设备并加载 Boot Loader。Boot Loader 是引导加载程序,它负责加载操作系统内核到内存中。Kernel 是操作系统内核,它负责初始化硬件驱动、设置内存管理、创建进程等。Init 是初始化程序,它负责启动各种服务和应用程序。因此,操作系统本身也是一个程序,它在开机时通过 BIOS 和 Boot Loader 的协助被执行。

系统中运行的程序远远大于 CPU 的核数,那 Linux 系统是如何实现同时运行这么多程序的?

Linux 系统通过进程调度来实现同时运行多个程序。进程调度是指操作系统根据一定的算法选择合适的进程运行在处理器上,以实现高效的资源利用和公平的资源分配。由于每个进程只占用处理器很短的时间,所以看起来就像多个程序在同时运行。这种技术被称为多任务处理。


前几天正好参加了我校的Linux Install Party,给我的Proxmox VE装了一个Fedora,并尝试tarball安装Arch Linux,可惜失败了(笑