虽然计算机相关专业,操作系统和计算机组成原理是必修课。但是大学时和真正从事相关专业工作之后,对于知识的认知自然会发生变化。还很有可能,一辈子呆在学校的老师们只是照本宣科,自己的理解也不深。...所以今天我站在真正排查解决问题时的需要层面,用白话说一说linux操作系统的那些知识。 本文整体采用的是类似递归调用的递进式结构。...linux内核的本质 简单来说如上图所示,咱们平时的应用程序或者linux命令要和操作系统打交道,都要经过一个叫做linux内核的软件。所有的硬件操作都需要通过他。就像古代女子出嫁,都要有媒人。...特殊的文件描述符 有三个特殊的文件描述符,分别是0、1、2,对应每个进程的标准输入、标准输出和错误输出。每个进程启动时,操作系统就会给它分配这三个标准的文件描述符。...linux基础里有介绍怎么重定向,下面一条命令可以将标准输出1和错误输出2重定向到一个文件: 总结 linux的内存分段、中断机制和文件描述符限制都是内核的保护机制。当然这并不全面,还有其他机制。
本篇文章系统的给大家讲述linux操作系统原理,这是一篇非常好的linux系统基础教程,我们总结了相关的全部精选内容,一起来学习下。...linux操作系统原理文字版 一.计算机经历的四个时代 1.第一代: 真空管计算机,输入和输出:穿孔卡片,对计算机操作起来非常不便,做一件事可能需要十几个人去共同去完成,年份大概是:1945-1955。...下面我们在看推荐几本关于linux操作系统原理的书 linux操作系统原理电子书 操作系统原理及应用(Linux) PDF扫描版[30MB] 深度探索Linux操作系统:系统构建和原理解析 pdf扫描版...[129MB] 操作系统原理LINUX篇 徐德民 pdf Linux内核注释 孙更新等 pdf扫描版(86M) linux操作系统视频内容 跟阿铭学Linux第二版最新版(附阿铭linux全套视频教程...)chm格式 linux系统挂载数据盘的方法(视频图文教程) 以上就是我们给大家整理的关于linux操作系统原理 linux系统基础教程的全部内容,希望我们整理的内容能够给你提供到帮助。
文章目录 目录 操作系统的起源 操作系统和高级编程语言使硬件抽象化 操作系统的起源 在操作系统尚不存在的年代,人们通过各种按钮来控制计算机,这一过程非常麻烦。...于是,有人开发出了仅仅具有加载和运行功能的监控程序(Supervisor),这就是操作系统的原型。 通过监控程序,程序员可以根据需要将各种应用程序加载到内存中运行。...操作系统的原型就是这样诞生的。 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
不知道大家有没有产生过一个疑问:从给 Linux 服务器按下开机电源按钮后到启动成功的一段时间里,在这中间 Linux 操作系统都做了哪些事情?...在 Linux 服务器没有通电的时候,操作系统还只是躺在硬盘启动区中的一段程序,CPU 没有工作,内存也没有启动。但是在你按下开机键后,Linux 服务器内部就开始变得热闹了起来。...经过几十秒或者几分钟的等待,Linux 服务器就可以使用了。 但这中间操作系统都干了啥呢?我有一位朋友叫闪客,就是因为对这个问题的好奇,花了两年时间写了 50 多篇文章,并还总结成了一本书。...接着 CPU 的数据段寄存器 ds 、代码段集寄存器 cs 和 栈段寄存器 ss、栈基址寄存器 sp 都会进行初始化。...上面描述的这些都是操作系统的第 0 号内核线程处理的。在操作系统中,0号内核线程是所有进程祖先,是操作系统Linux在初始化阶段从无到有的第一个内核线程 接着最后会切换到用户态模式。
如何判断和选择一个 “bad” 进程呢? 算法和思路其实非常朴素(简单):最 bad 的那个进程就是那个占用内存最多的进程。内核源代码详见 linux/mm/oom_kill.c 。...Linux 内存的分类 用户内存的分类有两组概念比较重要:匿名内存和File-backed内存;Active 和 Inactive 。...扩展阅读:Linux 操作系统 《Linus Torvalds:Just for Fun》 Linux 常用命令一百条 Linux 性能诊断:负载评估 Linux 性能诊断:快速检查单(Netflix版...) Linux 性能诊断:荐书|《图解性能优化》 Linux 性能诊断:Web应用性能优化 操作系统原理 | How Linux Works(一):How the Linux Kernel Boots...操作系统原理 | How Linux Works(二):User Space & RAM 操作系统原理 | How Linux Works(三):Memory 推荐:电子书《Linux Perf Master
UNIX:一个多用户和多任务的计算机操作系统,主要的用户界面是命令行界面。...Linux内核的诞生:诞生于1991年10月5日,芬兰的一名大学生Linus Torvalds编写,1992年Linux与其他GNU软件结合,完全自由的操作系统正式诞生,被称为GNU/LInux或简称Linux...Linux系统特性:自由软件、低成本、源代码开放,安全、可靠、和稳定,多用户多任务系统,丰富的网络功能,标准兼容性和可移植性,良好的用户界面。
前言 本文主要记录 Linux 内核网络协议栈的运行原理 数据报文的封装与分用 image.png 封装:当应用程序用 TCP 协议传送数据时,数据首先进入内核网络协议栈中,然后逐一通过 TCP/IP...image.png Linux 内核网络协议栈 协议栈的全景图 image.png 协议栈的分层结构 image.png image.png 逻辑抽象层级: 物理层:主要提供各种连接的物理设备,如各种网卡...传输层:为应用程序之间提供端到端连接,主要为 TCP 和 UDP 协议。...协议无关层和系统调用接口层:当用户需要接收数据时,首先根据文件描述符 inode 得到 socket 结构体和 sock 结构体,然后从 sock 结构体中指向的队列 recieve_queue 中读取数据包...这里以 8390 网卡为例来说明驱动层的工作原理,在 net/drivers/8390.c 中函数 ethdev_init() 的设置如下: /* Initialize the rest of the
Windows、Linux 和 macOS 是当前主流的三个桌面操作系统,它们在设计理念、用户体验和开发者支持等方面有着显著的差异。本文将从多个角度对这三个操作系统进行全面比较。...Linux Linux 操作系统源于Linus Torvalds于1991年创建的内核,后续得到全球开发者社区的积极贡献和支持。...与其他操作系统不同,Linux是一个开源系统,其内核和大多数软件都是自由可用的。...总体而言,Windows、Linux 和 macOS 各自拥有独特的特点,适用于不同的用户和使用场景。选择最适合个人需求的操作系统将为用户提供更加高效和愉悦的计算体验。 1....结论 Windows、Linux 和 macOS 三者各有优势,选择合适的操作系统取决于用户的需求和个人偏好。
它还应该在设备和操作系统的其余部分之间提供一个简单易用的接口。操作系统如何管理 I/O 是我们接下来的重点。 不同的人对 I/O 硬件的理解也不同。...我们着重探讨的是如何对硬件进行编程,而不是其工作原理。 一,I/O 设备 什么是 I/O 设备?I/O 设备又叫做输入/输出设备,它是人类用来和计算机进行通信的外部硬件。...例如,在屏幕上显示一个像素的常规方法是使用一个视频 RAM,这一 RAM 基本上只是一个数据缓冲区,用来供程序和操作系统写入数据。 那么问题来了,CPU 如何与设备寄存器和设备数据缓冲区进行通信呢?...为了简化,我们假设 CPU 通过单一的系统总线访问所有的设备和内存,该总线连接 CPU 、内存和 I/O 设备,如下图所示 现代操作系统实际更为复杂,但是原理是相同的。...为了解释 DMA 的工作原理,我们首先看一下不使用 DMA 该如何进行磁盘读取。 首先,控制器从磁盘驱动器串行地、一位一位的读一个块(一个或多个扇区),直到将整块信息放入控制器的内部缓冲区。
操作系统的定时器原理是,操作系统维护了一个定时器节点的链表,新增一个定时器节点时,设置一个jiffies值,这是触发定时中断的频率。linux0.11版本里是1秒触发100次,即10毫秒一次。...next_timer; // next_timer指向第一个节点,即最早到期的 next_timer = p; /* 修改链表,保证超时时间是从小到大的顺序 原理
所以我们经常会发现,有一些软件在linux操作系统上行,可能到了windows操作系统就不行了,这是因为软件运行时一定会通过接口访问操作系统,不同的操作系统的接口可能并不完全一样,所以就造成了这种状况。...1.管理者和被管理者并不需要见面就能完成管理; 2.那不见面该如何管理呢?...-----通过被管理者的数据进行管理,所以管理的本质是通过对数据的管理,来达到对人的管理; 3.管理者和被管理者都不见面,该怎么拿到数据呢?-----通过执行者。...task_struct linux下的PCB是 task_struct,task_struct 是PCB的一种。 ...task_struct是Linux内核的一种数据结构,它会被装载到RAM(内存)里并且包含着进程的信息。
Linux操作系统概述 一、Linux起源 Linux创始人——林纳斯 · 托瓦兹 Linux 诞生于1991年,作者上大学期间实现的 Linux的特点:开源、免费、拥有最为庞大的源码贡献者 Linux...的吉祥物是企鹅(因为林纳斯小时候被企鹅咬过,印象深刻) 二、Linux 的含义 狭义:由Linus 编写的一段内核代码。...广义:广义上的Linux 是指由Linux内核衍生的各种Linux发行版本。 三、Linux发行版
Linux环境部署过程 1....③ 硬件环境需要支持虚拟化 虚拟网络环境配置: ① 虚拟网络编辑器: · 虚拟网卡网络模式说明 桥接模式: 特点: ① 可以实现让虚拟主机进行访问互联网 ② 虚拟主机地址信息和宿主机地址网段相同...192.168.18.10--服务器(手工) 192.168.18.200 缺陷: IP地址冲突 优势: 可以随意让宿主机和虚拟主机进行互访通讯...根分区 == C盘 swap 交换分区 == 在内存不够用临时将磁盘空间充当内存空间使用 第五个历程: 预装初始软件 ok 第六个历程: 设置管理员密码 123456 02. linux...分钟之后关闭系统 shutdown -c --- 取消关机计划 重启: 推荐 立即重启: ① shutdown -r now ② reboot 延迟重启: shutdown -r 5 Linux
操作系统的发展 ? 类Unix系统目录结构 ubuntu没有盘符这个概念,只有一个根目录/,所有文件都在它下面 ?...Linux 目录 /:根目录,一般根目录下只存放目录,在Linux下有且只有一个根目录。所有的东西都是从这里开始。.../boot:放置linux系统启动时用到的一些文件,如Linux的内核文件:/boot/vmlinuz,系统引导管理器:/boot/grub。...与 /bin 不同的是,这几个目录是给系统管理员 root使用的命令,一般用户只能"查看"而不能设置和使用。...输出重定向命令:> Linux允许将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中。
Linux操作系统 [TOC] 因为使用的方便,实际上还是使用的带有图形化界面的linux操作系统,虽然理论上不带图形化界面的更能增长技术,但是过于复杂,所以更多还是使用图形化界面的……..../dev :dev 是 Device的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。.../etc:etc 是 Etcetera的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。...在 Linux 中我们可以使用 ll 或者 ls –l 命令来显示一个文件的属性以及文件所属的用户和组 在 Linux 中第一个字符代表这个文件是目录、文件或链接文件等等。...文件所有者以外的用户又可以分为文件所属组的同组用户和其他用户。因此,Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。
区别:ucos有执行效率高、占用空间小、实时性和可扩展性强等特点,linux有稳定性、强大网络功能和出色的文件系统等优点。...联系:是两种性能优良源码公开且被广泛应用的的免费嵌入式操作系统,可以作为研究实时操作系统和非实时操作系统的典范。...Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。...它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。 Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。...Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。
通过提供一种创建和进入容器的方式,操作系统让应用程序就像在独立的机器上运行一样,但又能共享很多底层的资源。...1.2 虚拟化vs容器 传统的虚拟化技术是通过硬件模拟或者操作系统软件实现,而容器技术可以比传统虚拟化更轻量级。...Linux容器功能是基于 cgroups 和 Namespace 来实现的....所以要了解 Linux 容器必须先了解 cgroup 和 Namespace. 2.1、cgroups(控制组) cgroups 是将进程分组管理的内核功能.通过cgroups可以隔离进程, 同时还可以控制进程的资源占用...(CPU, 内存等等)情况在操作系统底层限制物理资源,起到 Container 的作用。
通过提供一种创建和进入容器的方式,操作系统让应用程序就像在独立的机器上运行一样,但又能共享很多底层的资源。...1.2 虚拟化vs容器 传统的虚拟化技术是通过硬件模拟或者操作系统软件实现,而容器技术可以比传统虚拟化更轻量级。...二、LXC(Linux容器)的两个重要概念 Linux容器功能是基于 cgroups 和 Namespace 来实现的....所以要了解 Linux 容器必须先了解 cgroup 和 Namespace. 2.1、cgroups(控制组) cgroups 是将进程分组管理的内核功能.通过cgroups可以隔离进程, 同时还可以控制进程的资源占用...(CPU, 内存等等)情况在操作系统底层限制物理资源,起到 Container 的作用。
本期学习Linux用户和用户组管理 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。...每个用户账号都拥有一个唯一的用户名和各自的口令。 用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。...一、Linux系统用户账号的管理 用户账号的管理工作主要涉及到用户账号的添加、修改和删除。 添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录Shell等资源。...实例1 此命令创建了一个用户sam,其中-d和-m选项用来为登录名sam产生一个主目录 /home/sam(/home为默认的用户主目录所在的父目录)。...Linux提供了集成的系统管理工具userconf,它可以用来对用户账号进行统一管理。 2、删除帐号 如果一个用户的账号不再使用,可以从系统中删除。
本期继续学习Linux用户和用户组管理 4、用户口令的管理 用户管理的一项重要内容是用户口令的管理。...指定和修改用户口令的Shell命令是passwd。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。命令的格式为: 可使用的选项: -l 锁定口令,即禁用账号。...passwd 命令还可以用 -l(lock) 选项锁定某一用户,使其不能登录,例如: 二、Linux系统用户组的管理 每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。...不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。 用户组的管理涉及用户组的添加、删除和修改。...组的增加、删除和修改实际上就是对/etc/group文件的更新。 1、增加一个新的用户组使用groupadd命令。其格式如下: 可以使用的选项有: -g GID 指定新用户组的组标识号(GID)。
领取专属 10元无门槛券
手把手带您无忧上云