最简单的,在mac笔记本上安装Unix-v6系统,进行“Unix内核源码剖析”

news2024/11/18 9:33:46

Unix V6 已经是 1975 年的系统了,但是其源代码拢共只有 1w 行左右,并且使用了 C 语言(K & R 之前的标准),还是现代操作系统的鼻祖,所以说是初学者最好的研究对象。

安装模拟器

brew install simh   
brew link simh   

Warning: Already linked: /opt/homebrew/Cellar/simh/3.12.2

which pdp11         

/opt/homebrew/bin/pdp11

如果which pdp11 找不到需要添加/opt/homebrew/Cellar/simh/3.12.2/bin到环境变量中

下载unuxV6镜像“Unix-v6-Ken-Wellsch.tap.bz2”

下载地址
https://sourceforge.net/projects/bsd42/files/Install%20tapes/Research%20Unix/Unix-v6-Ken-Wellsch.tap.bz2/download

英文安装参考资料,内核Unix-v6-Ken-Wellsch.tap.bz2下载地址
http://gunkies.org/wiki/Installing_UNIX_v6_(PDP-11)_on_SIMH#Materials

中文安装参考资料
https://blog.csdn.net/u012814856/article/details/98724746

准备目录和文件

新建目录

mkdir ~/unixv6        
cd ~/unixv6

Unix-v6-Ken-Wellsch.tap.bz2 解压后得到Unix-v6-Ken-Wellsch.tap

cp Unix-v6-Ken-Wellsch.tap dist.tap   

注意保留Unix-v6-Ken-Wellsch.tap文件,如果不小心安装失败需要重新cp再次安装
因为安装过程dist.tap会被修改

开始安装系统

安装文件 01install.ini

set cpu 11/40
set tm0 locked
attach tm0 dist.tap
attach rk0 rk0
attach rk1 rk1
attach rk2 rk2
d cpu 100000 012700 
d cpu 100002 172526
d cpu 100004 010040
d cpu 100006 012740 
d cpu 100010 060003
d cpu 100012 000777 
g 100000
pdp11 01install.ini

当你运行到这一刻的时候,模拟器会卡住,此时你使用 Ctrl + E 退出,然后再准备配置硬盘信息:

g 0

运行了这行代码,会弹出一个 = 的等待输入提示符,此时按照如下对话进行输入即可:

sim> g 0
=tmrk
disk offset
0
tape offset  
100
count
1
=tmrk
disk offset  
1
tape offset  
101
count
3999
=                                              [## Hit CTRL-E here]  
Simulation stopped, PC: 137300 (BGE 137274)  
sim> q

安装磁盘02install-disk.ini

set cpu 11/40
set tto 7b
set tm0 locked
attach tm0 dist.tap  
attach rk0 rk0  
attach rk1 rk1  
attach rk2 rk2  
dep system sr 173030  
boot rk0
pdp11 02install-disk.ini  

此时,程序会打印出来一个 @ 符号提示输入,输入如下内容即可告诉模拟器我们要加载 Unix 核心模块:

rkunix 

切换成小写

STTY -LCASE  

快速启动系统03quick-run.ini

set cpu 11/40
set cpu idle
set tto 7b
set tm0 locked
attach rk0 rk0
attach rk1 rk1
attach rk2 rk2
attach lpt printer.txt
set dci en
set dci lines=8
set dco 7b
att dci 5555
boot rk0


pdp11 03quick-run.ini

此时,程序会打印出来一个 @ 符号提示输入,输入如下内容即可告诉模拟器我们要加载 Unix 核心模块:

rkunix 

输入用户名root回车
在这里插入图片描述

环境至此搭建完成
可以至此下载源码
https://www.tuhs.org/Archive/Distributions/Research/Ken_Wellsch_v6/

结合”Unix内核源码剖析“相关书籍学习

全文结束

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

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

相关文章

U-Mail邮件系统取得多项适配认证,全面支持国产化信创环境

随着信息技术的发展,信息化建设越来越深入到社会各个领域,成为驱动经济社会发展的重要力量。在此背景下,我国正加快构建国家信息安全保障体系,实现自主可控,形成安全可靠的信息技术体系。这正是我们所说的“信创”&…

Mac上安装多版本nodejs 并 随意切换node版本

Mac上安装多版本nodejs 并 随意切换node版本 1. 先查看当前版本2. 说明3. 安装 n 组件4. 根据需要安装其他版本的node4.1 查看node历史版本4.2 安装指定版本的node4.2.1 使用n 组件安装多版本4.2.2 n 组件常用命令 4.3 也可以安装node14 1. 先查看当前版本 如下:no…

26【构图】场景透视 —— 一点透视

1 一点透视更能体现纵深 2 图中的 消失点 透视线 视平线的位置 3 一点透视模型 蓝色的是消失点,根据消失点发射出无数的透视线 在PS中可以用简单的方法画出一点透视的透视线(通过多边形工具)

电脑视频如何压缩变小 mp4视频太大怎么压缩不影响画质

视频格式是指用于存储、编码、解码和播放数字视频内容的特定文件类型和结构。它定义了视频数据的压缩方式、存储布局以及播放参数,确保不同的设备和软件能够识别并正确处理视频文件。视频格式包括两大部分视频编码格式和容器格式。 视频太大的话有时候上传不了&…

Android Audio基础——AudioFlinger回放录制线程(七)

AndioFlinger 作为 Android 的音频系统引擎,重任之一是负责输入输出流设备的管理及音频流数据的处理传输,这是由回放线程 PlaybackThread 及其派生的子类和录制线程 RecordThread 进行的。 一、基础介绍 1、关系图 ThreadBase:PlaybackThread 和 RecordThread 的基类。 Re…

DDoS攻击的最新动态及市场趋势分析

随着数字化转型的加速和网络连接设备的增加,分布式拒绝服务(Distributed Denial of Service, DDoS)攻击已经成为全球网络安全领域的一大威胁。根据最新的市场研究报告,预计到2028年,DDoS防护软件市场的复合年增长率将达到14%以上,…

工作站虚拟化:RTX A5000的图形工作站实现多用户独立运行Siemens NX 设计软件

一、背景 Siemens NX 是由西门子数字工业软件(Siemens Digital Industries Software)开发的一款先进的集成计算机辅助设计(CAD)、计算机辅助制造(CAM)和计算机辅助工程(CAE)软件。它…

Linux:Ubuntu修改root密码

Linux:Ubuntu修改root密码 修改默认grub配置文件 rootshanxin:~# vim /etc/default/grub# 主要修改内容如下:GRUB_DEFAULT0 #GRUB_TIMEOUT_STYLEhidden 注释这一行 GRUB_TIMEOUT5 # 将这一行的时间改为5秒进行开启启动的grub文件的复写 rootshanxin:~…

618精选编程书单推荐:优质知识提升你的代码力

前言 在这个快速发展的技术时代,不断学习和提升自己的编程技能是每位程序员的必修课。今天,我为大家精心挑选了一系列编程技术书籍,它们将是你技术成长道路上的宝贵财富。 文章目录 前言编程之路:为何阅读书籍是不可或缺的书籍的…

vue连接mqtt实现收发消息组件超级详细

基本概念: MQTT(Message Queuing Telemetry Transport)是一种基于发布/订阅模式的轻量级消息传输协议,专为低带宽、高延迟或不稳定的网络环境设计。以下是MQTT实现收发消息的基本原理: 客户端-服务器模型&#xff1a…

清华团队推出免费AI服务:与人类偏好对齐的大型语言模型

在人工智能领域,大型语言模型(LLMs)的迅猛发展极大地推动了机器在语言理解和生成方面的能力。然而,如何让这些模型更好地与人类偏好和价值观对齐,成为了一个重要而紧迫的课题。为此清华团队推出一项免费服务ChatGLM-RL…

EI会议的最佳论文奖是什么?如何申请?

EI会议的最佳论文奖通常是指在EI(工程索引,Engineering Index)收录的学术会议中,评选出的表现最优秀的论文奖项。以下是关于该奖项的一些基本信息及申请步骤: 最佳论文奖的含义 评选标准:最佳论文奖通常基…

Java-常见面试题收集(十六)

二十五 RocketMQ 1 消息队列介绍 消息队列,简称 MQ(Message Queue),它其实就指消息中间件,当前业界比较流行的开源消息中间件包括:RabbitMQ、RocketMQ、Kafka。(一个使用队列来通信的组件&…

【论文笔记】| 蛋白质大模型ProLLaMA

【论文笔记】| 蛋白质大模型ProLLaMA ProLLaMA: A Protein Large Language Model for Multi-Task Protein Language Processing Peking University Theme: Domain Specific LLM Main work: 当前 ProLLM 的固有局限性:(i)缺乏自然…

【竞技宝】欧洲杯:吉鲁退出法国队,欧洲杯后主动让贤

吉鲁是法国队功勋中锋,为球队立下过赫赫战功。法国队能在2018年拿到久违的世界杯冠军,吉鲁身为主力锋霸功不可没。每当,法国队在比赛中遇到僵局,吉鲁总会站出来,为球队做出应有的贡献。吉鲁在法国队的作用不仅仅体现在…

CPU进入内核,是什么意思?

知乎上有一个问题: 进入内核态究竟是什么意思? 暂且忘记这个问题,让我们从另一个问题出发,一步步引出这个问题的答案。 特权指令问题 现代计算机里面,同时运行了很多程序,比如Office软件、浏览器、QQ、还…

好书推荐|MATLAB科技绘图与数据分析

提升你的数据洞察力,用于精确绘图和分析的高级MATLAB技术 MATLAB科技绘图与数据分析——jd 本书内容 《MATLAB科技绘图与数据分析》结合作者多年的数据分析与科研绘图经验,详细讲解MATLAB在科技图表制作与数据分析中的使用方法与技巧。全书分为3部分&a…

Jetbrains插件AI Assistant,终于用上了

ai assistant激活成功后,如图 ai assistant获取:https://web.52shizhan.cn/activity/ai-assistant 主要功能如下

springboot集成达梦数据库8

springboot集成达梦数据库8 官方文档&#xff1a;[https://eco.dameng.com/document/dm/zh-cn/start/java-development.html](https://eco.dameng.com/document/dm/zh-cn/start/java-development.html) 引入maven依赖 <!--添加数据库驱动安装包--> <dependency> …

基于Matlab卷积神经网络(CNN)人脸识别系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 人脸识别技术作为计算机视觉领域的一个重要分支&#xff0c;已经广泛应用于安全监控、身份验证…