Obsidian
基本 markdown 语法脚注hello world^长脚注 ^968640
高亮==高亮==
建立笔记与笔记之间的连接
形成知识网,可以使用左侧进行 graph view
内部链接
链接库中某篇笔记
输入 [[ 即可选择要链接的某篇库内文章:Obsidian和Typora之间的权衡
输入 # 可以选择链接文章某个段落:基本 markdown 语法
输入 ^ 可以选择链接文章某个文字段落:链接hello world
反向链接
具体显示了哪些笔记链接了当前笔记,哪些笔记提到了当前笔记的名字但并未进行链接在正文中提到了当前笔记的文件名,但没有链接当前笔记(没有用方括号括起来)
同 链接当前文件 一样在右侧边栏显示,可以将其转换为链接
在 Hexo 博客中插入本地图片
图片保存于同一目录下的文件夹中;
使用 Hexo3 支持的语法 {% asset_img example.jpg hello%} 进行插入图片;
缺点是无法在本地渲染图片
检索和管理
文件夹、标签、链接
点击左侧的 🔍 可以搜索文件夹、文件、链接等内容
在阅读视图里点击 front ...
VS2019 下 C++ 项目访问MySQL数据库
参考博客 MySQL数据库—VS019 C++访问MySQL_买代码的小猪猪的博客-CSDN博客](https://blog.csdn.net/weixin_49324123/article/details/116493884))
CMD 命令行窗口进入mysql数据库:
mysql -hlocalhost -uroot -p:
-hlocalhost:-h表示服务器名, localhost表示本地
-uroot: -u表示数据库用户名,root是MySQL默认用户名
-p: 为密码
1 配置
项目->属性->==平台为 x64==
项目 -> 属性 -> VC++ 目录
将所安装的MySQL目录下的 include lib文件夹目录分别输入包含目录库目录
链接器 -> 输入
将 MySQL 的lib目录下的 libmysql.lib文件名输入附加依赖项,只需输入文件名
将 lib 目录下的 libmysql.dll 文件复制 C:\Windows\System32目录下
2 C++ 中 MySQL 的基本操作一个对已创建的数据库 ...
SQL
SQL[toc]
什么是 SQL
访问和处理 **关系数据库 **的 计算机标准语言
编写程序时,只要涉及 操作关系数据库,就必须通过 SQL 完成
NoSQL: 非SQL的数据库,都不是关系数据库
1 关系数据库概述
为什么需要数据库
应用程序 需要保存用户的数据
随着应用程序功能越来越复杂,数据量也越来越大
读写文件并解析出数据,需要大量重复代码
从大量数据中 快速查询出 指定数据,需要复杂的逻辑
每个应用程序访问数据的接口不同,数据难以复用
数据库:专门管理数据的软件
应用程序通过数据库软件提供的接口来读写数据
数据库软件来管理数据如何存储进文件
```ascii ──────────────┐│ application │└──────────────┘ ▲│
││
read││write ││
│▼
┌──────────────┐│ database │└──────────────┘1234567891011121314151617181920212223242526## 数据模型* 数据库按照 **数据 ...
专题四设备驱动
完善例子中的字符设备程序,使之满足以下功能:
i.安装设备后从设备中读出字符串为你的学号;
ii. 设备支持每次写入字符不超过1024个,超过部分被丢弃;
iii. 用户可以读出最近写入到设备中的字符;
iv. 设备关闭前不能被多次打开;
v. 设备支持系统调用ioctl(int d, int req,…),req = 0x909090, 清除设备中写入的字符串;
自己编写测试程序,验证以上功能
提交内容: 测试过程截图
1 概念
操作系统中直接控制设备的程序
Linux 将设备看成是一种特殊的文件(设备文件)
字符型设备
块设备
Linux 打开读写或关闭设备文件时,在与设备驱动进行交互
2 设计
用户进程请求设备服务流程图
用户进程发出IO请求,系统将处理下传到VFS上
VFS 通过驱动程序提供的接口将任务分配到驱动程序
驱动程序根据需要,对设备控制器进行操作
设备控制器去控制设备
设备驱动程序设计
VFS 管理字符设备的接口:struct file_operations
重要的接口函数:open,read,write,release,i ...
专题三内核模块
实验要求:
题目一 编写一个内核模块; 编译该模块; 加载、卸载该模块;
题目二 用内核模块的方式为系统添加一个系统调用 具体要求同专题二
提交内容:
内核模块加载/卸载截图
评分标准: 至少完成题目一(60-80分) 自主完成题目二(90-100分)
1 内核模块概念
是一段可以 动态加入内核,并且成为内核一部分的代码
优点:
通过动态加载内核模块,使得在运行过程中扩展内核的功能
减小内核映像大小,增加系统灵活性
只需要修改内核,而不必重新编译整个内核
2 内核模块相关命令
加载内核模块:
#insmod module_name
卸载内核模块:
#rmmod module_name
或者 #modprobe -r module_name
查看系统已经加载的模块:
#lsmod
查看系统已经加载的模块信息:
#modinfo module_name
3 内核模块的编写,例子内核模块源代码:
12345678910111213141516171819202122#include<linux/init.h> //for modu ...
专题二系统调用
实验要求:
为Linux内核增加一个系统调用,并编写用户进程的程序来测试。
要求该系统调用能够完成以下功能:
(1) 该系统调用有1个整型参数,接收输入自己的学号;
(2) 若参数为奇数,则返回自己学号的最后5位。如你的学号为16130120101 ,则返回20101;
(3) 若参数为偶数,则返回自己的学号的最后6位。如你的学号为16130120102 ,则返回120102 。
提交内容为:
截图1: 运行结果
截图2:源代码
1 [知识点] 什么是系统调用系统调用Linux 的运行空间:内核空间 和 用户空间
逻辑上相互隔离
用户进程通常情况下 不允许 访问内核数据,也无法使用内核函数
内核 提供了 用户进程与内核进行交互的一组接口:用户进程可以通过这组接口来获得操作系统内核提供的服务
系统调用的作用
提供用户模式的进程和硬件设备的接口
保证系统的稳定和安全
实现多任务和虚拟内存
系统调用的分类
控制硬件
硬件资源 与 用户空间的抽象接口
读写文件:write/read
进程管理
保证系统中的进程能以多任务在虚拟内存环 ...
专题一内核编译
作业要求:
完成本专题教学内容中的验收测试题并提交验收材料。
验收材料要求:
新内核引导成功前:
\1. 执行命令:uname –a,提交截屏结果1
新内核引导成功后:
\2. 执行命令:uname –a,提交截屏结果2
\3. 进入目录/boot,执行命令:ls -l,提交截屏结果3
==tips:== 在创建虚拟机时,最好分配 50 GB 以上从磁盘空间,四个以上内核
最重要的是:分配 4 GB 以上的内存,防止在内存中死锁
最最重要的是:新版本的 Linux 内核make install安装后,不再需要手动引导内核!!!即不再需要配置 grub
1 [知识点]什么是 Linux 内核
操作系统的结构
操作系统:Kernel + Shell
Kernel的组成和功能:
Linux 发行版本和内核版本之间的关系:
例如教学视频中:Ubuntu10.04 = Kernel2.6.30 + SHELL + USERS APPLICATIONS
两者独立
本次课程设计我选择的发行版本是 Ubuntu20.04.20
...
创建进程、子进程和进程间通信
fork() 方法fork 原型:
pid_t fork(void)
fork的定义:
父进程在调用 fork 派生子进程,实际上相当于创建了一个进程拷贝
调用一次 fork() 会返回两次
一次:在调用该方法的进程中返回 子进程的 id
二次:在子进程中返回 0
若在调用该方法时返回 -1 则表示调用失败
根据 fork 的返回值判断当前进程是父进程还是子进程:
#include<stdio.h>
#include<unistd.h>
int main(){
pid_t pid = fork();
if(pid == 0){
printf("child\n");
}
else{
printf("father\n");
}
return 0;
}
进程间通信 IPCInter-Process Communication: 多个进程之间相互沟通的一种方法
管 ...
Django应用第二部分
该部分将建立数据库,创建第一个模型module, 并主要关注Django提供的自动生成的管理页面
数据库配置
mysite/settings.py: 包含了项目配置的python模块
一般,这个配置文件使用 SQLite 作为默认数据库
更换 数据库 ——[官方文档](编写你的第一个 Django 应用,第 2 部分 | Django 文档 | Django (djangoproject.com))
如果你想使用其他数据库,你需要安装合适的 database bindings ,然后改变设置文件中 DATABASES 'default' 项目中的一些键值:
ENGINE – 可选值有 'django.db.backends.sqlite3','django.db.backends.postgresql','django.db.backends.mysql',或 'django.db.backends.oracle'。其它 可用后端。
NAME – 数据库的名称。如果你使用 SQLite,数据库将是你电 ...
Django 应用第一部分
编写第一个 Django 应用,第一部分[官方文档](初识 Django | Django 文档 | Django (djangoproject.com))
目标:创建一个基本的投票应用
让人们 查看和投票 的公共站点
让开发者能 添加、修改、删除投票的管理站点
环境:
pycharm 2019
python 3.6
Django 3.2.1支持Python 和后续版本
创建项目
初始化设置:
生成Django项目需要的 设置项集合:数据库配置、Django 配置和应用程序配置
1django-admin startproject mysite(项目名)
需要注意的是,须提前将django-admin加入环境变量,因为使用的是 Pycharm Professional 所以可以一键创建Django项目
startproject 所创建的:
![image-20210507200938455](E:\LearningNotes\python\编写第一个 Django 应用,第一部分.assets\image-20210507200938455-1620389 ...