Installation du système d'exploitation Hummingbird sur votre disque dur. WebView ou l'histoire de la façon dont le navigateur a été écrit dans KolibriOS. KolibriOS - au lieu d'une conclusion

Bonjour à nouveau! Il s'agit d'un programmeur novice et utilisateur de ThreshBox, Vadim. Je vous présente le deuxième numéro de VadBox. Le thème de ce numéro était l'OS miniature KolibriOS.
Ce système est situé sur 1,44 Mo de mémoire, ce qui est un grain de poussière sur l'écran Gorilla Glass par rapport à l'iPad et à l'iPhone. Ce qui me rend heureux, c'est que le projet est « vivant » et continue de se développer. Et pas par quelqu'un d'autre, mais par nos programmeurs russes. Pour le moment, KolibriOS a rattrapé Windows 95 en termes de développement, mais le surpasse à tous égards. Il s'agit de la vitesse, de la taille, de la qualité, etc. La distribution du système comprend plus de 30 jeux, un navigateur, des éditeurs graphiques et de texte, un lecteur multimédia et bien plus encore, dont l'hymne russe au format audio. Par exemple, le jeu Tetris ne pèse que 1 125 octets. Pour faire fonctionner le système, vous n'avez besoin que de 8 Mo de RAM et d'un processeur x86. Lors de ma première rencontre, j'ai été surpris de la rapidité avec laquelle l'ordinateur portable s'est allumé sur ce système - cela n'a pris qu'un instant ! Rien ne tournait, rien ne débordait (comme sous Windows), j'ai juste appuyé sur le bouton ON et le système a démarré instantanément. Plus de détails sur le système peuvent être trouvés sous la coupe.

Histoire

Connaissez-vous le nom MenuetOS ? Il s'agit du premier système créé bien avant Hummingbird, mais avec l'espoir de devenir le système d'exploitation graphique (moteur Assembler) le plus rapide. Des personnes de différentes nationalités, principalement originaires des pays de l'URSS, ont travaillé au développement. Bientôt, l'auteur en a eu marre de ce système, il a décidé de faire quelque chose de plus intéressant. Mais ses plans ont échoué. La partie russe des développeurs s'est tournée vers le développement de son propre système d'exploitation basé sur Menuet, AtomOS. En 2005, ce projet a pris fin. Mais l'équipe de développeurs de Russie et des pays de la CEI n'a pas l'intention d'abandonner ses réalisations. En 2004, un projet indépendant KolibriOS a été lancé sur la base du même Menuet. Le projet est constamment amélioré et élargi, ce qui me rend heureux.

informations générales

Le firmware officiel est très similaire à Windows Vista, ce qui ajoute une facilité d'utilisation. Vous pouvez modifier l'écran du bureau, les icônes, etc. Sur le site officiel de Kolibri OS, il existe même un shell graphique similaire au bureau de Mac OS. Il n'existe jusqu'à présent qu'un seul virus pour ce système, Menuet.Oxymorot. Cependant, il est facilement détecté par l'antivirus MenAV intégré, qui n'a qu'une seule entrée dans sa base de données. Le système d'exploitation est parfait pour surfer sur Internet, mais pendant un certain temps, le navigateur n'ouvrait pas correctement toutes les pages. Je me suis désabonné avec du code HTML normal, sans conversion.

Installation de KolibriOS



Système d'exploitation Hummingbird dans l'émulateur QEMU

Je ne recommande pas de l'installer comme système d'exploitation principal. Pourtant, il existe encore peu d’opportunités. Mais je suis d'accord pour l'installer sur une machine virtuelle :). Cela fonctionnera à grande vitesse sur l’émulateur Limbo pour Android. Pour démarrer, c'est très simple, suivez les informations du sujet. Sur votre ordinateur, vous pouvez démarrer le système directement à partir du disque terminé. J'écrirai plus à ce sujet dans la revue Hummingbird (dans les prochaines VadBoxes).

Un peu de pratique

Comme je suis un programmeur débutant, j'ai dans mon cerveau des informations sur le développement de logiciels sur KolibriOS. Puisque ce système est ouvert, vous pouvez écrire des programmes directement dans le système d’exploitation. Pour créer un programme simple, écrivez le code dans l'éditeur TinyPad intégré :
#inclure
#inclure
#inclure
#définir FONT0 0
#définir FONT1 0x10000000

Char header=("Bonjour tout le monde !");

#définir BT_NORMAL 0
#définir BT_DEL 0x80000000
#définir BT_HIDE 0x40000000
#définir BT_NOFRAME 0x20000000

Vider draw_window())(
_ksys_window_redraw(1);
_ksys_draw_window(100, 100, 300, 120, 0xaabbcc, 4, 0x5080d0, 0, 0x5080d0);
_ksys_write_text(50,30,FONT0, en-tête, strlen(en-tête));
_ksys_window_redraw(2);
}
int principal(int argc, char **argv)(

Pendant que(!0)(
commutateur(_ksys_wait_for_event(10))(
cas 2 : retourner 0 ;

Cas 3 :
if(_ksys_get_button_id() == 1)return 0;
casser;

Défaut:
draw_window();
casser;
}
}
}

Enregistrez au format *.c. Ouvrez à l'aide du programme Shell intégré.
Vous devriez obtenir ce qui suit :


Je vais maintenant essayer d'expliquer en détail la signification du code.
Dessiner une fenêtre, code _ksys_window_redraw(1) alors_ksys_window_redraw(2). Pour naviguer dans l'espace, on utilise le code _ksys_draw_window, responsable des coordonnées x/y, de la couleur, de la largeur, de la hauteur, du type, etc.
Pour faire apparaître le texte, utilisez le code _ksys_write_text.
Types de fenêtres :
0 - type I - fenêtre de tailles fixes (pas de peau)
1 - définissez uniquement la zone de la fenêtre, ne dessinez rien
2 - type II - fenêtre redimensionnable (sans skin)
3 - fenêtre avec skin (redimensionnable)
4 - fenêtre avec une peau de dimensions fixes
Arrivé? Le programme est écrit en C, qui a récemment été pris en charge par Kolibri.
Avez-vous aimé ce système d'exploitation miniature ? Souhaitez-vous que je fasse une revue vidéo d’un tel système ? Cet article est-il utile ? Dois-je continuer à évacuer les informations de programmation de mon cerveau ? Écrivez vos réponses à toutes ces questions dans les commentaires et posez les vôtres. Vous pouvez télécharger Hummingbird sur le site officiel :

KolibriOS est un fork de MenuetOS et n'a aucun lien avec la famille UNIX ni avec le standard POSIX. Le système est écrit dans le Fasm assembleur multi-passes disponible gratuitement. Ce fait garantit une miniaturisation, une vitesse élevée et de faibles exigences matérielles. Un LiveCD amorçable occupe environ 7 Mo et les principaux composants peuvent tenir sur une disquette (1,44 Mo).

Mais légèreté ne signifie pas manque de fonctionnalité. Il dispose d'une interface utilisateur basée sur VESA, d'un ensemble de pilotes, d'un navigateur, d'un traitement de texte, d'un éditeur et d'une visionneuse graphique, d'outils de développement, de jeux simples et de nombreux autres programmes. Parmi les systèmes de fichiers, FAT12, FAT16, FAT32 sont entièrement pris en charge et partiellement (lecture seule) - NTFS, ISO9660, Ext2, Ext3, Ext4.

Configuration requise

  • CPU : Intel Pentium / AMD 5x86 / Cyrix 5x86 sans MMX avec une fréquence de 100 MHz
  • RAM : 8 Mo
  • Carte vidéo : prise en charge VGA (mode 640*480*16) ou Vesa
  • Clavier : AT
  • Souris : COM ou PS/2

Périphériques de démarrage pris en charge

  • Disquette 3.5
  • Disque dur IDE LBA
  • CD/DVD
  • Clé USB

Les langues disponibles sont l'anglais, le russe, l'italien et l'espagnol.

Installation

  • Vers une disquette :
  1. Téléchargez l'image universelle
  2. Enregistrement de l'image
  • depuis Linux :
    • jj si=kolibri.img de=/dev/fd0

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

  • Vers le disque dur (en utilisant GRUB ou GRUB2) :
    1. Téléchargez l'image universelle
    2. Décompressez-le dans le dossier kolibri à la racine du disque
    3. Configuration du chargeur de démarrage
    • VER. Ajoutez les lignes suivantes à menu.lst :
      • étiquette KolibriOS
        racine ( hd0.0)
        noyau /kolibri/HD_Load/memdisk
        initrd /kolibri/kolibri.img

    • GRUB2. Ajoutez les lignes suivantes à grub.cfg :
      • titre KolibriOS
        recherche --no-floppy --fs-uuid --set=root UUID
        linux16 /kolibri/HD_Load/memdisk
        initrd16/kolibri/kolibri.img

  • Vers une clé USB :
    1. Téléchargez l'image universelle
    2. Décompressez-le dans n'importe quel dossier
    3. Installation du chargeur de démarrage
    • depuis Windows :
      • Exécutez le fichier HD_Load\USB_Boot\inst.exe
      • Copiez kolibri.img à la racine du lecteur flash
    • depuis Linux :
      • Installez GRUB2 sur une carte flash : grub-install /dev/sdb
      • Les étapes suivantes sont les mêmes que pour l'installation sur un disque dur.
  • Vers CD :
    1. Télécharger un LiveCD amorçable
    2. Nous l'écrivons aux médias
    En fait, il existe de nombreuses façons d'installer un système sur un disque dur ou une clé USB. Je n'ai indiqué que les plus populaires et orienté vers le fait que toute autre distribution Linux est déjà disponible.

    Et oui, j'ai failli oublier : (hd0,0), UUID et /dev/sdb sont des variables. Par conséquent, vous devez remplacer ces valeurs par les vôtres. Voici comment les reconnaître :
    (hd0.0). Le premier numéro est le numéro du disque dur. Le deuxième numéro est le numéro de partition sur le disque dur souhaité. Le comptage commence à 0.
    UUID. ID de la section souhaitée. Vous pouvez l'obtenir avec la commande ls -l /dev/disk/by-uuid sur n'importe quel système Linux.
    /dev/sdb. Fichier de périphérique sous Linux. Vous pouvez le trouver soit à partir du gestionnaire de fichiers, soit à partir de la console ou de l'utilitaire de partitionnement de disque. Cela ressemble à /dev/sdX pour les périphériques SATA et /dev/hdX pour les lecteurs connectés à l'IDE.

    J'espère que vous avez réussi l'installation.
    Si vous avez des questions/problèmes, veuillez les poser dans les commentaires.

    Il est maintenant temps de faire le tour de KolibriOS.

    Captures d'écran

    Note: Cliquez sur l'image pour l'agrandir


    Commencez à télécharger KolibriOS


    Sélection d'un mode vidéo dans la liste des modes pris en charge






    Contenu du menu "Jeux" > "Logique"


    Contenu du menu Jeux > Arcade


    Contenu du menu "Démos" > "3D" (démonstration des capacités du système graphique)


    Contenu du menu Graphiques



    Contenu du menu Développer > Exemples


    Contenu du menu "Système" > "Paramètres"


    Contenu du menu « Système » > « Capteurs système »



    Contenu du menu "Système" > "Test"


    Contenu du menu Système > Accessibilité


    Contenu du menu « Traitement des données »


    Contenu du menu Réseau > Serveurs



    Contenu du menu divers





    Sudoku, dragueur de mines, dames




    Moniteur système. S'ouvre en appuyant sur quelque chose de rouge c'est dans le bac



    Fenêtre d'arrêt

    L'interface système présente un intérêt particulier. Après tout, sa taille est extrêmement petite et vous pourriez penser que l’interface est médiocre. Mais ce n’est pas le cas. Ici, vous devez prendre en compte des critères tels que l'apparence et la fonctionnalité. J'ai été satisfait de l'apparence : il est perçu sur un pied d'égalité avec les gestionnaires de fenêtres des systèmes Linux.

    Résultats

    J'ai aimé KolibriOS. Oui, peu de gens l’utiliseront comme système d’exploitation principal. Mais pour moi, elle est devenue un symbole de persévérance, de foi en sa force et en sa réussite. Le développement des colibris dans l'assembleur fasm est en cours depuis maintenant 9 ans. Beaucoup a déjà été fait, mais le projet continue de vivre et de se développer. Récemment, par exemple, le support USB est apparu. Et chaque jour (!) Des versions nocturnes sont publiées qui implémentent de nouvelles fonctions.
    L'un des principaux inconvénients est le manque de programmes familiers. Et ce n'est pas bon. Mais vous pouvez archiver de manière interactive

    KolibriOS tient sur une disquette et démarre en quelques secondes. Il existe environ 200 applications et les développeurs voient plusieurs applications réussies pour leur système.

    L'idée d'écrire un système d'exploitation entier en langage assembleur est étrange mais séduisante. Ses principaux avantages sont des performances exceptionnelles et une petite quantité de code exécutable. Les inconvénients sont également évidents : complexité et connexion stricte à l'architecture informatique. Il existe néanmoins encore des âmes courageuses.

    Le projet le plus célèbre de ce type est MenuetOS et sa ramification KolibriOS, développés principalement en Russie. L'histoire de ces systèmes d'exploitation n'est pas sans intrigues et controverses, et il y a des raisons à cela : premièrement, le projet est gratuit (licence - GNU GPL version 2), c'est-à-dire que ses participants travaillent non pas dans un but lucratif, mais pour une idée. Deuxièmement, les décisions telles que le choix de l'architecture du processeur, en raison de la nature du projet, sont dramatiques. Un groupe de développeurs qui décide de changer de plateforme est voué à retravailler presque entièrement le code source.

    Comparé à d’autres systèmes d’exploitation, MenuetOS est assez jeune. Il est développé depuis 2000 et a réussi à devenir célèbre dans les cercles de programmation (par exemple, l'article « Petite bobine, mais cher », écrit par Yakov Uvarov pour Computerra en 2005). KolibriOS est encore plus jeune : il est issu de Menuet en 2004.

    Pendant ce temps, les développeurs ont réussi à écrire environ 7,5 Mo de code en assembleur pur. Les sources Linux ont à peu près la même taille, écrites principalement en C, et ce n'est que le noyau, tandis que la distribution KolibriOS comprend un shell graphique et un petit ensemble de programmes d'application (pour s'amuser, on note que, selon les estimations basées sur le célèbre « fuite » de 2004, le code Microsoft Windows 2000 occupait environ 1,5 Go).

    Dans le même temps, "Hummingbird" n'est plus une "preuve de concept" ou un jouet, mais un système entièrement fonctionnel pour lequel des programmes sont écrits et qui peut réellement être utilisé pour un certain nombre (bien que pas particulièrement large) de tâches sérieuses. .

    Computerra s'est entretenu avec deux développeurs de KolibriOS - Dmitry Pereverzev et Igor Solodukha.

    - Qu'est-ce que KolibriOS ?

    Pereverzev :"Hummingbird" est un petit système d'exploitation doté de riches fonctionnalités. On pourrait dire que c'est un DOS moderne.

    - Si je comprends bien, pas seulement petit, mais généralement minuscule ?

    Pereverzev : Le noyau occupe environ 80 Ko. Autrement dit, comparable à la taille de MS-DOS dans les versions récentes. Et il existe bien d’autres possibilités.

    - Quelle est l'histoire de « Colibri » ?

    Pereverzev : En 2001, l'étudiant finlandais Ville Turjanmaa a écrit son système d'exploitation en langage assembleur. En 2004, il a décidé que les ordinateurs 32 bits étaient morts et s'est tourné vers le développement de MenuetOS 64, une version 64 bits de son système d'exploitation. La communauté n'a pas aimé cela et a continué à développer elle-même la version trente-deux bits. Et lorsque plus de la moitié du code a été modifié, le projet a été nommé "Hummingbird" en l'honneur de l'un des assemblages de systèmes russes.

    - Et qui a fait ça ? Étiez-vous déjà impliqué à ce moment-là ?

    Pereverzev : Je suis arrivé au projet environ un an plus tard. C'est alors que Marat Zakiyanov a fait cela. Distributions système collectées.

    - Est-il aussi dans l'équipe maintenant ?

    Pereverzev : Oui, il fait maintenant partie de l'équipe, développant le noyau, un gestionnaire de fichiers (son clone de Total Commander), des boîtes de dialogue de fichiers et un visualiseur graphique - le merveilleux zSea.

    - Quel est l'état actuel du développement ?

    Pereverzev : Nous attendons actuellement la sortie d'une nouvelle version, mais nous n'avons pas encore décidé du numéro. Le précédent était 0.7.7.0, et celui-ci sera soit 0,8, soit 0,9. On pense qu'il y a beaucoup de changements par rapport à la version précédente. Par exemple, la prise en charge des périphériques USB apparaîtra. Environ un an s'est écoulé depuis la dernière version.

    - Quel genre d'équipe avez-vous ? Combien de personnes aident activement ?

    Pereverzev : Il y a désormais une dizaine de développeurs très actifs et une trentaine de développeurs qui apparaissent ponctuellement sur le forum.

    - Quelle est la géographie ? Les développeurs sont-ils principalement russes ?

    Pereverzev : Principalement de la CEI, bien qu'il y ait aussi des développeurs belges et russophones d'Angleterre. Je viens moi-même de la région de Stavropol.

    Quelles sont les caractéristiques de Kolibri par rapport à d’autres systèmes, y compris par rapport à d’autres systèmes minimalistes ?

    Pereverzev : Comparé à d'autres systèmes minimalistes, « Kolibri » est le plus minimaliste ! De plus, parmi les systèmes de même catégorie de poids, « Kolibri » est le plus fonctionnel. Par exemple, il existe un bon système, Visopsys, il est aussi compact et tient sur une disquette, mais il ne peut rien faire.

    Quelles sont les principales différences entre Hummingbird et les « grands » systèmes d’exploitation ? Qu’est-ce qui n’est pas encore là et qu’allez-vous ajouter ?

    Pereverzev : Le support Internet est très important dans le monde moderne. Les pilotes TCP/IP et de carte réseau sont déjà inclus dans Kolibri. Nous travaillons actuellement sur un navigateur, tous les participants font quelque chose pour le faire apparaître d'une manière ou d'une autre. Jusqu'à présent, il n'y a que du texte, avec un support graphique limité. Bien sûr, il est encore loin d’être parfait.

    Malt: La présence d'un navigateur signifie de nouveaux utilisateurs et la popularité du système.

    Peut-être qu'un tel système serait généralement populaire comme analogue de Google ChromeOS - une couche minimale du système d'exploitation plus un navigateur. Comment penses-tu?

    Pereverzev : C'est tout à fait possible, d'autant plus que nous disposons déjà d'une implémentation minimale de Flash. Pas tout à fait complet, mais en assembleur.

    - Quelles autres applications réussies voyez-vous ?

    Pereverzev : Systèmes embarqués, systèmes d'acquisition d'informations et de gestion de production, clients légers. De plus, "Hummingbird" peut être un bon système d'exploitation pour les ordinateurs obsolètes.

    Malt: Il existe également des systèmes développés pour leur propre matériel. Des planches sont conçues pour eux de toutes pièces, et la branche « Kolibri A » est en cours d'écriture pour eux.

    - Quels sont les avantages de Kolibri, outre la légèreté et la rapidité ?

    Malt: Par exemple, "Hummingbird" peut être chargé non seulement sans disque, mais sans BIOS du tout. Vous allumez l'ordinateur, et après avoir testé l'équipement, « Hummingbird » apparaît immédiatement. Dans tous les cas, le chargement prend trois à quatre secondes après la mise sous tension.

    - Quelles architectures sont actuellement prises en charge ?

    Pereverzev : Désormais uniquement les processeurs x86, c'est-à-dire du 486 au dernier Core i7. Mais seulement en mode trente-deux bits.

    - La version 64 bits existe-t-elle ou est-elle simplement morte ?

    Pereverzev : MenuetOS 64 existe, mais il est très éloigné de son ancêtre.

    - Est-ce qu'une autre équipe le développe ?

    Pereverzev : Il est généralement développé par une seule personne. Toujours le même étudiant, mais probablement plus étudiant. Nous menons actuellement des expériences sur des systèmes multicœurs. Le cœur de trente-deux bits du système fonctionne sur un cœur de trente-deux bits et le deuxième cœur du processeur fonctionne en mode soixante-quatre bits. C'est tout, d'une manière astucieuse.

    Malt: Oui, c'est possible matériellement.

    - Vous avez toujours une version en temps réel, non ?

    Pereverzev : Ce n'est pas entièrement en temps réel, mais l'auteur du fil lui-même dit qu'avec certains changements sur lesquels on travaille activement, "Hummingbird" peut être utilisé pour les systèmes embarqués où un temps de réponse garanti est important.

    Malt: Et maintenant, le temps de réponse est déjà très court. Sur notre forum, vous pouvez consulter les résultats des tests du même programme, travaillant directement avec l'équipement, sous Windows XP et sous Hummingbird. Dans "Hummingbird", cela sort beaucoup plus vite. Désormais, afin de mettre en œuvre une véritable fonctionnalité en temps réel, nous devons garantir un temps de réponse garanti.

    - Comme « Kolibri » avec prise en charge de divers chipsets (y compris vidéo) ?

    Pereverzev : VESA est pris en charge par toutes les cartes vidéo modernes, et nous disposons également d'un port du pilote ATI Linux, et il prend en charge même les dernières cartes vidéo ATI. C'est bien sûr un peu lourd - cela prend plus de 100 kilo-octets, mais cela vous permet d'utiliser n'importe quel mode vidéo et même l'accélération matérielle. De plus, il est mis à jour régulièrement.

    - Qu'est-ce qui est pris en charge depuis la périphérie ?

    Pereverzev : Les périphériques sont également bons - il existe un support USB, c'est-à-dire que les claviers et les souris fonctionnent.

    - Qu'envisagez-vous d'ajouter d'autre dans un avenir proche ?

    Pereverzev : C'est difficile à dire, tout dépend du temps personnel des développeurs.

    Malt: Maintenant, par exemple, une personne est apparue sur le forum qui semblait vouloir implémenter Unicode, ou du moins a posé une telle question.

    - Quel est l'encodage maintenant ?

    Pereverzev : Désormais, le système en compte de facto 866, modifiés pour prendre en charge le russe, l'ukrainien, l'estonien, le letton et plusieurs autres langues. Mais le système de fichiers utilise Unicode, nous y passons donc lentement.

    - Au fait, quels systèmes de fichiers sont pris en charge ?

    Pereverzev : FAT12, 16 et 32 ​​sont destinés à l'écriture et à la lecture, plus ISO 9660 (ce sont des CD), et NTFS, Ext2 et Ext3 sont pris en charge pour la lecture.

    - Comment le multitâche est-il implémenté dans Hummingbird ?

    Pereverzev : Vous pouvez créer des threads, mais il n'existe pas de processus en tant que tels. Un processus est un ensemble de threads avec un espace d’adressage commun.

    - Et la mémoire protégée ?

    Malt: Il existe une protection de page standard pour l’architecture x86.

    - La communication entre processeurs est-elle mise en œuvre d'une manière ou d'une autre ?

    Pereverzev : Il y a IPC et il y a la mémoire partagée. Autrement dit, vous pouvez créer une image de mémoire partagée et échanger des données entre applications. Il existe également un presse-papiers à l'échelle du système.

    - Vous avez mentionné qu'il existe environ deux cents programmes pour Hummingbird...

    Pereverzev : En fait, il y en a beaucoup plus. Deux cents actuels qui fonctionnent bien.

    - De quel genre de programmes s'agit-il ?

    Pereverzev : Selon les statistiques, il y a plus d'une centaine de jeux.

    - Quels jeux?

    Malt: Surtout des petits jeux de logique.

    - Porté depuis quels autres systèmes ?

    Malt: Non, ils ont été écrits pour "Hummingbird".

    Pereverzev : En fait, écrire un jeu est beaucoup plus facile que créer quelque chose de sérieux comme un éditeur de texte ou de graphiques. C'est pourquoi les programmeurs s'essayent souvent aux petits jeux.

    Malt: Il existe des analogues de jeux d'autres systèmes - "sapeurs", solitaire, etc. Ils ont été écrits de toutes pièces pour "Hummingbird". Mais il existe également des programmes utiles - plusieurs gestionnaires de fichiers, dont un clone de l'Explorateur Windows, un clone de Far Manager et Total Commander.

    - L'un des jeux célèbres a-t-il été porté ?

    Pereverzev : Il y a Quake et Doom. Les émulateurs incluent DOSBox et un émulateur Nintendo. À propos, vous pouvez exécuter Windows 98 dans DOSBox - je l'ai essayé. Il existe une implémentation du langage Lua de la dernière version - 5.2. Il existe un moteur de rendu des polices Freetype et Mesa 3D - une implémentation des bibliothèques OpenGL. Une chose très importante : il existe des codecs ffmpeg. Un fait intéressant : sur une machine faible, nous avons fait tourner vingt à trente vidéos simultanément et la charge du processeur n'a pas dépassé 50 %. Dans "Hummingbird", il s'est avéré assez difficile de charger complètement le processeur.

    - Dans quels programmes sont principalement écrits ?

    Pereverzev : En assembleur.

    - Ils n'écrivent pas du tout dans des langues de haut niveau ?

    Pereverzev : Parfois, ils écrivent ou portent quelque chose en C ou en Pascal. Il existe plusieurs programmes en Lua.

    Malt: Je me souviens aussi qu'un des gars écrit dans une langue comme Sphinx C--.

    Pereverzev :À propos, c'est une langue curieuse. C’est C tel qu’il aurait pu l’être autrefois. Il était une fois un traducteur en assembleur, et C le resta, il ajoutait simplement du sucre syntaxique à la manière du langage C. De nombreux programmes intéressants y sont écrits.

    - J'ai entendu dire qu'il y avait une implémentation Python.

    Malt: Il existe tinypy, mais il n'y a pas encore de programmes dessus, et il ne sera pas possible d'exécuter un programme Python arbitraire dessus sans modifications. Certaines fonctionnalités importantes du langage manquent, par exemple les générateurs et les tuples.

    - Existe-t-il des machines virtuelles ? Y a-t-il eu des idées, par exemple, pour porter Java ?

    Pereverzev : On parle maintenant de la faisabilité d'une telle chose. En principe, cela est techniquement possible. En fait, j'ai même compilé moi-même l'implémentation de référence de Sun dans Hummingbird, mais la licence ne permet de la montrer à personne.

    - Y a-t-il des idées sur l'utilisation commerciale de « Kolibri » ?

    Malt: Nous coopérons avec la société israélienne Green Gadgets, qui produit des ordinateurs eBox et Edubook. Le profil principal de l'entreprise est constitué de gadgets à faible consommation pouvant même fonctionner sur piles. Par exemple, l'eBox-3300 sur laquelle nous avons montré Hummingbird ne consomme qu'environ 4,5 watts. Il n'a ni disque dur, ni ventilateur et est totalement silencieux.

    Aujourd'hui, tant à la maison qu'au travail, on utilise des ordinateurs puissants dotés d'énormes quantités de mémoire, les systèmes d'exploitation occupent plus d'un gigaoctet et les programmes de moins de 500 Ko deviennent de plus en plus difficiles à trouver. Mais il était une fois complètement différent !.. Il était une fois les systèmes d'exploitation étaient chargés à partir de disques magnétiques et la taille de la RAM était calculée en kilo-octets. Aujourd'hui, l'époque des « distributions de disquettes » est révolue depuis longtemps, et il semblerait que de tels systèmes d'exploitation aient disparu à jamais, mais... non, l'histoire continue !

    KolibriOS - l'arrière-plan d'un petit oiseau

    Tout système d'exploitation doit avoir une sorte de fonctionnalité qui le distinguerait de la foule de nombreux frères x86, sinon il n'a pratiquement aucune chance d'être remarqué. On pense qu'il est impossible d'installer un système d'exploitation à part entière avec une interface graphique sur un disque 3,5" ordinaire. Et dans la grande majorité des cas, cela est vrai, à une exception près. De nombreux langages de programmation modernes ont un vieux grand-père nommé Assembleur. Un grand-père de la vieille école si fort. Le fait est que les programmes écrits dans ce langage sont très compacts et rapides.

    D'autres langages de programmation (C, C++, sans oublier Turbo Pascal, Basic et bien d'autres) contiennent de nombreux codes de programme redondants conçus pour simplifier le travail du programmeur, ce qui ralentit l'ensemble du système. Le langage machine d'assemblage est plus " compréhensible"pour ordinateur" glande"en raison d'une absence" supplémentaire" commandes.

    Et ainsi, malgré tout, un système d'exploitation tient sur une disquette, sans oublier d'emporter avec lui la même interface graphique. Et l'héroïne de cet article s'appelle KolibriOS.

    KolibriOS – historique

    Le chemin épineux de ce petit OS a débuté en 2000 en Finlande. Son créateur Willi Turjanmaa(Ville Turjanmaa) envisageait de créer un système d'exploitation mono-utilisateur pour un ordinateur monoprocesseur, écrit dans un seul langage, à savoir assembleur(Assembleur). Le langage de programmation choisi, à son avis, était le mieux adapté à la création d'un nouveau système d'exploitation, principalement en raison de la vitesse élevée d'exécution du code.

    Cette idée s'est avérée très efficace et originale, qui a joué un rôle important dans la diffusion de la distribution. Une approche similaire avait été utilisée plus tôt, à la fin des années 80, mais ses prédécesseurs - MenuetOSétaient peu connus et ne disposaient pas de licence GPL (Freedom to Distribute).

    Licence publique générale (GPL)- contrat de licence ouvert, principe de développement et existence de nombreux systèmes d'exploitation (par exemple Linux et FreeBSD). Dans l'approximation la plus simple, l'essence de cette licence est que chacun a le droit illimité d'étudier, de modifier arbitrairement ou de changer les logiciels sous licence GPL sans aucune restriction, mais le résultat d'un tel changement doit également être rendu disponible sous la licence GPL.

    Initialement, MenuetOS n’était pas destiné à un usage quotidien des utilisateurs. Le principe de base de l’existence de tels systèmes d’exploitation est la programmation créative libre et la mise en œuvre de ses propres idées. Le système a été créé pour étudier le travail de l'architecture informatique x86 au niveau le plus bas et pour une communication fructueuse entre les développeurs de différents pays.

    Mais MenuetOS a rapidement acquis une interface graphique, la prise en charge des cartes son, des systèmes de fichiers FAT standard et de nombreuses autres fonctionnalités de base. Le 5 septembre 2001, après la publication d'une interview de Willi Turzhanmaa sur le célèbre portail Web, MenuetOS 0.54 a reçu une large publicité sur Internet, ce qui a entraîné une augmentation rapide de la popularité de la nouvelle distribution.

    De nombreux fans du nouveau système d'exploitation ont rapidement créé des sites Web dans leur langue maternelle, ce qui a suscité l'intérêt des utilisateurs ordinaires qui ne parlent pas anglais. Après quelques mois, la popularité a commencé à décliner et bientôt seuls les fans les plus dévoués sont restés avec le projet, qui considéraient MenuetOS comme le meilleur outil pour réaliser leurs idées créatives.

    Qu’est-ce qu’AtomOS ?

    Projet AtomOS créé par nos compatriotes, les tout premiers à se séparer de MenuetOS. Ils étaient trois et sur les forums on les appelait Protopope, Trans Et VaStaNi.

    L'objectif du projet était similaire aux objectifs tacites de KolibriOS : créer un système d'exploitation viable en assembleur. Mais il était censé être créé de toutes pièces. Ils disent que les gars ont réussi à attirer plusieurs personnes supplémentaires et ont même mis en place plusieurs versions de test du noyau. Mais, malheureusement, il s'est produit quelque chose qui arrive souvent aux projets non commerciaux : les développeurs ont tout simplement perdu tout intérêt pour leur idée...

    Depuis 2005, tous les développements ont été complètement stoppés. En fait, c'est la seule chose qui reste en ligne.

    Qu'avions-nous ?

    La vague de popularité de la distribution n’a pas épargné notre pays. Le premier groupe de développeurs a cherché à introduire de nombreuses innovations et ajouts originaux à la jeune distribution (notamment l'idée de séparer le noyau système et l'interface graphique)

    Mais, malheureusement, les idées nationales ont été reçues « froidement » par le fondateur du projet et, par conséquent, les développements des programmeurs russes n'ont tout simplement pas été inclus dans la distribution officielle. Cela a provoqué un déclin d’intérêt et la désintégration de l’équipe de développement d’origine. La deuxième vague de programmeurs s'est formée après la parution d'articles dans des magazines informatiques et existe toujours.

    À la mi-2003, les temps étaient durs - l'auteur du projet s'est désintéressé de sa distribution et a décidé de se consacrer à un nouveau projet. Menuet64- un système d'exploitation 64 bits en langage assembleur, fondamentalement différent de MenuetOS. Un an plus tard, le projet est finalement abandonné par le créateur... Dans ces conditions, une partie de l'équipe russe quitte le projet et commence à développer son propre projet - AtomOS.

    Il convient de noter que cette fois également, les réalisations des programmeurs nationaux ont été incluses avec beaucoup de réticence et de lenteur dans la distribution officielle de MenuetOS, ce qui a conduit à divers conflits entre « nos » développeurs et étrangers. Nouveau chef de projet Mike Hibbett d'Angleterre a d'abord apaisé les tensions en ouvrant l'accès aux développements russes pour publication dans le kit de distribution officiel, mais en 2005, invoquant son emploi, il a démissionné de son poste.

    Et tout s'est reproduit - un nouveau leader Jaroslav Pelczar a relancé le développement de MenuetOS pendant une courte période, de nouvelles solutions sont apparues et... c'est tout. Aujourd'hui, les travaux internationaux sur le projet sont pratiquement arrêtés. Était-ce vraiment la fin ?.. Heureusement, la communauté des développeurs des pays de l'ex-URSS n'a pas voulu se séparer de ses propres réalisations et a décidé de commencer à développer elle-même une nouvelle branche MenuetOS.

    Cette branche a reçu un nom symbolique - KolibriOS. La petite distribution a ainsi trouvé sa deuxième maison en Russie, a acquis un nouveau nom et continue de se développer. Le site Web russe est constamment mis à jour et de nouvelles distributions sont publiées dès qu'elles sont prêtes.

    Nos programmeurs ont considérablement amélioré la distribution de base et ajouté de nombreuses nouvelles fonctionnalités. La liste des équipements pris en charge a été élargie avec de nouvelles imprimantes et cartes vidéo. Aujourd'hui, il est possible de travailler avec des sections dans FAT12, FAT16 Et FAT32, ainsi que la lecture de Partitions NTFS. Selon les développeurs, la fonctionnalité KolibriOS a atteint le niveau de Windows 95, mais est nettement en avance sur ce dernier en termes de taille et de stabilité.

    Dans la distribution russe, un certain nombre de restrictions sur l'utilisation de l'USB ont été surmontées, mais l'utilisation réelle de ce bus n'est pas encore possible. La possibilité d'utiliser un protocole réseau standard a été ajoutée par l'ancien coordinateur du projet Mike Habbett TCP/IP avec toutes les opportunités qui en découlent sous forme de soutien HTTP, FTP, TELNET, courrier électronique et IRC.

    Pour mettre en œuvre ces capacités, il suffit d'installer le logiciel approprié, d'utiliser une carte réseau prise en charge et de configurer le protocole réseau. Malgré les nombreuses réalisations du petit Hummingbird, il ne faut pas oublier que la distribution a été créée à l'origine par des programmeurs pour des programmeurs et constitue avant tout une plateforme pour la créativité technique de spécialistes compétents.

    Le projet est un système d'exploitation de recherche et n'est actuellement pas destiné à une utilisation quotidienne en tant que système de bureau. Les capacités de MenuetOS ont également trouvé une application pratique : la société américaine GridWorks utilise la distribution pour organiser des services Internet en ligne.

    Regardons de plus près KolibriOS ?

    Première connaissance avec KolibriOS C'est très simple et rapide : il suffit d'écrire l'image sur une disquette et de démarrer à partir de celle-ci. Processus de démarrage KolibriOS est:

    Mais ce programme a montré que KolibriOS fonctionne avec un serveur DNS, ce qui signifie que, théoriquement, l'avenir des applications Internet dans cet OS pourrait commencer très prochainement. Eh bien, attendons la mise en œuvre complète des capacités réseau dans les versions à venir.

    Avez-vous des virus ?

    Je pense qu'une telle question semblera pour le moins étrange à beaucoup, mais non, monsieur, la réponse sera affirmative. KolibriOS contient également un virus ayant migré depuis MenuetOS. Ça s'appelle un virus Menuet.Oxymore et est détecté par de nombreux antivirus populaires, par exemple Kaspersky Anti-Virus.

    Comme prévu, chaque virus doit avoir un antidote, et le voici MenAV, pour ainsi dire, un antivirus avec une seule entrée dans la base de données. Un fait intéressant est que, encore une fois, de nombreux antivirus populaires, par exemple Dr.Web, considèrent MenAV comme un virus (ou plutôt un cheval de Troie) et l'appellent MeOS.Xymo. C'est l'histoire.

    Continuons la conversation

    Vous pouvez afficher le contenu de n'importe quel disque dans le gestionnaire de fichiers standard X-TREE, écrit spécifiquement pour Colibri notre compatriote Evgeniy Pavlishin. Il convient de mentionner ici que lorsque le système d'exploitation démarre, il monte automatiquement les disques durs et, par conséquent, dans X-TREE, vous pouvez voir les partitions de votre disque dur (il existe un support pour FAT32 et NTFS).


    Les fichiers sont ouverts en un clic de souris par le programme associé. Je voudrais noter que dans KolibriOS il n'y a pas d'horloge sur le curseur - tout fonctionne instantanément ou ne fonctionne pas du tout...

    Malgré la "taille de la disquette", il existe de nombreux petits jeux dans la distribution - Tetris et Arkanoids seront fournis à tout le monde. De plus, les jeux sont vraiment petits, par exemple, un bon Tetris prend moins de 1125 octets. Très impressionnant, même si on le compare aux jeux Java "miniatures" pour téléphones mobiles.

    En général, l'interface du programme est agréablement agréable avec des couleurs fraîches et une jolie police en pointillés. Il n'est pas nécessaire de configurer les paramètres de langue : pour la plupart des développeurs actuels, le russe est la langue maternelle. Et donc KolibriOS parle russe immédiatement après le lancement.

    Une tribu indestructible d'éditeurs de texte vit sur chaque ordinateur depuis des temps immémoriaux ; le texte natif local s'appelle TinyPad 4.0.4.

    J'ai été particulièrement satisfait de l'hymne russe, qui a été joyeusement reproduit à l'aide d'un lecteur MIDI miniature dans le skin Winamp.

    À bien des égards, vous pouvez sentir la main « russe » des programmeurs. Il a été créé spécialement pour la distribution russe KFAR (Kolibri FAR) similaire à son homologue Windows FAR - la création populaire d'Alexander Roshal, créateur du non moins légendaire WinRAR.

    Concurrent direct KFM (Gestionnaire de fichiers Kolibri) s'est avéré beaucoup plus faible que KFAR, ne serait-ce que parce qu'il refusait simplement de copier et de visualiser les fichiers sélectionnés.

    Il y a une documentation exhaustive sur le système directement sur la disquette, il y a même un manuel pour le jeu " pharaon". À des fins de démonstration, de nombreux programmes réseau (serveurs MP3, HTTPS, SMTPS), programmes de surveillance (test de vitesse graphique, Moniteur fantôme), visionneuses graphiques, éditeur d'icônes.

    Il y a toute une section dans le menu pour les développeurs : éditeur HEX, packers, débogueurs et exemples de programmes. Pour démontrer les capacités des graphiques 2D et 3D, de nombreux " démo" - des mini programmes montrant des compositions plates et tridimensionnelles à partir de divers objets.

    KolibriOS - au lieu d'une conclusion

    En général, le système crée une impression agréable - une belle interface, des programmes compacts, une vitesse élevée. Je suis particulièrement heureux" trace russe", comme l'hymne russe directement dans le kit de distribution. Vous vous sentez involontairement fier de votre pays d'origine, des développeurs nationaux, de ce qu'ils ont fait pour un petit système d'exploitation.

    Peut-être que tous ceux qui s'intéressent à KolibriOS savent que le seul moyen d'accéder au réseau mondial était et est, et à ce jour, un navigateur de texte écrit presque à partir de zéro par l'un de nos développeurs. Ce navigateur est peut-être l'une des « attractions » de l'OS, et c'est pourquoi il a été décidé de raconter son histoire : comment il est apparu, s'est développé et quels sont les projets pour le futur proche. Toute personne intéressée, bienvenue sur Cat.

    Le message a été créé en étroite collaboration avec l'auteur du programme Leency, et donc la narration vient de son point de vue.

    Si je n'étais pas un imbécile aussi naïf, je n'aurais jamais commencé à écrire un navigateur ! Plus diamant(@grechnik), un programmeur chevronné, a déclaré que de sa vie il n'oserait jamais se lancer dans une telle aventure. Mais j'étais jeune et je sentais que j'étais sur le point de faire de grandes découvertes. C’est un sentiment indescriptible, comme si le monde entier était à mes pieds – il suffit de tendre la main et tout est à vous. Par conséquent, le premier programme que j'ai décidé d'écrire était un gestionnaire de fichiers comme l'Explorateur Windows, et le second était un navigateur. Pour ainsi dire, « Hello World » est destiné aux faibles, les programmeurs sympas commencent par les navigateurs.

    Tout ce malheur a commencé par une chaude journée de juillet 2008, six mois après Kostya Veliant m'a envoyé le code source de la visionneuse HTML, dont les capacités, à l'exception du manque de support réseau, étaient presque égales à celles du navigateur HTTPC Hummingbird actuel à l'époque.

    Ce programme s'appelait simplement « HTML Viewer in C-- ». J'ai commencé par adapter le code du programme à la nouvelle version de la bibliothèque (menuet.h-- → kolibri.h--), en améliorant le design, en ajoutant le support des touches de contrôle et en faisant défiler avec la molette. L'inconvénient est que le texte s'affichait dans la fenêtre une lettre à la fois :)

    Ci-dessous une capture d'écran de la première version 0.00001, publiée le 20 juin 2008.

    En 2 jours, il y a eu une mise à jour vers la version 0.1, la liste des modifications comprenant :

    • prise en charge plus ou moins complète des balises : b, strong, i, u, s, br, pre, title, li, p ;
    • prise en charge des balises imbriquées ;
    • barre d'adresse (EditBox) de Lrz;

    Dans la version 0.2, le texte a commencé à être affiché non pas lettre par lettre, mais en lignes, et la réduction de deux ou plusieurs espaces consécutifs en un seul a été ajoutée.

    Le développement ultérieur du programme a suivi un chemin évolutif : la prise en charge des balises a été améliorée, le bouton « Retour » a fonctionné, la prise en charge des chemins relatifs, plusieurs paramètres de balises, des listes à plusieurs niveaux et quelques autres fonctionnalités sont apparues.

    D'ailleurs, je constate que pendant tout ce temps le programme n'était pas un navigateur, mais affichait uniquement des pages HTML, d'où le nom HTMLv (HTML Viewer). Le tournant s'est produit dans la version 0.48.5, merci pour cela barsuk"oui :

    «J'ai pris HTTPC, coupé l'affichage HTML et ajouté une allocation de mémoire dynamique à la page Web. Si vous combinez cette chose avec HTMLv, vous obtenez un navigateur.

    C'est ce qui a été fait. Le HTTPC découpé a été appelé téléchargeur de fichiers et renommé téléchargeur. Et voici les premières captures d'écran des pages téléchargées par le navigateur via downloader :

    La combinaison "HTMLv+downloader" a fonctionné à merveille : si l'adresse de la page commence par "http://", alors HTMLv a lancé le downloader avec le paramètre d'adresse de la page. Le téléchargeur a téléchargé le fichier, HTMLv a humblement attendu. Une fois le téléchargeur terminé, il a enregistré la page dans "/sys/.download" et s'est fermé. HTMLv s'est déclenché à ce moment et a ouvert la page enregistrée.

    Oui, c'est une béquille folle, mais ça a marché ! C'était la première véritable façon d'aller en ligne avec Hummingbird et d'y lire à peine quoi que ce soit. Cela peut paraître drôle, mais ce fut un moment psychologique important : il y a désormais dans Kolibri une fenêtre sur le monde ouvert.

    Au fait, à propos des hacks... Ceux qui connaissent Kolibri savent très bien qu'il y a toujours eu un problème avec les polices : il n'existe que deux polices système : monospace et... non-monospace. 90 % utilisent le monospace et la taille des lettres est de 6 x 9 pixels. Pas de gras ni d'italique. Mais c'est dans le navigateur ! La police grasse est constituée de deux lignes de texte superposées avec un décalage d'un pixel le long de l'axe X. Avec l'italique, tout est un peu plus intéressant. La première version a été implémentée par lev dans la version 0.63 : d'abord, le texte brut était affiché dans la fenêtre, puis l'écran était capturé en mémoire puis affiché à nouveau dans la fenêtre avec un décalage |||| → //////

    Les nouvelles fonctionnalités des versions ultérieures concernaient l'ajout du menu RMB, la prise en charge des ancres et un système de mise en cache d'images.

    Voici une capture d'écran de la page de test acid_0.1.html, qui a longtemps été utilisée pour tester le navigateur.

    Mais plus j'allais loin, plus j'avais l'impression de faire fausse route...

    Il fallait faire quelque chose à ce sujet. Vous vous souvenez du début de l'article ? «Par conséquent, le premier programme que j'ai décidé d'écrire était un gestionnaire de fichiers à la manière de l'Explorateur Windows, et le second était un navigateur. Ainsi, le code Eolite a été réécrit de manière évolutive : étape par étape, morceau par morceau, et au fil du temps il est devenu logique, lisible et simple. Le code HTMLv restait encore non structuré et difficile à modifier et à maintenir, et l'ajout d'une nouvelle fonctionnalité entraînait inévitablement de nombreux problèmes. Réalisant ce moment avec chagrin, je me mis à le remettre en ordre. Le premier signe de cette tâche difficile fut HTMLv 0.99.

    Dans HTMLv 0.99, le dessin dans le tampon a été implémenté. Ceux. Auparavant, une ligne de texte était affichée comme suit : un rectangle de la couleur d'arrière-plan était dessiné dans la fenêtre et le texte était affiché en haut. Maintenant, un « dessin » a été créé en mémoire, rempli d'une couleur de fond, du texte et des lignes y ont été dessinés, et à la fin ce dessin très terminé a été affiché dans la fenêtre. Cela a augmenté la vitesse et offrira de nouvelles opportunités à l'avenir.

    La version 0.99.1 prend désormais en charge les balises et, ainsi que align="center" et align="right"

    Dans la version 0.99.31, un événement important s'est produit :
    A partir de cette version, le composant WebView, qui affiche le contenu de la page en HTMLv, est placé dans un module séparé et peut être compilé dans le cadre d'un autre projet C. Cela a été fait pour afficher le contenu de la lettre dans le client de messagerie Liza et pour améliorer la structure du code.

    À partir de la version 1.0 bêta 1, le programme a été renommé WebView. Cela n'a pas été fait en vain, car le programme s'est sensiblement développé au cours des deux dernières versions. Dans la même version, en plus du nouveau nom, le programme a reçu :

    • prise en charge native du travail avec le réseau via HTTPlib écrit par hidnplayr sur FASM (le téléchargeur n'était plus nécessaire)
    • nouveau design
    • afficher le processus de chargement de la page via la barre de progression
    • afficher l'adresse dans la barre d'état lorsque vous survolez le lien
    • soutien de la peau

    Dans les versions suivantes, la prise en charge des balises a été améliorée, les problèmes ont été résolus et de nouvelles fonctionnalités ont été ajoutées. Le prochain changement important a été apporté dans WebView 1.0 Beta 4 : affichage du code source de la page dans le navigateur avec coloration syntaxique.

    La dernière version d'aujourd'hui est WebView 1.0 Beta 6.1. Un travail important a été réalisé pour optimiser le programme.

    Une courte revue vidéo :

    Avez-vous aimé l'article? Partager avec des amis: