操作系统
huangkangying
这个作者很懒,什么都没留下…
展开
-
浅谈FreeRTOS中vTaskSuspendAll()/xTaskResumeAll()临界区问题
在阅读FreeRTOS的源代码的时候,我无意中发现vTaskSuspendAll()这个函数居然没有进行临界区的保护,一开始我以为是个bug, 但仔细看一下注释,似乎这个问题已经被反馈给了作者,而作者是有意为之,这样做并没有任何问题。但其最终的原因是什么呢?我们先来看下FreeRTOS中vTaskSuspendAll()函数的具体实现:void vTaskSuspendAll( void ){ /* A critical section is not required as the varia原创 2020-11-24 21:47:26 · 9502 阅读 · 3 评论 -
ARM MMU入门简介
最近用到ARM MMU相关的东西,发现下面这篇博客写得不错:https://blog.csdn.net/gameit/article/details/13169515原创 2019-06-09 16:44:14 · 1064 阅读 · 0 评论 -
ubuntu16.04 vnc server最简安装方式
由于ubuntu 16.04采用unity图形化界面,安装其它的vnc server需要安装很多的依赖库,甚至有的需要改成gnome或xfce桌面。这样的改动风险很大,有时会导致以前的很多程序不能正常使用。x11vnc依赖很小,不需要改变unity桌面环境。下面的shell可以一键布署,简单好用。############################################ Ste...原创 2019-04-11 22:53:58 · 5500 阅读 · 0 评论 -
MacOS safe-rm configuration
在MacOS上安装safe-rm以防止意外删除重要的文件夹:brew install safe-rmecho alias rm=/usr/local/bin/safe-rm > ~/.bash_profile新建/etc/safe-rm.conf, 在里面写入要保护的文件:/private/Applications/Developer/Library/Network/System/U原创 2017-12-21 22:14:34 · 606 阅读 · 0 评论 -
Git socks5 代理设置
首先确认ip和端口,例如ip为127.0.0.1, 端口为1080, 打开终端,运行以下命令:git config --global http.proxy 'socks5://127.0.0.1:1080'git config --global https.proxy 'socks5://127.0.0.1:1080'查看:cat ~/.gitconfig发现是多了这两项配置[http]pro原创 2017-12-20 22:35:43 · 87636 阅读 · 1 评论 -
Windows Overlapped I/O详解
http://www.cnblogs.com/skyofbitbit/p/3650140.htmlI/O设备处理必然让主程序停下来干等I/O的完成,对这个问题有方法一:使用另一个线程进行I/O。这个方案可行,但是麻烦。 即 CreateThread(…………);创建一个子线程做其他事情。 Readfile(^…………);阻塞方式读数据转载 2017-06-23 10:56:01 · 13238 阅读 · 0 评论 -
Andoid NDK编程 2 - JNI签名规则
Andoid NDK编程 2 - JNI签名规则Posted on 2015-07-02 | In Android | http://zhixinliu.com/2015/07/02/2015-07-02-jni-rule/在上一篇文章中我们探讨了如何注册JNI的native函数,分为静态和动态两种注册方法。而在讨论静态注册的时候提到了要注意由java转载 2016-10-20 19:30:03 · 1676 阅读 · 0 评论 -
手把手教你写windows BAT
手把手教你写windows BAT最近工作中老是用到BAT文件,在此做一下小结。BAT文件中的变量设置变量 语法:SET 变量名=变量值 说明:%变量名% 将可使用变量例: SET A="Hello" ECHO %A%取消变量 语法: SET 变量名= 说明:%变量名%将变为空例: SET A=显示变量 语法: SET 变量名 说明: 将展示所有以变量名开头的变原创 2016-07-15 18:35:38 · 702 阅读 · 0 评论 -
简述RPL, DPL, CPL的区别与联系
简述RPL, DPL, CPL的区别与联系基本概念RPL: Requested Privilege Level, 请求特权级 DPL: Descriptor Privilege Level,描述符特权级 CPL: Current Privilege Level,当前特权级区分RPL和CPL可能有很多博客或者文章上面都有讲到RPL和CPL,那么这两者到底有什么区别和联系呢: 1. RPL存在于段原创 2015-04-09 22:12:40 · 3705 阅读 · 0 评论 -
BIOS到Linux Boot的原理
Table of Contents1. BIOS启动的原理2. BIOS对boot操作系统最至关重要的工作:3. Linux Boot的过程:1 BIOS启动的原理BIOS启动的原理:所有x86的CPU都设计成为加电进入16位实模式状态, CS=0xFFFF,IP=0x0000。这样启动时的第一条指针所在的地址就是 0XFFFF0.2 BIO原创 2015-03-16 20:52:13 · 2625 阅读 · 0 评论 -
bochs 2.2.6 编译和GDB调试
Table of Contents1 在ubuntu 10.04上面编译bochs 2.2.6遇到了一些编译问题1.1 修改源文件 symbols.cc1.2 安装如下package:1.3 config1.4 make1 在ubuntu 10.04上面编译bochs 2.2.6遇到了一些编译问题symbols.cc: At global scope原创 2014-10-03 22:30:03 · 1384 阅读 · 0 评论 -
我所认识的ACPI(1)
什么是ACPI?ACPI的全称是Advanced Configuration and PowerInterface。它是由早期的APM发展和改进起来的,其主要作用是为操作系统提供一套标准的电源管理接口。ACPI关键概念:经常听起别人谈到什么Gx State, Cx State, Sx State的, 听得我不知所云,后来看了ACPI的spec后,才有所了解, 先把图搞下来:原创 2012-08-10 22:21:02 · 6581 阅读 · 0 评论 -
MIT操作系统实验1-3
Part 3: The Kernel Exercise 8.Use Bochs to trace into the JOS kernel, and identify the exact point at which the new virtual-to-physical mapping takes effect. Then examine the G原创 2012-07-19 21:23:10 · 2786 阅读 · 0 评论 -
MIT操作系统实验1-2
2.1 BootloaderExercise 4.Set a breakpoint at address 0x7c00, which is where the boot sector will be loaded. Continue execution until that break point. Trace through the code inboot/boot.S,原创 2012-07-18 22:06:53 · 3011 阅读 · 1 评论 -
MIT操作系统实验1-1
MIT操作系统实验1-1lightwindhuangkangying@gmail.comPart1: PC Bootstrap1.1 Getting Started with x86 assemblyExercise 1.Read or at least carefully scan the entire PC Assembly Language book,原创 2012-07-18 21:44:55 · 3071 阅读 · 0 评论