草庐IT

[自制操作系统] 第18回 实现用户进程(上)

目录一、前景回顾二、任务切换相关三、实现TSS四、运行测试 一、前景回顾  在上一回我们已经实现了键盘的驱动编写和环形缓冲区的实现,现在让我们来想这么一个问题:  一直以来我们的程序都在最高特权级0下工作,这意味着任何程序都和操作系统平起平坐,可以改动任何资源。如果不改变这种现状的话,某个不听话的程序甚至可以给操作系统致命一击,取而代之,那么后果将不堪设想。所以从本回开始,我们便要开始着手实现用户进程,让我们的操作系统看起来更安全一点。二、任务切换相关  下面的是我自己的一些见解。  如果让我来设计任务切换,比较简单的一种思路便是:  首先我们常说的任务,就是一个程序而已,程序在内存中被分为代

多商户商城系统功能拆解18讲-平台端商家售后

多商户商城系统,也称为B2B2C(BBC)平台电商模式多商家商城系统。可以快速帮助企业搭建类似拼多多/京东/天猫/淘宝的综合商城。多商户商城系统支持商家入驻加盟,同时满足平台自营、旗舰店等多种经营方式。平台可以通过收取商家入驻费,订单交易服务费,提现手续费,短信通道费等多手段方式,实现整体盈利。下面以likeshop多商户商城系统为例进行功能拆解,likeshop多商户商城系统可以实现快速部署,文档齐全,代码全开源,无加密,极易二次开发,助力企业以极低的成本上线平台电商业务。并且likeshop以其代码全开源,无加密的特性,极大的满足了平台运营发展过程中需要不断更新迭代的场景,完美支持后续扩展

多商户商城系统功能拆解18讲-平台端商家售后

多商户商城系统,也称为B2B2C(BBC)平台电商模式多商家商城系统。可以快速帮助企业搭建类似拼多多/京东/天猫/淘宝的综合商城。多商户商城系统支持商家入驻加盟,同时满足平台自营、旗舰店等多种经营方式。平台可以通过收取商家入驻费,订单交易服务费,提现手续费,短信通道费等多手段方式,实现整体盈利。下面以likeshop多商户商城系统为例进行功能拆解,likeshop多商户商城系统可以实现快速部署,文档齐全,代码全开源,无加密,极易二次开发,助力企业以极低的成本上线平台电商业务。并且likeshop以其代码全开源,无加密的特性,极大的满足了平台运营发展过程中需要不断更新迭代的场景,完美支持后续扩展

周而复始,往复循环,递归、尾递归算法与无限极层级结构的探究和使用(Golang1.18)

所有人都听过这样一个歌谣:从前有座山,山里有座庙,庙里有个和尚在讲故事:从前有座山。。。。,虽然这个歌谣并没有一个递归边界条件跳出循环,但无疑地,这是递归算法最朴素的落地实现,本次我们使用Golang1.18回溯递归与迭代算法的落地场景应用。递归思想与实现递归思想并非是鲜为人知的高级概念,只不过是一种相对普遍的逆向思维方式,这一点我们在:人理解迭代,神则体会递归,从电影艺术到Python代码实现神的逆向思维模式中已经探讨过,说白了就是一个函数直接或者间接的调用自己,就是递归,本文开篇和尚讲故事的例子中,和尚不停地把他自己和他所在的庙和山调用在自己的故事中,因此形成了一个往复循环的递归故事,但这

周而复始,往复循环,递归、尾递归算法与无限极层级结构的探究和使用(Golang1.18)

所有人都听过这样一个歌谣:从前有座山,山里有座庙,庙里有个和尚在讲故事:从前有座山。。。。,虽然这个歌谣并没有一个递归边界条件跳出循环,但无疑地,这是递归算法最朴素的落地实现,本次我们使用Golang1.18回溯递归与迭代算法的落地场景应用。递归思想与实现递归思想并非是鲜为人知的高级概念,只不过是一种相对普遍的逆向思维方式,这一点我们在:人理解迭代,神则体会递归,从电影艺术到Python代码实现神的逆向思维模式中已经探讨过,说白了就是一个函数直接或者间接的调用自己,就是递归,本文开篇和尚讲故事的例子中,和尚不停地把他自己和他所在的庙和山调用在自己的故事中,因此形成了一个往复循环的递归故事,但这

Ubuntu18.04.6 server 安装

Ubuntu18.04.6serverLTS安装对比Ubuntu18.04.2,Ubuntu18.04.6以后的版本安装页面都采用的新页面1、第一行安装Ubuntu2、语言选English;键盘布局选English(US)美式英语3、暂时不配置网络,continue4、代理;镜像源都默认下一步5、继续不更新6、勾选相应磁盘,勾选LVMgroup,如果不采用逻辑卷管理就不用勾选7、分区划分,这里默认(根)/划分了200G,光标移动到该处Edit(编辑),默认是ext4文件系统8、创建所需要的分区,如swap,/home9、划分配额以及挂载好了,Done10、创建用户账户;设置主机名;用户名,用户

Ubuntu18.04.6 server 安装

Ubuntu18.04.6serverLTS安装对比Ubuntu18.04.2,Ubuntu18.04.6以后的版本安装页面都采用的新页面1、第一行安装Ubuntu2、语言选English;键盘布局选English(US)美式英语3、暂时不配置网络,continue4、代理;镜像源都默认下一步5、继续不更新6、勾选相应磁盘,勾选LVMgroup,如果不采用逻辑卷管理就不用勾选7、分区划分,这里默认(根)/划分了200G,光标移动到该处Edit(编辑),默认是ext4文件系统8、创建所需要的分区,如swap,/home9、划分配额以及挂载好了,Done10、创建用户账户;设置主机名;用户名,用户

防微杜渐,未雨绸缪,百度网盘(百度云盘)接口API自动化备份上传以及开源发布,基于Golang1.18

奉行长期主义的开发者都有一个共识:对于服务器来说,数据备份非常重要,因为服务器上的数据通常是无价的,如果丢失了这些数据,可能会导致严重的后果,伴随云时代的发展,备份技术也让千行百业看到了其“云基因”的成长与进化,即基于云存储的云备份。本次我们使用Golang1.18完成百度网盘(百度云盘)接口API自动化备份上传功能,以及演示如何将该模块进行开源发布。百度网盘API接入授权如果希望golang服务可以访问并且上传用户的百度网盘,则需要经过用户同意,这个流程被称为“授权”。百度网盘开放平台基于OAuth2.0接入授权。OAuth2.0是一种授权协议,通过该协议用户可以授权开发者应用访问个人网盘信

防微杜渐,未雨绸缪,百度网盘(百度云盘)接口API自动化备份上传以及开源发布,基于Golang1.18

奉行长期主义的开发者都有一个共识:对于服务器来说,数据备份非常重要,因为服务器上的数据通常是无价的,如果丢失了这些数据,可能会导致严重的后果,伴随云时代的发展,备份技术也让千行百业看到了其“云基因”的成长与进化,即基于云存储的云备份。本次我们使用Golang1.18完成百度网盘(百度云盘)接口API自动化备份上传功能,以及演示如何将该模块进行开源发布。百度网盘API接入授权如果希望golang服务可以访问并且上传用户的百度网盘,则需要经过用户同意,这个流程被称为“授权”。百度网盘开放平台基于OAuth2.0接入授权。OAuth2.0是一种授权协议,通过该协议用户可以授权开发者应用访问个人网盘信

DTSE Tech Talk 第18期丨统计信息大揭秘,数仓SQL执行优化之密钥

摘要:华为云EIDTSE技术布道师王跃,针对统计信息对于查询优化器的重要性,GaussDB(DWS)最新版本的analyze当前能力,与开发者和伙伴朋友们展开交流互动,帮助开发者快速上手使用统计信息的自动收集功能。在本期《统计信息大揭秘——SQL执行优化之密钥》的主题直播中,我们邀请到华为云EIDTSE技术布道师王跃,针对统计信息对于查询优化器的重要性,GaussDB(DWS)最新版本的analyze当前能力,与开发者和伙伴朋友们展开交流互动,帮助开发者快速上手使用统计信息的自动收集功能。为何要重视统计信息收集?现阶段市场上的数据库产品,基本上都是基于CBO模型的优化器,在基于CBO模型的优化