问题标签 [low-level]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
programming-languages - 哪些编程语言不被视为高级语言?
在信息学理论中,我一直在听到和阅读有关高级和低级语言的信息。
然而我不明白为什么这仍然相关,因为除了今天使用的汇编程序之外没有任何(相关的)低级语言。
所以你得到:
低级
- 汇编器
绝对不是低级
- C
- 基本的
- FORTRAN
- COBOL
- ...
高水平
- C++
- 红宝石
- Python
- PHP
- ...
如果汇编程序是低级的,你怎么能把例如 C 放到同一个列表中。我的意思是:与汇编程序相比,C 语言非常高级。即使对于 COBOL、Fortran 等也是如此。
- 那么,如果汇编程序真的是唯一的低级语言,为什么每个人都不停地提到高级和低级语言呢?
nosql - (非关系)DBMS 设计资源
作为一个个人项目,我希望构建一个基本的 DBMS。我已经阅读了 Elmasri 和 Navathe (5ed) 中的相关部分,但可以使用更集中的文本——更实用、更注重细节的内容,并提供真实世界的建议——因为 E&N 的深度如此之深。
问题是我想使用新颖的非关系数据模型。虽然很多 E&N 都很棒——特别是索引实现细节——但更高级的 DBMS 实现只针对关系模型。
如果可以的话,我想推迟一段时间盯着 DBMS 源,直到我有了更好的基础。有任何想法吗?
linux - 为什么 Linux 不通过 TSS 使用硬件上下文切换?
我阅读了以下声明:
x86 架构包括一种称为任务状态段 (TSS) 的特定段类型,用于存储硬件上下文。尽管 Linux 不使用硬件上下文切换,但它仍然被迫为系统中的每个不同 CPU 设置一个 TSS。
我想知道:
- 为什么 Linux 不使用硬件支持来进行上下文切换?
- 硬件方法不是比软件方法快得多吗?
- 有没有利用硬件上下文切换的操作系统?窗户使用它吗?
最后,一如既往,感谢您的耐心和回复。
- - - - - -添加 - - - - - - -
http://wiki.osdev.org/Context_Switching得到了一些解释。
像我这样困惑的人可以看看它。8^)
pointers - 获取当前进程堆的起始地址?
我正在探索系统的较低级别的工作原理,并且想知道如何malloc
确定堆的起始地址。堆是在一个恒定的偏移量还是有某种调用来获取起始地址?栈会影响堆的起始地址吗?
c# - 原始 ssh 连接(低级)
作为一个小型(大型)爱好项目,我已经着手在 C# 中制作一个(非常原始的)ssh-2.0 客户端。这是为了探索和更好地理解 DH 并帮助我提高对加密的熟悉度 :)
根据 RFC 4253,我已经开始了这样的初始连接:
(省略不相关的 vars 预设等)
正如您在 RFC 4253 的第 16 页上看到的,我预计会提供 10 个名称列表。这些只是假设是字符串,还是我如何标记每个列表的开始/结束(只需换行 \n)?我什至在正确的轨道上吗?(请记住,在此之后我将处理 DH 和加密。我的问题仅基于迄今为止的初始接触)。
欢迎和赞赏任何帮助或意见,
PS:我知道图书馆存在,但这与我的项目无关。
macos - 如何在 Mac OS X 上捕获显示驱动程序绘图命令?
我试图找到一种简洁优雅的方法来捕获 Mac OS X 上的所有显示驱动程序绘图命令,以便在进入物理显示驱动程序之前,我可以看到在屏幕上绘制的任何内容。简单的位图不会这样做——我需要实际的绘图命令,而不仅仅是关于哪些区域发生了变化的通知。
这可能是 Quartz 绘图命令或纯粹的 OpenGL,只要足够详细,我可以使用任何 API。
有什么办法可以进入 Quartz Extreme 来捕捉它的 OpenGL 命令之类的吗?
提前致谢!
optimization - 现代 Intel 或 AMD CPU 上的分散写入速度与分散读取速度?
我正在考虑通过采用线性数组并将每个元素写入另一个数组中的任意位置(从 CPU 的角度来看是随机的)来优化程序。我只做简单的写入而不是读回元素。
我知道经典 CPU 的分散读取可能会非常慢,因为每次访问都会导致缓存未命中,从而导致处理器等待。但我认为分散写入在技术上可能很快,因为处理器不等待结果,因此它可能不必等待事务完成。
不幸的是,我不熟悉经典 CPU 内存架构的所有细节,因此可能会出现一些复杂情况,这也可能导致速度很慢。
有没有人试过这个?
(我应该说我正在尝试反转我遇到的问题。我目前有一个线性数组,我从中读取任意值 - 分散读取 - 由于所有缓存未命中,它非常慢。我的想法是我可以将此操作转换为分散的写入以显着提高速度。)
multithreading - 缓存一致性有什么意义?
在像 x86 这样提供高速缓存一致性的 CPU 上,从实际角度来看,这有什么用处?我知道这个想法是让一个核心上完成的内存更新立即在所有其他核心上可见。这是一个有用的属性。但是,如果不是用汇编语言编写,就不能过分依赖它,因为编译器可以将变量赋值存储在寄存器中,而永远不会将它们写入内存。这意味着仍然必须采取明确的步骤来确保在其他线程中完成的事情在当前线程中是可见的。因此,从实际的角度来看,缓存一致性实现了什么?
low-level - 读取系统时钟值?
启动计算机时是否有独立运行的虚拟/系统时钟?
我们如何读取该值?
macos - 杀死WindowServer的低级热键kext?
我需要制作一个功能非常简单的 kext。每当按下组合键时,kext 应该终止一个恰好是“WindowServer”的进程
由于问题的性质,它必须是一个 kext。它必须独立于系统的 UI,所以如果它挂断,我可以按下这个组合并重新启动它。
有人可以提供一个起点吗?就像如何制作密钥处理程序一样?