标签: operating-system

如何在旧台式计算机上构建小型操作系统?

这可能是徒劳的,因为我知道编写一个操作系统是无法忍受的复杂(尤其是自己).

  • 我不希望构建下一个linux或Windows.

  • 我知道这将是可怕的,而且越野车,并且不会起作用,但那很好.

我想在Assembly,C和(某些)C++中自己编写所有内容.

这是一个未来的项目,因为我现在忙于其他一些事情并且没有立即的时间,但我想我现在会问它,所以也许我可以得到很多答案,它可以构建并成为这种方法的有用资源(我所见过的其他一切都涉及构建minix,使用现有的引导程序,在虚拟引导程序中构建它等).

我想用显示器,键盘和鼠标设置一个旧的桌面,然后开始使用空白硬盘.

我想学习如何编写我自己的bootloader(我已经找到了很多有关这方面的资源,但为了完整性,请仍然添加一些好的),我自己的USB驱动程序(如果有必要),CD驱动程序(如果有必要的话) )等等,从头开始.

  • 如何将代码放入计算机?用软盘做它最好吗?大多数计算机可以通过USB记忆棒完成吗?

  • 我需要哪些司机,你能建议任何建议吗?

  • 启动序列之后 - 然后是什么?我如何进入保护模式等

  • 如何在没有操作系统帮助的情况下管理内存?我只是使用我想要的任何地址吗?无需初始化?

  • 毫无疑问,我会遇到什么会让我困惑?

  • 我怎样才能使命令行O/S和图形命令行?

  • 什么是图形操作系统?比如,我怎么做一些命令行,一个字体,一个顶部的图片?

  • 我在哪里可以阅读有关设置多任务环境的信息?(即,有两个并行运行的图形命令行).

  • 我该如何设置一种窗口系统?设置简单的多任务处理后,如何在屏幕上显示图形?

相信我,我知道这是一个非常复杂的项目,我可能永远无法完成它或在任何用途上写任何东西.

还有很多其他的部分我还没有提到过,如果你想到的话,也可以自由添加.

请为每个答案添加一个"主题" - 例如,USB驱动程序,然后可能是资源列表,需要注意的事项等.

此外,请不要建议建立另一个操作系统或预先存在的代码.我知道我将阅读许多预先存在的代码(例如Linux内核,或示例资源,现有驱动程序等),但最终我想自己完成所有的写作.我知道我应该建立其他的东西,而且还有很多其他的问题,如果我改变主意并走那条路,我就可以读到这些问题.但这一切都是关于从头开始做整件事.

关于如何获得图形的任何建议?不同的视频模式以及如何使用它们等?

c assembly bootstrapping operating-system osdev

110
推荐指数
13
解决办法
5万
查看次数

操作系统和内核有什么区别?

我不明白操作系统和内核之间的区别.有人可以解释一下吗?

operating-system kernel

96
推荐指数
3
解决办法
10万
查看次数

获取操作系统信息

我最近开始想知道像http://thismachine.info/这样获取用户操作系统信息的网站.我无法通过PHP找到如何做到这一点,并想尝试解决它.

我注意到他们列出了user-agent,它提供了很多关于浏览器的信息.他们是从那里获得操作系统信息还是从其他地方获取信息?是否有可用于获取用户操作系统的API?

我看到他们如何获得浏览器和IP,但无法弄清楚操作系统部分!

php user-agent operating-system

96
推荐指数
5
解决办法
15万
查看次数

如何使用JavaScript检测我的浏览器版本和操作系统?

我尝试过使用下面的代码,但它只显示Chrome和Mozilla中的结果不能在IE6中运行.

<div id="example"></div>

<script type="text/javascript">

txt = "<p>Browser CodeName: " + navigator.appCodeName + "</p>";
txt+= "<p>Browser Name: " + navigator.appName + "</p>";
txt+= "<p>Browser Version: " + navigator.appVersion + "</p>";
txt+= "<p>Cookies Enabled: " + navigator.cookieEnabled + "</p>";
txt+= "<p>Platform: " + navigator.platform + "</p>";
txt+= "<p>User-agent header: " + navigator.userAgent + "</p>";

document.getElementById("example").innerHTML=txt;

</script>
Run Code Online (Sandbox Code Playgroud)

输出:

Browser CodeName: Mozilla

Browser Name: Netscape

Browser Version: 5.0 (Windows)

Cookies Enabled: true

Platform: Win32

User-agent header: Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0 …
Run Code Online (Sandbox Code Playgroud)

javascript browser operating-system version

95
推荐指数
5
解决办法
19万
查看次数

如何在Java中检查CPU和内存使用情况?

我需要检查java中服务器的CPU和内存使用情况,有谁知道怎么做?

java cpu ram operating-system

94
推荐指数
8
解决办法
24万
查看次数

操作系统中的用户和内核模式有什么区别?

用户模式和内核模式之间有什么区别,为什么以及如何激活它们中的任何一个,以及它们的用例是什么?

operating-system

94
推荐指数
5
解决办法
18万
查看次数

确定目录是否可写

Python中确定目录对于执行脚本的用户是否可写的最佳方法是什么?由于这可能涉及使用os模块,我应该提到我在*nix环境下运行它.

python directory permissions operating-system file

93
推荐指数
7
解决办法
6万
查看次数

何时使用os.name,sys.platform或platform.system?

据我所知,Python有3种方法可以找出正在运行的操作系统:

  1. os.name
  2. sys.platform
  3. platform.system()

了解此信息通常在条件导入中使用,或者使用不同平台之间的功能(例如,time.clock()在Windows上与time.time()UNIX上).

我的问题是,为什么有3种不同的方法呢?何时应该使用一种方式而不是另一种方式?哪种方式是"最佳"(大多数面向未来或最不可能意外地排除您的程序实际可以运行的特定系统)?

看起来sys.platform是不是更具体的os.name,可以让你区分win32cygwin(而不是只nt),并linux2darwin(而不是只posix).但如果是这样的话,那么sys.platform和之间的区别platform.system()呢?

例如,哪个更好,这个:

import sys
if sys.platform == 'linux2':
    # Do Linux-specific stuff
Run Code Online (Sandbox Code Playgroud)

或这个?:

import platform
if platform.system() == 'Linux':
    # Do Linux-specific stuff
Run Code Online (Sandbox Code Playgroud)

现在我会坚持sys.platform,所以这个问题并不是特别紧迫,但我非常感谢对此有所澄清.

python operating-system python-import

93
推荐指数
5
解决办法
4万
查看次数

无法在安装了命令行工具的Mavericks上使用xcodebuild

我已经安装了命令行工具:

$ xcode-select --print-path
/Library/Developer/CommandLineTools
Run Code Online (Sandbox Code Playgroud)

但是,当任何尝试使用时xcodebuild,我收到以下错误:

$ /usr/bin/xcodebuild
xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
Run Code Online (Sandbox Code Playgroud)

在Mountain Lion上,可以在不安装整个Xcode的情况下使用它,而不仅仅是命令行工具.是否有可能在小牛队做到这一点?我怎样才能让它运转起来?

NB这是一个干净安装的小牛队.

更新:只是为了显示,我确实安装了命令行工具:

$ gcc --version
Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
Target: x86_64-apple-darwin13.0.0
Thread model: posix
Run Code Online (Sandbox Code Playgroud)

macos xcode operating-system osx-mavericks

93
推荐指数
5
解决办法
4万
查看次数

条件变量与信号量

什么时候应该使用信号量,什么时候应该使用条件变量(CondVar)?

multithreading synchronization operating-system semaphore mutual-exclusion

92
推荐指数
4
解决办法
7万
查看次数