首页
学习
活动
专区
圈层
工具
发布

Github 开源了:实战操作系统的硬核笔记!

最近有个读者说,他把自己学习 课程的笔记整理成了一个 PDF,已经开源至 Github,我也看了下,确实很不错,非常硬核。...这里有一份开源的资料《给操作系统捋条线》,详细讲解了 系统,除了源码中的一些脚本文件几乎覆盖讲述了所有代码,从硬件到软件各个方面都有所讲述。...资料的链接如下: https://github.com/Rand312/xv6.git https://gitee.com/rand_cs/xv6.git 全文将操作系统分为了五个大的部分:启动,中断,...锁:锁就其本身的实现上来说不难,难的是锁的使用,内核中的各种问题各种情况极其复杂,这里只简单聊聊: 常见的两种锁,自旋锁、休眠锁如何设计?...大概就这些吧,更多详情内容请看原资料,pdf资料链接: https://github.com/Rand312/xv6.git https://gitee.com/rand_cs/xv6.git 配合着本资料学习操作系统

97530

linux 操作系统 哪个好用,一款非常好看好用的国产Linux操作系统发行版

原标题:一款非常好看好用的国产Linux操作系统发行版 之前在网上看到有网友说,国产操作系统的界面不好看,很简陋很粗糙,就像是Windows XP的那种年代久远的操作界面一样。...也有网友反驳说,国产操作系统界面友好,看起来很舒服。 那么事实上是怎样的呢?到底是国产操作系统的设计还停留在人家微软的远古时代,还是部分网友对国产操作系统的认知有偏差?下面我来为大家展示一下。...笔者接下来为大家展示的,是在国内做是比较好的中兴新支点操作系统。个人使用免费,还是很不错的。个人认为,这款系统的默认操作界面就很简洁大方。...笔者的电脑桌面 笔者的电脑桌面 看到这里,你们觉得国产操作系统的界面还像某些网友口中的这么简陋粗糙吗?不过,仁者见仁智者见智,欢迎留言交流。...但怎么都好,国产操作系统如果要崛起,除了离不开各大软件厂商的扶持和研发人员的努力,也离不开我们国民的支持的!反正我就是喜欢支持国货,你们呢?

4.9K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    仅需60秒,使用k3sup快速部署高可用K3s集群

    这一尝试的结果是创建了一个轻量级Kubernetes发行版K3s,该发行版精简了K8S的功能,可以满足在边缘计算环境中、在小型设备上运行Kubernetes集群的需求。...发布之后,K3s在社区中迅速流行,短短几个月内Github Star已经达到10,000(目前已经超过12,000)。...配置一个运行在兼容操作系统(如Ubuntu、Debian、Raspbian等)上的新VM,确保你选择了将要注册的SSH密钥自动复制到新的VM或主机上。...[图片来源:k3sup README] 具体步骤: 为你的操作系统下载etcher.io 使用Raspbian Lite flash你的SD卡 在启动分区中通过创建一个名为ssh的空文件启动SSH...这是一个快速发展的项目,每天都有更多更新的内容问世。你可以尝试查看可以将哪些标志和配置合并到集群中以demo该工具,甚至尝试在Github repo中贡献内容。

    1.9K30

    推荐给linux新手和爱好者的十款发行版操作系统

    _OS 的主要特点 对 Nvidia 图形的开箱即用支持。 Cosmic 桌面(定制的 GNOME 体验)。 提供窗口管理器的基本功能。 提供使系统从灾难中恢复过来的恢复分区。 Pop!..._OS 作为基于 Ubuntu 的发行版的优势所在。...elementaryOS 基本操作系统的主要特点: 使用最优雅的桌面环境 Pantheon。 具有画中画模式。 具有量身定制的应用中心。...由于开发人员专门为 elementaryOS 开发了 Pantheon 桌面,您会注意到该操作系统在细节的方方面面做的都很到位,无论是暗模式还是强调色。您可以通过基本操作系统获得出色的用户体验。...Voyager 是基于 Xubuntu 的 Linux 发行版,在其最新的 22.04 LTS 资源管理器版本中具有 GNOME 和 Xfce。

    3.8K70

    Linux镜像制作全指南:从主流发行版到国产操作系统的深度实践

    本文将全面探讨Linux镜像制作的方方面面,从基础概念到高级技巧,涵盖世界主流发行版和国产操作系统,通过5000余字的系统化讲解,带您深入理解镜像制作的原理、方法、工具链和最佳实践。...对于容器镜像,Dockerfile和Buildah提供了从零构建或基于现有镜像定制的完整能力。国产操作系统领域,各发行版也提供了专属工具,如统信UOS的镜像构建工具链支持对系统进行深度定制和二次开发。...驱动与内核适配在国产化环境中尤为重要。由于国产CPU架构多样(如龙芯的MIPS/LoongArch、飞腾的ARM64、兆芯的x86等),同一操作系统需要编译不同架构的内核和驱动。...国产Linux操作系统镜像制作专题国产操作系统生态概览国产Linux操作系统经过多年发展,已形成多元化的生态体系,主要分为服务器和桌面两大方向。...不同于国际主流发行版主要关注x86和ARM64,国产操作系统广泛适配各种国产CPU,包括龙芯(MIPS/LoongArch)、飞腾(ARM64)、兆芯(x86)、海光(x86)和申威(Alpha)等。

    1.1K10

    使用QEMU模拟树莓派Raspberry Pi

    Linux 系统发行版 (官方为 Debian 的衍生版),可当服务器搭建各种网站、应用服务来使用, 也能用来学习编程、控制硬件或日常办公。...由于树莓派的体积很小很轻,并且功能极其丰富强大,这也使得它的应用范围和潜力几乎是无限的 下面介绍在之前的编译安装Qemu5.1的文章基础下安装raspberrypi树莓派 Fedora32下编译安装Qemu5.1...并创建ARM版本Linux虚拟机 1、下载树莓派系统 最新版本下载地址 http://downloads.raspberrypi.org/raspbian/images/raspbian-2020-02...-14/2020-02-13-raspbian-buster.zip 2、下载kernel-qemu https://github.com/dhruvvyas90/qemu-rpi-kernel 下载如下这两个文件...https://www.raspberrypi.org/downloads/raspberry-pi-desktop/ ?

    10.3K62

    操作系统中的死锁现象

    在多任务操作系统中,为了提高资源利用率和系统吞吐量,我们常常会同时运行多个进程。然而,这种并发执行的方式也带来了一些挑战,其中最为显著的问题之一就是死锁。...本文将深入探讨死锁的概念、产生条件、预防策略和解决方法,帮助您更好地理解这一操作系统中的复杂问题。 什么是死锁?死锁是指两个或多个进程在执行过程中,由于竞争资源或彼此通信而造成的一种阻塞现象。...不可抢占条件:已分配的资源不能被其他进程抢占,只能由原进程释放。4. 循环等待条件:存在一个进程等待环,环路中的每个进程都在等待其他进程释放资源。只有当这四个条件同时满足时,死锁才会发生。...死锁的产生原因死锁的产生通常源于以下原因:1. 竞争资源:当系统中供多个进程共享的资源数量不足以满足所有进程的需要时,会引起诸进程对资源的竞争而产生死锁。...2.进程间推进顺序非法:进程在运行过程中,请求和释放资源的顺序不当,也会导致产生进程死锁。

    56510

    操作系统中的线程种类

    线程在现在操作系统中使用非常广泛,但是在各个系统中实现的方式各有不同,如infomix实现的是用户级线程,而macintosh实现的是内核支持线程,比如Solaris OS两者都实现了。...1.内核支持线程(Kernel Supported Threads) 在OS中的所有进程,无论是系统进程还是用户进程,都是在操作系统内核的支持下运行的,是与内核紧密相关的。...这种线程实现方式主要有四个主要优点: 在多处理器系统中,内核能够同时调度同一进程中的多个线程并行执行 如果进程中的一个线程被阻塞了,内核可以调度该进程中的其它线程占有处理器运行,也可以运行其它进程中的线程...但假如在进程A中包含了一个用户级线程,而在另一个进程B中含有100个用户级线程,这样,进程A中线程的运行时间将是进程B中各线程运行时间的100倍:相应地,其速度要快上100倍, 因此说实质上并不公平。...假如系统中设置的是内核支持线程。如调度便是以线程为单做进行的,在采用轮转法调度时,是各个线程轮流执行一个时间片。同样假定进程A中只有一一个丙核支持线程,而在进程B中有100个内核支持线程。

    56310

    万星项目带你做 3D 游戏——GitHub 热点速览 v.21.18

    See,这周的 GitHub 热榜项目们就是带你来学习新技术的,在这个五一假期学习下 3D 游戏的着色、阴影处理,了解下 3D 游戏的开发过程如何?...实在不行,很多 HG 小伙伴说过的问过如何写一个操作系统?rust-raspberrypi-OS-tutorials 带你从写个可用于 ARM 架构的操作系统开始。...1.2 写个操作系统:rust-raspberrypi-OS-tutorials 本周 star 增长数:700+ rust-raspberrypi-OS-tutorials 是一个手把手教你写个树莓派操作系统的教程...,它详细地介绍了如何从零开始为嵌入式系统编写独立的操作系统内核,如果你是 ARM 64 位 ARMv8-A 的新手不妨来跟着它学习下。...GitHub 地址→https://github.com/rust-embedded/rust-raspberrypi-OS-tutorials ? 2.

    2.2K30

    操作系统中的进程与线程

    本文是操作系统系列的第二篇文章,介绍操作系统中的核心概念进程和线程。 进程 概念 进程是一个动态概念,表示程序在一个数据集合上的一次动态执行过程。...程序是静态的,它是文件。进程是动态的,是执行中的程序,进程=程序+执行状态。 进程控制块 进程控制块(PCB, Process Control Block)是操作系统用来管理进程运行的数据结构。...5.有关数据结构连接信息:与PCB相关的进程队列 操作系统中的PCB可以通过链表和索引表来组织。...4.运行→结束:当进程表示它已经完成或者因出错,当前运行进程会由操作系统作结束处理5.运行→就绪:处于运行状态的进程在其运行过程中,由于分配给它的处理机时间片用完而让出处理机6.运行→等待:当进程请求某资源且必须等待时...本文介绍了操作系统中的核心概念进程和线程。相比于“静态”的程序代码,它们是负责程序执行的“动态”概念。进程的粒度大,包含程序执行所需的完整资源;线程是CPU调度的单位,只包括指令执行的必要资源。

    1.8K21

    操作系统进程的实现---中---05

    操作系统进程的实现---中---05 内核级线程实现 核心级线程的两套栈,核心是内核栈… 整个故事要从进入内核开始——某个中断开始… 切换五段论中的中断入口和中断出口 switch_to难点分析 另一个故事...INT 0X80实际上会去调用system_call ,因此还需要将system_call地址压入栈中,一会进入内核中后,首先弹出system_call地址,然后去执行 操作系统接口和调用–02...用栈切换,因为tss中的信息可以 写到内核栈中 下面讲解的是基于TSS完成进程切换的过程 在一个多任务环境中,当发生了任务切换,需保护现场,因此每个任务的应当用一个额外的内存区域保存相关信息,即任务状态段..."d" _TSS(n)将新任务的TSS选择符放入到TR中,然后CPU根据TR中的值,去GDT表中找到对应的TSS描述符,然后根据描述符,定位到新任务的TSS,然后将对应TSS中保存的寄存器状态,全部恢复到当前...,都来源于栈中,已经压入栈中的参数是在创建线程前,放入的相关寄存器和用户栈状态 ret保存的是eip,而这里保存的eip是执行int 0x80时,压入栈中的,eip是int 0x80下一条指令,即mov

    1.1K60

    关于 linux 操作系统中的 buffcache

    在这里,我们能够看到内存信息中包含了swpd, free, buff, cache等等。其中,最熟悉和分析最多的就是buff 和 cache。...详细回答:Cached是Linux页缓存的大小减去swap cache(交换区)中内存的大小——SwapCached(全部页缓存大小等于Cached+SwapCached)。...写操作只是简单地将页缓存中的相应页标记为脏页。读操作是通过返回页缓存中的数据来实现的;如果数据还没有在缓存中,会先添加。...在现在的Linux操作系统中,Cached很容易达到GB级别,它只会在内存面临压力时缩小。系统将清除页面缓存,同时将内存中的数据交换到磁盘,以便在需要时提供更多可用内存。...因此缓冲区的大小并不重要,在大部分系统中,缓冲区通常只有几十M字节。

    2.2K20

    bpftool使用方法简介

    1、安装bpftool工具 看起来,在不同的linux发行版里,bpftool在不同的软件包里,ubuntu 22上,bpftool是linux-tools-generic的一部分,而树莓派里bpftool...命令就可以查看到安装情况 xxx@xxx-pc:~$ whereis bpftool bpftool: /usr/sbin/bpftool /usr/share/man/man8/bpftool.8.gz 有些发行版本上可能还需要自行从...4、使用bpftool查看eBPF程序运行情况的一个例子 在文章XDP入门–eBPF程序实现网桥/二层交换机转发功能中,我们往eth0和eth1载入了根据目标MAC转发数据包的eBPF字节码,在这个程序中...里的内容 xxx@raspberrypi:~ $ sudo bpftool prog list | tail -n 4 xlated 64B not jited memlock 4096B 21:...gpl loaded_at 2023-05-31T13:57:17+0800 uid 0 xlated 704B not jited memlock 4096B map_ids 1 xxx@raspberrypi

    2.2K10

    iota硬件集成实战教程

    在我的演示中,使用了9V电池,因此330欧姆的电阻应当就可以了。 ? 电池 电池为电路提供能力。我的演示中使用的是9v电池。 ? 连接线 我们当然也需要一些电线将各个部件连接起来: ?...首先,我们需要在树莓派上安装一个操作系统。任何树莓派支持的LInux发行版应该都可以。在我的演示中,使用的是Raspbian发行版,因为它已经预置了Python和几个Python编辑器。...Raspbian发行版 的安装指令可以在这里找到: https://www.raspberrypi.org/downloads/raspbian/。...PyIOTA API库及安装指令参见: https://github.com/iotaledger/iota.lib.py。...time.sleep(1) 运行代码 要运行上面的代码,我们需要先在树莓派上保存到文件中,例如let_there_be_light.py。

    1.2K10

    详述 GitHub 中声明 LICENSE 的方法

    至于 GitHub 都允许什么类型的许可证,以博主的项目cg-favorite-list为例: 如上图所示,在项目首页,点击Create new file,创建名为LICENSE文件: 实际上,当我们键入...LICENSE文件名的时候,GitHub 就已经自动提示Choose a license template选项啦,点击进入: 如上图所示,最左侧展示了 GitHub 可以选择的开源许可证名称,以MIT...最后,再推荐一些比较适合新手入门的资料: MyBatis 框架教程:https://github.com/guobinhit/mysql-tutorial MySQL 数据库教程:https://github.com...Exception」和「Error」解决案例:https://github.com/guobinhit/solutioncase-throwable 在上面的资料中,博主总结了非常多的异常和错误的解决案例...最后,附上博主的 GitHub 账号,欢迎大家 Follow:维C果糖

    2.4K70

    树莓派3B安装64位操作系统(树莓派无需连接显示器键盘鼠标)

    想在树莓派3B上安装一些64位应用(例如64位JDK),因此首先要安装64位的操作系统,今天咱们就一起来实战; 环境要求 一台树莓派3B设备; 网络环境是内网,需要有线网络和网线一根; 当树莓派通过网线连接到内网后...安装64位应用,验证; 准备完毕就开始实战吧; 下载64位操作系统镜像 有大神将64位镜像做好了放到GitHub上,地址:https://github.com/bamarni/pi64/releases...在格式化过程中可能提示格式化失败,如下图,这时候再格式化一次就会成功: ?...下载网页,地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html,如下图,首先要点击绿框中的选项...,然后点击红框中的jdk-8u172-linux-arm64-vfp-hflt.tar.gz,这才是树莓派可用的版本: ?

    3.7K20
    领券