Project laststep

laststep is a line of upcoming computer operating systems, currently developed by Marcus Strehlow – also known as SystemError51 or SE51. Once development completes, laststep is intented to be a commercial software product.
This line of operating systems encompasses a consumer version (laststep), a version for use in industrial environments (laststep Server), and an unnamed version for mobile devices. The current working title for version 1.0 is “Rainbow”, where as a potential successor (laststep 2), is code-named “Aurora”.
Underneath the graphical components of the operating system, SE51 introduces a POSIX compliant operating system core named Newton. The foundation is built around a monolithic kernel, with standard Linux/Unix facilities available from the command line interface. While providing legacy support for the POSIX directory standard, the actual hierarchy in Newton is different compared to other Linux/Unix systems out there. On top of Newton, SE51 layers a set of components and frameworks including the user interface library lastGI and a graphical compositing mechanism named Illuminous, that make up the GUI operating system that is laststep.
In its current development stage, the desktop environment, which is at the center of all interactions, includes a mechanism that could be interpreted as a paradigm shift compared to the approaches of other operating systems like Windows or Mac OS X. However SE51 has not provided any closer details, other than the name MenuShelf.
The operating system comes with numerous internal mechanisms to provide a richer usability for daily computer usage. Rewind is a built-in backup system, while Cosmos is a widget engine that can display any kind of information in small areas of Desktop space.
SE51 currently considers tying the operating system to a specific line of hardware, which could possibly be branded for use with laststep software, for example such a computer would carry the prefix “last”, which is followed by a distinct identifying product name. As it is currently considered using specific hardware for the laststep software, licensed computers on which the software could run on would therefore be named as follows:
- lastBox / Pro
A computer ready to perform the tasks sought after by the majority of the population, while running laststep. The Pro configuration would concentrate or more demanding tasks such as image manipulation, games, or 3D rendering.
- lastBook / Pro
A notebook line split into two versions. The first configuration would be designed for more general tasks, where as the Pro configuration would concentrate on more demanding processes. Both of which would be portable.
- lastServer
A server configuration that is designed to run in tandem with laststep Server code. This hardware would be designed for use in industrial environments and delivery of web and network services.
- lastCinema
A minimalistic hardware configuration that concentrates on delivery of entertainment at home, while running a modified version of laststep, which also specializes in delivery of multimedia. Understandably, this laststep version would be heavily stripped down and for example would not employ a desktop.
Numerous components and frameworks in laststep are based upon the GNUstep framework, a free and open source implementation of the OPENSTEP protocol, heavily popularized by NeXT computer and their operating system NeXTSTEP. These components and frameworks therefore are entirely written in Objective-C, thus in theory almost every component could also be compiled on Mac OS X with little or no modification in the source code.
Illuminous, the graphical compositing engine of the operating system, provides effects for windows such as border translucency and fade-in and fade-out effects. While actual windows are being built and displayed through the lastGI library, Illuminous takes care of visual aspects. These effects can be turned on or off by the user if that is desired.
Searchlight is the mechanism built into laststep which allows the user to find data stored on his computer by typing keywords. As soon as a letter is typed in, a search begins, narrowing the search results with each letter the user types. Applications can access the index through a background application named IndexingService, which is notified on changes in the file system, thus keeping an up to date record of data on the computer. Searchlight stores certain information by default but can store additional information about a file or folder, such as meta tags or a customized description. For music files, information about the track, artist, or cover art is stored in the database. This mechanism is also accessed when browsing through files on the computer, exceeding the speed of other file browsers as information from a database is read instead of the actual files.
Hello World
As a programmatic example, this is a graphical Hello World program in laststep.
#include <lastGI/lastGI.h> int main(int argc, const char *argv[]) { [NSApplication sharedApplication]; NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; LSAppController *controller = [[LSAppController alloc] init]; [controller initLSApp]; LSWindow *hw = [[LSWindow alloc] newWindowWithWidth: 400 // Window width withHeight: 250 // Height spaceFromLeft: 200 // Where to position from left edge of screen spaceFromBottom: 200 // From bottom edge isClosable: YES // Can be closed isMaximizable: NO // Cannot be maximized isIconifyable: NO // Cannot be iconified (minimized) isResizable: YES // Can be resized appController: controller // Every laststep window has to have one ]; // Set title of window [hw setWindowTitle: @"Hello world!"]; LSTextLabel *hwLabel = [[LSTextLabel alloc] // Allocate the label object newLabelWithString: @"Hello World!" // The string to display withWidth: 500 // String width withHeight: 30 // String height fromLeft: 50 // From left edge of the window's element area fromBottom: 50 // From bottom edge ]; // Adding the label to window [hw addElement: hwLabel]; // Display the window [hw showWindow]; // Release pool and wait for window to close [pool release]; // End execution return 0; }
Current implemented functionality
As of the moment, the following features are partially or completely implemented:
- lastGI
- MenuShelf
- Voyager file manager and service
- Searchlight (aka IndexingService)
- Grids (virtual desktops)
- Illuminous compositor
- DesktopService with lastBar
- Cosmos Widget Engine with CML parser
- Settings application, capable of using third-party preference panes
- Sneak Peek preview engine
- Safety Nets for services
- IPC between all services and applications
Release date
A release date has not yet been announced although a demo could be ready somewhere in 2010.