4.1 Linux操作系统

简介: 4.1 Linux操作系统

个人主页:Lei宝啊

愿所有美好如期而遇


 

我们上次了解了从操作系统往下的部分:Linux进程前导知识

这一次,我们将正式开始进程以及操作系统(OS)及其以上的部分。


我们将操作系统的内存管理,进程管理,文件管理等等称为操作系统的内核。

首先,我们提出两个问题,为什么要有操作系统,操作系统是什么

1.为什么要有操作系统

根据我们的前导知识,我们明白操作系统是为了去管理软硬件资源而诞生的,因为我们不可能一只手扣着网卡,一只手扣着内存去使用电脑吧。

那么为什么要有操作系统的管理呢?一个操作系统对软硬件资源管理的好不好将决定了他是否会有人去使用,所以他是为了对用户提供一个更好的服务,以及良好的运行环境,所以才有了操作系统的管理。

什么叫做良好的运行环境稳定,安全,高效

稳定我们可以理解,这是由冯,诺依曼体系所决定的,那么凭什么说他安全呢?

操作系统是不允许用户直接进行访问的,因为操作系统管理着内存,文件等许多资源,里面有许多数据,像他人的密码,账户等以及许多软硬件数据,如果直接暴露给用户,将会造成不稳定和安全隐患,我们并不能保证每个用户都不会对数据做修改。

所以加了一层系统调用接口,什么是系统调用呢?说白了,也就是函数,由操作系统提供的函数,就是系统调用函数,在Linux下,这些函数大都是由C语言写的。

我们通过系统调用去访问操作系统,这样就安全许多,因为系统调用是操作系统所提供的,操作系统只相信自己写的函数,用户无法直接得到操作系统里的数据,需要通过各种系统调用获取或者修改数据,如果操作系统不允许,那么就无法做该操作。

那么又凭什么说他高效呢?

就像不是所有人都会使用电脑一样,系统调用并不是每个用户都会使用,他的各种参数如果不熟悉的话,使用起来是很难受的,所以就有人将这些系统调用封装成了lib库,各种语言都有他们的标准库,就像C标准库等,C库的设计者在设计时设计了不同平台的系统调用,在Linux和window等不同平台自己去匹配调用,而我们的printf等库函数,不管在哪个平台使用,都不需要去管他的底层,因为C库设计者替我们设计好了不同系统的系统调用,这也就是为什么我们说有些语言具有跨平台性和可移植性,就是因为他的标准库设计了不同平台的系统调用。

也由此,我们能够通过操作系统去访问硬件。

举个例子:C语言的printf函数,要将数据打印到显示器上,显示器也是硬件,而printf是我们自己写的函数,操作系统是不信任他的,我们无法直接通过操作系统去访问硬件,所以他的底层就加了系统调用,这样printf就能通过操作系统去访问硬件了。

所有我们自己写的函数只要影响到硬件,或者说需要硬件(scanf,需要键盘这个硬件),那么就需要系统调用,我们无法绕过操作系统去访问硬件,而操作系统我们又无法直接访问,所以系统调用就是必须的。

以及指令等等,在linux下大部分也都是C语言写的,也是经过封装的,底层也是加了系统调用。

于是最终,我们写代码时直接使用各种库函数,在执行时也不用去管底层系统调用,或开发者,或其他用户,在进行各种操作时,不需使用比较复杂的系统调用,大大减少了用户的使用成本

2.操作系统是什么?

操作系统是一款对软硬件做管理的软件。

操作系统的内核,我们说他包括内存管理,进程管理,文件管理等。

每一次我们开机所耗费的时间,就是操作系统在启动,只有操作系统启动了以后,我们才能更好地使用电脑。

目录
相关文章
|
6天前
|
存储 Linux C语言
Linux:冯·诺依曼结构 & OS管理机制
Linux:冯·诺依曼结构 & OS管理机制
12 0
|
1天前
|
运维 Linux Shell
day02-Linux运维-系统介绍与环境搭建_硬件 系统核心 解释器shell 外围操作系统
day02-Linux运维-系统介绍与环境搭建_硬件 系统核心 解释器shell 外围操作系统
|
6天前
|
Linux 开发工具 C语言
【操作系统】实验四 增加Linux系统调用
【操作系统】实验四 增加Linux系统调用
18 1
|
6天前
|
NoSQL Ubuntu Linux
【操作系统】实验三 编译 Linux 内核
【操作系统】实验三 编译 Linux 内核
11 1
|
6天前
|
安全 Linux 网络安全
【操作系统】实验一 Linux操作系统安装
【操作系统】实验一 Linux操作系统安装
18 3
|
6天前
|
存储 Linux 程序员
【操作系统原理】—— Linux内存管理
【操作系统原理】—— Linux内存管理
9 0
|
6天前
|
存储 Shell Linux
操作系统实战(一)(linux+C语言)
本篇文章重点在于利用linux系统的完成操作系统的实验,巩固课堂知识
|
6天前
|
Linux Shell
Linux操作系统下查找大文件或目录的技巧
Linux操作系统下查找大文件或目录的技巧
12 2
|
6天前
|
算法 Ubuntu Linux
为什么Linux不是实时操作系统
本文探讨了Linux为何不是实时操作系统(RTOS)。实时性关乎系统对事件的确定性响应时间,而Linux虽能保证调度执行的实时任务,但无法确保中断响应时间、中断处理时间和任务调度时间的确定性。中断响应时间受中断屏蔽时间影响,Linux中无法确保;中断处理时间因不支持中断嵌套而不确定;任务调度时间虽快,但调度点的限制影响实时性。Linux的定位是通用操作系统,追求平均性能而非绝对实时性。为改善实时性,Linux提供了不同抢占模型,如可抢占内核(Low-Latency Desktop)和PREEMPT-RT补丁,后者接近硬实时但牺牲了吞吐量。PREEMPT-RT正逐渐成为Linux实时增强的标准。
23 1
为什么Linux不是实时操作系统
|
6天前
|
存储 Ubuntu Linux
xenomai3+linux构建linux实时操作系统-基于X86_64和arm
Xenomai是一个实时性解决方案,通过在Linux上添加实时内核Cobalt来增强实时性能。它有三个主要部分:libcobalt(用户空间实时库)、Cobalt(内核空间实时内核)和硬件架构特定层(ipipe-core或dovetail)。ipipe-core适用于Linux 5.4以下版本,而dovetail用于5.4及以上版本。本文介绍了在X86 Ubuntu环境下,如何编译Xenomai内核,搭建应用环境,包括配置、编译、安装和实时性测试。对于其他硬件架构,如ARM和ARM64,步骤类似。文章还提到了Xenomai与Linux内核版本的兼容性和实时性测试结果。
21 0
xenomai3+linux构建linux实时操作系统-基于X86_64和arm