Operating system 为什么目录列表包含当前(.)和父(…)目录?

每当我使用readdir之类的函数列出目录的内容时,返回的文件名还包括“.”和“.”。我怀疑这些只是文件系统中的普通链接,因此无法与实际文件区分开来,但我始终必须将它们过滤掉,因为它们不是我列出的目录中的实际对象。像readdir这样的函数包含它们是否有充分的理由?某些操作系统或文件系统是否包含更多或不同的虚拟文件名?除了用“.”和“.”进行字符串比较外,还有更好的方法过滤掉它们吗 更新:谢谢大家的回答。我想我一直认为像/和..这样的事情仅仅是可以通过搜索和替换来处理的约定。我觉得让它们成为文件

Operating system 为什么可以';DMB是否依赖操作系统缓冲池?

Stonebraker的论文()解释说,“从缓冲池管理器获取块的开销通常包括系统调用和核心到核心的移动。”忘记缓冲区替换策略等吧。我唯一要问的是引用的 我的理解是,当DBMS想要读取块x时,它会发出一条公共读取指令。这与任何其他请求读取的应用程序都没有区别 我不是在寻找一般的答案(我得到了答案,并且阅读了论文)。我寻求所描述问题的详细答案。 请参见操作系统磁盘i/o必须通用化,以适用于各种情况。DBMS有时可以使用针对自身需求进行优化的通用性较差的代码来获得显著的性能 DBMS有自己的缓存,因此

Operating system MMU和TLB未命中

假设如下。我有一个虚拟内存系统,有一个单级分页,我有一个MMU,TLB是由软件控制的 好的。。假设我是一个进程,我想在虚拟地址vaddr的RAM中读一个字 因此,CPU给MMU vaddr,MMU检查TLB中是否有一个条目包含(假设)vaddr的5个最高有效位。如果它在那里。。。一切正常,它计算物理地址,一切正常 现在。。假设它不在TLB中。在这种情况下,MMU会发出中断(页面错误)。 好啊现在我是页面错误的处理者 在PBR(页基址寄存器)中,我有页表的起始地址。 我的问题在这里。这个地址是物理

Operating system 为什么移动操作系统是';仍然与供应商有联系吗?

现代移动电话自30多年前问世以来已经取得了长足的进步。尤其是智能手机,它本质上是微型个人电脑,即使速度稍微慢一点,也能做同样的事情。那么,如果手机已经跟随了个人电脑的脚步,为什么他们的软件没有呢?为什么我不能在手机上安装最新版本的Android,就像在PC上安装最新版本的Windows或Ubuntu一样?这仅仅是一个营销决策(市场隔离,如果你想要一个不同的操作系统,就必须购买一部新手机,等等),还是有一些根本性的问题阻碍了旧的操作系统+驱动程序模式?可能是因为不需要它。手机就像烤面包机。几乎没有

Operating system 分页:基本、分层、哈希和反转

关于操作系统和分页表,似乎有4种通用的方法来分页和分页表 基本-存储页码和偏移量的单页表格 分层-将虚拟地址分解为多个部分的多层表 散列-一个散列页表,通常包括映射到同一条目的多个散列 反向-逻辑地址还包括PID、页码和偏移量。然后使用PID查找表中的页面,并将表中的行数添加到偏移量中,以查找主存的物理地址。(粗略的,可能是可怕的定义) 我只是想知道每种方法的优缺点是什么?看起来basic是一种更简单的方法,但也可能会占用更多的内存空间来获得更大的地址空间。 还有什么?构建可用页面模型的关键是最

Operating system 操作系统的比较是如何进行的?

一个人怎么能说一个操作系统比另一个更好 i am asking specially about mobile OS. because people says i-phones are better then android phone or blackberry mobile. i ask you how phone can be compare with OS... 这都是关于硬件的。不是吗。如果硬件足够好,那么它的设备将永远是好的。正当因为操作系统只是维护系统调用并以有效的方式使用系统资源

Operating system 哪一个更好?线程或进程

假设你有3个给定的任务。您可以使用进程或线程运行它们。我指的是3个不同的进程或组合它们并运行3个不同的线程。你更喜欢哪一个?为什么 我告诉他,若我将使用一个进程,那个么当它完成时,我将使用一个进程,然后我将与另一个进程交换。假设一个任务占用4个字节的内存,那么通过这种方式,我只需要4个字节就可以完成任务。但是如果我在一个进程中使用3个线程,那么我必须使用12个字节。然后他告诉我假设你有很多空间,你更喜欢哪一个 任何其他解释都会有帮助。实际上,基于过程的方法通常更可靠。如果进程共享大部分数据和代码

Operating system 应用程序32/64位和操作系统32/64位

我想知道以下几点: 32位应用程序能否在32位操作系统下运行 32位应用程序能否在64位操作系统下运行 64位应用程序能否在32位操作系统下运行 64位应用程序能否在64位操作系统下运行 谢谢。是的。如果不是直接的(案例3很难),则通过仿真/虚拟化 是的,当然 对 没有 是的,当然 也许你应该阅读一些关于计算机、CPU和x86体系结构的一般知识。1)是的 2) 对 3) 否(如上所述,没有运行虚拟机或模拟或其他功能) 4) 对 有一些阅读资料可以帮助您解释原因:)是的 对 不 对 在32位系统

Operating system 特权级别实现

我了解,一般来说,cpu可以在两种模式中的一种模式下运行: 一种高级权限模式,允许访问硬件中的“安全”区域;另一种低级权限模式,在访问其余cpu功能时使用 我还了解到,存在某种形式的保护机制,强制执行只有操作系统才能在处理器处于高级特权模式(有时称为环0)时在处理器上运行,并且当任何用户空间进程正在运行时,处理器处于低级特权模式(环3) 我的问题是: cpu如何区分在0环模式下运行的操作系统进程和在3环模式下运行的用户空间进程?有什么机制可以确保用户级进程永远无法获得环0权限级别?这取决于处理器

Operating system 从逻辑地址到物理地址的转换

我有一个家庭作业的问题,我有点困惑如何开始。我必须将逻辑地址0,4,9,15,30转换为物理地址。我在网上查过,但没有找到类似的例子。我发现了一些问题,但给出的信息大不相同,比如给我每个逻辑地址的页索引和偏移量。下面是问题,我做了第1部分,给出了m=32和n-3。在正确的方向上提供帮助将是伟大的 上面的页表结构几乎无法描述,它没有提供基本的细节。尽管我会尽力帮助你。 但是,我假设这些值是物理地址,它们可能是 我们必须考虑以下细节: 地址空间:32字节 总页数:4 页面大小:8字节 寻址:1字节

Operating system Ti.UI.Tray的使用

有人能解释一下Ti.UI.Tray的用途吗?我想创建一个系统托盘应用程序,在更新时显示通知,当用户关闭窗口时,它进入系统托盘而不是退出,用户通过显式选择退出来关闭应用程序。Ti.UI.Tray可以用于此吗?如果没有,是否有其他方法为每个windows、osx和linux平台制作tidesdk系统托盘应用程序查看此问题:

Operating system 在mult-icore机器上查找执行时间

我正在准备竞争性考试,我有一个操作系统问题。 我不知道如何解决它。请帮帮我 Q-) 一个程序在单处理器上执行需要160秒,而在单处理器上只需要64秒 4芯多核。在64核机器上执行时间的最佳估计是什么?我认为这与编程没有严格的关系(您可能会在上发现这更相关,但我将尝试回答它) 答案将完全取决于您对执行时间与核心数量的建模方式。您可以将执行时间建模为与核心数量成反比。例如,我使用了以下模型: 其中t是以秒为单位的时间,n是核数,c(可能表示开销)和k(a因子)是常数 同时解决 得到k=128和c

Operating system 如何跟踪操作系统请求的内存引用?

我正在研究页面替换算法。 为了测试算法,我试图分析操作系统请求内存(页面)的模式。 我应该如何跟踪这些内存请求(虚拟) 在ReactOS的情况下,将挂钩添加到。你想分析哪个操作系统?我正在寻找Linux和Windows。我正在使用Ubuntu 14.04和Windows 8?

Operating system 操作系统及其与字长的关系

假设RAM大小为4GB,表示2^32字节和64位操作系统。 所以字的大小是64位=2^3字节。 所以RAM中的单词数是2^32/2^3=2^29个单词。 所以,如果系统是字可寻址的,则只需要29位来寻址内存。那么64-29=35位在做什么呢?一个64位操作系统理论上可以访问超过1600万TB的RAM。有了4GB,该操作系统无法充分发挥其潜力,因此这些多余的位不会被使用。如果操作系统试图读/写超过给定RAM的数量,将返回未定义的结果。那么,为什么要浪费所有这些碎片呢 将超过1600万TB的RAM输

Operating system 我应该在64位操作系统和32位JVM上运行哪个版本的SWT?

我正在运行一个64位的Windows7 我正在32位JVM上执行Eclipse RCP应用程序 我应该使用哪个版本的SWT?32位还是64位?32位。启动器(.exe)将查找已安装的32位Java版本,您的JVM就是这个版本。32位。启动器(.exe)将查找安装的Java的32位版本,即JVM。如果您使用的是Eclipse RCP,则SWT代码包含在RCP中,整个RCP必须是32位。它取决于什么,我的问题是使用哪个版本的SWT。在JVM上还是在平台上?没有“完整的RCP”,swt可能会被提取到一

Operating system 如何在qemu中查看嵌套页表条目?

在qemu中,如果我让我的操作系统(或虚拟机监控程序)虚拟化一个来宾操作系统,是否有任何命令可以打印嵌套的页面表条目,就像我们通过“info pg”命令打印本机页面条目一样 或者有没有办法从主机页表中推断出嵌套的页表条目?QEMU使用KVM虚拟化来宾CPU。您可以在KVM模块中的_direct_map函数中打印嵌套页表项。我的设置中不使用KVM。我使用qemu只是为了模拟amd phenom处理器,以便测试我的系统,该系统由托管linux来宾的虚拟机监控程序组成。现在我感兴趣的是查看由虚拟机监控

Operating system GRUB错误13:自定义内核上的可执行文件格式无效或不受支持

我正在努力学习操作系统开发,并开始基于它构建自己的内核 当我使用bochs GRUB加载内核时,会抱怨: error 13: invalid or unsupported executable format 我正在使用的文件: 加载器 link.ld bochsrc.txt menu.lst 要执行的命令: nasm -f elf32 loader.s ld -T link.ld -melf_i386 loader.o -o kernel.elf genisoimage -R -b boot/

Operating system 多级反馈队列调度是如何工作的?

我一直在读里奇的《操作系统:合并UNIX和Windows》第4.3章关于调度的内容。我很难理解这个调度算法是如何工作的,因为我的测试和我的导师有点矛盾 下面是一个示例问题: 2个多级反馈队列,1个CPU -Time quantum is 5ms for both queues -At time t=0 process P1(8ms) arrives -At time t=2 process P2(7ms) arrives -At time t=6 process P3(10ms) arrives

Operating system 这些术语在谈论“是否”时的含义相同;“内核模式”;及;用户模式;?

我目前正在学习内核模式和用户模式,看起来每个教程都使用了不同的术语,我不确定它们是否在谈论同一件事 这些术语的意思相同吗 内核模式-系统模式-特权模式-监控模式-安全 模式-非限制模式 这些术语的意思是一样的吗 普通模式-用户模式-限制模式 它们的意思大致相同,在非正式场合也可以用作同义词,但在某些程度上确实不同。就像英语中的许多单词一样 摘自Andrew S.Tanenbaum的《现代操作系统》第四版。2-3: 大多数计算机有两种操作模式:内核模式和用户模式。操作系统是最基本的软件,在内核模式

Operating system 新的英特尔处理器KPTI错误。浮点计算会出现哪种减速?

一些媒体报告称,在英特尔处理器中发现了一个漏洞,允许用户模式进程访问内核模式内存: 据了解,该缺陷存在于现代英特尔处理器中 在过去十年中制作。它允许正常的用户程序–从 web浏览器中JavaScript的数据库应用程序–辨别 在某种程度上,受保护内核内存区域的布局或内容 (修复)的效果仍在进行基准测试,但我们仍在努力 从5%到30%的大致数字来看,速度会减慢, 取决于任务和处理器型号 在修复错误后,我希望多核浮点计算的速度会减慢多少?据我所知,只有内核模式和用户模式之间的切换性能会受到影响。例如

Operating system 用户进程是否可以控制分页?

一个程序可能有一些数据,在需要时,它希望非常快地访问这些数据。我们称之为VIP数据。它希望降低当系统内存利用率较高时,VIP数据所在的内存页被交换到磁盘的可能性。它对此有什么样的控制/影响 例如,我认为它可以考虑页面替换策略,并试图影响OS不将VIP数据交换到磁盘。如果策略是LRU,则程序可以定期读取VIP数据,以确保页面始终是最近访问的。一个程序也可以总共使用非常少的内存,这使得它的所有页面在运行时都可能最近被访问,因此VIP数据不可能交换到磁盘 它能对分页进行更明确的控制吗?这完全取决于操作

Operating system 链接标准动态库和自定义动态库是否有区别?

我不知道像libc这样的标准库是如何链接的,我使用的是MingW编译器。 我看到它的bin文件夹中没有libc.dll文件。那么libc是如何链接的呢? 编译器如何知道自定义库和动态库之间的区别?我们使用构建工具,因为它们是编译代码和创建可执行文件、可部署文件等的实用方法 比如说。假设您有一个大型java应用程序,它由数千个单独的源文件在多个包上分割而成。假设它有许多JAR文件依赖项,其中一些用于您开发的库,另一些用于可以从标准位置下载的外部库 您可以花费数小时手动下载外部JAR文件并将其放置在

Operating system 是否在页面错误期间更正除页面表以外的表?

我是操作系统的新手,对页面错误很好奇。 我正在读操作系统Concetp(第10版),上面写着: 处理页面错误遵循以下顺序 1. Trap to the operating system 2. Save the user registers and process state 3. Determine that the interrupt was a page fault 4. Check that the page reference was legal and determine the lo

Operating system 整个物理地址空间如何映射到虚拟地址空间?

我已经读到,在XV6中,每个进程的虚拟地址空间都映射了整个物理地址空间。这怎么可能呢 我已经读到,在XV6中,每个进程的虚拟地址空间都映射了整个物理地址空间。这怎么可能呢 通常,虚拟地址空间分为两个区域-用户空间(属于当前进程)和内核空间(所有进程相同)。然后将内核空间划分为更小的区域(内核的代码和数据、内存映射设备的区域等)。如果剩余的内核空间足够大,可以容纳整个物理地址空间,那么就没有问题(但这是极不可能的) 但是,;这可能不是XV6的实际功能。更可能的是,它只将物理RAM映射到内核空间(而

Operating system 堆栈溢出和缓冲区溢出有什么区别?

编程中堆栈溢出和缓冲区溢出的区别是什么?堆栈溢出特别指执行堆栈超出为其保留的内存时的情况。例如,如果调用一个递归地调用自身而不终止的函数,则会导致堆栈溢出,因为每次函数调用都会创建一个新的堆栈帧,堆栈最终将消耗比为其保留的内存更多的内存 缓冲区溢出是指程序写入超出为任何缓冲区(包括堆,而不仅仅是堆栈)分配的内存末尾的任何情况。例如,如果写入超过从堆中分配的数组的结尾,则导致缓冲区溢出。堆栈溢出是指线程的堆栈大小超过该线程允许的最大堆栈大小 缓冲区溢出是指将值写入程序当前未分配的内存中 堆栈溢出:

Operating system 当他们说操作系统需要修改时,虚拟化意味着什么?

我正在读一篇关于Xen的文章,Xen是一个虚拟机监视器。他们说,为了能够在Xen上充当来宾操作系统,操作系统需要进行一些修改。现在,对于像Linux这样的操作系统,我可以理解修改意味着什么,但是对于像Windows XP这样的操作系统,它意味着什么?我的意思是,XP是封闭源代码专有操作系统,对吗 意思完全一样。这更难,因为信息来源不广泛。请注意,当Xen与硬件虚拟化结合使用时,不再需要进行修改。它的意思完全相同。这更难,因为信息来源不广泛。请注意,当Xen与硬件虚拟化结合使用时,不再需要进行修改

Operating system 如何决定a“是否;设备“;是否需要操作系统

如何确定“设备”是否需要操作系统(嵌入式操作系统) 这是一个一般性的面试问题。 有什么想法吗? 谢谢大家。在我看来,如果需要在该设备上运行多个应用程序,它应该有一个操作系统。否则这将是一种浪费。根据我的经验,基本上使用的是操作系统 管理设备上的资源,如调度任务、分配资源等 抽象掉一些底层硬件接口,如线程处理、中断处理等 如果需要这些函数中的任何一个,那么最好使用操作系统。当然,在所有情况下,都需要上述两种功能的某种形式。但是在简单的设备中,编写特定的函数可能比尝试将操作系统移植到设备更容易。

Operating system 虚拟内存的分页或分段,哪个更好?

大多数操作系统对虚拟内存使用分页。为什么会这样?为什么不使用分段?只是因为硬件问题吗?在某些情况下,一个比另一个好吗?基本上,如果你必须选择其中一个,你会选择哪一个,为什么 为了便于讨论,我们假设它是一个x86。像windows和Linux这样的操作系统同时使用分段和分页。进程的虚拟内存首先被划分为若干段,然后每个段由许多页组成。操作系统首先进入特定段,然后在该段中定位特定页面以访问地址。注意,有时使用段来隔离进程。摘自:galvin的操作系统概念 问题之一 分段允许进程的物理地址空间是非连续的

Operating system 多级寻呼操作系统

我在今天的考试中遇到了这个问题: 假设您有一个38位逻辑地址的计算机系统,页面大小为16K,每页表项4字节 逻辑地址空间中有多少页?假设我们使用两级分页,并且每个页表都可以完全放在一个框架中 对于上述系统,给出逻辑地址位的分解,清楚地指示偏移位、页表索引位和页目录索引位的数量 假设我们有一个32MB的程序,整个程序和所有必要的页表(使用两级分页)都在内存中。程序(包括其页表)使用了多少内存(以帧数计) 我如何着手解决这样一个问题?到目前为止,我一直认为页面大小=帧大小,但这种情况下不会发生 以

Operating system 简而言之,BIOS与DOS

基本输入输出系统[BIOS]和磁盘操作系统[DOS]之间的主要区别是什么 这两个应用程序都有中断,我真的很困惑 在投票否决我之前,我在谷歌上搜索了这个问题,但没有找到答案,所以请回答我,因为我真的很想了解其中的区别。维基百科没有什么不能告诉你的:而且……维基百科没有什么不能告诉你的:对于初学者来说,DOS是一个操作系统(如windows、linux等)但是以前使用过(在windows计算机中使用命令提示符,您会知道它是如何使用的)。它安装在硬盘上,并在系统启动后运行 但是,当我们打开电脑电源时,

Operating system 64位程序的点?

似乎我下载的每个程序都有32位和64位版本。甚至像记事本克隆这样的小程序 据我所知,与32位相比,64位程序只能访问超过4 Gig的内存,那么为什么我们需要64位版本的低资源消耗程序呢?在Intel/Amd体系结构上,64位应用程序可以访问比经典x86更通用的寄存器。即使由于使用64位整数而不是32位整数,代码的各个位自然会更大,但额外的寄存器实际上可以通过减少寄存器杂耍的需要来减少代码大小 即使64位记事本没有意义,也最好使用本机OS api调用(例如64位版本),而不必通过兼容/转换层调用3

Operating system iret和int指令的堆栈

中断导致CPU将EFLAGS、CS和IP寄存器保存到“堆栈”上,iret指令将其弹出。这个堆栈在哪里?CPU是如何知道它的(我假设某个地方有一些寄存器)?我想要肮脏的细节。我正在研究基于Unix的系统。比如说Linux 中断不会导致操作系统保存EFLAGS、CS和IP。CPU自己做这件事,没有操作系统 第一个堆栈由复位后CPU上执行的第一个代码设置。通常,首先要做的是ROM BIOS代码。它设置SS和SP寄存器以指示堆栈位置。然后,引导加载程序可以(通常是)更改/移动堆栈,然后内核可以再次移动堆

Operating system 为什么每个CPU都需要单独的内核堆栈

实际上,许多操作系统设计为每个线程有一个内核堆栈,或者每个CPU至少有一个内核堆栈。但是对于一个操作系统来说,每次进程陷井时内核都会被锁定,似乎没有必要为每个CPU设置单独的内核堆栈。由于内核(具有自己的堆栈)只允许单CPU访问,因此CPU不应同时处于内核模式。在前一个CPU离开并清理内核堆栈之前,CPU始终处于阻塞状态,即使在嵌套陷阱情况下也是如此。那么,在这种情况下,在这样的操作系统中需要多个内核堆栈?谢谢。你说得对;在这种情况下,只要您具有可靠的多核锁定功能,多个内核堆栈就没有用处 出于以

Operating system 操作系统文件系统块大小?

最近我的家庭作业中有一个问题,我很难理解。我试着在网上搜索,但似乎找不到任何答案 “有些文件系统使用两种块大小来分配磁盘存储, 例如,4-Kbyte和512字节的块。因此,一个6kbytes的文件可以 可以分配一个4 KB的块和四个512字节的块。 讨论此方案与以下文件系统相比的优势: 使用一个块大小进行磁盘存储分配。“ 那么,街区越多越好 有什么帮助吗?提前感谢。您不能有大量不同的块大小,这将是实施和管理的地狱。我还认为一些硬件限制限制了您可以使用的大小 现在的问题是,除非您希望存储的数据量正

Operating system 在运行时,所有二进制代码都会留在内存中吗?

假设我执行一个二进制: /a.out 那么a.out中的所有代码是否每次都会加载到内存中?如果这个二进制文件太大(比如几GB),而进程地址空间只有4GB怎么办 我问这个问题的原因是因为我发现一种说法,即代码膨胀会降低基于虚拟内存的系统的性能。然而,我从未见过程序需要从磁盘分页代码的情况。这种情况何时会发生?您应该找到并阅读一些关于虚拟内存的好描述,特别是关于请求分页的部分。简单的回答是“不”。在大多数现代系统中,一个程序在启动时没有任何可执行文件加载到内存中,特定的页面只有在执行时被代码引用时才

Operating system 动态禁用和启用超线程

我想知道,从理论上讲,在BIOS中禁用超线程后是否可以启用超线程,反之亦然。事实证明,如果超线程被禁用,它们仍然会作为禁用的核心显示在ACPI的MADT表中。这是MADT的一个示例输出,处理器有4个内核,每个内核有2个线程,并且禁用了超线程 CPU 0: APIC_ID=0 ACPI_PROCESSOR_ID=0 ENABLED=1 CPU 1: APIC_ID=2 ACPI_PROCESSOR_ID=1 ENABLED=1 CPU 2: APIC_ID=4 ACPI_PROCESSOR_ID=

Operating system 在循环调度算法中,调度器如何决定时间量的时间?

在循环调度算法中,调度是基于特定程序的时间量完成的。调度程序将如何提前决定/设置特定进程集的时间量 还有哪种作业调度算法是最优的?调度算法取决于操作系统。除非运行游戏,桌面系统通常有足够的内核/CPU空闲,以避免任何类型的分时CPU调度,RR或其他。@我知道调度算法依赖于操作系统,但假设内核有限,并且调度是基于分时的,那么时间量将如何设置。

Operating system 如何在操作系统级别禁用密码的使用?

我想禁用以下各项的使用: TLS_DHE_RSA_与_AES_256_GCM_SHA384 TLS_DHE_RSA_,带AES_128_GCM_SHA256 TLS_RSA_与_AES_256_GCM_SHA384 TLS_RSA_和_AES_128_GCM_SHA256 我想了一下: 我试过这样的方法: HKEY\U LOCAL\U MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Hashes 将DWOR

Operating system 减少消息队列内存需求的常用技术?

我正在修改实时操作系统调度程序以及消息队列、管道、信号量和互斥体的工作方式 有谁能为我提供一种通用技术来降低实时操作系统中消息队列的内存需求吗?我在网上看过,但还没有找到有用的东西 谢谢你可能想把这个想法充实一点;否则,最好的答案就是讽刺性的回答,比如“发送较小的消息”、“发送较少的消息”、“您是否尝试过压缩”等等。。我不想说这些,但还有其他人可能会说。好吧,如果您可以使用消息结构/类的固定大小的池队列,该队列在启动时全部分配在一个数组中,包含一个单字节链接,并且您可以接受256或更小的池大小,

Operating system 为什么不将所有指令设置为特权?

我们只将部分指令设置为内核指令的主要关注点是什么? 安全?速度或者别的什么?如果所有指令都有特权,那么所有指令都必须在特权模式下运行,系统上就没有安全性。如果所有指令都有特权,那么所有指令都必须在特权模式下运行,系统上就没有安全性

Operating system 如何从ballerina内部调用OS命令

我想使用openSSL生成一些证书,并通过REST提供它们 我找不到在linux中调用openssl来生成证书并在ballerina中使用它的方法 没有找到插件 或者有没有其他方法可以在ballerina中生成证书。ballerina/crypto模块中对密钥库有一些支持 这将通过模块在ballerina-1.0.0发行版中提供。API将如下所示 # Executes an operating system command as a subprocess of the current proce

Operating system Can';不理解页面地址扩展的过程

我试图弄清楚页面地址扩展是如何工作的,并阅读了维基百科中的一些参考资料,最后的图片是PAE的经典结构。但我还是不明白为什么这能奏效 以下是我的问题 Dir.pointer条目的大小是多少?32位 有人能解释一下PAE将32位虚拟地址映射到36位物理地址的细节吗 (Q1):每个目录指针条目是64位的,这些条目与页面目录条目和页面表条目大致共享相同的布局。大致上,这是因为尽管它共享布局,但保护和内存类型位的解释却截然不同 在经典的32位+PAE中,cr3寄存器包含第31..5位中第一个目录指针项的物

Operating system 操作系统内核是否为自己使用虚拟内存?

操作系统内核是否使用虚拟内存,或者操作系统内核的某些部分是否可以驻留在硬盘中 哪个操作系统内核 有些操作系统内核使用虚拟内存,有些则不使用。许多现代操作系统甚至不再有虚拟内存。VM只适用于C、C++或类似的指针不安全语言,但目前使用的大多数语言和平台都是指针安全的,例如JavaScript、Python、Ruby、PHP、Perl、java、CLI减不安全,因此不再需要VM了。广义地说,答案是肯定的。虚拟内存是操作系统的一个基本部分,用于保护一个进程不受另一个进程的影响,并使进程产生一种错觉,以

Operating system 用户到内核的映射是什么?

什么是一对一映射?多对一映射?多对多映射 这些用户/内核映射是什么?它对系统有什么影响?多对一将多个用户级线程映射到一个内核线程。 一对一将一个用户级线程映射到一个内核线程。 多对多将多个用户级线程映射到多个内核线程 多对一由用户空间中的线程库管理,因此非常高效;但是,如果线程进行阻塞系统调用,整个进程将被阻塞。此外,由于一次只能有一个线程访问内核,因此多个线程无法在多处理器上并行运行 一对一通过在进行阻塞系统调用时允许另一个线程运行,提供了比多对一模型更多的并发性;它还允许多个线程在多处理器上

Operating system 上下文切换和操作系统调度算法

因此,按照我的理解,当一个进程切换到另一个进程时,内核将保存进程的当前状态,然后OS调度程序算法将选择下一个进程进行交换。该算法本身是否不需要加载,因为它是一个过程?在执行切换时,内核本身是否使用CPU时间?如果是,内核如何访问上下文切换中的CPU周期 提前感谢。将调度程序视为用于决定下一步运行哪个进程的算法。当进程从核心中切换出来后,它可以在同一个核心上运行,并将选择要切换的下一个进程。感谢您的回复,那么调度器本身是否是一个必须切换才能选择下一个进程的进程?

Operating system sahi未在sahi仪表板上显示chrome浏览器选项

Sahi未在Sahi仪表板上显示chrome浏览器选项。我的操作系统是XP。有人告诉我这背后的原因吗 打开文件夹“\sahi\u pro\userdata\config”下的“browser\u types.xml” 在浏览器_types.xml上添加以下内容并保存文件: 铬 铬 chrome.png $LOCALAPPDATA\Google\Chrome\Application\Chrome.exe --用户数据目录=$userDir\browser\chrome\profiles\sahi

Operating system 驱动程序开发人员从哪里获得硬件规格?

这可能是一个愚蠢的问题,但操作系统/驱动程序开发人员究竟从哪里获得他们想要编写驱动程序的设备的硬件文档?详细的硬件规范很少由制造商免费提供,那么开源操作系统开发人员如何获得所有必要的文档?我知道我的问题非常笼统——如果我专门问Linux,回答会更容易吗?并非很少。上次我自己写了一个驱动程序,而不是为雇主写的,我联系了硬件生产公司,向他们索要白皮书。美国分公司拒绝了我的请求——我在他们的台湾办事处找了个人,他们交了文件。不过,现在,驱动程序通常不是由设备制造商自己编写的。Linux现在是一个真正的

Operating system 我们如何在虚拟机中对虚拟机进行持续集成测试?

大多数云提供商授予在KVM或Xen中运行的实例,这通常或总是意味着实例的所有者不具有从零开始创建OS映像所需的对虚拟机监控程序的低级访问权限 这让我觉得像Bochs这样的东西可能对在云/CI环境中构建和测试OS映像很有用,像这样的模拟器应该能够在VM中运行,但速度会慢一些。虽然作为一个优势,Bochs会让你测试不同的硬件,但我不认为这是一个要求在这个时候。 这个问题有没有标准的解决方案?有很多开源发行版和操作系统——我想知道有哪些更优雅的方法可以满足这一要求(即使它们不是真正的标准) 请注意,容

Operating system MBR十六进制转储的用途是什么?使用它可以做什么?

我使用我的Ubuntu操作系统(MBR扇区)执行以下命令获取复制字节转储 dc3dd if=/dev/sda of=x cnt=1 ssz=512 hash=sha256 mlog=hashes hexdump x > hex_x 我使用以下命令将其转换为hextump dc3dd if=/dev/sda of=x cnt=1 ssz=512 hash=sha256 mlog=hashes hexdump x > hex_x 我收到这样的输出 我有一些hep专家来分析这个垃

Operating system 内存管理中的分页和绑定方案

内存管理中的分页概念可以用于哪些绑定方案? 通过绑定,我指的是将逻辑地址映射到物理地址。据我所知,有三种类型的绑定方案编译时绑定、加载时绑定和执行时绑定。编译中不涉及分页,因此我们可以排除这种情况 加载时间可能有不同的含义——将程序的对象模块和库组合起来,生成一个没有未解析符号的可执行映像程序,或者将程序传输到内存中,以便它可以执行非unix unix称之为加载,其他一些系统称之为链接编辑 Unix加载/链接编辑实际上是编译的一部分,因此根本不涉及分页。此操作确实需要知道它可以分配的有效程序地址

上一页   1   2   3    4   5   6  ... 下一页 最后一页 共 51 页