Ubuntu18.04安装linux-lab

news2025/1/15 19:48:38

Ubuntu18.04安装linux-lab

文章目录

  • Ubuntu18.04安装linux-lab
    • docker安装
    • linux-lab安装
    • 意外事件流处理
    • 参考资料

本文主要目的是搭建linux内核实验环境

因为工作需要所以学习linux内核,目前主要根据《linux内核完全注释》和《自己动手写操作系统》进行学习,众所周知,编程的学习是要和实操相结合的,《自己动手写操作系统》中提到的实验环境是Virtual PC搭建的,太古老了,也太麻烦了。后面在找寻更新更方便的环境搭建工具的时候,发现了linux-lab这个开源项目,这个项目的目的就是linux内核的学习,里面提供了各种linux内核实验环境的搭建。

docker安装

  • 更新软件库安装docker依赖
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
  • 添加Docker官方GPG密钥

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    
  • 添加Docker官方存储库

    echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    
  • 安装Docker引擎

    sudo apt-get update
    sudo apt-get install docker-ce docker-ce-cli containerd.io
    
  • 启动Docker服务并将其设置为开机启动

    sudo systemctl start docker
    sudo systemctl enable docker
    
  • 验证Docker是否正确安装

    sudo docker run hello-world
    

    运行该命令后,您应该会看到一条消息,确认Docker已正确安装并正在运行

linux-lab安装

  • 下载
git clone https://gitee.com/tinylab/cloud-lab.git
cd cloud-lab && tools/docker/choose linux-lab
  • 安装
tools/docker/run            # 加载镜像,拉起一个 Linux Lab 容器

  • 快速尝鲜

执行 tools/docker/webvnc 后会打开一个 VNC 网页,根据 console 提示输入密码登陆即可,之后打开桌面的 Linux Lab 控制台并执行:

make boot

启动后,会打印如下登陆提示符,输入 root,无需密码直接按下 Enter 键即可,后续即可以在这个环境进行测试编译linux内核了。

意外事件流处理

  • 安装完docker后,执行docker相关命令,报错
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.26/images/json: dial unix /var/run/docker.sock: connect: permission denied

大概的意思就是:docker进程使用Unix Socket而不是TCP端口。而默认情况下,Unix socket属于root用户,需要root权限才能访问。

解决方法1

使用sudo获取管理员权限,运行docker命令

解决方法2

docker守护进程启动的时候,会默认赋予名字为docker的用户组读写Unix socket的权限,因此只要创建docker用户组,并将当前用户加入到docker用户组中,那么当前用户就有权限访问Unix socket了,进而也就可以执行docker相关命令

sudo groupadd docker     #添加docker用户组
sudo gpasswd -a $USER docker     #将登陆用户加入到docker用户组中
newgrp docker     #更新用户组
docker ps    #测试docker命令是否可以使用sudo正常使用

参考资料

Linux 内核实验环境

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/415827.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代码随想录【链表】---->反转链表、两两交换链表中的节点

文章目录206. 反转链表思路双指针实现递归写法24. 两两交换链表中的节点思路代码实现206. 反转链表 题目LeetCode206. 反转链表 思路 翻转链表实际上只需要将每一个节点的指针域指向前一个节点即可,原来第一个节点的指针域指向NULL指针 原头节点是1&#xff0c…

前端的性能对业务数据的影响

性能总论 一切没有 profiling 的性能都是耍流氓。凡是真正有价值的性能优化,必定是从端到端的业务场景建立体系来考虑的。 性能体系的建立可以分成以下几部分: 现状评估和建立指标;技术方案;执行;结果评估和监控。 …

【博学谷学习记录】超强总结,用心分享 | 架构师 Redis学习总结

文章目录1.Redis概述&安装配置安装启动2.Redis的Key的设计规范1、key名设计2、避免bigkey**string字符串类型**hash类型(散列表)list列表类型set集合类型sortedset有序集合类型bitmap位图 类型geo地理位置类型1.Redis概述&安装配置 官网&#x…

SQL SERVER数据库生成数据字典并且导出方法

SQL SERVER数据库生成数据字典并且导出方法打开SQL SERVER 2014找到你所需要建立数据字典的数据库在代码区输入如下SQL语句点击运行,导出或者带标题复制出来打开SQL SERVER 2014找到你所需要建立数据字典的数据库 右键→点击 新建查询 在代码区输入如下SQL语句 S…

椭圆型偏微分方程和格林函数

一、本文先简单地介绍一下Green 函数, 第一部分内容来自于文献 [0]BI-GreenNet: Learning Green’s Functions by Boundary Integral Network [1] Evans, L.C.: Partial Differential Equations. American Mathematical Society, Providence, R.I. (2010) [2]Learn…

Redis数据库的安装和命令使用以及python的调用

Redis 简介 Redis是完全开源免费的,是一个高性能的key-value数据库。 Redis与其他 key- value 缓存产品有以下三个特点: Redis支持数据的持久化,可将内存中的数据保存在磁盘中,重启时再次加载使用。Redis不仅支持简单的key-val…

故障定级和定责

故障管理的第一步是对故障的理解,只有正确地面对故障,我们才能够找到更合理的处理方式。 这便需要做两个工作:一是跟踪线上故障处理和组织故障复盘,二是制定故障定级定责标准,同时有权对故障做出定级和定责。 所以&a…

网上选课系统——管理员子系统的设计与实现

本系统是C/S(客户端/服务器)两层结构。采用C#数据库编程语言。服务器部分是SQL Server2000 关系数据库。客户端分为学生选课子系统和管理员管理子系统,它们通过存于后台数据库的数据产生联系。 无论是学生子系统还是管理员子系统&#xff0c…

Follow My Heart Of Apirl. 2023

This article will tell all my story in my daily file to make some deep memories in my heart for Apirl.2023. The line template: The template will be used as the mark of the storys start. 2023.04.10 Commodity n. 货物、商品、日用品 1. Global commodity prices …

《OpenCV3和Qt5计算机视觉应用开发》学习笔记

Qt Creator中使用opencv 在.pro文件中添加 INCLUDEPATH D:\MajorSoftware\opencv\opencv\build\include LIBS D:\MajorSoftware\opencv\opencv\mingw_build\lib\libopencv_*.a一个插件就是一个简单的库,如.dll,可以在运行时加载和使用插件&#xff…

基于模型预测控制(MPC)的微电网调度优化的研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

7针0.96寸OLED的HAL库代码(硬件SPI/全代码/stm32f1/CubeMX配置/包含有正负浮点数/100%一次点亮)

系列文章链接 HC-SR04超声波模块的使用 编码电机以及双电机驱动 4针 0.96OLED的使用 更多有意思的文章点击“我的主页” --------😐 更多有意思的视频 -----> B站 想要亿只独角兽 --------😐 前言 之前发布了一篇硬件I2C的0.96 OLED驱动代码&#…

全国计算机等级考试——二级JAVA完整大题题库【五十三道】

全国计算机等级考试二级 JAVA 题目内容 编写于2023.04.10 分为40道选择题和3道大题(大题是程序填空类型) 其中选择题只能进去做一次,一旦退出来则不可再进(注意!)。大题可以重复进入,重复做。…

JavaScript【七】JavaScript中的内置顶层函数

文章目录🌟前言🌟内置🌟顶层🌟内置顶层函数🌟 Number()🌟 parseInt()🌟parseFloat()🌟String()🌟Boolean()🌟 isNaN()🌟eval()🌟Numbe…

(详细)《美国节日》:某月的第几个星期几

目录 一、题目描述: 二、思路: 1、给定 年月日,如何知道这天是星期几? 2、已知这个月的第一天是星期几,如何知道第三个星期一是几号? 3、最后一个星期一 三、思路总结 四、代码 一、题目描述&#xf…

机器学习---集成学习报告

1.原理以及举例 1.1原理 集成学习(Ensemble Learning)是一种机器学习策略,它通过结合多个基学习器(base learners)的预测来提高模型的性能。集成学习的目标是创建一个比单个基学习器更准确、更稳定的最终预测模型。这…

力扣---LeetCode面试题17.04.消失的数字

文章目录前言面试题17.04.消失的数字方法一:方法二:异或解析:方法三:总结前言 我有我要赶去的远方,风雨兼程披星戴月 本章的内容是力扣每日随机一题的部分方法的解析 提示:以下是本篇文章正文内容&#xf…

安全防御 --- 恶意代码、防病毒

一、恶意代码 1、按照传播方式分类 (1)病毒 概念:病毒是一种基于硬件和操作系统的程序,具有感染和破坏能力,这与病毒程序的结构有关。病毒攻击的宿主程序是病毒的栖身地,它是病毒传播的目的地&#xff0…

2023.04.09 学习周报

文章目录摘要文献阅读1.题目2.摘要3.简介4.本文贡献5.传统方法6.IDLSTM-EC7.实验7.1 数据集7.2 基线7.3 评估指标7.4 实验结果8.结论9.展望MDS降维算法1.基本思想2.优化目标3.数学推导4.算法流程马尔可夫链1.随机过程2.简介3.数学定义4.转移概率矩阵5.状态转移矩阵的稳定性Navi…

Python 访问 PostgreSQL

文章目录一、前言1.1 概述1.2 什么是 Psycopg二、操作 PostgreSQL2.1 连接数据库2.2 异常处理2.3 创建表2.4 INSERT 操作2.5 SELECT 操作2.6 UPDATE 操作2.7 DELETE 操作2.8 事务管理2.9 调用存储函数2.10 批量操作一、前言 1.1 概述 Python 是一种高级、通用的解释型编程语言…