Windows之外的非主流操作系统Top10

 

  提起桌面操作系统,可能大多数人想到的名字只有Windows、Linux、Mac OS X这几款,少部分人或许能够想起BSD、Solaris的存在。而实际上,大千世界中能够供我们选择的操作系统绝不止这几种。以下就是针对个人用户的10 款非主流桌面操作系统,实际上还远远不止这些,谁说它们当中就不会出现未来的微软呢?

  AmigaOS 4.1

  

  AmigaOS本月刚刚发布了4.1版本,实际上它是一款相当老牌的操作系统。该系统仅能运行在PowerPC平台上,ACube公司一直在市场上销售捆绑该操作系统的主板产品。

  类型:商业软件

  平台:PowerPC

  网站:http://www.amiga.com/

  Haiku

  

  Haiku是一款开源操作系统,它是为了延续BeOS的生命而出现的。当年的BeOS再被Palm公司收购后停止了开发。随后有了兼容BeOS的OpenBeOS,2004年改名为Haiku。

  类型:开源免费软件

  平台:x86和PowerPC

  下载:http://www.haiku-os.org/

  ReactOS

  

  ReactOS的名气比较大,经常被称作开源版Windows。该计划开始于1998年,目标就是实现兼容Windows软件,目前已经有不少Windows软件能够在ReactOS中流畅运行。

  类型:开源免费软件

  平台:x86

  下载:http://www.reactos.org/

  Syllable Desktop

  

  Syllable的前身是AtheOS,另一款类似于AmigaOS的操作系统。2002年Syllable从AtheOS中独立出来,主要特点是轻量化和高速度,针对家庭和中小企业用户。

  类型:开源免费软件

  平台:x86

  下载:http://www.syllable.org/

  SkyOS

  

  由Robert Szeleney和一批志愿者发起的商业化操作系统,起源是一次操作系统设计实验。其特点是简单易用,诸如Firefox等常用软件也已经被移植到了 SkyOS中。其最新版本界面惟妙惟肖的模仿了PS3的操作系统。目前SkyOS尚处Beta版本,但已经要价30欧元。

  类型:商业软件

  平台:x86

  网站:http://www.skyos.org/

  MorphOS

  

  专门针对多媒体应用的轻量级操作系统,源自AmigaOS,也能够通过模拟运行Amiga程序。

  类型:商业软件

  平台:Pegasos,Amiga,EFIKA

  网站:http://www.morphos-team.net/

  AROS Research Operating System

  

  兼容AmigaOS 3.1的轻量级操作系统,始于1995年,但目前已经可以运行在x86平台上。内置模拟器可以运行旧版Amiga应用程序。

  类型:开源软件

  平台:x86和PowerPC

  下载:http://aros.sourceforge.net/

  MenuetOS

  

  又称MeOS,全部用汇编语言编写的高速操作系统。拥有图形界面,网络和其它多种功能,但总容量尚不足一张1.44MB软盘。

  类型:32bit版为开源软件,64bit版为免费软件

  平台:x86

  下载:http://www.menuetos.net/

  DexOS

  

  类似游戏主机的超微型操作系统,体积小巧并能在多种设备上启动,快速也是它的优势所在。

  类型:开源免费软件

  平台:x86

  下载:http://www.dex4u.com/

  Visopsys

  

  由一位名叫Andy McLaughlin的程序员业余编写的操作系统,始于1997年。

  类型:开源免费软件

  平台:x86

  下载:http://www.visopsys.org/

要实现C语言监控Windows的CPU的Top 10进程,可以考虑以下步骤: 1. 使用Windows API的函数获取当前进程列表,包括每个进程的PID和CPU占用率等信息。 2. 将获取到的每个进程的CPU占用率进行排序,找出占用率最高的Top 10进程。 3. 将Top 10进程的PID和CPU占用率等信息记录下来,可以输出到控制台、日志文件或者发送到其他应用程序进行处理。 下面是一个简单的C语言代码示例,可以实现监控Windows的CPU的Top 10进程: ``` #include <windows.h> #include <stdio.h> #define MAX_PROCESSES 1024 typedef struct { DWORD pid; float cpu_usage; } PROCESS_INFO; int compare_process_info(const void *a, const void *b) { const PROCESS_INFO *pa = (const PROCESS_INFO *)a; const PROCESS_INFO *pb = (const PROCESS_INFO *)b; if (pa->cpu_usage > pb->cpu_usage) { return -1; } else if (pa->cpu_usage < pb->cpu_usage) { return 1; } else { return 0; } } int main() { PROCESS_INFO processes[MAX_PROCESSES]; DWORD num_processes = 0; float cpu_total = 0.0f; while (1) { // 获取进程列表 DWORD cbNeeded; DWORD processIds[MAX_PROCESSES]; if (!EnumProcesses(processIds, sizeof(processIds), &cbNeeded)) { printf("Error: EnumProcesses failed!\n"); break; } num_processes = cbNeeded / sizeof(DWORD); // 计算每个进程的CPU占用率 cpu_total = 0.0f; for (DWORD i = 0; i < num_processes; ++i) { HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, processIds[i]); if (hProcess) { FILETIME dummy, creationTime, exitTime, kernelTime, userTime; if (GetProcessTimes(hProcess, &dummy, &dummy, &kernelTime, &userTime) && GetSystemTimeAsFileTime(&dummy) && GetProcessTimes(hProcess, &creationTime, &exitTime, &dummy, &dummy)) { ULARGE_INTEGER kernelTimeLarge, userTimeLarge; kernelTimeLarge.LowPart = kernelTime.dwLowDateTime; kernelTimeLarge.HighPart = kernelTime.dwHighDateTime; userTimeLarge.LowPart = userTime.dwLowDateTime; userTimeLarge.HighPart = userTime.dwHighDateTime; float cpu_usage = (kernelTimeLarge.QuadPart + userTimeLarge.QuadPart) / (10000.0f * GetTickCount()); processes[i].pid = processIds[i]; processes[i].cpu_usage = cpu_usage; cpu_total += cpu_usage; } CloseHandle(hProcess); } } // 排序并输出Top 10进程 qsort(processes, num_processes, sizeof(PROCESS_INFO), compare_process_info); printf("Top 10 processes:\n"); for (DWORD i = 0; i < 10 && i < num_processes; ++i) { if (processes[i].cpu_usage > 0.0f) { printf("PID: %d, CPU usage: %.2f%%\n", processes[i].pid, processes[i].cpu_usage * 100); } } printf("Total CPU usage: %.2f%%\n", cpu_total * 100); Sleep(1000); } return 0; } ``` 该代码使用了`EnumProcesses`和`GetProcessTimes`等Windows API函数,可以获取进程列表和每个进程的CPU占用率等信息,然后使用`qsort`函数对进程列表进行排序,输出Top 10进程和总CPU占用率。该代码可以作为一个Windows服务运行,不断监控系统中的进程情况,并输出Top 10进程的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值