Bo2SS

Bo2SS

操作系统

cover
cover
cover
cover
cover
cover
cover
cover

9 应用层协议

概述 网络应用程序的体系结构主要分为CS 结构和P2P 结构。 前者是客户端(Client)/ 服务端(Server)结构,如微信、QQ、游戏。 后者是端(Peer)到端结构,又叫对等体系结构,如迅雷、百度网盘。 进程通信时,没有明确的 C/S,发起者即为客户端…
cover
cover
cover
cover

8 计算机网络概论

OSI 7 层模型 注意每层对应的数据单元。 数据的封装 发送前,不断地加头部:报文👉报文段👉数据报👉帧 到达交换机,从帧头中找到路由器的地址 到达路由器,拆头部,加头部 当匹配到具体主机时,再不断地拆头部,得到数据 分组交换 VS. 电路交换 分组交换网络 通…
cover
cover
cover
cover
cover

1 尝尝鲜:从一个Hello到另一个Hello

环境:Windows 下的 Ubuntu 18.04 虚拟机 🎯目标:让自己的系统输出 "Hello OS" 下载源码 可在系统任意位置,打开终端执行以下命令,下载源码到虚拟机上 Copy git clone https://gitee.com/lmos/cosmos…
《操作系统实战45讲》笔记汇总
🎯: 洞悉 OS 运行机制与架构实现; 强化理解 Linux 核心技术; 系统级别的编程技巧; “保姆级” 代码注释及详解图。 👨:导师,彭东,网名 LMOS,Intel 傲腾项目关键开发者 🔗:查看课程 传送门 尝尝鲜:从一个 Hello 到另一个 Hello 心…
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover

7 Socket编程基础

套接字是什么?网络编程是做什么的? 了解 TCP/IP 五层模型、OSI 七层模型 类比 套接字 —— 快递员 运输层 —— 快递公司:TCP—— 某丰快递公司,UDP—— 某通快递公司 交通运输道路 —— 因特网 通讯地址 ——IP —— 运输层协议 —— 类…
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover

6 多线程编程基础

进程间通信复杂 [内存空间独立]、切换成本高 [时间局部性],所以发明了线程 线程 一个进程的分支 [pthread],本质上是一个轻量级的进程 通信方便,因为一个进程里的多个线程共享内存 切换成本低,因为内存是共享的,在切换线程时不需要置换缓存 pthread…
cover
cover
cover
cover
cover
cover
cover
cover

基于文件的进程间通信——用100个进程抢算累加和

设置一个并发度INS,表示要开的进程数量 使用这INS个进程,计算从start到end之间的数字累加和 start和end通过getopt解析命令行参数获取 Copy ./a.out -s 12 -e 24 输出一个整型结果:sum [注意] 主要涉及文件及进程相关操…
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover

5 进程间通信

IPC—— 进程间通信 —— 共享内存 —— 父亲生孩子之前约定好共享的数据位置 相关接口:shm* shmget 分配 System V 类型的共享内存段 [段式内存] [PS] System V 的通信方式,还在沿用;其启动方式已经被摈弃 man shmget 原型…
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover

git commit的-m原理实现

[类似 git commit -m "msg" 的功能] 使用 - m 选项时直接打印消息,未使用 - m 选项时自动打开 vim 供输入消息 详细说明 ① 当含有选项和选项参数 - m "first commit" 时 直接打印相关消息 ② 当没有 - m…
cover
cover

4 高级进程管理

进程调度 进程调度是一个内核子系统,用户管不了 进程调度的主要任务是决定哪一个就绪状态的进程先运行 就绪进程是非阻塞进程,已具备运行条件,不需要阻塞等待了 阻塞进程就是正在睡眠 [不占用 CPU] 的进程,需要内核唤醒的进程 三态模型 阻塞、就绪、运行 阻塞…
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover

Linux中ls -al的手动实现

实现与 Linux 原生命令【ls -al】类似的效果 需要的信息有:文件信息、连接数、用户名、组名、文件大小、修改时间、文件名 附加实现:文件排序、颜色美化、软连接显示 已实现 ls -al 的基本模板 思路流程图 获取命令行参数 捕捉 ls…
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover

3 多进程

什么是进程 进程是程序在内存中的镜像,是正在运行的程序,是程序的实例化,是一个复杂的集合体 包含开辟的内存空间、用户信息、组信息、权限、占用的资源、正在跑的代码、打开的文件等等 与之对应 ① 什么是程序 程序是编译好的可执行的二进制文件,放在磁盘上 就是一个普通文…
《网络与系统编程》笔记汇总
掌舵:宿船 传送门 课程介绍及命令行解析函数 文件、目录操作与实现 ls 的思路 阻塞与非阻塞 IO 多进程 高级进程管理 进程间通信 多线程编程基础 Socket 编程基础 计算机网络概论 应用层协议 [Task001] Linux 中 ls -al 的手动实现 [T…
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover

2 阻塞与非阻塞IO

理解两者的真正含义及区别,能回答以上问题 两者的字面意思 上班 阻塞:上班时堵车了,等或者使用其他方法,总之要去上班 非阻塞:上班堵车了,直接不去了 老妈让买酱油 阻塞:没有酱油了,问妈要不换别的,或者换别的买 非阻塞:没有酱油了,不买了 让小明写报告 阻塞…
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover

1 文件、目录操作与实现ls的思路

文件操作 【引入】之前学过的 cp、mv、cat 命令,都涉及到文件的读写 cp:读→写 mv:读→写→删 cat:读→写 上面这些步骤是如何实现的呢? 【底层操作,基于文件描述符】 open 打开或创建一个文件 [别名:openat、create] man 2…
cover
cover
cover
cover
cover
cover

0 课程介绍及命令行解析函数

[如何实现命令选项?可以想到主函数中的输入参数 argc、argv] getopt 函数 【命令行解析函数】 <unistd.h> → Unix Standard ⭐函数原型 int getopt(int argc, char * const argv…
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover

文件特殊权限的常用场景

实验环境:Ubuntu18.04 远程服务器 + WSL 2 本机 [版本一] [版本二] ⭐考察对文件权限【尤其是文件特殊权限】的理解 文件权限:参考《Linux 入门及使用》笔记汇总 ——3 Linux 基础知识 ——用户和组以及文件权限的修改 文件特…
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover

SSH免密登录的实现和本质思考

实验环境:Ubuntu18.04 远程服务器 + WSL 2 本机 在测过程中,你需要用到的数据在这里:测评服务的公钥 附加:免密登录的本质到底是什么? 【在本地测试】 ssh 主机名,已可免密登录 又是绿 :) 两步走⭐ 【生成密钥对…
Ownership of this blog data is guaranteed by blockchain and smart contracts to the creator alone.