Bo2SS

Bo2SS

Linux

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 主机名,已可免密登录 又是绿 :) 两步走⭐ 【生成密钥对…
《Linux入门及使用》笔记汇总
掌舵:宿船 传送门 揭开 Linux 操作的神秘面纱 开启 vim 下的编程之旅 Linux 基础知识 命令系统 基本系统 系统信息的获取 Shell 编程基础 文件与目录、AWK 数据提取、软硬连接、线性筛、SED 复习总结🔚 [Task001] SSH 连接…
cover
cover

10 《Linux入门及使用》复习总结

vim 基本使用 快速跳转 行首:0 [^ 有效行首] 行末:$ 文件开始:gg 文件末尾:G 任意行:12G—— 跳转到 12 行 复制 拷贝 剪切 多行操作 删除 x:删除一个字符 d 2dd:从当前行删除 2 行 d2G:删除第 2 行到当前行…
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover

9 数据提取、软硬连接、线性筛、SED

数据提取操作 | 命令 | 功能 | 命令 | 功能 | |:----:|:----|:----:|:----|:----:|:----|:----:|:----| |cut | 切分 | grep | 检索 | |sort | 排序 | wc | 统计字符、字数、行数 | |…
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

回”家“问候 -- SSH连接Linux后的友好显示

实验环境:Ubuntu18.04 远程服务器 + WSL2 本机 在实现上述功能的基础上,还添加了【实时股票数据、上次登录时间、本月共使用时间】,有一定的容错性【Shell 判断、API 调用失败返回默认值】,还有一些可尝试功能,见文末【历史上的今天、拒绝的拜访者…
Ownership of this blog data is guaranteed by blockchain and smart contracts to the creator alone.