作者: 马文杰

Magic

61 篇文章

忠实的Windows用户逃离到Ubuntu计划,Acer:“拖出去,八十杖!”
准备对我这台旧电脑系统由Windows更换到Ubuntu系统,我的笔记本的型号:acern20c12   笔记本参数:Acer_n20c12参数   对Ubuntu的兼容性: 处理器:Intel Core i5-1135G7 是一款常见的处理器,Ubuntu对其有良好的支持。 内存:16GB LPDDR4X 内存完全兼容Ubuntu。 存储:512GB SSD 也能很好地支持Ubuntu。 显示屏:14英寸,1920×1080分辨率的显示屏在Ubuntu下通常能正常工作。 显卡:Intel Iris Xe Graphics 在较新的Ubuntu版本中有良好的支持,可能需要安装额外的驱动程序以获得最佳性能。 无线网络:802.11a/b/g/n/ac/ax (WiFi 6) 通常在Ubuntu下也能正常工作,但可能需要安装额外的驱动程序。 接口:Thunderbolt 4, USB 3.2, HDMI等接口在Ubuntu下通常能正常工作。     注意: Acer Swift 3 (SF314-59-59PN) 的硬件配置与Ubuntu系统有良好的兼容性。安装Ubuntu时,使用最新的LTS版本(Ubuntu 22.04 LTS)。     主打一个说装就装 我超级喜欢这个风格 感受:开机非常快,用着很丝滑,心情是愉快的,终于不用再看Windows桌面了,以后可以用命令行纵横整个系统了,权限直达操作系统,完全自由; but,用了一天之后,需要安装一些软件,我从一些平台买的课程需要看,还有qq和微信需要登录,好家伙,都没有Linux的版本,Windows的很多软件也都没有Linux版本,也有替代方案,需要虚拟机或者winme之类的东西,尝试…
【OS】11 – 实模式到保护模式(中)【从16位代码段进入到32位代码段,从实模式进入到保护模式】
【OS】11 - 实模式到保护模式(中)【从16位代码段进入到32位代码段,从实模式进入到保护模式】 gitee仓库传送门 保护模式的编程 从16位代码段进入到32位代码段,从实模式进入到保护模式; inc.asm ; Segment Attribute DA_32 equ 0x4000 DA_DR equ 0x90 DA_DRW equ 0x92 DA_DRWA equ 0x93 DA_C equ 0x98 DA_CR equ 0x9A DA_CCO equ 0x9C DA_CCOR equ 0x9E ; Selector Attribute SA_RPL0 equ 0 SA_RPL1 equ 1 SA_RPL2 equ 2 SA_RPL3 equ 3 SA_TIG equ 0 SA_TIL equ 4 ; 描述符 ; usage: Descriptor Base, Limit, Attr ; Base: dd ; Limit: dd (low 20 bits available) ; Attr: dw (lower 4 bits of higher byte are always 0) %macro Descriptor 3 ; 段基址, 段界限, 段属性 dw %2 & 0xFFFF ; 段界限1 dw %1 & 0xFFFF ; 段基址1 db (%1 >> 16) & 0xFF ; 段基址2 dw ((%2 >> 8) & 0xF00) | (%3 & 0xF0FF) ; 属性1 + 段界限2 + 属性2 db (%1 >> 24) & 0xFF ; 段基址3 %endmacro ; 共 8 字节 lo…
如果遇到裁员
来自github一篇文章,引用到此处,感激作者:极客学伟 希望 你们的职业生涯永远不会遇到裁员,希望你们所在的部门善待员工,也希望你们的公司遵纪守法。但是,如果你们不幸遇上这种事,我也希望你们知道该如何对应。 劳动法 这是劳动法的网址:https://www.gov.cn/flfg/2007-06/29/content_669394.htm 。 我觉得这是每位劳动者都需要了解的法律。 当企业想裁员可能会无所不用其极,很多人会受不了公司的PUA或各种威逼利诱接受了0赔偿或者N或者N+1的条件离开,在协议解除的离职合同上签了字,当你签了字,法律也不会保护你。 当然,如果自己能接受,也未尝不可。 但是我想告诉你的是,只要你没有犯特别大的错,法律规定的赔偿标准是2N。一般来说,拿到2N需要走法律途径。而且年终奖,如果走法律途径,大概率也能争取得到。 所以你自己计算下省心拿走 N+1 离开 和 走法律途径拿 2N+年终 两者数额的差距,就能知道自己该采取哪种应对措施。所有低于 N+1 方案都是耍流氓。 什么是“犯特别大的错” 看劳动法的第39条和第40条。其中容易中圈套的在 "严重违反用人单位的规章制度的" 和 "劳动者不能胜任工作,经过培训或者调整工作岗位,仍不能胜任工作的;" 有些公司会因为员工没按时提交周报说员工“严重违反”了规章制度,那就去找公司的规章制度里哪一条规定了。以此类推。 “不胜任工作“,找公司的规章制度,什么标准是不胜任,而不是你的领导说你不胜任。即便真的不胜任了,需要给你培训,再次指定合理标准进行考核。即便二次考核也不幸没达到标准,也是N+1走人。 如果想走法律途径维权 下面是我之前在一些律师群里收集到的应对方法,分享给你们。 注意:文档内容已…
shell脚本|系统版本和当前时间输出到文件,并同时显示在终端
#!/bin/bash # 获取系统版本信息 system_info=$(uname -a) # 获取当前时间 current_time=$(date) # 指定输出文件 output_file="system_info_and_time.txt" # 将系统版本和当前时间输出到文件,并同时显示在终端 echo "System Information: $system_info" | tee $output_file echo "Current Time: $current_time" | tee -a $output_file echo "Information has been written to $output_file" | tee -a $output_file # 将系统版本和当前时间输出到文件 #echo "System Information: $system_info" > $output_file #echo "Current Time: $current_time" >> $output_file #echo "Information has been written to $output_file"
解决vmware的ubuntu的虚拟你屏幕太小/无法适配的问题(亲测可行)
我的虚拟机ubuntu10.0一直用的很丝滑,耐造,今天打开之后就萎缩了。。。 之前是更新的VMware Tool工具,重启一下就好啦,今天这么操作似乎行不通了,尝试了几个方式之后,记录一下有效的处理方式。     1、首先,在Ubuntu虚拟机中打开终端。 2、在终端中输入以下命令来安装Open-VM-Tools: sudo apt-get install open-vm-tools 这将安装VMware工具的开源版本,用于优化虚拟机的性能和功能。(亲测可行) 3、安装完成后,重新启动虚拟机 sudo reboot 其实步骤到这里已经可以了,搞定这个问题,如果你的虚拟式是个难搞的家伙,那就继续尝试   4、虚拟机重新启动后,尝试调整屏幕分辨率。在VMware菜单栏上选择“虚拟机”->“显示”->“自动调整大小”。 5、如果屏幕分辨率仍然不正确,可以尝试手动调整。在Ubuntu虚拟机中,点击右上角的设置图标,选择“显示设置” 6、在显示设置中,可以选择合适的分辨率来调整屏幕大小。如果没有合适的选项,可以尝试添加自定义分辨率, 7、完成后,应用更改并重新启动虚拟机。   注意:完成设置之后一定要重启虚拟机哦!!   文章参考: 1.vmware的ubuntu的虚拟你屏幕太小 2.VMware下Ubuntu虚拟屏幕太小,如何增大? 3.VMware虚拟机ubuntu显示屏幕太小解决办法
【OS】09 – 主引导程序控制权的转移【fat表加载loader并跳转执行,boot使命结束】
  参考:【OS】09 - 主引导程序控制权的转移   实验1 代码写完之后,发现boot已经超出了512字节,怎么办呢? 代码重构:删除部分的push和pop代码,这是为了保证不会影响关键寄存器的值。   代码调整后,再次make通过;打印加载出来的文件内容。     code org 0x7c00 ;补上三个字节 jmp short start nop ;栈的起始地址(定义栈空间) define: BaseOfStack equ 0x7c00 BaseOfLoader equ 0x9000 ;最后要把目标程序加载到这个地址处,fat表加载到这个地址的前面 RootEntryOffset equ 19 ;根目录区的逻辑扇区地址,是从逻辑第19扇区开始的 RootEntryLength equ 14 ;目录文件项占用了14个扇区 EntryItemLength equ 32 FatEntryOffset equ 1 FatEntryLength equ 9 header: BS_OEMName db "D.T.Soft" BPB_BytsPerSec dw 512 BPB_SecPerClus db 1 BPB_RsvdSecCnt dw 1 BPB_NumFATs db 2 BPB_RootEntCnt dw 224 BPB_TotSec16 dw 2880 BPB_Media db 0xF0 BPB_FATSz16 dw 9 BPB_SecPerTrk dw 18 BPB_NumHeads dw 2 BPB_HiddSec dd 0 BPB_TotSec32 dd 0 BS_DrvNum db 0 BS_Reserved1…
git
git手册 ################################ 工作流程 常用命令 ################################ # MR: 发现问题,处理问题 -> 解决冲突 提交pull request # CR: 代码审查,code reviw # 工作流程 # // git工作区 - git暂存区 - 本地代码仓库 - 远程仓库 # 常用指令 # git branc // 查看本地代码分支(本地默认产生master分支,其它分支需要自己创建) git branch -r // 查看远程分支 git pull // 拉取最新代码 git status // 查看当前状态 git log // 查看git提交日志 git branch // 查看本地分支 git branch -vv // 查看本地分支和远程分支的追踪关系 ################################ 当需要pull更新代码的时候 ################################ // 方法一: git stash // 把本地的修改全部缓存起来 git pull // 拉最新的代码 git stash pop // 把刚才缓存的代码播放出来,肯定会产生很多冲突 // 方法二: 本地代码就没了,比较危险 git reset --hard HEAD^ //把本地代码强制更新到上一次的版本然后再git pull拉仓库最新代码 ################################ 同步更新 代码冲突 ################################ 1. 打开代码,修改所有冲突 2. git add XXX / git comm…
HTTP/HTTPS/SSH
HTTP和HTTPS,SSH协议都属于应用层协议: HTTP:超文本传输协议 HTTPS:安全的超文本传输协议, 在HTTP协议基础上加入了SSL协议保证安全传输 SSH:安全外壳协议 0x01 HTTP&HTTPS   1.1 简介 HTTP&HTTPS主要应用于Web浏览器和网站服务器之间传递数据,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。而HTTPS为了数据传输的安全,在HTTP协议的基础上加入了SSL协议,SSL协议依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。   1.2 HTTP和HTTPS的主要区别: 一: HTTPS协议需要申请CA证书,一般免费的证书很少,需要交费; 二: HTTP是超文本传输协议,信息是明文传输,HTTPS是具有安全性的SSL加密传输协议; 三: HTTP和HTTPs使用的是完全不同的连接方式,用的端口号也不一样(HTTP: 80 HTTPS: 443); 四:HTTP协议的连接简单,是无状态的,HTTPS协议是由SSL+HTTP协议构成的可进行加密传输,身份认证的网络协议,比HTTP协议安全。     0x02 SSH SSH协议为建立在应用层基础上的安全协议,SSH是目前较可靠的,专门为远程登录会话和其他网络服务提供安全性的协议,并且用SSH协议传输的数据是经过压缩的,加快数据传输的速度。SSH提供两种级别的安全验证,一: 基于口令的安全验证;二: 基于密匙的安全验证。   2.1 基于口令的安全验证 只要你知道自己的…
【OS】08 – 突破512字节的限制(下)【Memcpy、FatVec:通过Fat表加载文件到内存】
参考:【OS】08 - 突破512字节的限制(下)   0x01 Memcpy 1.1 code Memcpy函数完成并测试 org 0x7c00 jmp short start nop define: BaseOfStack equ 0x7c00 BaseOfLoader equ 0x9000 RootEntryOffset equ 19 RootEntryLength equ 14 EntryItemLength equ 32 FatEntryOffset equ 1 FatEntryLength equ 9 header: BS_OEMName db "D.T.Soft" BPB_BytsPerSec dw 512 BPB_SecPerClus db 1 BPB_RsvdSecCnt dw 1 BPB_NumFATs db 2 BPB_RootEntCnt dw 224 BPB_TotSec16 dw 2880 BPB_Media db 0xF0 BPB_FATSz16 dw 9 BPB_SecPerTrk dw 18 BPB_NumHeads dw 2 BPB_HiddSec dd 0 BPB_TotSec32 dd 0 BS_DrvNum db 0 BS_Reserved1 db 0 BS_BootSig db 0x29 BS_VolID dd 0 BS_VolLab db "D.T.OS-0.01" BS_FileSysType db "FAT12 " start: mov ax, cs mov ss, ax mov ds, ax mov es, ax mov sp, BaseOfStack mov ax, Roo…
【OS】07 – 突破512字节的限制(中)【主要内容:内存比较函数 MemCmp 和根目录区查找函数 FindEntry 】
原理参考:【OS】07 - 突破512字节的限制(中)   0x01 验证1:内存比较函数 MemCmp 1.1 code ;@ ;目的: 验证MemCmp函数 ;参考此函数调用即可 org 0x7c00 jmp short start nop define: BaseOfStack equ 0x7c00 ;start from here start: mov ax, cs mov ss, ax mov ds, ax mov es, ax mov sp, BaseOfStack ; test MemCmp mov si,MsgStr mov di,Target mov cx,MsgLen call MemCmp cmp cx,0 jz lable jmp last lable: mov bp,MsgStr mov cx,MsgLen call Print last: hlt jmp last ; ds:si --> source ; es:di --> destination ; cx --> length ; ; return: ; (cx == 0) ? equal : noequal MemCmp: push si push di push ax compare: cmp cx, 0 jz equal mov al, [si] cmp al, byte [di] jz goon jmp noequal goon: inc si inc di dec cx jmp compare equal: noequal: pop ax pop di pop si ret ; es:bp --> string address ; cx --> string len…