标签: systems-programming

以编程方式在Windows中重新启动USB设备

我正在开发的一些软件需要USB设备(我作为SerialPort与USB-to-UART桥接器进行交互).

有时,在计算机从休眠状态重新启动后,设备未被检测到,我无法再通过其串行端口向设备写入或读取设备.必须具有对设备的读/写访问权限.

我不能依赖用户采取任何行动(物理或其他),所以我需要一种方法以编程方式重启设备.

我应该如何使用.NET框架以编程方式在Windows XP/Vista/7中重新启动USB设备?

.net windows usb systems-programming hardware-programming

5
推荐指数
1
解决办法
3614
查看次数

a.out中的数据部分

这是我执行的一个简单代码

int a;
int main()
{
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

然后用gcc编译后我做了

size a.out
Run Code Online (Sandbox Code Playgroud)

我在bss和数据部分得到了一些输出...然后我将我的代码更改为此

int a;
int main()
{
    char *p = "hello";
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

再次当我在编译后通过大小a.out看到输出时,数据部分的大小保持不变.但是我们知道字符串hello将在只读初始化部分中分配内存.那么为什么数据部分的大小保持相同?

c unix operating-system systems-programming

5
推荐指数
2
解决办法
922
查看次数

使用C++进行低级系统编程

我已经使用C++一段时间了,我开始对低级系统编程感兴趣,比如驱动程序和东西.甚至某种原始操作系统也可能是非常有趣的项目!

我不知道我可以从哪里开始.是否有任何不太具挑战性的事情我可以开始使用C++我应该尽量避免像性能关键代码中的异常一样?

我的当前操作系统是Windows 7,如果这很重要的话.

c++ systems-programming

4
推荐指数
1
解决办法
2万
查看次数

在Linux和Windows下实现信号?

我不喜欢在编程中使用信号.我主要使用C/C++和Python.但我很想知道如何在Linux(或Windows)中实际实现信号.

如果有任何注册信号需要处理,操作系统是否在信号描述符表中的每条CPU指令后检查?或者是流程经理/调度程序对此负责?

由于信号是异步的,CPU指令在完成之前是否会中断?

linux open-source operating-system linux-kernel systems-programming

4
推荐指数
1
解决办法
2017
查看次数

c - 了解管道/FIFO 是否已满

我有一个作为 RDWR(用于通信进程-进程)和管道(进程-线程)打开的 fifo,我如何理解何时达到管道或 fifos 限制?当我尝试写入超过 64 KB 时,它只是在 write() 中等待。

c pipe named-pipes systems-programming

4
推荐指数
1
解决办法
1143
查看次数

为什么 Linux 内核复制实现使用 AC 标志?

执行copy_user_enhanced_fast_string在Linux内核复制常规用途stac/clac在收尾和序言。perf annotate显示以下代码:

stac 
cmp  $0x40,%edx
jb   0xffffffff91281f5c
mov  %edx,%ecx
rep  movsb %ds:(%rsi),%es:(%rdi)
xor  %eax,%eax
clac
retq              
Run Code Online (Sandbox Code Playgroud)

AC 是“对齐检查(或访问控制)标志”。

是什么原因stac/clac在例程中使用?如果我们简单地删除它们会产生什么后果?

linux x86 assembly linux-kernel systems-programming

4
推荐指数
1
解决办法
162
查看次数

3
推荐指数
4
解决办法
2万
查看次数

scala是否足以用于本机,系统和内核编程?

  1. 是否有编译器将Scala代码转换为本机代码?
    • 有没有发布的编译器?
    • 是否正在开发编译器?
    • 如果没有这样的编译器,是否可以编写一个?
      • 如果不可能:原因是什么?
  2. Scala是否足以进行系统编程?
  3. Scala是否足以用于内核编程(例如编程设备驱动程序)?
  4. 如果Scala不足以进行系统或内核编程:原因是什么?

我知道Scala已经成为Java平台的目标.据我所知,Scala也适合.Net/C#中间代码的东西.恕我直言Java和.Net平台相对类似,这并不奇怪.

Java和.Net平台提供的服务或某种基础结构可能在系统和内核开发中缺失.

  1. Java平台的哪些功能对于Scala是必不可少的还是必需的,这些功能在系统/内核开发中缺失?
  2. 通过将现有解决方案集成到系统/内核开发或未来开发中,可以涵盖哪些功能/要求?

compiler-construction kernel scala native systems-programming

3
推荐指数
1
解决办法
876
查看次数

编译器如何识别其主机的硬件?哪个组件?

我的老师告诉我,中间代码对于所有系统都是通用的,但是编译器的一个组件会根据运行代码的系统/环境使其不同.有人可以解释一下吗.

c c++ compiler-construction systems-programming intermediate-code

3
推荐指数
1
解决办法
113
查看次数

malloc什么时候不调用mmap?

我正在大学学习操作系统,我的任务之一是查找malloc()不会导致mmap()系统调用的情况。

我使用stracelinux 实用程序来跟踪系统调用,但在我的情况下,mmap()每次使用时我都会看到系统调用malloc()

malloc()一直打电话mmap()还是不打电话?

谢谢

c c++ linux systems-programming

3
推荐指数
1
解决办法
154
查看次数