
操作系统
liuwons
混,也是一种追求
展开
-
用nasm重写linux0.0磁盘引导程序boot.s
linux0.0实现了两个任务切换运行分别显示A和B,现将原来用as86编写的boot.s引导程序用nasm重新编写一遍。boot.s源代码如下:!! boot.s!! boot.s is loaded at 0x7c00 by the bios-startup routines, and moves itself! out of the way to address 0x原创 2012-05-06 22:42:19 · 20598 阅读 · 2 评论 -
Ubuntu下Chrome造成系统假死的解决方法
在64 bit Mint Linux下使用Chrome时,经常导致整个系统进行假死状态,图形界面下除了鼠标能动,什么也干不了,不过能够Ctrl + F1进行终端环境。在网上查了很久,有几种情况可能导致这种状况:Chrome中的某些插件Chrome的硬件加速显卡驱动逐一排查后找到我这的原因是Chrome的硬件加速。关掉硬件加速(hardware acceleration)后不再假死。参考链接:原创 2016-05-17 19:54:45 · 14168 阅读 · 0 评论 -
用WindowsAPI截屏并转换为RGB格式
在Windows下捕获屏幕图像可以有多重方法,比较简单可以调用第三方库,如Qt的屏幕截屏API就很容易调用。在这里介绍如何用Windows API实现截屏并转换成RGB格式存储。#include //最终f的内存布局为BGRA格式,需要保证buf长度足够(>w*h*4)void ScreenCap(void* buf, int* w, int* h){ HWND h原创 2015-05-13 09:06:43 · 23438 阅读 · 0 评论 -
Windows下通过写注册表的方式实现程序开机自启动
程序可以读取同目录下的config.ini文件中的配置来实现开机自启动。config.ini文件地格式实例如下:[Main]KeyName = testProcessPath = D:\bin\test.exe其中KeyName字段为写入注册表的表项名称(可以设置为程序名)ProcessPath为程序的完整路径程序的完整源代码如下。regedit原创 2014-05-23 12:32:10 · 22825 阅读 · 0 评论 -
Windows中openProcess函数返回ERROR_ACCESS_DENIED的解决方法
主要是权限不足引起的。需要提升程序的权限。具体提升方式参照以下文章:Windows程序权限提升原创 2014-05-21 11:12:44 · 26386 阅读 · 0 评论 -
为编写的Windows程序提升权限
1.要求以管理员身份运行 在vs工程属性中,Linker ---> Manifest File---> UAC Execution Level,选择requireAdministrator (/level='requireAdministrator')选项 2.在main函数开始时运行以下函数代码:BOOL WINAPI EnablePriv原创 2014-05-21 11:09:27 · 24959 阅读 · 0 评论 -
python调用dll中特定函数的两种方式(ctypes)
1.直接使用函数名,函数名可以用dependency walker等工具查看。import ctypesdll = CTYPES.CDLL("test.dll")res = test(3, 4)2.使用Ordinal,Ordinal可以用dependency walker等工具查看。import ctypesdll = CTYPES.CDLL("test.dll")res =原创 2014-04-18 10:28:51 · 23173 阅读 · 0 评论 -
关于编译后dll中的函数名
msvc在编译dll时,如果函数声明采用__declspec(dllexport) int add(int,int)的形式,dll中的函数名会是?add@@YAHHH@Z这种形式的。 如果使用如下这种声明,dll中的函数名才会和C++中的函数名一致,为add。extern "C"{DLLTEST_API int add(int, int);}原创 2014-04-18 10:23:34 · 20178 阅读 · 0 评论 -
Qt实现Windows远程控制
用Qt实现的Windows平台远程控制软件,包含源代码和编译后可以运行的程序,服务器端(被控端)为进程形式,客户端(主控端)为图形界面程序。客户端在连接时要设置服务器端的ip地址以及要显示的长度和宽度(不能超过服务器端屏幕分辨率)。原创 2014-04-30 23:29:16 · 35942 阅读 · 22 评论 -
Shell配置文件与Shell Script
1. /etc/profie 这是系统中最主要的Shell配置文件,也是系统登录时系统最先检查的文件。系统最主要的环境变量都定义在此。在文件的最后,它会检查并执行/etc/profile.d/*.sh的Script。 2.~/.bash_profile 这个文件是每位用户的bash环境配置文件,它存在于用户的主目录中。当系统执行/etc/profile后,就会接着读取转载 2012-09-14 13:30:03 · 19219 阅读 · 0 评论 -
用nasm重写linux0.00
linux0.00由两个文件组成:boot.s(引导代码),head.s(运行代码)。程序最终在屏幕上不断打印A(任务1)和B(任务2)以及C(系统中断处理)。 boot.s代码:bootseg equ 0x07c0sysseg equ 0x1000syslen equ 17start: jmp bootseg:gogo: mov ax,cs mov ds,ax mo原创 2012-07-17 21:32:31 · 20093 阅读 · 1 评论 -
Ubuntu中向菜单栏添加程序(脚本)
Linux中下载压缩包解压后得到的程序或者自己写的脚本在菜单栏中没有相应的选项,用起来可能不是很方便。 查看资料后得知菜单栏是通过管理/usr/share/applications/中的.desktop文件管理的。 查看此文件夹下的所有文件: 我们可以看到codeblocks的菜单像脚本文件,cat打开: 基本可以看出菜单项脚本的编写方式。原创 2012-05-31 12:34:52 · 19331 阅读 · 0 评论 -
Ubuntu中向菜单栏添加程序(脚本)
Linux中下载压缩包解压后得到的程序或者自己写的脚本在菜单栏中没有相应的选项,用起来可能不是很方便。 查看资料后得知菜单栏是通过管理/usr/share/applications/中的.desktop文件管理的。 查看此文件夹下的所有文件: 我们可以看到codeblocks的菜单像脚本文件,cat打开: 基本可以看出菜单项脚本的编写方式。原创 2012-05-31 12:33:38 · 19535 阅读 · 0 评论 -
利用NASM编写引导程序
在学习操作系统时,为了编写引导程序,花了不少时间寻找合适的16位汇编器。 gas支持很多格式,但是语法太烦而且不能很好地支持实模式8086的16位编程;MASM不错但是不支持二进制输出格式,而且老式MASM和LINK与我的64位Windows7不兼容;as86能很好地支持16进制输出,但是我在网上找不到下载资源!最后,只能利用NASM了,NASM能支持很多格式,但是语法与以前学的MASM原创 2012-05-06 19:57:02 · 22222 阅读 · 0 评论