Installing hummingbird OS on your hard drive. WebView or the story of how the browser was written in KolibriOS. KolibriOS - instead of a conclusion

Hello again! This is a novice programmer and ThreshBox user Vadim. I present the second issue of VadBox. The theme of this issue was the miniature OS KolibriOS.
This system is located on 1.44 MB of memory, which is a speck of dust on the Gorilla Glass display compared to the iPad and iPhone. What makes me happy is that the project is “alive” and continues to develop. And not by someone else, but by our Russian programmers. At the moment, KolibriOS has caught up with Windows 95 in development, but surpasses it in all respects. These are speed, size, quality, etc. The system distribution includes more than 30 games, a browser, graphic and text editors, a media player and much more, including the Russian anthem in audio format. For example, the Tetris game weighs only 1125 bytes. To operate the system, you only need 8 MB of RAM and an x86 processor. When I first met, I was surprised at how quickly the laptop turned on on this system - it only took a moment! Nothing was spinning, nothing was spilling (like in Windows), I just pressed the ON button and the system instantly booted. More details about the system can be found under the cut.

Story

Do you know the name MenuetOS? This is the first system created long before Hummingbird, but with the hope of becoming the fastest graphical OS (Assembler engine). People of different nationalities, mainly from the countries of the USSR, worked on the development. Soon the author got tired of this system, he decided to do something more interesting. But his plans failed. The Russian side of developers switched to the development of their own OS based on Minuet, AtomOS. In 2005, this project came to an end. But the team of developers from Russia and the CIS countries does not intend to abandon their achievements. In 2004, an independent project KolibriOS was launched based on the same Minuet. The project is constantly being improved and expanded, which makes me happy.

general information

The official firmware is very similar to Windows Vista, which adds ease of use. You can change the desktop screen, icons, etc. On the official website of Kolibri OS there is even a graphical shell that is similar to the Mac OS desktop. There is only one virus for this system so far, Menuet.Oxymorot. However, it is easily detected by the built-in MenAV antivirus, which has only one entry in its database. The OS is perfect for surfing the Internet, but for some time the browser did not open all pages correctly. I unsubscribed with regular html code, without conversion.

Installing KolibriOS



Hummingbird OS in QEMU emulator

I do not recommend installing it as the main OS. Still, there are few opportunities yet. But I’m fine with installing it on a virtual machine :). It will work at great speed on the Limbo emulator for Android. It’s very easy to start, follow the information from the topic. On your computer you can start the system directly from the finished disk. I will write more about this in the Hummingbird review (in the next VadBoxes).

A little practice

Since I am a novice programmer, I have information about software development on KolibriOS in my brain. Since this system is open, you can write programs directly inside the OS. To create a simple program, write the code in the built-in TinyPad editor:
#include
#include
#include
#define FONT0 0
#define FONT1 0x10000000

Char header=("Hello World!");

#define BT_NORMAL 0
#define BT_DEL 0x80000000
#define BT_HIDE 0x40000000
#define BT_NOFRAME 0x20000000

Void draw_window())(
_ksys_window_redraw(1);
_ksys_draw_window(100, 100, 300, 120, 0xaabbcc, 4, 0x5080d0, 0, 0x5080d0);
_ksys_write_text(50,30,FONT0, header, strlen(header));
_ksys_window_redraw(2);
}
int main(int argc, char **argv)(

While(!0)(
switch(_ksys_wait_for_event(10))(
case 2:return 0;

Case 3:
if(_ksys_get_button_id() == 1)return 0;
break;

Default:
draw_window();
break;
}
}
}

Save in *.c format. Open using the built-in Shell program.
You should get the following:


Now I will try to explain in detail about the meanings of the code.
Drawing a window, code _ksys_window_redraw(1) then_ksys_window_redraw(2). To navigate in space, we use the code _ksys_draw_window, responsible for x/y coordinates, color, width, height, type, etc.
To make the text appear, use the code _ksys_write_text.
Window types:
0 - type I - window of fixed sizes (no skin)
1 - only define the window area, do not draw anything
2 - type II - resizable window (without skin)
3 - window with skin (resizable)
4 - window with a skin of fixed sizes
Happened? The program is written in C, which has recently become supported by Kolibri.
Did you like this miniature OS? Would you like me to make a video review of such a system? Is this article helpful? Do I need to keep pouring programming information out of my brain? Write your answers to all these questions in the comments, and ask your own. You can download Hummingbird on the official website:

KolibriOS is a fork of MenuetOS and has no connection with either the UNIX family or the POSIX standard. The system is written in the freely available multi-pass assembler fasm. This fact ensures miniaturization, high speed and low hardware requirements. A bootable LiveCD takes up about 7 megabytes, and the main components can fit on a floppy disk (1.44 MB).

But light weight does not mean lack of functionality. It has a VESA-based user interface, a set of drivers, a browser, a word processor, a graphics editor and viewer, development tools, simple games and many other programs. Of the file systems, FAT12, FAT16, FAT32 are fully supported, and partially (read only) - NTFS, ISO9660, Ext2, Ext3, Ext4.

System requirements

  • CPU: Intel Pentium / AMD 5x86 / Cyrix 5x86 without MMX with a frequency of 100 MHz
  • RAM: 8 Mb
  • Video card: supporting VGA (640*480*16 mode) or Vesa
  • Keyboard: AT
  • Mouse: COM or PS/2

Supported Boot Devices

  • Floppy 3.5
  • IDE HDD LBA
  • CD/DVD
  • USB Flash

Languages ​​available are English, Russian, Italian and Spanish.

Installation

  • To floppy disk:
  1. Download the universal image
  2. Recording the image
  • from Linux:
    • dd if=kolibri.img of=/dev/fd0

  • from Windows:
    • rawrite2 -f kolibri.img -d A

  • To the hard drive (using GRUB or GRUB2):
    1. Download the universal image
    2. Unpack it into the kolibri folder in the root of the disk
    3. Setting up the bootloader
    • GRUB. Add the following lines to menu.lst:
      • label KolibriOS
        root ( hd0.0)
        kernel /kolibri/HD_Load/memdisk
        initrd /kolibri/kolibri.img

    • GRUB2. Add the following lines to grub.cfg:
      • title KolibriOS
        search --no-floppy --fs-uuid --set=root UUID
        linux16 /kolibri/HD_Load/memdisk
        initrd16/kolibri/kolibri.img

  • To a USB flash drive:
    1. Download the universal image
    2. Unpack it to any folder
    3. Installing the bootloader
    • from Windows:
      • Run the file HD_Load\USB_Boot\inst.exe
      • Copy kolibri.img to the root of the flash drive
    • from Linux:
      • Install GRUB2 on a flash card: grub-install /dev/sdb
      • The following steps are the same as installing on a hard drive.
  • To CD:
    1. Download Bootable LiveCD
    2. We write it to the media
    In fact, there are many ways to install a system on a hard drive or flash drive. I indicated only the most popular and oriented towards the fact that any other Linux distribution is already available.

    And yes, I almost forgot: (hd0,0), UUID and /dev/sdb are variables. Therefore, you should replace these values ​​with your own. Here's how to recognize them:
    (hd0.0). The first number is the hard drive number. The second number is the partition number on the desired hard drive. Counting starts from 0.
    UUID. ID for the desired section. You can get it with the command ls -l /dev/disk/by-uuid on any Linux system.
    /dev/sdb. Device file in linux. You can find it out either from the file manager, or from the console or disk partitioning utility. Looks like /dev/sdX for SATA devices and /dev/hdX for drives connected to IDE.

    I hope you successfully completed the installation.
    If you have any questions/problems, please ask them in the comments.

    Now it's time to look around KolibriOS.

    Screenshots

    Note: click on the image to enlarge it


    Start downloading KolibriOS


    Selecting a video mode from the list of supported ones






    Contents of the "Games" > "Logic" menu


    Contents of the Games > Arcade menu


    Contents of the menu "Demos" > "3D" (demonstration of the capabilities of the graphics system)


    Contents of the Graphics menu



    Contents of the Develop > Examples menu


    Contents of the "System" > "Settings" menu


    Contents of the menu "System" > "System Sensors"



    Contents of the menu "System" > "Testing"


    Contents of the System > Accessibility menu


    Contents of the "Data Processing" menu


    Contents of the Network > Servers menu



    Miscellaneous Menu Contents





    Sudoku, minesweeper, checkers




    System monitor. Opens by pressing something red it's in the tray



    Shutdown window

    The system interface is of particular interest. After all, its size is extremely small and you may think that the interface is poor. But it is not so. Here you need to consider criteria such as appearance and functionality. I was pleased with the appearance: it is perceived on a par with window managers in Linux systems.

    Results

    I liked KolibriOS. Yes, few people will use it as their main operating system. But for me she became a symbol of perseverance, faith in one’s strength and success. The development of hummingbirds in the fasm assembler has been underway for 9 years now. A lot has already been done, but the project continues to live and develop. Recently, for example, USB support appeared. And every day(!) nightly builds are released that implement new functions.
    One of the main disadvantages is the lack of familiar programs. And this is not good. But you can Archive Interactive

    KolibriOS fits on a floppy disk and boots in a few seconds. There are about 200 applications for it, and developers see several successful applications for their system.

    The idea of ​​writing an entire operating system in assembly language is strange but appealing. Its main advantages are exceptional performance and small amount of executable code. The disadvantages are also obvious - complexity and strict connection to the computer architecture. Nevertheless, there are still brave souls.

    The most famous project of this kind is MenuetOS and its offshoot KolibriOS, developed mostly in Russia. The history of these operating systems is not without intrigue and controversy, and there are reasons for this: firstly, the project is free (license - GNU GPL version 2), that is, its participants work not for profit, but for an idea. Secondly, decisions such as the choice of processor architecture, due to the nature of the project, are dramatic. A group of developers who decide to change the platform is doomed to almost completely rework the source code.

    Compared to other operating systems, MenuetOS is quite young. It has been developed since 2000 and has managed to become famous in programming circles (for example, the article “Small spool, but expensive,” written by Yakov Uvarov for Computerra in 2005). KolibriOS is even younger - it spun off from Menuet in 2004.

    During this time, the developers managed to write about 7.5 MB of code in pure assembler. Linux sources are approximately the same size, written primarily in C, and this is only the kernel, while the KolibriOS distribution includes a graphical shell and a small set of application programs (for fun, we note that, according to estimates based on the famous “leak” of 2004, Microsoft Windows 2000 code took up about 1.5 GB).

    At the same time, “Hummingbird” is no longer a “proof of concept” or a toy, but a completely functional system for which programs are written and which can actually be used for a certain (albeit not particularly wide) range of serious tasks.

    Computerra talked with two KolibriOS developers - Dmitry Pereverzev and Igor Solodukha.

    - What is KolibriOS?

    Pereverzev:"Hummingbird" is a small operating system with rich capabilities. You could say this is a modern DOS.

    - As I understand it, not just small, but generally tiny?

    Pereverzev: The kernel takes up about 80 KB. That is, comparable to the size of MS-DOS in recent versions. And there are many more possibilities.

    - What is the history of "Hummingbird"?

    Pereverzev: In 2001, Finnish student Ville Turjanmaa wrote his operating system in assembly language. In 2004, he decided that thirty-two-bit computers were dead, and switched to developing MenuetOS 64, a sixty-four-bit version of his operating system. The community did not like this, and it continued to develop the thirty-two-bit version on its own. And when more than half of the code was changed, the project was named "Hummingbird" in honor of one of the Russian systems assemblies.

    - And who did this? Were you already involved then?

    Pereverzev: I came to the project about a year later. Then Marat Zakiyanov was doing this. Collected system distributions.

    - Is he also on the team now?

    Pereverzev: Yes, now he is on the team, developing the kernel, a file manager (his clone of Total Commander), file dialogs and a graphics viewer - the wonderful zSea.

    - What is the current development status?

    Pereverzev: We are currently awaiting the release of a new version, but we have not yet decided on the number. The previous one was 0.7.7.0, and this one will be either 0.8 or 0.9. It is believed that there are a lot of changes compared to the previous version. For example, support for USB devices will appear. About a year has passed since the last release.

    - What kind of team do you have? How many people are actively helping?

    Pereverzev: There are now about ten very active developers and about thirty developers who appear on the forum from time to time.

    - What is the geography? Are the developers mostly from Russia?

    Pereverzev: Mainly the CIS, although there are also developers from Belgium, Russian-speaking ones from England. I myself am from the Stavropol region.

    What are the features of Kolibri in comparison with other systems, including in comparison with other minimalist systems?

    Pereverzev: Compared to other minimalistic systems, "Kolibri" is the most minimalistic! In addition, of the systems in the same weight category, "Kolibri" is the most functional. For example, there is a good system, Visopsys, it is also compact and fits on a floppy disk, but it can’t do anything.

    What are the main differences between Hummingbird and “large” operating systems? What is not there yet, and what are you going to add?

    Pereverzev: Internet support is very important in the modern world. TCP/IP and network card drivers are already included in Kolibri. We are currently working on a browser, all participants are doing something to make it appear in one way or another. So far there is only text, with limited graphics support. Of course, he is still far from perfect.

    Malt: The presence of a browser means new users and the popularity of the system.

    Perhaps such a system would generally be popular as an analogue of Google ChromeOS - a minimal OS layer plus a browser. How do you think?

    Pereverzev: It is quite possible, especially since we already have a minimal implementation of Flash. Not quite complete, but in assembler.

    - What other successful applications do you see?

    Pereverzev: Embedded systems, information acquisition and production management systems, thin clients. In addition, "Hummingbird" can be a good OS for outdated computers.

    Malt: There are also systems that are developed for their own hardware. Boards are being designed for them from scratch, and the “Kolibri A” branch is currently being written for them.

    - What are the advantages of Kolibri, besides lightness and speed?

    Malt: For example, "Hummingbird" can be loaded not only without a disk, but without a BIOS at all. You turn on the computer, and after testing the equipment, “Hummingbird” immediately appears. In any case, loading takes three to four seconds after switching on.

    - What architectures are currently supported?

    Pereverzev: Now only x86 processors, that is, from 486 to the latest Core i7. But only in thirty-two-bit mode.

    - Does the sixty-four-bit version exist, or did it just die?

    Pereverzev: MenuetOS 64 exists, but it is very far removed from its ancestor.

    - Is another team developing it?

    Pereverzev: It is generally developed by one person. Still the same student, but probably no longer a student. We are currently running experiments on multi-core systems. The system's thirty-two-bit core runs on a thirty-two-bit core, and the second processor core runs in sixty-four-bit mode. That's it, in a cunning way.

    Malt: Yes, this is possible in hardware.

    - You still have a real-time version, right?

    Pereverzev: It’s not entirely real-time, but the author of the thread himself says that with some changes that are now being actively worked on, “Hummingbird” can be used for embedded systems where guaranteed response time is important.

    Malt: And now the response time is already very short. On our forum you can look at the test results of the same program, working directly with the equipment, in Windows XP and in Hummingbird. In "Hummingbird" it comes out much faster. Now, in order to implement true real-time functionality, we need to ensure guaranteed response time.

    - Like “Kolibri” with support for various chipsets (including video)?

    Pereverzev: VESA is supported by all modern video cards, and we also have a port of the ATI Linux driver, and it supports even the latest ATI video cards. It is, of course, a little heavy - it takes up more than 100 kilobytes, but it allows you to use any video modes and even hardware acceleration. In addition, it is updated regularly.

    - What is supported from the periphery?

    Pereverzev: The peripherals are also good - there is USB support, that is, keyboards and mice work.

    - What else are you planning to add in the foreseeable future?

    Pereverzev: It’s hard to say, it all depends on the personal time of the developers.

    Malt: Now, for example, a person appeared on the forum who seemed to want to implement Unicode, or at least raised such a question.

    - What is the encoding now?

    Pereverzev: Now the system has de facto 866, modified to support Russian, Ukrainian, Estonian, Latvian and several other languages. But the file system uses Unicode, so we are slowly switching to it.

    - By the way, what file systems are supported?

    Pereverzev: FAT12, 16 and 32 are for writing and reading, plus ISO 9660 (these are CDs), and NTFS, Ext2 and Ext3 are supported for reading.

    - How is multitasking implemented in Hummingbird?

    Pereverzev: You can create threads, but there are no processes as such. A process is a set of threads with a common address space.

    - What about protected memory?

    Malt: There is standard page protection for x86 architecture.

    - Is interprocessor communication somehow implemented?

    Pereverzev: There is IPC and there is shared memory. That is, you can create an image of shared memory and exchange data between applications. There is also a system-wide clipboard.

    - You mentioned that there are about two hundred programs for Hummingbird...

    Pereverzev: In fact, there are many more of them. Two hundred current ones that work well.

    - What kind of programs are these?

    Pereverzev: According to statistics, the most games are more than a hundred.

    - What games?

    Malt: Mostly small logic games.

    - Ported from what other systems?

    Malt: No, these were written for "Hummingbird".

    Pereverzev: In fact, writing a game is much easier than making something serious like a text or graphics editor. That's why programmers often try their hand at small games.

    Malt: There are analogues of games from other systems - "sappers", solitaire and so on. They were written for "Hummingbird" from scratch. But there are also useful programs - several file managers, including a Windows Explorer clone, a Far Manager clone and Total Commander.

    - Have any of the famous games been ported?

    Pereverzev: There are Quake and Doom. Emulators include DOSBox and a Nintendo emulator. By the way, you can run Windows 98 in DOSBox - I tried it. There is an implementation of the Lua language of the latest version - 5.2. There is a renderer of Freetype fonts and Mesa 3D - an implementation of OpenGL libraries. A very important thing: there are ffmpeg codecs. An interesting fact: on a weak machine we ran twenty to thirty videos simultaneously, and the processor load did not exceed 50 percent. In "Hummingbird" it turned out to be quite difficult to fully load the processor.

    - What are programs mostly written in?

    Pereverzev: In assembler.

    - They don’t write in high-level languages ​​at all?

    Pereverzev: Sometimes they write or port something in C or Pascal. There are several programs in Lua.

    Malt: I can also remember that one of the guys writes in a language like Sphinx C--.

    Pereverzev: By the way, this is a curious language. This is C as he might once have been. Once upon a time, C was a translator into assembler, and C remained so, it just added syntactic sugar in the style of the C language. Many interesting programs are written on it.

    - I heard there was a Python implementation.

    Malt: There is tinypy, but there are no programs on it yet, and it will not be possible to run an arbitrary Python program on it without modifications. There are some important features of the language missing - for example, generators and tuples.

    - Are there any virtual machines? Were there any ideas, for example, to port Java?

    Pereverzev: There is now talk about the feasibility of this. In principle, this is technically possible. In fact, I even compiled the Sun reference implementation myself into Hummingbird, but the license does not allow it to be shown to anyone.

    - Are there any ideas about the commercial use of "Kolibri"?

    Malt: We cooperate with the Israeli company Green Gadgets, which produces eBox and Edubook computers. The company's main profile is low-power gadgets that can even run on batteries. For example, the eBox-3300 on which we showed Hummingbird consumes only about 4.5 Watts. It has no hard drive, no fans, and is completely silent.

    Today, both at home and at work, powerful computers with huge amounts of memory are used, operating systems take up more than one gigabyte, and programs less than 500 kbytes in size are becoming more and more difficult to find. But once upon a time it was completely different!.. Once upon a time, OSes were loaded from magnetic disks, and the size of RAM was calculated in kilobytes. Now the days of “floppy distributions” are long gone, and it would seem that such operating systems have disappeared forever, but... no - the story continues!

    KolibriOS - the background of one little bird

    Any OS must have some kind of feature that would make it stand out from the crowd of numerous x86 brethren, otherwise it has practically no chance of being noticed. It is believed that it is impossible to fit a full-fledged OS with a graphical interface on a regular 3.5" disk. And in the vast majority of cases this is true, but there is one exception. Numerous modern programming languages ​​have an old grandfather named Assembler. Such a strong old-school grandpa. The fact is that programs written in this language are very compact in size and high speed.

    Other programming languages ​​(C, C++, not to mention Turbo Pascal, Basic and many others) contain a lot of redundant program code designed to simplify the programmer's work, which slows down the entire system as a whole. Assembly machine language is more " understandable"for computer" gland"due to absence" extra" commands.

    And so one operating system, to spite everyone, fit on a floppy disk, not forgetting to take with it that same graphical interface. And the heroine of this article is called KolibriOS.

    KolibriOS – history

    The thorny path of this small OS began in 2000 in Finland. Its creator Willi Turzhanmaa(Ville Turjanmaa) planned to make a single-user OS for a single-processor computer, written in one language, namely assembler(Assembler). The chosen programming language, in his opinion, was best suited for creating a new OS, primarily due to the high speed of code execution.

    This idea was very effective and original, which played a significant role in the distribution of the distribution. A similar approach was used earlier, in the late 80s, but predecessors - MenuetOS were little known and did not have a GPL (Freedom to Distribute) license.

    General Public License (GPL)- open license agreement, the principle of development and existence of many operating systems (for example, Linux and FreeBSD). In the simplest approximation, the essence of this license is that everyone has the unrestricted right to study, arbitrarily modify or change GPL-licensed software without any restrictions, but the result of such change must also be made available under the GPL license.

    Initially, MenuetOS was not intended for everyday use by users. The basic principle of the existence of such operating systems is free creative programming and the implementation of one’s own ideas. The system was created to study the work of x86 computer architecture at the lowest level and for fruitful communication between developers from different countries.

    But MenuetOS quickly gained a graphical interface, support for sound cards, standard FAT file systems and many other basic features. On September 5, 2001, after the publication of an interview with Willi Turzhanmaa on the well-known web portal, MenuetOS 0.54 received wide publicity on the Internet, which led to a rapid increase in the popularity of the new distribution.

    Numerous fans of the new OS quickly created websites in their native languages, which fueled the interest of ordinary users who do not speak English. After a couple of months, the popularity began to wane and soon only the most devoted fans remained with the project, who considered MenuetOS the best tool for realizing their creative ideas.

    What is AtomOS?

    Project AtomOS created by our compatriots, the very first to separate from MenuetOS. There were three of them and on the forums they were known as Protopopius, Trans And VaStaNi.

    The goal of the project was similar to the unspoken goals of KolibriOS - to create a viable operating system in assembler. But it was supposed to be created from scratch. They say that the guys managed to attract several more people and even put together several test builds of the kernel. But, unfortunately, something happened that often befalls non-commercial projects - the developers simply lost interest in their brainchild...

    Since 2005, all developments have been completely stopped. Essentially, this is the only thing left online.

    What did we have?

    The wave of popularity of the distribution has not spared our country. The first group of developers sought to introduce many original innovations and additions to the young distribution (in particular, the idea of ​​​​separating the system kernel and the graphical interface)

    But, unfortunately, domestic ideas were received “coolly” by the founder of the project and, as a result, the developments of Russian programmers were simply not included in the official distribution. This caused a decline in interest and the disintegration of the original development team. The second wave of programmers formed after the appearance of articles in computer magazines and still exists.

    By mid-2003, hard times had come - the author of the project lost interest in his distribution and decided to devote himself to a new project Menuet64- a 64-bit operating system in assembly language, fundamentally different from MenuetOS. A year later, the project was finally abandoned by the creator... Under the circumstances, part of the Russian team left the project and began developing their own project - AtomOS.

    It is worth noting that this time, too, the achievements of domestic programmers were extremely reluctantly and sluggishly included in the official MenuetOS distribution, which led to various conflicts between “our” and foreign developers. New project manager Mike Hibbett from England at first relieved tensions by opening access to Russian developments for publication in the official distribution kit, but in 2005, citing employment, he resigned from his post.

    And it all happened again - a new leader Jaroslav Pelczar revived the development of MenuetOS for a short time, new solutions appeared and... that’s it. Today, international work on the project has practically stopped. Was this really the end?.. Fortunately, the community of developers from the countries of the former USSR did not want to part with their own achievements and decided to start developing a new MenuetOS branch on their own.

    This branch was given a symbolic name - KolibriOS. As a result, the small distribution found its second home in Russia, acquired a new name and continues to develop further. The Russian website is constantly updated and new distributions are posted as they are ready.

    Our programmers have significantly improved the base distribution and also added many new features. The list of supported equipment has been expanded with new printers and video cards. Today, it is possible to work with sections in FAT12, FAT16 And FAT32, as well as reading from NTFS partitions. According to the developers, KolibriOS functionality has reached the level of Windows 95, but is significantly ahead of the latter in size and stability.

    In the Russian distribution, a number of restrictions on the use of USB have been overcome, but the real use of this bus is not yet possible. The ability to use a standard network protocol was added by former project coordinator Mike Habbett TCP/IP with all the attendant opportunities in the form of support HTTP, FTP, TELNET, E-mail and IRC.

    To implement these capabilities, it is enough to install the appropriate software, use a supported network card and configure the network protocol. Despite the many achievements of little Hummingbird, we should not forget that the distribution was originally created by programmers for programmers and is primarily a platform for the technical creativity of competent specialists.

    The project is a research OS and is not currently intended for everyday use as a desktop system. The capabilities of MenuetOS have also found practical application - the American company GridWorks uses the distribution to organize online Internet services.

    Let's take a closer look at KolibriOS?

    First acquaintance with KolibriOS It is very easy and fast - just write the image to a floppy disk and boot from it. Startup process KolibriOS is:

    But this program showed that KolibriOS works with a DNS server, which means that, theoretically, the future of Internet applications in this OS could begin very soon. Well, let's wait for the full implementation of network capabilities in the coming versions.

    Do you have any viruses?

    I think that such a question will seem at least strange to many, but no, sir, the answer to it will be in the affirmative. KolibriOS also contains a virus that migrated from MenuetOS. It's called a virus Menuet.Oxymoron and is detected by many popular antiviruses, for example, Kaspersky Anti-Virus.

    As expected, every virus must have an antidote, and this is it MenAV, so to speak, an antivirus with one single entry in the database. An interesting fact is that, again, many popular antiviruses, for example, Dr.Web, consider MenAV to be a virus (or rather a Trojan horse) and call it MeOS.Xymo. This is the story.

    Let's continue the conversation

    You can view the contents of any disk in the standard X-TREE file manager, written specifically for Hummingbird our compatriot Evgeniy Pavlishin. It’s worth mentioning here that when the OS boots, it automatically mounts hard drives and, as a result, in X-TREE you can see the partitions of your hard drive (there is support for FAT32 and NTFS).


    Files are opened with one click of the mouse by the associated program. I would like to note that in KolibriOS there is no clock on the cursor - everything works instantly or does not work at all...

    Despite the "floppy size", there are plenty of small games in the distribution - Tetris and Arkanoids will be provided for everyone. Moreover, the games are really small, for example, a good Tetris takes less than 1125 bytes. Very impressive, even when compared to "miniature" Java games for mobile phones.

    In general, the program's interface is pleasantly pleasing with fresh colors and a nice dotted font. There is no need to configure language settings - for most of today's developers, Russian is their native language. And therefore KolibriOS speaks Russian immediately after launch.

    An indestructible tribe of text editors has lived in every computer since time immemorial; the local text native calls itself TinyPad 4.0.4.

    I was especially pleased with the Russian Anthem, which was cheerfully reproduced using a miniature MIDI player in Winamp skin.

    In many ways you can feel the “Russian” hand of the programmers. It was created especially for the Russian distribution KFAR (Kolibri FAR) similar to its Windows counterpart FAR - the popular creation of Alexander Roshal, creator of the no less legendary WinRAR.

    Direct competitor KFM (Kolibri File Manager) turned out to be much weaker than KFAR, if only because it simply refused to copy and view the selected files.

    There is an exhaustive amount of documentation on the system right on the floppy disk, there is even a manual for the game " Pharaoh". For demonstrative purposes, a lot of network programs (servers MP3, HTTPS, SMTPS), monitoring programs (graphics speed test, Ghost monitor), graphics viewers, icon editor.

    There is a whole section in the menu for developers: HEX editor, packers, debuggers and sample programs. To demonstrate the capabilities of 2D and 3D graphics, many nice " demo" - mini programs showing flat and three-dimensional compositions from various objects.

    KolibriOS - instead of a conclusion

    In general, the system creates a pleasant impression - a beautiful interface, compact programs, high speed. I'm especially pleased" Russian trace", like the Russian anthem right in the distribution kit. You involuntarily feel proud of your native country, of domestic developers, of what they have done for a small OS.

    Perhaps everyone who is interested in KolibriOS knows that the only way to access the global network was and is, and to this day, a text browser written by one of our developers almost from scratch. This browser is perhaps one of the “attractions” of the OS, and therefore it was decided to tell its history: how it appeared, developed, and what are the plans for the near future. Anyone interested, welcome to cat.

    The post was created in close collaboration with the author of the Leency program, and therefore the narration comes from his perspective.

    If I weren't such a naive fool, I would never have started writing a browser! More diamond(@grechnik), a seasoned programmer, said that in his life he would never dare to take such an adventure. But I was young and felt that I was on the verge of great discoveries. This is an indescribable feeling, as if the whole world lies at my feet - you just have to stretch out your hand and it’s all yours. Therefore, the first program that I decided to write was a file manager ala Windows Explorer, and the second was a browser. So to speak, “Hello World” is for weaklings, cool programmers start with browsers.

    This whole misfortune began on a warm July day in 2008, six months after Kostya Veliant sent me the source code of the HTML viewer, the capabilities of which, with the exception of the lack of network support, were almost equal to the current Hummingbird HTTPC browser at that time.

    This program was simply called “HTML Viewer in C--”. I started by adapting the program code to the new version of the library (menuet.h-- → kolibri.h--), improving the design, adding support for control keys, and scrolling with the wheel. The downside is that the text was displayed in the window one letter at a time :)

    Below is a screenshot of the first version 0.00001, released on June 20, 2008.

    Within 2 days there was an update to version 0.1, the list of changes which included:

    • more or less complete support for tags: b, strong, i, u, s, br, pre, title, li, p;
    • support for nested tags;
    • address bar (EditBox) from Lrz;

    In version 0.2, the text began to be displayed not letter by letter, but in lines, and collapsing two or more consecutive spaces into one was added.

    The subsequent development of the program followed an evolutionary path: support for tags was improved, the “Back” button worked, support for relative paths, several tag parameters, multi-level lists and some other features appeared.

    By the way, I note that all this time the program was not a browser, but only displayed HTML pages, hence the name HTMLv (HTML Viewer). The turning point happened in version 0.48.5, thank you for that barsuk"y:

    “I took HTTPC, cut off the html display and added dynamic memory allocation to the web page. If you combine this thing with HTMLv, you get a browser.”

    Which is what was done. The trimmed HTTPC was called a file downloader and renamed to downloader. And here are the first screenshots of pages downloaded by the browser via downloader:

    The "HTMLv+downloader" combination worked like hell: if the page address begins with "http://", then HTMLv launched the downloader with the page address parameter. Downloader downloaded the file, HTMLv humbly waited. When the downloader finished, it saved the page to "/sys/.download" and closed. HTMLv fired at this moment and opened the saved page.

    Yes, it's a crazy crutch, but it worked! This was the first real way to go online with Hummingbird and barely read anything there. This may seem funny, but it was an important psychological moment - now in Kolibri there is a window into the open world.

    By the way, about hacks... Those who are familiar with Kolibri know very well that there has always been a problem with fonts: there are only two system fonts: monospace and... non-monospace. 90% use monospace and the letter size is 6x9 pixels. No bold or italics. But it is in the browser! Bold font is two lines of text superimposed on each other with an offset of one pixel along the X axis. With italic, everything is a little more interesting. The first version was implemented by lev in version 0.63: first, plain text was displayed in the window, then the screen was screenshotted into memory and then displayed again in the window with an offset |||| → //////

    New features in subsequent versions concerned the addition of the RMB menu, support for anchors, and an image caching system.

    Here is a screenshot of the acid_0.1.html test page, which was used for a long time to test the browser.

    But the further I went, the more I got the impression that I was going down the wrong path...

    Something had to be done about this. Remember the beginning of the article? “Therefore, the first program that I decided to write was a file manager ala Windows Explorer, and the second was a browser. So, the Eolite code was rewritten in an evolutionary way: step by step, piece by piece, and over time it became logical, readable and simple. The HTMLv code still remained unstructured and difficult to modify and maintain, and adding a new feature inevitably led to many problems. Realizing this moment with grief, I set about putting it in order. The first sign of this difficult task was HTMLv 0.99.

    In HTMLv 0.99, drawing to the buffer was implemented. Those. Previously, a line of text was displayed as follows: a rectangle of the background color was drawn into the window, and the text was displayed on top. Now a “drawing” was created in memory, filled with a background color, text and lines were drawn into it, and in the end this very finished drawing was displayed in the window. This has increased speed and will provide new opportunities in the future.

    Version 0.99.1 gained support for tags and, as well as align="center" and align="right"

    In version 0.99.31 a significant event happened:
    From this version, the WebView component, which displays page content in HTMLv, is placed in a separate module and can be compiled as part of another C project. This was done to display the contents of the letter in the Liza email client and to improve the code structure.

    Starting with version 1.0 beta 1, the program was renamed WebView. This was not done in vain, because the program has grown noticeably over the last couple of versions. In the same version, in addition to the new name, the program received:

    • native support for working with the network via HTTPlib written by hidnplayr on FASM (the downloader was no longer required)
    • new design
    • displaying the page loading process through the progress bar
    • displaying the address in the status bar when you hover over the link
    • skin support

    In subsequent versions, tag support was improved, problems were fixed, as well as new functionality was added. The next significant change was made in WebView 1.0 Beta 4: viewing the page source code in the browser with syntax highlighting.

    The latest version for today is WebView 1.0 Beta 6.1. Significant work has been done to optimize the program.

    A short video review:

    Did you like the article? Share with friends: