Version Franšaise du texte
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
Pocket OS features are:
- Operating in native 32-bit mode.
- Direct access to all addressable memory (up
to 4 GB). No need Manager EMS, XMS, DPMI .. and to switch from 16bit
to 32bit and vice versa.
- 32-bit compiler faster, and no need to
handle segment/offset in the memory access.
- Native support of long file names (in FAT12, FAT16,
- Native support of vesa graphics modes. Provides
a graphical console and allow to use the native resolution of the
- New shell closer to
a programming language replacing the ''.bat" files.
- Simplicity of the code. Kernel compact, about 130KB
(romable). Boot in less than a second.
- Small time latency for interrupts and
precise control of timings..
- Simplicity when programming the hardware. No virtual
address, and access to IO is done directly.
- Works on USB stick, SD card, hard drive.
- Applications can be developed and debugged in Visual C++ on Windows. The
executable generated by Visual Studio can be used directly on Pocket
OS and can also be run on Windows. (under certain conditions if
the application does not directly access the hardware).
- Updating the kernel is simple,
just copy the new file 'kernel' in the 'boot' directory of grub
with the Windows file explorer.
- Has a window manager
to make windowed applications. Uses the vesa graphics modes in 8/16/32
- The kernel compiles with GCC on Windows (mingw).
- Possesses an integrated C compiler (TCC Tiny CC).
- Have a Windows emulator, also works on qemu.
- Supports SMP (multiprocessor), the number of process depends of the number
of available physical processors. (1 per cpu). Only the BSP (boot processor)
can use the IO functions.
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:
- Unzip the archive 'PocketOSdist.zip' in a directory
- Run the testQE.bat batch file. This starts Pocket OS with the
qemu emulator (included in the archive)
Installation on USB key (or other removable
To install Pocket OS it is required:
- USB stick or memory card with size of at least
- 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
2 / second step:
- Unzip the archive PocketOSdist.zip into a directory.
- Start the installation program 'installOS.exe' and follow the
- After the installation is
finished, the copied data on the drive are not visible immediately with Windows
Explorer. We must remove and replace the key the first time (use
'remove the device safely')
- The installation creates a small partition of
16MB, the rest of the disk is unused. It is possible to
create a second partition on the drive to use the remaining space
(which will be visible as a D: under Pocket OS drive if the partition type is
FAT). But this partition will not be visible under Windows because this one recognizes
only the first partion on removable disks. However, this can be
changed by changing the driver for the usb key. (Method explained on the web).
- Once the installation is complete, if the
PC keyboard/mouse is USB, verify that the PS2 emulation is enabled in the
bios. Reboot the PC and select the key as the boot device.
- To install on a fixed
hard disks, you must connect the drive to a USB adapter and install as
above. Then remove and reconnect the drive internally.
Once the PC or emulator booted Pocket OS, commands
- If your keyboard is not US you can change it with the
command 'keyb keymap/keyb_xxx.map' (xxx = language).
- To see available keymap use 'dir keymap\*.*'
- You can add the command in autoexec.sh to fix keymap at boot.
- help: displays the list of commands.
- To display the README.TXT file, type 'edit readme.txt'.
edit.exe is a text editor, it works in windowed mode and requires a graphics
video mode to be set.
- The list of graphics modes can
be displayed with the command 'vesamodes'. To initialize a video mode from the
list, use the 'vesaset' command. Example: vesaset 800 600 16 Initializes the graphics
mode 800 x 600 in 16-bit (65k colors). The 15 and 24 bit modes are not
- Special keys: CTRL + ALT + DEL => reset
- CTRL + PAUSE = > break the current program.
- ALT + F4 = > closes a window (under the window manager), useful
to exit if the mouse is not active.
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.
start, download the archive PocketOSdev.zip and decompress it into a directory (on
Windows). Directory contains example programs with project files.
- 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
- See the Readme.txt in the archive PocketOSdev.zip for
- 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
- 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:
- Additional example programs.
- Define the API for
programming windowed applications. Add keyboard shortcuts for menu access.
- initialization of MTRR.
- 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.
Copyright (c) 2011 Pierre Leroy