SlideShare une entreprise Scribd logo
1  sur  13
Télécharger pour lire hors ligne
WinBuilder is a project dedicated to the research and production of boot disks based on Microsoft
Windows Operative Systems.


                                                                                       Nuno Brito
                                                                                       March 2009
Index of Contents
Background...........................................................................................................................................3
Development Structure.........................................................................................................................4
   Core Development...........................................................................................................................4
   Project Development teams.............................................................................................................5
   App script developers......................................................................................................................6
   Beta testing and feedback................................................................................................................6
Script Engine and programming language...........................................................................................6
   Script levels......................................................................................................................................7
   Syntax usage....................................................................................................................................8
   Script UI.........................................................................................................................................10
Marketing............................................................................................................................................11
   Target Audience.............................................................................................................................11
   Partnerships....................................................................................................................................11
   Press...............................................................................................................................................12
   Forums...........................................................................................................................................13
Conclusion..........................................................................................................................................13
Background

WinBuilder is tied to the concept of constructing customized Windows Operative Systems.
Microsoft binary files from the Windows Install CD/DVD's are used as source to build these
customized versions without resorting to the internal Windows installer as typically expected and
this process is achieved in full conformity with MS's EULA (End User License Agreement).
A typical WinBuilder project will make available a customized Operative System that is suited for
very specific purposes, in most cases it will be used for System deployment tasks or used as
computer recovery tool.
The ideal work platform for these projects is Windows PE (PreInstalled Environment) due to
several characteristics as the default footprint size (<300Mb), portability and optimal performance
due to the lack of addons traditionally expected on a full Windows Install..
Early versions of Windows PE began with Windows 95 which was installed using a reduced version
of Windows 3.11 (called “mini”). Later with XP, the graphical portion of the Windows XP Install
process started being performed by the core OS itself, which is launched with a specific parameter
called “/miniNT”.
Microsoft also made available a customizable Windows PE package to a few selected organizations
who purchased the right to use this technology, however, the previously mentioned “/miniNT”
switch was quickly explored by System Administrators because it was possible to manufacture a
minimally functional and portable Windows XP OS as alternative to the official Windows PE
package.


A XP based PE OS is typically small sized and works from Read-Only media as the case of
CDROM's. It's portable and supports a satisfatory array of Windows 32 bit programs that come
handy for advanced diagnostics or repair of machine from where they boot. This home-made
solution was available at a small fraction of the cost implied for Windows PE license as this usage
doesn't breach the terms available on the standard XP EULA.


However, building such OS required a construction process understood only by people with some
degree of experience handling and debugging MS software.
In 2002, the first tool to ease the task of using this “/minint” switch was published by Bart
Lagerweij, entitled “Bart's PE Builder” and based on the same construction method adopted by
Windows PE version 1. This software quickly become the standard tool to produce Windows PE
boot disks from Windows XP and Windows 2003 sources.


WinBuilder surfaced at the boot disk history in 2005 as a tool designed for developers interested in
customizing even further these Windows PE boot disks to even more extreme levels of usage,
quickly gaining reputation and respect as a quality project.
Over the years, the results remained very satisfactory and WinBuilder consolidated it's position as
the “de Facto” tool for thousands of IT workers and home users when it comes to customize
Windows PE images.
Projects like LiveXP, VistaPE and similar boot disk projects are continuously developed by an
interesting community of people around the world who volunteer to contribute with their talent and
further explore the potentialities of the Windows PE platforms.
With the advent of Windows Vista and Windows 7, WinBuilder became the only software capable
of creating Windows PE versions 2 and 3 as alternative to the tools distributed by Microsoft in the
WAIK package.


All work inside the official WinBuilder structure is organized and based on volunteer work, the
developed projects attempt to follow a strict non-profit policy as much as possible to make these
products more attractive and available to a wider audience.
Exceptions are occasionally made when a company directly contributes to project developments by
sponsoring a software developer with the intention of providing an end result that would meet their
specific expectations.



Development Structure

The development of this project is separated into specific groups of action:
– WinBuilder core development team
– Project development teams
– App script developers
– Beta testing and feedback




Core Development

The core development team is responsible for the compilation of WinBuilder.exe – the core engine
of all winbuilder projects. This team is currently composed by three members, myself (Nuno Brito,
Portugal) along with Peter Schlang (Germany) and Robert Kochem (Germany). I am responsible
for managing this team and along with joining the coding effort, I also decide whenever a newer
edition is ready for being made available to the public. Peter is the senior developer and he is
responsible for solving the bugs reported by users. Robert is dedicating his time to implement very
specific features and optimizations to the code.
The WinBuilder core uses a versioning method based on full numbers where even numbers
represent a stable edition and even numbers are used for beta versions.


Compilation of this engine is achieved with the use of Delphi 7 which allows to produce binaries
compatible for use from Windows 95 to Windows 7 along with some limited support for running
under WINE/Linux. At the moment we are considering the transfer to Delphi 2007 to allow the full
native support of Unicode implementation for a better performance when working with full
Unicode based language OS's as for better support to Russian and Asian users.
Currently, Winbuilder is using stable version 076 and preparing to release beta version 077.
Project Development teams

Each project is composed by either it's author as a single developer or as a team of developers if the
project grows in popularity. At current, projects considered popular by the main stream of users are
LiveXP and VistaPE.
On the case of LiveXP, it's a project targeted for use with NT5 – the platform for Windows XP and
Windows 2003. It is a direct concurrent to the popular project from Bart Lagerweij (BartPE) and it's
development team is composed by two members: David Kummerow (Australia) and Cemal Tolga
Talas (Turkiye), that successfully ensure that the project is updated and using the latest available
techniques.


VistaPE, currently developed by Sergey Gurinovich (Russia) and Markus Debus (Germany), is
based on the Windows PE 2 technology provided for free by Microsoft. The original version from
Sergey was extraordinary from a perspective of project functionality but lacked the proper
documentation or easy to understand functioning for other users. This detail was later solved by
Markus as he prepared this project for the official release on the C'T magazine.
Many other projects are also available and developed by the respective members, in most cases
these projects are specific derivations from other projects already made available.
A list of available projects is listed on wikipedia: http://en.wikipedia.org/wiki/WinBuilder


    •   VistaPE Based on Windows PE 2.0 (included on Windows Vista DVD and WAIK)
    •   PE21 - boot disk project based on Windows PE 2.1
    •   NativeEx - Small sized Windows XP PE boot disk (~50Mb)
    •   LiveXP - Based on nativeEx, contains a large archive of programs targeted for computer
        repair and administration
    •   UXP - Based On Windows XP for making a multiboot CD/DVD which includes LiveXP and
        WinRoot ( also for customization of the CD/DVD there are other apps used such as Nlite ,
        etc.
    •   PicoXP - Minimalistic 14 MB boot disk based on XP
    •   ReactOS live CD - Based on the open-source ReactOS
    •   BartPEcore - running bartPE inside a winbuilder environment
    •   NaughtyPE - Windows XP PE boot disk with sound support and other multimedia features.


Projects for newer technology based on Windows PE 3 from Windows 7 are already being made
available although it is not yet considered mature enough for a wider audience until the RTM
version of Windows 7 is made available: http://www.boot-land.net/forums/index.php?
showtopic=7250
App script developers

A fundamental portion of each project is the amount of functionality that can be added onto the
finished product. One of the most request features is the incorporation of third party programs such
as file recovery tools, image backup tools like Ghost or Acronis or even specific tools for network
and computer diagnostic.
The scripts that add these programs are called “App scripts” and are in most cases developed by
volunteers who create and share them freely with the rest of the winbuilder community.
App scripts follow very specific guidelines regarding how they should be created and project
developers include some of these scripts of their official project distribution. This simple
organization allowed to gather hundreds of scripts which are usually found at a specific location
inside the winbuilder support forum: http://www.boot-land.net/forums/index.php?showforum=65




Beta testing and feedback

One of the most important characteristics about WinBuilder is the strong motivation and
development effort carried by developers. The link between the developing effort and the user
feedback is quite encouraging to lead newer code improvements constantly.
App script developers or regular users are strongly motivated to write about any issues or bugs that
were found during their usage experience and the respective developer works to implement the
necessary measures, the support forums for winbuilder and the respective bug tracker are good
examples that showcase on daily basis how quickly the reported issues get corrected.


http://www.boot-land.net/forums/index.php?showforum=33
http://www.boot-land.net/forums/index.php?autocom=bugtracker


Beta testing phase is also popular amongst wb users and the latest beta discussions for version 075
motivated more than 700 feedback replies (http://www.boot-land.net/forums/index.php?
showtopic=4654) from fan users and script developers.




Script Engine and programming language

WinBuilder uses it's own scripting language, interpreting script files at runtime whose instructions
will guide the project construction.

The programming language was designed from scratch and is a fully functional programming
paradigm capable of using conditional statements, loops, variables, reusing functions and all the
usual features usually expected in traditional high-level coding languages such as C or Pascal.
To feed the engine, text files containing the script instructions are processed at runtime by the
interpreter, which provides direct access to many of the internal Win32 functions, combined with
unique set of internal functions to allow the construction of these OS's.


The script code is contained inside text files and is often divided into groups that allow to organize
the code as necessary.

A typical script filename will use a .script extension and include three basic INI style sections:
[main], [variables], [process]

“Main” section holds the parameters that identify this script. The title to be displayed on the script
browser window, the level of execution inside the project, the author name, contact details, etc.

       [main]
       Title=Sudoku
       Description=The popular number game
       Level=5


“Variables” will declare the global script variables using a Key=Value INI style, these variables can
later be modified or even created from scratch at runtime but this section is still valuable to help
developers have specific location where it is possible to modify the basic settings of their script by
other users.

       [variables]
       %ProgramEXE%=sudoku.exe

“Process” is the first section of the file where the code is interpreted, the engine will read each
sequence of commands at this section (line by line on most cases) and call other customized
sections as the developer decides as necessary.

       [process]
       echo,”Hello World!”




Script levels

Thought the script syntax is valid in the same manner for all scripts, scripts are organized by levels
of execution which determinate their role inside the project build process.

This functionality allows to establish a sense of hierarchy in the build process that will ensure that
each script is executed at the expected step of the project construction and developers can set this
value inside at the [main] section as the example below:

[main]
level=9

If no level value is specified then it will default to level 5.
It is possible to assign a value from 1 to 10. These values may be assigned as necessary for each
project and level 5 is commonly reserved for the common app script category. Below is the typical
configuration found on the most popular projects at this moment.

1 – Inspection scripts, check if there are valid conditions to build the project
2 – Build scripts, will prepare folders and copy files from the source media.
3 – Kernel preparation, produce adequate registry hives and expected DLL/OCX registrations
4 – Kernel customization, in most cases add the Explorer Shell and perform OS customizations.
5 – App scripts, scripts that install programs inside the target project
6 – Drivers, add support for hardware – typically mass storage media, NIC's and Graphic Adapters
7 – Final optimizations, typically destined to compress the overall project or similar improvements
8 – Emulation, test the project functionality inside a PC emulator (Qemu, VirtualBox or VMware)
9 – Final step, save the media onto CD/DVD/USB



Syntax usage

Most of the learning process to use the scriptable syntax is done using the examples from available
scripts since they are fairly intuitive to use, although the syntax is also documented in detail at the
project webpage as reference for advanced coders:
http://winbuilder.net/help/scripts/script_syntax.html

There is also a custom developed external API extension that is closed tied to script syntax although
it is not part of the official array of scriptable commands.

This extension is based on a consortium between the project developers of the most popular projects
that began in 2007 with the intention to harmonize the coding of a specific type of scripts called
“app script” that installs a third party program onto the target windows project.

At the time before this implementation, a project with a popular community support would see
available many scripts that would add a program onto the project but the coding style relied on
static variables and definition which require a code rewrite sooner or later as the project evolved.

The result of this joint effort was the appearance of an external API that allows an app script to be
reused between projects that are built from different windows platform or project designs.
It is common that app scripts also contain the binary files for the third party program itself if the
respective software product allows this sort of distribution (the case for freeware programs).

Binary files are attached to these text files are compressed and encoded automatically into a format
that allows their distribution without getting corrupted.

Bellow is an example of an app script:

[main]
Title=Sudoku
Description=The popular number game
Level=5

[variables]
%ProgramTitle%=Sudoku
%ProgramEXE%=sudoku.exe
%ProgramFolder%=Sudoku

[process]
Add_Shortcut,Desktop
Add_Shortcut,AutoStart
Add_Shortcut,StartMenu,Games and Fun
unpack


As noted, the code does not contain any static WinBuilder syntax. The used commands are custom
defined commands that belong to the external API. These functions are adapted to the scope of the
project under which the script is being executed.

This level of high abstraction allows a very flexible type of script, prepared to withstand the
evolution and modification of projects without affecting the app script coding in future years.

The app script format is documented on the following link:
http://winbuilder.net/help/scripts/script_application.html

It is constantly developed and improved by the respective the development experts, more
information on the current API status is found at the following link: http://www.boot-
land.net/forums/index.php?showforum=7

Code examples from hundreds of app scripts are available at the official app script repository:
http://www.boot-land.net/forums/index.php?showforum=65
Script UI

One peculiar feature of these scripts is the capacity to also support a simple user interface that
allows the end user to modify particular settings at each script.

The UI can be created using an internal WYSIWYG editor included inside WinBuilder.exe, below
is an example of this interface found at the LiveXP project.
Marketing

Windows boot disk technology is as a niche market as it was previously only made available to
users with a specific knowledge on this area. We've tried to break this concept into a tool designed
as a “One-Click” experience for most projects, resulting in a very attractive solution.

The common way to raise public awareness of any given software product is to purchase publicity
resorting to ad banners, however, since this project adopted a non-profit policy, other methods were
applied to overcome the lack of financial resources and are detailed in the chapters below.



Target Audience

WinBuilder is a tool designed from the start for an audience of users with no experience on this
field and also for users performing advanced IT tasks in corporate environments.

It is not easy to keep this tool attractive to such extreme ends of the audience array, yet, a balance
has been achieved over the years with the development of specific projects orientated to particular
audience segments and providing easy to understand documentation to allow new users learn how
to use this tool for their needs. A lot of work has also been put into a visually intuitive UI at each
project.

This effort contributed to keep WinBuilder as a very popular and flexible tool amongst those who
seek advanced features on their boot disks.



Partnerships

To raise the visibility and reputation of this product, some relevant partnerships between
winbuilder/boot-land.net were established over the years with sites of related audience, for example
BootDisk.com (http://bootdisk.com) where WinBuilder projects are promoted at the front page of
this site, an historical internet reference to the boot disk field for over a decade.

Sites/companies that developed their own WinBuilder projects will often refer their users back to
winbuilder/boot-land websites in exchange for support to these developments.

Examples: ReImage (http://reimage.com), DiskInternals (http://www.diskinternals.com), C'T
Magazine (German edition - http://www.heise.de/ct/Notfall-Windows-auf-CD-oder-
Stick--/projekte/132649)
Press

On the mainstream audience level, some projects gained privileged exposition to a wider audience
through the publication of paper articles and respective promotion from computer magazines in
several countries across the years. In some cases, these projects have been featured at the cover
page:

–Computer Bild (2009)                                              –Com! Magazin (2007)
                                 –PC Utilities (2008)




                                                                   http://www.com-
                                                                   magazin.de/hefte/artikelarchiv/c
                                                                   om-artikel/vista-live-cd-oder-
                                                                   dvd.html


                                                                   –PC Japan (2007)


                                 http://www.magnesiummedia.co
                                 m/pcutilities/details40315.html


                                 –Chip (2007)
–c't Magazin (2008)




                                                                   http://www.sbcr.jp/pcjapan/maga
                                                                   zine/detail.asp?
                                                                   magid=1041200703




http://www.heise.de/ct/projekte/ http://www.chip.de/downloads/
pebuilder/                       WinBuilder-mit-VistaCE-und-
                                 LiveXP-Projekt-
                                 067_24441477.html



Over the internet, several major audience generic sites also promote WinBuilder products to their
readers as seen on the CNET and Chip websites, googling for “WinBuilder” will also showcase the
amount of third party websites hosting a stable edition of this tool.
Forums

Forum activity is an important factor when it comes to promote this project on a daily basis. People
use forums related to this technology as a trusted source to find and exchange knowledge with other
experts.

At present, WinBuilder is mainly discussed between two forums of considerable reputation: boot-
land.net and 911cd.net. Both sites act as a strong way of promoting WinBuilder as it is the common
denominator used to exchange the custom techniques in a way that can be quickly replicated by
other users.

The forum discussions are indexed by major search engine bots such as google and will often get
displayed at the first page of searches related to windows boot disks. Over 90,000 different links
from google searches have been logged by boot-land over the last six months.

WinBuilder uses Boot Land exclusively for it's official releases and discussions although many
projects and discussions occur in other websites at most cases using the local language of it's active
members.

This website was created by myself (Nuno Brito) shortly after releasing WinBuilder and has also
become a very strong reference on the boot disk community as it provides support for several other
important projects such as Grub4DOS and TFTPD32 along with the effort to motivate experts to
publish ground breaking tutorials about boot disk technology.

Boot Land (http://boot-land.net) is ranked at the 87,284 position of world popular sites by Alexa
and all hosting costs are fully supported by R1Soft, a company dedicated to web server backup
software which will is also sponsoring the “2009 Boot Land awards” – a public event destined to
distinguish the work of 10 authors on the boot disk field based on the user voting. At each month it
counts around half-million page loads from visitors around the globe.

This site aims for quality and is maintained by a large team of Administrators and Moderators, no
google ads are allowed and new members wishing to register themselves are required to pass in a
peculiar system that discourages sporadic registrations in order to keep the respective member
database filled only with members wishing to engage into a truly active participation inside the
community. (http://boot-land.net/register)

Given these quality guidelines, we also promote a weekly newsletter to keep members updated
about the current discussions being held at boot-land, this newsletter is presently sent to over 19,000
members. (http://boot-land.net/newsletters)


Conclusion

Across the years in a worldwide dimension, it is fair to say that WinBuilder and Boot Land have
established a respectable position as reference for Windows based boot disks, however, this effort is
not orientated towards popularity nor measured by the thousands of users – our main goal is to
simply provide efficient methods to get things done.
One thing that I've learned from these two projects is that our code quality is essential behind a
successful project to ensure it's survival and flexibility in the long term. WinBuilder has evolved
from a one man development into an independent organization and this effort has certainly
pioneered the way how boot disks are made available today.

Contenu connexe

Tendances

Tendances (19)

windows operating system and its advancements
windows operating system and its advancementswindows operating system and its advancements
windows operating system and its advancements
 
Windows 8
Windows 8Windows 8
Windows 8
 
Android..overwiew
Android..overwiewAndroid..overwiew
Android..overwiew
 
Windows Phone 7 Guide for Android Application Developers
Windows Phone 7 Guide for Android Application DevelopersWindows Phone 7 Guide for Android Application Developers
Windows Phone 7 Guide for Android Application Developers
 
windows7 vs windows8 ppt
windows7 vs windows8 ppt windows7 vs windows8 ppt
windows7 vs windows8 ppt
 
Why you should use the Yocto Project
Why you should use the Yocto ProjectWhy you should use the Yocto Project
Why you should use the Yocto Project
 
Wp7 guide for i phone app developers
Wp7 guide for i phone app developersWp7 guide for i phone app developers
Wp7 guide for i phone app developers
 
Android
AndroidAndroid
Android
 
Why linux is better than windows
Why linux is better than windowsWhy linux is better than windows
Why linux is better than windows
 
Explain the 10 commercial DTP Software and their uses with suitable example. ...
Explain the 10 commercial DTP Software and their uses with suitable example. ...Explain the 10 commercial DTP Software and their uses with suitable example. ...
Explain the 10 commercial DTP Software and their uses with suitable example. ...
 
Evolution of Android Operating System and it’s Versions
Evolution of Android Operating System and it’s VersionsEvolution of Android Operating System and it’s Versions
Evolution of Android Operating System and it’s Versions
 
Android ppt
Android pptAndroid ppt
Android ppt
 
Android
AndroidAndroid
Android
 
A million ways to provision embedded linux devices
A million ways to provision embedded linux devicesA million ways to provision embedded linux devices
A million ways to provision embedded linux devices
 
Android
AndroidAndroid
Android
 
Androids
AndroidsAndroids
Androids
 
Evolution of Microsoft windows operating systems
Evolution of Microsoft windows operating systemsEvolution of Microsoft windows operating systems
Evolution of Microsoft windows operating systems
 
Windows nt
Windows ntWindows nt
Windows nt
 
Embedded linux build systems
Embedded linux build systems  Embedded linux build systems
Embedded linux build systems
 

Similaire à Explaining the WinBuilder framework

Development Main article: Development of Windows Vista The Windows ...
Development Main article: Development of Windows Vista The Windows ...Development Main article: Development of Windows Vista The Windows ...
Development Main article: Development of Windows Vista The Windows ...
butest
 
Windows Embedded Compact 7 White Paper
Windows Embedded Compact 7 White PaperWindows Embedded Compact 7 White Paper
Windows Embedded Compact 7 White Paper
Ryan Berg
 

Similaire à Explaining the WinBuilder framework (20)

Why the yocto project for my io t project elc_edinburgh_2018
Why the yocto project for my io t project elc_edinburgh_2018Why the yocto project for my io t project elc_edinburgh_2018
Why the yocto project for my io t project elc_edinburgh_2018
 
W1.pptx
W1.pptxW1.pptx
W1.pptx
 
John f kiser
John f kiserJohn f kiser
John f kiser
 
Dot Net Project Mini Game
Dot Net Project Mini GameDot Net Project Mini Game
Dot Net Project Mini Game
 
c
cc
c
 
c
cc
c
 
c
cc
c
 
c
cc
c
 
c
cc
c
 
c
cc
c
 
c
cc
c
 
Development Main article: Development of Windows Vista The Windows ...
Development Main article: Development of Windows Vista The Windows ...Development Main article: Development of Windows Vista The Windows ...
Development Main article: Development of Windows Vista The Windows ...
 
necLinuxProjectReport
necLinuxProjectReportnecLinuxProjectReport
necLinuxProjectReport
 
Windows Embedded Compact 7 White Paper
Windows Embedded Compact 7 White PaperWindows Embedded Compact 7 White Paper
Windows Embedded Compact 7 White Paper
 
Net framework
Net frameworkNet framework
Net framework
 
Inptools Manual
Inptools ManualInptools Manual
Inptools Manual
 
Windows 8
Windows 8Windows 8
Windows 8
 
Overview of .Net Framework
Overview of .Net FrameworkOverview of .Net Framework
Overview of .Net Framework
 
Windows Embedded in the Real World
Windows Embedded in the Real WorldWindows Embedded in the Real World
Windows Embedded in the Real World
 
Learn .NET Core - Introduction
Learn .NET Core - IntroductionLearn .NET Core - Introduction
Learn .NET Core - Introduction
 

Plus de Nuno Brito

Lifes Good In Portugal
Lifes Good In PortugalLifes Good In Portugal
Lifes Good In Portugal
Nuno Brito
 
Managing business relationships
Managing business relationshipsManaging business relationships
Managing business relationships
Nuno Brito
 

Plus de Nuno Brito (7)

Triplechecheck induction-presentation-sample
Triplechecheck induction-presentation-sampleTriplechecheck induction-presentation-sample
Triplechecheck induction-presentation-sample
 
2014 10-14: GitHub plus FOSS == 1 million SPDX
2014 10-14: GitHub plus FOSS == 1 million SPDX2014 10-14: GitHub plus FOSS == 1 million SPDX
2014 10-14: GitHub plus FOSS == 1 million SPDX
 
Ubucon 2013, licensing and packaging OSS
Ubucon 2013, licensing and packaging OSSUbucon 2013, licensing and packaging OSS
Ubucon 2013, licensing and packaging OSS
 
Stop look and listen before you talk
Stop look and listen before you talkStop look and listen before you talk
Stop look and listen before you talk
 
Lifes Good In Portugal
Lifes Good In PortugalLifes Good In Portugal
Lifes Good In Portugal
 
Managing business relationships
Managing business relationshipsManaging business relationships
Managing business relationships
 
White paper - Adhoc 2.0
White paper - Adhoc 2.0White paper - Adhoc 2.0
White paper - Adhoc 2.0
 

Explaining the WinBuilder framework

  • 1. WinBuilder is a project dedicated to the research and production of boot disks based on Microsoft Windows Operative Systems. Nuno Brito March 2009
  • 2. Index of Contents Background...........................................................................................................................................3 Development Structure.........................................................................................................................4 Core Development...........................................................................................................................4 Project Development teams.............................................................................................................5 App script developers......................................................................................................................6 Beta testing and feedback................................................................................................................6 Script Engine and programming language...........................................................................................6 Script levels......................................................................................................................................7 Syntax usage....................................................................................................................................8 Script UI.........................................................................................................................................10 Marketing............................................................................................................................................11 Target Audience.............................................................................................................................11 Partnerships....................................................................................................................................11 Press...............................................................................................................................................12 Forums...........................................................................................................................................13 Conclusion..........................................................................................................................................13
  • 3. Background WinBuilder is tied to the concept of constructing customized Windows Operative Systems. Microsoft binary files from the Windows Install CD/DVD's are used as source to build these customized versions without resorting to the internal Windows installer as typically expected and this process is achieved in full conformity with MS's EULA (End User License Agreement). A typical WinBuilder project will make available a customized Operative System that is suited for very specific purposes, in most cases it will be used for System deployment tasks or used as computer recovery tool. The ideal work platform for these projects is Windows PE (PreInstalled Environment) due to several characteristics as the default footprint size (<300Mb), portability and optimal performance due to the lack of addons traditionally expected on a full Windows Install.. Early versions of Windows PE began with Windows 95 which was installed using a reduced version of Windows 3.11 (called “mini”). Later with XP, the graphical portion of the Windows XP Install process started being performed by the core OS itself, which is launched with a specific parameter called “/miniNT”. Microsoft also made available a customizable Windows PE package to a few selected organizations who purchased the right to use this technology, however, the previously mentioned “/miniNT” switch was quickly explored by System Administrators because it was possible to manufacture a minimally functional and portable Windows XP OS as alternative to the official Windows PE package. A XP based PE OS is typically small sized and works from Read-Only media as the case of CDROM's. It's portable and supports a satisfatory array of Windows 32 bit programs that come handy for advanced diagnostics or repair of machine from where they boot. This home-made solution was available at a small fraction of the cost implied for Windows PE license as this usage doesn't breach the terms available on the standard XP EULA. However, building such OS required a construction process understood only by people with some degree of experience handling and debugging MS software. In 2002, the first tool to ease the task of using this “/minint” switch was published by Bart Lagerweij, entitled “Bart's PE Builder” and based on the same construction method adopted by Windows PE version 1. This software quickly become the standard tool to produce Windows PE boot disks from Windows XP and Windows 2003 sources. WinBuilder surfaced at the boot disk history in 2005 as a tool designed for developers interested in customizing even further these Windows PE boot disks to even more extreme levels of usage, quickly gaining reputation and respect as a quality project. Over the years, the results remained very satisfactory and WinBuilder consolidated it's position as the “de Facto” tool for thousands of IT workers and home users when it comes to customize Windows PE images. Projects like LiveXP, VistaPE and similar boot disk projects are continuously developed by an interesting community of people around the world who volunteer to contribute with their talent and further explore the potentialities of the Windows PE platforms.
  • 4. With the advent of Windows Vista and Windows 7, WinBuilder became the only software capable of creating Windows PE versions 2 and 3 as alternative to the tools distributed by Microsoft in the WAIK package. All work inside the official WinBuilder structure is organized and based on volunteer work, the developed projects attempt to follow a strict non-profit policy as much as possible to make these products more attractive and available to a wider audience. Exceptions are occasionally made when a company directly contributes to project developments by sponsoring a software developer with the intention of providing an end result that would meet their specific expectations. Development Structure The development of this project is separated into specific groups of action: – WinBuilder core development team – Project development teams – App script developers – Beta testing and feedback Core Development The core development team is responsible for the compilation of WinBuilder.exe – the core engine of all winbuilder projects. This team is currently composed by three members, myself (Nuno Brito, Portugal) along with Peter Schlang (Germany) and Robert Kochem (Germany). I am responsible for managing this team and along with joining the coding effort, I also decide whenever a newer edition is ready for being made available to the public. Peter is the senior developer and he is responsible for solving the bugs reported by users. Robert is dedicating his time to implement very specific features and optimizations to the code. The WinBuilder core uses a versioning method based on full numbers where even numbers represent a stable edition and even numbers are used for beta versions. Compilation of this engine is achieved with the use of Delphi 7 which allows to produce binaries compatible for use from Windows 95 to Windows 7 along with some limited support for running under WINE/Linux. At the moment we are considering the transfer to Delphi 2007 to allow the full native support of Unicode implementation for a better performance when working with full Unicode based language OS's as for better support to Russian and Asian users. Currently, Winbuilder is using stable version 076 and preparing to release beta version 077.
  • 5. Project Development teams Each project is composed by either it's author as a single developer or as a team of developers if the project grows in popularity. At current, projects considered popular by the main stream of users are LiveXP and VistaPE. On the case of LiveXP, it's a project targeted for use with NT5 – the platform for Windows XP and Windows 2003. It is a direct concurrent to the popular project from Bart Lagerweij (BartPE) and it's development team is composed by two members: David Kummerow (Australia) and Cemal Tolga Talas (Turkiye), that successfully ensure that the project is updated and using the latest available techniques. VistaPE, currently developed by Sergey Gurinovich (Russia) and Markus Debus (Germany), is based on the Windows PE 2 technology provided for free by Microsoft. The original version from Sergey was extraordinary from a perspective of project functionality but lacked the proper documentation or easy to understand functioning for other users. This detail was later solved by Markus as he prepared this project for the official release on the C'T magazine. Many other projects are also available and developed by the respective members, in most cases these projects are specific derivations from other projects already made available. A list of available projects is listed on wikipedia: http://en.wikipedia.org/wiki/WinBuilder • VistaPE Based on Windows PE 2.0 (included on Windows Vista DVD and WAIK) • PE21 - boot disk project based on Windows PE 2.1 • NativeEx - Small sized Windows XP PE boot disk (~50Mb) • LiveXP - Based on nativeEx, contains a large archive of programs targeted for computer repair and administration • UXP - Based On Windows XP for making a multiboot CD/DVD which includes LiveXP and WinRoot ( also for customization of the CD/DVD there are other apps used such as Nlite , etc. • PicoXP - Minimalistic 14 MB boot disk based on XP • ReactOS live CD - Based on the open-source ReactOS • BartPEcore - running bartPE inside a winbuilder environment • NaughtyPE - Windows XP PE boot disk with sound support and other multimedia features. Projects for newer technology based on Windows PE 3 from Windows 7 are already being made available although it is not yet considered mature enough for a wider audience until the RTM version of Windows 7 is made available: http://www.boot-land.net/forums/index.php? showtopic=7250
  • 6. App script developers A fundamental portion of each project is the amount of functionality that can be added onto the finished product. One of the most request features is the incorporation of third party programs such as file recovery tools, image backup tools like Ghost or Acronis or even specific tools for network and computer diagnostic. The scripts that add these programs are called “App scripts” and are in most cases developed by volunteers who create and share them freely with the rest of the winbuilder community. App scripts follow very specific guidelines regarding how they should be created and project developers include some of these scripts of their official project distribution. This simple organization allowed to gather hundreds of scripts which are usually found at a specific location inside the winbuilder support forum: http://www.boot-land.net/forums/index.php?showforum=65 Beta testing and feedback One of the most important characteristics about WinBuilder is the strong motivation and development effort carried by developers. The link between the developing effort and the user feedback is quite encouraging to lead newer code improvements constantly. App script developers or regular users are strongly motivated to write about any issues or bugs that were found during their usage experience and the respective developer works to implement the necessary measures, the support forums for winbuilder and the respective bug tracker are good examples that showcase on daily basis how quickly the reported issues get corrected. http://www.boot-land.net/forums/index.php?showforum=33 http://www.boot-land.net/forums/index.php?autocom=bugtracker Beta testing phase is also popular amongst wb users and the latest beta discussions for version 075 motivated more than 700 feedback replies (http://www.boot-land.net/forums/index.php? showtopic=4654) from fan users and script developers. Script Engine and programming language WinBuilder uses it's own scripting language, interpreting script files at runtime whose instructions will guide the project construction. The programming language was designed from scratch and is a fully functional programming paradigm capable of using conditional statements, loops, variables, reusing functions and all the usual features usually expected in traditional high-level coding languages such as C or Pascal.
  • 7. To feed the engine, text files containing the script instructions are processed at runtime by the interpreter, which provides direct access to many of the internal Win32 functions, combined with unique set of internal functions to allow the construction of these OS's. The script code is contained inside text files and is often divided into groups that allow to organize the code as necessary. A typical script filename will use a .script extension and include three basic INI style sections: [main], [variables], [process] “Main” section holds the parameters that identify this script. The title to be displayed on the script browser window, the level of execution inside the project, the author name, contact details, etc. [main] Title=Sudoku Description=The popular number game Level=5 “Variables” will declare the global script variables using a Key=Value INI style, these variables can later be modified or even created from scratch at runtime but this section is still valuable to help developers have specific location where it is possible to modify the basic settings of their script by other users. [variables] %ProgramEXE%=sudoku.exe “Process” is the first section of the file where the code is interpreted, the engine will read each sequence of commands at this section (line by line on most cases) and call other customized sections as the developer decides as necessary. [process] echo,”Hello World!” Script levels Thought the script syntax is valid in the same manner for all scripts, scripts are organized by levels of execution which determinate their role inside the project build process. This functionality allows to establish a sense of hierarchy in the build process that will ensure that each script is executed at the expected step of the project construction and developers can set this value inside at the [main] section as the example below: [main] level=9 If no level value is specified then it will default to level 5.
  • 8. It is possible to assign a value from 1 to 10. These values may be assigned as necessary for each project and level 5 is commonly reserved for the common app script category. Below is the typical configuration found on the most popular projects at this moment. 1 – Inspection scripts, check if there are valid conditions to build the project 2 – Build scripts, will prepare folders and copy files from the source media. 3 – Kernel preparation, produce adequate registry hives and expected DLL/OCX registrations 4 – Kernel customization, in most cases add the Explorer Shell and perform OS customizations. 5 – App scripts, scripts that install programs inside the target project 6 – Drivers, add support for hardware – typically mass storage media, NIC's and Graphic Adapters 7 – Final optimizations, typically destined to compress the overall project or similar improvements 8 – Emulation, test the project functionality inside a PC emulator (Qemu, VirtualBox or VMware) 9 – Final step, save the media onto CD/DVD/USB Syntax usage Most of the learning process to use the scriptable syntax is done using the examples from available scripts since they are fairly intuitive to use, although the syntax is also documented in detail at the project webpage as reference for advanced coders: http://winbuilder.net/help/scripts/script_syntax.html There is also a custom developed external API extension that is closed tied to script syntax although it is not part of the official array of scriptable commands. This extension is based on a consortium between the project developers of the most popular projects that began in 2007 with the intention to harmonize the coding of a specific type of scripts called “app script” that installs a third party program onto the target windows project. At the time before this implementation, a project with a popular community support would see available many scripts that would add a program onto the project but the coding style relied on static variables and definition which require a code rewrite sooner or later as the project evolved. The result of this joint effort was the appearance of an external API that allows an app script to be reused between projects that are built from different windows platform or project designs. It is common that app scripts also contain the binary files for the third party program itself if the respective software product allows this sort of distribution (the case for freeware programs). Binary files are attached to these text files are compressed and encoded automatically into a format that allows their distribution without getting corrupted. Bellow is an example of an app script: [main] Title=Sudoku Description=The popular number game Level=5 [variables] %ProgramTitle%=Sudoku
  • 9. %ProgramEXE%=sudoku.exe %ProgramFolder%=Sudoku [process] Add_Shortcut,Desktop Add_Shortcut,AutoStart Add_Shortcut,StartMenu,Games and Fun unpack As noted, the code does not contain any static WinBuilder syntax. The used commands are custom defined commands that belong to the external API. These functions are adapted to the scope of the project under which the script is being executed. This level of high abstraction allows a very flexible type of script, prepared to withstand the evolution and modification of projects without affecting the app script coding in future years. The app script format is documented on the following link: http://winbuilder.net/help/scripts/script_application.html It is constantly developed and improved by the respective the development experts, more information on the current API status is found at the following link: http://www.boot- land.net/forums/index.php?showforum=7 Code examples from hundreds of app scripts are available at the official app script repository: http://www.boot-land.net/forums/index.php?showforum=65
  • 10. Script UI One peculiar feature of these scripts is the capacity to also support a simple user interface that allows the end user to modify particular settings at each script. The UI can be created using an internal WYSIWYG editor included inside WinBuilder.exe, below is an example of this interface found at the LiveXP project.
  • 11. Marketing Windows boot disk technology is as a niche market as it was previously only made available to users with a specific knowledge on this area. We've tried to break this concept into a tool designed as a “One-Click” experience for most projects, resulting in a very attractive solution. The common way to raise public awareness of any given software product is to purchase publicity resorting to ad banners, however, since this project adopted a non-profit policy, other methods were applied to overcome the lack of financial resources and are detailed in the chapters below. Target Audience WinBuilder is a tool designed from the start for an audience of users with no experience on this field and also for users performing advanced IT tasks in corporate environments. It is not easy to keep this tool attractive to such extreme ends of the audience array, yet, a balance has been achieved over the years with the development of specific projects orientated to particular audience segments and providing easy to understand documentation to allow new users learn how to use this tool for their needs. A lot of work has also been put into a visually intuitive UI at each project. This effort contributed to keep WinBuilder as a very popular and flexible tool amongst those who seek advanced features on their boot disks. Partnerships To raise the visibility and reputation of this product, some relevant partnerships between winbuilder/boot-land.net were established over the years with sites of related audience, for example BootDisk.com (http://bootdisk.com) where WinBuilder projects are promoted at the front page of this site, an historical internet reference to the boot disk field for over a decade. Sites/companies that developed their own WinBuilder projects will often refer their users back to winbuilder/boot-land websites in exchange for support to these developments. Examples: ReImage (http://reimage.com), DiskInternals (http://www.diskinternals.com), C'T Magazine (German edition - http://www.heise.de/ct/Notfall-Windows-auf-CD-oder- Stick--/projekte/132649)
  • 12. Press On the mainstream audience level, some projects gained privileged exposition to a wider audience through the publication of paper articles and respective promotion from computer magazines in several countries across the years. In some cases, these projects have been featured at the cover page: –Computer Bild (2009) –Com! Magazin (2007) –PC Utilities (2008) http://www.com- magazin.de/hefte/artikelarchiv/c om-artikel/vista-live-cd-oder- dvd.html –PC Japan (2007) http://www.magnesiummedia.co m/pcutilities/details40315.html –Chip (2007) –c't Magazin (2008) http://www.sbcr.jp/pcjapan/maga zine/detail.asp? magid=1041200703 http://www.heise.de/ct/projekte/ http://www.chip.de/downloads/ pebuilder/ WinBuilder-mit-VistaCE-und- LiveXP-Projekt- 067_24441477.html Over the internet, several major audience generic sites also promote WinBuilder products to their readers as seen on the CNET and Chip websites, googling for “WinBuilder” will also showcase the amount of third party websites hosting a stable edition of this tool.
  • 13. Forums Forum activity is an important factor when it comes to promote this project on a daily basis. People use forums related to this technology as a trusted source to find and exchange knowledge with other experts. At present, WinBuilder is mainly discussed between two forums of considerable reputation: boot- land.net and 911cd.net. Both sites act as a strong way of promoting WinBuilder as it is the common denominator used to exchange the custom techniques in a way that can be quickly replicated by other users. The forum discussions are indexed by major search engine bots such as google and will often get displayed at the first page of searches related to windows boot disks. Over 90,000 different links from google searches have been logged by boot-land over the last six months. WinBuilder uses Boot Land exclusively for it's official releases and discussions although many projects and discussions occur in other websites at most cases using the local language of it's active members. This website was created by myself (Nuno Brito) shortly after releasing WinBuilder and has also become a very strong reference on the boot disk community as it provides support for several other important projects such as Grub4DOS and TFTPD32 along with the effort to motivate experts to publish ground breaking tutorials about boot disk technology. Boot Land (http://boot-land.net) is ranked at the 87,284 position of world popular sites by Alexa and all hosting costs are fully supported by R1Soft, a company dedicated to web server backup software which will is also sponsoring the “2009 Boot Land awards” – a public event destined to distinguish the work of 10 authors on the boot disk field based on the user voting. At each month it counts around half-million page loads from visitors around the globe. This site aims for quality and is maintained by a large team of Administrators and Moderators, no google ads are allowed and new members wishing to register themselves are required to pass in a peculiar system that discourages sporadic registrations in order to keep the respective member database filled only with members wishing to engage into a truly active participation inside the community. (http://boot-land.net/register) Given these quality guidelines, we also promote a weekly newsletter to keep members updated about the current discussions being held at boot-land, this newsletter is presently sent to over 19,000 members. (http://boot-land.net/newsletters) Conclusion Across the years in a worldwide dimension, it is fair to say that WinBuilder and Boot Land have established a respectable position as reference for Windows based boot disks, however, this effort is not orientated towards popularity nor measured by the thousands of users – our main goal is to simply provide efficient methods to get things done. One thing that I've learned from these two projects is that our code quality is essential behind a successful project to ensure it's survival and flexibility in the long term. WinBuilder has evolved from a one man development into an independent organization and this effort has certainly pioneered the way how boot disks are made available today.