Ty-Chen's Home

Collecting, sharing and creating knowledge


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

微型操作系统实现笔记(一)

发表于 2022-03-22   |   更新于 2022-04-16 | 分类于 操作系统内核学习 |
字数统计: 1.6k | 阅读时长 ≈ 7

一. 前言

在跟踪并学习了一遍Linux内核源码框架之后,又经过了一系列相关书籍的阅读,最终决定沉下心来从零开始写一个属于自己的微型操作系统,大致思路如下:

  • 写一个简单的可以启动的操作系统,显示Hello World
  • 实现第一个进程
  • 实现基本的内存管理
  • 实现多进程及进程调度
  • 增加设备注册、设备驱动
  • 增加虚拟文件系统
  • 增加网络架构
  • 封装内核态和用户态
  • 添加交互,如shell等

那么现在就从零开始,一步一步搭建属于自己的操作系统吧。路可能很漫长,但是只要坚持就一定会有收获。本讲内容为如何写出一个可以启动的操作系统。

阅读全文 »

创建型设计模式分析

发表于 2021-06-28   |   更新于 2021-11-11 | 分类于 设计模式 |
字数统计: 2.1k | 阅读时长 ≈ 8

一. 前言

  设计模式,究其本质,无非是发现变化、封装变化。而对于面向对象编程来说,变化本身分为了创建对象、对象之间的关系、对象之间的调用,即为创建型、结构性、行为型设计模式。本文就创建型设计模式进行分析,洞察其背后的逻辑,并比较各种创建型设计模式的区别和使用场景。

  为方便比较,创建型行为模式的几种我们采取同一个例子,即GOF一书中的迷宫创建为例。迷宫的创建至少包括了房间Room类、墙Wall类、门Door类几种组成元素和迷宫总体的表示Maze类,更合理的,我们可以为房间、墙、门抽象一个迷宫基本构件MapSite类。

阅读全文 »

Lua源码剖析(二)虚拟机

发表于 2021-05-16   |   更新于 2021-09-18 | 分类于 Lua学习 |
字数统计: 1.7k | 阅读时长 ≈ 8

一. 简介

  脚本语言,即动态语言,其相较于静态语言如C/C++/GO等,一大区别即不需要经过计算机的预处理、编译、汇编、链接,而是由虚拟机代为完成上述过程。虚拟机模拟真实的步骤,首先将脚本语言转化为特定的opcode(各脚本语言自行定义),接着放在虚拟机中逐个执行,模拟了CPU及内存的基本功能。Lua作为一门嵌入式语言,其虚拟机附着于宿主环境中而非单独存在,其核心问题主要包括:

  • 如何分析源代码文件生成Opcode
  • 如何执行Opcode指令
  • 如何保存整个执行环境
阅读全文 »

LuaJIT计算相关代码性能指引

发表于 2021-05-16   |   更新于 2021-09-15 | 分类于 Lua学习 |
字数统计: 657 | 阅读时长 ≈ 2

一. 前言

  本文为luajit作者所写文章Numerical Computing Performance Guide的译文,属于个人记录。

阅读全文 »

Lua源码剖析(一)基本数据结构

发表于 2021-04-04   |   更新于 2021-09-18 | 分类于 Lua学习 |
字数统计: 995 | 阅读时长 ≈ 5

一. 简介

  Lua是一种脚本语言,在游戏、嵌入式等领域有着众多应用。本系列文章会沿着基本数据结构、Lua虚拟机、Lua环境、gc回收、Lua特色等方面来分析Lua的实现,从而做到对其语言充分的了解。

阅读全文 »

函数返回值的坑

发表于 2021-01-17   |   更新于 2021-01-26 | 分类于 编程随笔 |
字数统计: 2.4k | 阅读时长 ≈ 12

一. 简介

  最近有同学问为什么函数返回值选择返回对象指针而不是对象,所以就此展开来深入分析一下。

阅读全文 »

不一样的hello world

发表于 2021-01-08   |   更新于 2021-01-15 | 分类于 编程随笔 |
字数统计: 960 | 阅读时长 ≈ 3

一. 简介

  最近学习了一些C内联汇编的知识,简单的尝试了一下,发现里面有很多有趣的东西,分享如下。首先说明,本文的内联使用仅为一个小例子,并不规范,另外32位和64位有着较大区别,本文基于64位Ubuntu16.04环境编译。

阅读全文 »

Linux操作系统学习笔记(番外篇二)解密虚拟内存0x400000以下的地方

发表于 2020-12-19   |   更新于 2020-12-19 | 分类于 Linux操作系统内核学习 |
字数统计: 777 | 阅读时长 ≈ 2

一. 前言

  最近看CSAPP时,对以前没有仔细注意的一处知识盲区产生了兴趣,所以进行了深入研究,并写下此文一记录。

阅读全文 »

Linux操作系统学习笔记(三十一)Docker

发表于 2020-12-07   |   更新于 2021-01-14 | 分类于 Linux操作系统内核学习 |
字数统计: 1.2k | 阅读时长 ≈ 5

一. 简介

  本文介绍Docker容器实现的三大技能:namespace, cgroup和rootfs,以此希望能从本质上剖析容器,并理解其工作机制和工作中可能会遇到的问题。

阅读全文 »

Linux操作系统学习笔记(番外篇)QEMU

发表于 2020-12-07   |   更新于 2021-01-01 | 分类于 Linux操作系统内核学习 |
字数统计: 1.2k | 阅读时长 ≈ 6

一. 简介

  突然发现前文忘了写如何编译运行Linux内核并进行修改、调试,所以这里临时补上。主要使用QEMU搭建虚拟机,并在其基础上下载内核并编译从而实现内核调试。

阅读全文 »
12…5
Ty Chen

Ty Chen

47 日志
9 分类
76 标签
GitHub E-Mail
Friends
  • Stanleylsx
© 2020 — 2022 Ty Chen | Site words total count: 187.6k 粤ICP备20071543号
你是来访的第 位同学 访问次数: 次