AQUA OS

· AQUA OS 1.5 is out now! + Opensource!!!

Hello all! Today, I am pleased to announce AQUA 1.5. You can get it here, or from the download link below. This is smallish update, but it brings a lot in terms of user experience. Here is a change log:

  • Dark cursor mode can be found and activated in the settings
  • 3D engine optimizations
  • Slide on the desktop from the very left to get a side panel with some useful info
  • Slide anywhere from the very top to activate sleep mode
  • Gone are the days of the reformat dialog. When booting AQUA for the first time, you will enter a startup wizard, to setup AQUA the way you like
  • Language selection (UK English, Belgian French, Hungarian and German)
  • Keyboard layout will change automatically based on your language (currently only QWERTY and AZERTY. Support for QWERTZ will be added shortly)
  • More settings, reduced crash bugs, and overall, a smoother experience
  • And most important, this is the first opensource release!!! (github repository can be found here)

Enjoy!

· AQUA Discord server

You can join the AQUA Discord server at https://discord.gg/NrwZy8T.

 · Downloads

(source code can be found here)

AQUA OS 1.5: 14th June 2017

AQUA OS 1.4: 31st May 2017

AQUA OS SVE 1.3: 14th May 2017

AQUA OS SVE 1.2 (b): 3rd May 2017

AQUA OS SVE 1.2: 1st May 2017

AQUA OS SVE 1.1: 9th April 2017

AQUA OS SVE 1.0: 7th April 2017

 · PLEASE!!!

If you have any suggestions, please don’t hesitate to put them in the comments! Also report any bugs that you encounter. Thank you in advance.

 · Thank you!

I’d like to say a special thanks to:

· OS Dev – http://wiki.osdev.org/Main_Page

· Lowlevel – http://www.lowlevel.eu/wiki

· Algorithman.de – http://wyoos.org/ / http://algorithman.de/

 · News

windowed view.jpg

The new windowed interface for the applications

Lately, I have been working on this. It’s a windowed view of your opened applications. You can re-size, move around, close and open application windows. On the top is your application count, and a scroll bar for scrolling through each page. You can also use the arrows. In each window, there is a red cross to close the app (I’m not to keen on the icon), the name of the application, a little preview (does not necessarily need to be the application’s actual interface, as seen with the draw application window) and two white lines for re-sizing the window.

 · Login screen

2017-04-07-225040_1366x768_scrot.png

Login screen

Once the AQUA has loaded, you are greeted with a wallpaper, some text, a power off button and yellow arrow. If you move your mouse, you will see a cursor appear. If you click on the arrow, it will open up a little box on the bottom of your screen. That is the main desktop. You can click it to make it bigger. There is no specific password for now, just for testing.

 · Desktop interface

2017-04-07-225054_1366x768_scrot.png

Desktop

Once you have clicked the little card on the bottom of the screen, a new wallpaper appears. You have the same icon on the bottom left as on the login screen. On bottom, you can see 4 dots and a line. This is aesthetic for now, and will be given a functionality later on (see UI category for more information). On the top, there are 4 tabs. Click on any one of them, and you get a list of all the applications in that category. You can click on any one of these applications, and it will open. For now, the only ones that work are the Draw app, and the About app.

 · Draw

2017-04-07-225254_1366x768_scrot.png

The Draw application

When you open up the Draw application, this is what you see. It creates a dark overlay on top of the desktop. A green home icon appears on the bottom right of the screen. This is to exit the application, and return to what you were doing (in this version it is only possible to go back to the desktop, because it is the only place from where you can access it). That means, that you can have an icon in one application that opens another, and when you exit it, it returns to the previous application. On the top right, there is a coloured square. This is your brush colour. You can draw by clicking and holding, then dragging across the screen (note that it makes dots and not a smooth line, because I can’t get anti aliased lines to work). You can change colours on the left, by clicking on the amount of red, green and blue in your colour. It dynamically updates the coloured square.

 · Quitting

2017-04-07-225326_1366x768_scrot.png

Prompt dialog for shutting down the computer

Do you remember that red icon that has been with us since the start? Well, imagine one day, you became insane, and you wanted to quit AQUA/shutdown your computer. You could just click on that button, and a dialog pops up, and prompts you to shutdown. Um… don’t press the off button because… um… it’s bugged. There.

2017-04-07-225311_1366x768_scrot.png

The About application

 · Introduction:

Welcome to the AQUA OS page. Here, you will be able to see updates and how my OS is progressing, download demos and get advice for those who make their own operating system. I am coding this in C, NASM assembly, and AQUA basic. Thanks for your visit!

preview1.png

The login screen with the shutdown prompt dialog

 · Features

The OS is quite well developed already. Here is a list of some of the main features:

· Speedy

AQUA knows when you are using an application or program to it’s fullest, and dedicates all of your systems resources to what is important to you. No unknown programs running in the background for nothing. There is also an advanced memory management system, which tries to keep the RAM as clean as possible. If there is not enough RAM, it puts in the hard drive.

· Graphics

There are a lot of graphical features to cover. First, as you can see in the image above, the OS displays in full true colour. It supports resolutions up to 4K. It also supports double buffering, which avoids flickering on the display. But where it shines, is that it updates only pixels that have changes as oppose to the whole display. For example, the mouse cursor will only ever update it’s new location, and it’s old location. There is an inbuilt screen caster, 3D game engine (although not very perfected), 2D game engine. It efficiently does alpha blending too, even in the 3D engine.

 · UI

The UI feels natural, and is intuitive. The main theme is a dark-ish colour, to not strain the eyes (to prevent that feeling that you have when you look at an extremely white web page for a long time. I so very much hate that). Everything has a transition on it. It uses icons, instead of text, for the buttons, because it is so much more comprehensive. The applications are classified in tabs instead of scattered around your desktop. The four dots at the bottom are for widget pages (indicates that you have 4 widget pages), which will be either for the users who REALLY want the apps scattered all around the place, or for those who want to have a clock, the weather, the news and a few application shortcuts here and there.

preview2.png

Desktop with the shutdown prompt

 · Application development

The AQUA provides an API for creating applications very quickly. It even has a compiler for it’s own version of basic.

name "Test app";
tab "My Tab";
colour 255 0 255;

scope load {
 new $running is true; 
 graphics init;
 
 new $_width is;
 new $height is;
 
 graphics $_width is _width;
 graphics $height is height;
 
 new $key is;
 new $_dir is 0;
 
 new $player_x is $_width;
 do $player_x / 2 is $player_x;
 
 new $player_y is 50;
 
 new $gravity is 1;
 new $velocity_y is 0;
 
 new $jump_height is 13;
 new $speed is 6;
 
 return;
 
}

scope collision {
 put 0 to $player_y;
 put 0 to $velocity_y;
 put 0 to $_dir;
 
 if $key is $KEY_SPACEBAR
   do $velocity_y - $jump_height is $velocity_y;
 
 if $key is $KEY_ARROW_LEFT
   do $player_x - $speed is $player_x;
   if # # # put $_dir to -1;
 
 if $key is $KEY_ARROW_RIGHT
   do $player_x + $speed is $player_x;
   if # # # put $_dir to 1;
 
 return;
 
}

scope mid_air {
 if $_dir < 0 do $player_x - $speed is $player_x;
 if $_dir > 0 do $player_x + $speed is $player_x;
 
}

scope update {
 event key to $key;
 
 do $velocity_y + $gravity is $velocity_y;
 do $velocity_y / 5 is $velocity_y;
 do $player_y + $velocity_y is $player_y;
 
 if $player_x < 0
   put 1 to $_dir;
   if # # # put 0 to $player_x;
 
 if $player_x > $_width
   put -1 to $_dir;
   if # # # put $_width to $player_x
 
 if $player_y >= $height run collision;
 if $player < $height run mid_air;
 
 do $player_x - 10 is $player_x;
 do $player_y - 20 is $player_y;
 
 graphics wash 0 0 0;
 graphics rect $player_x $player_y 20 20 255 0 0;
 
 do $player_x + 10 is $player_x;
 do $player_y + 20 is $player_y;
 
 graphics flip;
 return;
 
}

scope main {
 print "Loading game...";
 run load;
 
 loop-while $running = true
   run update;
 
 exit;
 return;
 
}

Once you have finished your application, you’ll need to submit it (on another OS, as the AQUA does not have internet connection yet, in the comments if you want), so that some bots can parse thru the application, and detect any malware or things that can possibly harm the user’s computer. And then (once the AQUA has internet), if approved by the bots, it will be put on the AQUA store, for any user to download. And all of this comes out of the box. So you could basically get a copy of the AQUA, start coding, submit your code, and that’s it! No more painful downloading, and getting things to work with each other and all that!

 · Drivers

A very new driver is the mouse driver. It uses interrupts, which are also new (trust me, they were so hard to implement). It support gesture recognition, like for example, you can set it to display “Hello World!” if you do a loop with your cursor. In the future, I plan to add a driver language, to code your own drivers. Like a smell driver of something (technically, it is already possible, because there is the sys library, which gives you access to outb, inb, outw, irq handlers, etc…).

 · Bugs

bug.png

Um…