Difference between revisions of "User Ideas for ReactOS"

From ReactOS Wiki
Jump to: navigation, search
(New section and formatting)
(New sections)
Line 1: Line 1:
From time to time, users propose ideas for ReactOS. Here's a place to put them. We might never use them, but here is a place to showcase them.
+
From time to time, users propose ideas for ReactOS. Here's a place to put them. We might never use most of them, but here is a place to showcase them.
  
 
==Base MSHTML renderer on Webkit or Blink==
 
==Base MSHTML renderer on Webkit or Blink==
 
This would be beneficial for not only us, but Windows too. So ANY browser can take advantage of the fastest renderer code, even very tiny ones such as OffByOne or Dillo, perhaps making them faster than Chrome.
 
This would be beneficial for not only us, but Windows too. So ANY browser can take advantage of the fastest renderer code, even very tiny ones such as OffByOne or Dillo, perhaps making them faster than Chrome.
 +
 +
==Bidirectional firewall==
 +
Windows XP only has an inbound firewall, while Windows 7 has a bidirectional firewall. A lot of people don't understand the value of an outbound firewall. The inbound one is what protects you from inbound attacks like hackers, unexpected incoming packets, and programs with backdoors loading things into your system. An outbound one is for just in case you already have malware, to keep from compounding the problem. That would help keep your PC from leaking sensitive information about you and from attacking other machines. It is a second-line defense. It doesn't keep you from being hacked or infected, but can help minimize the impact.
  
 
==Flatten registry writes==
 
==Flatten registry writes==
This involves using a small area of memory to track the last so many unique writes to the registry. The idea is to check the writes against this list and to not write again if they are here. This helps prevent unnecessary disk accesses. That will help preserve the life of SSD drives and possibly make defragmentation of the volume with the system hives more thorough.
+
This involves using a small area of memory to track the last so many unique writes to the registry. The idea is to check pending writes against this list and to not write again if they are here. So the redundant requests are acknowledged without any further action. This helps prevent unnecessary disk accesses. That will help preserve the life of SSD drives and possibly make defragmentation of the volume with the system registry hives more thorough.
 +
 
 +
==Registry firewall==
 +
This means monitoring the most abused registry hooks. For instance, if something tries to write to the Run key in the registry unexpectedly, the user would get a prompt. This behavior could be turned off in the control panel (and/or a registry key). This could be taken further by automatically adding the blocked items to a blacklist. Taking it even further, you could give an option to automatically block a given key for the rest of the session and not prompt anymore that session. That way, if loaded malware rapidly attempts to add keys back, then our feature won't render the system useless for the rest of the session.
 +
 
 +
==Segregation of mostly read files from frequently updated files==
 +
This is a way to get some gains from SSD drives while helping to extend their lives. Files that are only occasionally written to can go on the SSD while frequently updated files can go on the mechanical hard drive. You can manually do this in Windows if you copy the files, play with the registry locations, and change some settings. What would be nice would be a wizard to automate this. That way, you can keep things like registry hives, temp files, cookies, the swap file, and search indexes off of the SSD drive and do so in a rather safe manner.
 +
 
 +
==Use the GPU as a computational resource==
 +
Modern PCs use video cards which have computational abilities. There are also coprocessor cards that are similar to video cards in that they have hundreds, if not thousands of shader engines, but they are not used to process graphics. It would be nice if such abilities were recognized and made available for more general computing tasks. For instance, what if the kernel needs floating point operations? So far, the proposal has been to use an FP emulator for this, due to it being problematic to switch states and requiring high overhead. Using emulation is also costly and slow. Now what if that could be offloaded to the GPU or to a supercomputing adapter? As for writing such code, it will likely be tricky as there are multiple standards and the operations are greatly different than what a general purpose CPU would provide. You'd likely need some sort of abstraction layer and your own GPU kernel. Then you might need alternative versions of APIs and some sort of scheduler or arbiter to make sure the most appropriate device is chosen for that moment.

Revision as of 20:50, 17 April 2017

From time to time, users propose ideas for ReactOS. Here's a place to put them. We might never use most of them, but here is a place to showcase them.

Base MSHTML renderer on Webkit or Blink

This would be beneficial for not only us, but Windows too. So ANY browser can take advantage of the fastest renderer code, even very tiny ones such as OffByOne or Dillo, perhaps making them faster than Chrome.

Bidirectional firewall

Windows XP only has an inbound firewall, while Windows 7 has a bidirectional firewall. A lot of people don't understand the value of an outbound firewall. The inbound one is what protects you from inbound attacks like hackers, unexpected incoming packets, and programs with backdoors loading things into your system. An outbound one is for just in case you already have malware, to keep from compounding the problem. That would help keep your PC from leaking sensitive information about you and from attacking other machines. It is a second-line defense. It doesn't keep you from being hacked or infected, but can help minimize the impact.

Flatten registry writes

This involves using a small area of memory to track the last so many unique writes to the registry. The idea is to check pending writes against this list and to not write again if they are here. So the redundant requests are acknowledged without any further action. This helps prevent unnecessary disk accesses. That will help preserve the life of SSD drives and possibly make defragmentation of the volume with the system registry hives more thorough.

Registry firewall

This means monitoring the most abused registry hooks. For instance, if something tries to write to the Run key in the registry unexpectedly, the user would get a prompt. This behavior could be turned off in the control panel (and/or a registry key). This could be taken further by automatically adding the blocked items to a blacklist. Taking it even further, you could give an option to automatically block a given key for the rest of the session and not prompt anymore that session. That way, if loaded malware rapidly attempts to add keys back, then our feature won't render the system useless for the rest of the session.

Segregation of mostly read files from frequently updated files

This is a way to get some gains from SSD drives while helping to extend their lives. Files that are only occasionally written to can go on the SSD while frequently updated files can go on the mechanical hard drive. You can manually do this in Windows if you copy the files, play with the registry locations, and change some settings. What would be nice would be a wizard to automate this. That way, you can keep things like registry hives, temp files, cookies, the swap file, and search indexes off of the SSD drive and do so in a rather safe manner.

Use the GPU as a computational resource

Modern PCs use video cards which have computational abilities. There are also coprocessor cards that are similar to video cards in that they have hundreds, if not thousands of shader engines, but they are not used to process graphics. It would be nice if such abilities were recognized and made available for more general computing tasks. For instance, what if the kernel needs floating point operations? So far, the proposal has been to use an FP emulator for this, due to it being problematic to switch states and requiring high overhead. Using emulation is also costly and slow. Now what if that could be offloaded to the GPU or to a supercomputing adapter? As for writing such code, it will likely be tricky as there are multiple standards and the operations are greatly different than what a general purpose CPU would provide. You'd likely need some sort of abstraction layer and your own GPU kernel. Then you might need alternative versions of APIs and some sort of scheduler or arbiter to make sure the most appropriate device is chosen for that moment.