Pocket OS

Version Française du texte


Presentation:

Pocket OS is an operating syteme in the spirit of DOS.

DOS has the advantage of being simple and having a quick start. The goal of Pocket OS is to recover those benefits and to eliminate some drawbacks.

Pocket OS features are:

Pocket OS is not intended to replace an operating system for an office environment, but is intended to run one application at a time. It is a good choice for embedded systems, and allow to easily develop an application that will run on USB flash drive or SD card.

Test with Qemu:

Installation on USB key (or other removable device) :

To install Pocket OS it is required:

  • USB stick or memory card with size of at least 16 MB.
  • Windows (in administrator mode).
  • The archive 'PocketOSdist.zip' (include setup program and image of the kernel).

1/ First step:

The installer does install only on a removable disk type, with a single partition (type FAT or FAT32) and whose volume name is 'Pocket OS'. We must therefore prepare the usb key before installation by using Windows Explorer. (Right click on the volume, select Format, defines FAT, quick format, and name the volume 'POCKET OS')

All data on this key will be deleted.

2 / second step:

Exemple:

 

Notes:

Once the PC or emulator booted Pocket OS, commands are:

Development:

Application development for Pocket OS can be done with Windows visual C++ 6 or Express, or possibly with the integrated compiler (TCC). However, with TCC there are currently no debugger. GCC on Windows (mingw) can also be used but there is no debugger either.

To start, download the archive PocketOSdev.zip and decompress it into a directory (on Windows). Directory contains example programs with project files.

notes:

  • Each sample program is located in a different directory. Each directory contains the project files for visual 6 and visual studio express. Attention to visual express, load the project file .vcproj and not the. dsw (automatic convertion of .dsw to vcproj does not set all the necessary options)
  • See the Readme.txt in the archive PocketOSdev.zip for more informations.

Informations:

  • Graphic modes : The kernel reserves memory at boot time for the frame buffer and the window manager. So 28 MB of memory is reserved to allow a graphic mode in 1920 * 1200 * 32 bits. If the machine has less memory, some graphics modes will be not availables. Currently there is no checks that the monitors can handle the graphics mode, so for those who are still using CRT monitors, take care to not set a mode that could damage the monitor (on very old monitors)
  • Bios: Pocket OS returns to 16-bits mode to perform BIOS interrupts in the following cases:
    • Initialize a video mode using VESA bios.
    • Access to the USB drive. This is not very fast but solves the drivers problems.
  • Mouse/Keyboard : Pocket OS in current version support only PS2 keyboard/mouse. If the machine uses a USB keyboard or mouse, then PS2 mode can be emulated by activating this option in the bios of the PC. However, the BIOS generally do not emulate the whell mouse, and some do emulate only the keyboard. In the case the mouse is absent in windowed mode, it is possible to close a window with keys ALT + F4

What remains to be done on the Beta:

  • Documentation.
  • Additional example programs.
  • Define the API for programming windowed applications. Add keyboard shortcuts for menu access.
  • initialization of MTRR.

Future development:

  • Access to the memory located above the 4GB. (May use 64 bits long mode)
  • Enable some memory protection (configurable)
  • Driver's (sound in first), then network, serial port (USB?).
  • Port to ARM processor

 Bugs report: Please email me, I will make a list and correction in future update.

Documentation:

Downloads:

Screenshot:

 console:

Windowed mode:


Copyright (c) 2011 Pierre Leroy

Contact: pierrel5@free.fr