最近投入Linux方面的学习更多了,主要是Linux内核以及Linux驱动框架的研究,以下是我自己学习总结的一些笔记,以帮助我快速复习和回忆相关的知识点:
QEMU是“Quick Emulator”的缩写,是一个用C语言编写的开源虚拟化软件。本文的目的是描述本人所理解的QEMU技术架构的见解,并以此抛砖引玉。众所周知,QEMU的源代码开发文档非常稀少,描述内部结构和工作机理的文档更是凤毛麟角,一般的开发人员想要从事QEMU的开发工作,通常只能从源代码入手。因此,对于技术人员来说,了解QEMU是一项艰巨的任务。
第一种方法纵向或者横向来读都可以,因为代码量不是很大。《linux内核完全剖析》《linux内核完全注释》是引导你横向阅读的书,《linux内核设计的艺术》是引导你纵向阅读的书。建议横向纵向结合着来,纵向跟着bochs调试工具来是必不可少的,当遇到问题时进入到相应的功能模块横向拓展一下。
前言:本篇开始我们要对Linux进行更深入的学习了,让我们来进入新篇章:Linux的权限理解!
近日,在一场开源峰会上,Linux 与 Git 的创始人 Linus Torvalds 谈到 Rust 语言在 Linux 中的应用、Linux 维护者的高强度工作、以及 AI 技术在 Linux 乃至开源开发领域的未来作用。
Linux 严格意义上说的是一个操作系统,我们称之为 “ 核心( kernel ) “ ,但我们一般用户,不能直接使用 kernel 。
shell 英文含义是“壳”,这是相对于内核来说的,shell 也确实就像是内核的壳,通常来说,所有对内核的访问都要经由 shell 。同时,shell 还是一门功能强大的编程语言。shell 是 Linux 学习中必然要经过的一环。实际上,Linux 系统在启动完成,登录成功后运行的第一个程序就是一个 shell ,Linux 的许多功能都可以从 shell 中轻松实现。
近年来,随着高性能时代的到来,购买一台配置很高的服务器运行着一些简单的服务未免有点大材小用,这时候我们就用到了虚拟化。虚拟化简单讲,就是把一台物理计算机虚拟成多台逻辑计算机,每个逻辑计算机里面可以运行不同的操作系统,相互不受影响,这样就可以充分利用硬件资源。 虚拟化介绍 关键词Hypervisor(VMM) 虚拟机管理器 虚拟化技术分为全虚拟化 和 半虚拟化 早期的CPU硬件不支持虚拟化,虚拟机上的操作系统(guestos)要想使用cpu资源,需要通过VMM来翻译指令,这个过程比较耗费资源,这种虚拟化技术叫
最后,再说一点,英语非常重要。很多好的资料都是英文的,国内有些翻译本不是太好。尤其是google搜索时,学会使用英文关键词非常重要。
虚拟化简单讲,就是把一台物理计算机虚拟成多台逻辑计算机,每个逻辑计算机里面可以运行不同的操作系统,相互不受影响,每个逻辑系统都是独立的存在,这样就可以充分利用物理硬件的资源,而且还可以自由分配资源。
Android 的安全模型由 Linux 内核强制执行,这将诱使攻击者将其视为攻击目标。我们在已发布的 Android 版本和 Android 9 上为加强内核投入了大量精力,我们将继续这项工作,通过将关注点放在基于编译器的安全缓解措施上以防止代码重用攻击。
那些不能铭记过去的人注定要重蹈覆辙。你还记得当年用Windows隐藏文件夹藏片吗? 作为一个屌丝,虚拟化技术确实意义非常重大。这个最显著的作用显然就是藏片,作为一个程序员,如果还用Windows文件隐藏功能来藏片,这实在是污辱自己和女朋友的智商,让广大码农抬不起头来做人。最早可以帮你实质藏片的手段来自VMware。 VMware这个名字就是一种牛逼,VM就是virtual machine,ware是取自Software中的ware,1999年VMware发布了它的第一款产品VMware Workstation,在那个赛扬333和白衣飘飘的时代。
近两年BPF技术跃然成为了一项热门技术,在刚刚结束的KubeCon 2020 Europe会议上有7个关于BPF的技术分享, 而在KubeCon 2020 China会议上也已有了3个关于BPF技术的中文分享,分别来自腾讯和PingCAP,涉足网络优化和系统追踪等领域。在中文社区里,包括阿里巴巴、网易、字节跳动等国内第一梯队IT公司也越来越关注BPF这项新技术。本文主要介绍BPF技术发展和应用,以及我是如何学习BPF技术的。
Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel) “ ,但我们一般用户,不能直接使用kernel。而是通过kernel的“外壳”程序,即shell,来与kernel沟通。
我的 Linux系统上有多少可用 RAM内存?是否有足够的可用内存来安装和运行新应用程序? 在 Linux系统中,可以使用free命令获取系统内存使用情况的详细报告。 free命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存
其实在前几天我使用的是csdn来写博客,尝试了一下,发现真的太浪费时间了。可能是自己不太习惯的原因吧。所以最后还是换回使用博客园。 接下来给大家带来的是linux,大家听到这里linux感觉很神秘的样子,其实它也就是一个操作系统而已。 一、关于Unix、linux 1.1、Unix/Linux能做什么? 服务器:Web服务器、Mail服务器、Database服务器以及做程序开发等。 1.2、哪些人要学习Unix/Linux? Unix/Linux管理员,oracle管理员,网络
Linux论坛Phoronix的创始人Michael Larabel发表评论称,Linux 4.20的发布,说明Linux又度过了充满成就的一年。
翻译自:Network security for microservices with eBPF
大家好,我是老王。在过去的十数年里, Linux 中国秉承着在中国推广 Linux 生态,让更多的人知道 Linux、了解 Linux 和用上 Linux 生态的理念,我们翻译了大量的开源和技术文章,让更多的人熟悉 Linux、使用 Linux。
一台计算机从基本架构上讲,由最基本的硬件组成硬件结构(如:cpu、内存、主板、声卡、显卡等),我们知道,硬件组成完备,但未安装操作系统的计算机被称为“裸机”。我们必须给“裸机”安装操作系统后,才可以正常使用。windows、Linux都属于操作系统范畴。
微内核——内核只提供任务调度和进程间通信(IPC),当然还包括为任务调度提供服务的系统时钟、中断以及内存管理等最基本的硬件管理能能力。至于用户态需要的系统服务,则由用户态完成。代表OS:L4系列微内核。
语法: find [路径] [选项] [文件名] 功能: 用于在文件树种查找文件,并作出相应的处理(可能访问磁盘) 常用选项:
在通用PC领域,不论是windows还是linux界,我们都会经常听到"32位"与"64位"的说法,类似的还有"x86"与"x86_64","i386"与"amd64",这两组概念之间有着怎样的联系和区别呢?
文章开头必须介绍下这位github开源大佬,是腾讯的一位前辈,仓库地址:https://github.com/yifengyou,里面有他学习的各种资料,包含linux内核态、用户态、虚拟化、云原生、编程语言等分类,很震撼。大家可以看下贡献图,感受下压迫感,这位大佬大年三十都还在学习!
带有桌面和推荐软件的 Raspberry Pi OS 发售日期:2022 年 4 月 4 日 系统:32位 内核版本:5.15 Debian 版本:11 大小:2,277 MB 发行说明 2022-04-04: * 默认“pi”用户已被删除;首次启动向导强制创建新用户帐户 * 添加了重命名用户脚本,以允许通过临时重新启动到缩减的首次启动向导来重命名现有用户 * Overscan 现在由 KMS 下的 xrandr 管理,可以为两个显示器独立设置,并且即时生效而不需要重新启动 * GTK3 开
伯克利数据包过滤器(BPF)机制自2014年被重写和扩展(eBPF)以来,一直在各种内核子系统中发挥作用。事实证明,通过在内核虚拟机,允许在不编写内核自身代码的情况下实现任意策略的方式,存在着巨大的价值。最近一个将BPF推向网络驱动程序的补丁集显示了这种机制的一些潜力—以及集成一种经得起时间考验的方式的设计难度。如果成功的话,它可能会改变Linux系统上的实现高性能网络方式。
弗吉尼亚州里士满——任何懂技术的人都可以给 Linux 服务器打补丁。但是,在不停机的情况下给数千台服务器打补丁,并不容易。
原文链接:https://rumenz.com/rumenbiji/linux-free.html
原文链接:https://rumenz.com/rumenbiji/linux-free.html 微信公众号:入门小站
进程切换是一个复杂的过程,本文不准备详细描述整个进程切换的方方面面,而是关注进程切换中一个小小的知识点:TLB的处理。为了能够讲清楚这个问题,我们在第二章描述在单CPU场景下一些和TLB相关的细节,第三章推进到多核场景,至此,理论部分结束。在第二章和第三章,我们从基本的逻辑角度出发,并不拘泥于特定的CPU和特定的OS,这里需要大家对基本的TLB的组织原理有所了解,具体可以参考本站的《TLB操作》一文。再好的逻辑也需要体现在HW block和SW block的设计中,在第四章,我们给出了linux4.4.6内核在ARM64平台上的TLB代码处理细节(在描述tlb lazy mode的时候引入部分x86架构的代码),希望能通过具体的代码和实际的CPU硬件行为加深大家对原理的理解。
内存是计算机的主存储器。内存为进程开辟出进程空间,让进程在其中保存数据。我将从内存的物理特性出发,深入到内存管理的细节,特别是了解虚拟内存和内存分页的概念。
相信很多同学都不陌生这个脚本,尤其是运维的同学,少不了吧。公司的运维系统就靠你了。shell是一种解释型的语言,我们写好了代码后,不需要编译,直接运行即可。平时我们会用它来写一些脚本,比如备份,或者启动脚本,切割日志等。当然shell也是linux的解释器,本篇我们先来了解下这个解释器。
CentOS的版本号信息一般存放在配置文件当中,在CentOS中,与其版本相关的配置文件中都有centos关键字,该文件一般存放在/etc/目录下,所以说我们可以直接在该文件夹下搜索相关的文件。
Systemtap 使用了类似于 awk 和 C 语言的脚本语言(类似于 Dtrace 的 D 语言)。
Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM目前已成为学术界的主流VMM之一。
「Docker使用Google公司推出的Go语言进行开发实现,基于操作系统内核中Cgroup(资源控制)、Namespace(资源隔离)与OverlayFS(数据存储)等技术,实现了基于操作系统层面的虚拟化技术。」
内核是操作系统非常重要的组成部分,同时也是操作系统的核心。内核管理着系统资源,内核向上连接着应用程序,向下连接着硬件,它是应用程序和硬件的桥梁。
作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁转载
QNX是一个[微内核]实时操作系统,其核心仅提供4种服务:进程调度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间运行。
Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。如何理解?为什么不能直接使用kernel?
前段时间有个刚开始学习 Arm Linux 的同学问我:对于还处于入门阶段的新手,有什么建议。并让我推荐一些好的书籍。
👋 你好,我是 Lorin 洛林,一位 Java 后端技术开发者!座右铭:Technology has the power to make the world a better place.
作用是将应用层序的请求传递给硬件,并充当底层驱动程序,对系统中的各种设备和组件进行寻址。目前支持模块的动态装卸(裁剪)。Linux内核就是基于这个策略实现的。Linux进程1.采用层次结构,每个进程都依赖于一个父进程。内核启动init程序作为第一个进程。该进程负责进一步的系统初始化操作。init进程是进程树的根,所有的进程都直接或者间接起源于该进程。virt/ —- 提供虚拟机技术的支持。
领取专属 10元无门槛券
手把手带您无忧上云