Bisd.ro

Action | Names | Terminology | Background | Work | Foundations | Projects | Wares | Artifacts | Words from the Chief Operator


Bisd.ro makes software to get the most out of FreeBSD.

Action

If you are interested in learning more about Bisd.ro or participating in its development, the primary project is Sidewalk. Check out the Forum and Chat there which are monitored by an operator weekdays 13:00-14:00 UTC.

Names

Terminology

Frequently occuring terms

Background

Bisd.ro began life as a redistribution of official FreeBSD release artifacts converted to a set of UZIP images, along with a suite of original utilities to compose them as the root filesystem on startup and run FreeBSD as a perpetual live system.

Work

Bisd.ro troves are being reorganized in preparation for submission to The FreeBSD Project and the Ports Collection and may be found in a state of disarray as a result.

Blacktop

Recent work has focused on migrating the login shell from Tcsh, which was the default in FreeBSD until recently when it was switched to Sh, to a modern shell -- Bash or Zsh.

Foundations

Bisd.ro is built on multiple technological foundations.

FreeBSD

FreeBSD is a freely available, permissively licensed, democratically governed, fully capable Operating System (OS) maintained by an international team of individuals from all backgrounds, but mostly professional developers. FreeBSD is used to run all types of workloads, including servers and desktops.

Bisd.ro is proof that anyone can learn to make FreeBSD do their bidding.

The FreeBSD Project

The FreeBSD Project is responsible for managing the FreeBSD source code.

Ports Collection

The Ports Collection provides an entire build system for enhancing the OS with third party software.

FreeBSD Foundation

The FreeBSD Foundation is a non-profit organization tasked with supporting the Project in various ways, including advocacy, fundraising and legal representation.

Fossil

All software, documentation, resources and assets of the Bisd.ro project are managed as Fossil repositories, or troves.

Fossil's Git translation layer enables exposing Bisd.ro projects as Git or Github.com repositories to poorly designed tools which demand them. However, all troves linked from this page are hosted natively by Fossil.

Browsing tips

Visitors accustomed to viewing repositories on Github.com may find the default Fossil interface jarring.

  1. Check the Timeline; change the right pulldown from "Check-ins" to "Any Type".

Technical implementation

Most Fossil troves are exposed as CGI services behind a front-end web proxy.

Freedesktop.org

Freedesktop.org maintains the standards, protocols and utilities that enable an open desktop.

Wayland

Wayland, the next generation open graphics protocol, underlies the desktop environments in which Bisd.ro is produced.

Projects

Bisd.ro work is divided into four main projects representing interest in different operational modes of FreeBSD, each with a separate trove.

Project PREFIX Stack Role Graphics Description
Sidewalk / FreeBSD Administrator Console Perpetual live system
Backroad /usr/local Server Administrator Console Web, mail, streaming
Blacktop /usr/local Console User Console Textual desktop
Tarmac /usr/local Desktop User Display Graphical desktop

Naming scheme

bistro > sidewalk cafe > Sidewalk

From there, project names represent increasingly improved, from the traveller's perspective, transportation routes.

  1. Sidewalk is a paved path for walking.
  2. Backroad is an unpaved road for driving.
  3. Blacktop is a paved road for driving.
  4. Tarmac is a runway for flying.

Wares

Software

Bisd.ro authors original software in a variety of categories.

Artifacts

Bisd.ro publishes a variety of build artifacts, including disk images, for running FreeBSD. Artifacts are stored as unversioned -- not checked in -- files in Fossil troves.

Base

Bisd.ro images have several advantages.

Layout

The point about a separate usr image alludes to the fundamental principle on which Bisd.ro images are based -- clean filesystem boundaries, enforced by rc(8), which enable successive mounting of root filesystem components as they become available.

Fileystem Name Origin Storage Stage
/boot Boot Base <disk> boot
KERNEL B Base B.img.ulzma
/ Root Base root.img.ulzma rc(8) FILESYSTEMS
/usr Usr Base usr.img.ulzma rc(8) NETWORKING
/usr/local Ports Ports <disk> rc(8) NETWORKING

ABIs

Artifacts and images for each ABI supported by Bisd.ro are published to a dedicated trove. Presently, only FreeBSD:16:amd64 is regularly updated.

FreeBSD:16:amd64

Present process

A utility called bisdi is used to generate images from artifacts.

B kernel

Bisd.ro maintains a custom kernel, B, based on MINIMAL-NODEBUG and GENERIC-MMCCAM, which is distributed with the images mentioned previously. Over the years, B kernel has served many purposes.

FreeBSD's file layout, build system and documentation make authoring kernel configurations a snap.

Pkgbase

Images are not being publicly updated at this time, although they are still being generated and used internally, while the implications of Pkgbase are investigated.

Bisd.ro is heavily invested in the existing workflow of fetching official release artifacts. In that sense, Pkgbase represents extensive unplanned work and was initially viewed with skepticism.

After initial investigation, the skepticism has evolved into equal parts wonder and confusion. The wonder is due to the sheer engineering feat and the brilliance of the idea. This is definitely a welcome development.

The confusion is due to the way Pkgbase breaks the longheld conventions regarding filesystem boundaries on which Bisd.ro is based.

Parity

The initial approach is generating release artifacts from installed Pkgbase packages.

doas pkg install FreeBSD-set-base

The actual process presently used is insanely involved, but it boils down to depositing the same files found in base.txz, uncompressed, outside the regular filesystem; the resulting files can be easily archived to replace the artifact.

Migration

Stay tuned.

Ports

Bisd.ro maintains package repositories for original titles not ready or appropriate for FreeBSD or the Ports Collection, as well as ports built with non-standard options.

Since Fossil does not allow ":" in URLs, the default URLs, and the underlying directory paths, use an alternate expression of ABI without colons, and the front-end proxy is responsible for translating the paths, allowing conventional $ABI variables to be used in package repository configurations.

Positions

Words from the Chief Operator

This is one version of my FreeBSD journey.

My formal training is in liberal arts. I graduated college at the dawn of the internet and spent the following summer teaching myself how to build websites using a borrowed dial-up connection to the local university, which was close to my residence, where I was house-sitting for a former English professor over the school break.

That experience landed me a job as the first "Internet guy" (it had a better formal title) at a local advertising agency. Eventually I struck out on my own, starting a business I described as an interactive agency.

I had the advantage of knowing the guys who ran the local Internet Service Provider (ISP), whom I had met through the ad agency but befriended on my own. Even though I had a hotline to the head honchos, it did not reduce the sting of having to tell customers I did not know when their websites would be back online.

One of those customers was a small commodities trading firm that published mountains of analysis daily on their website and essentially lived at the office, where they looked at the website constantly. This is before uptime was a thing, and I had my own early detection system. I realized that knowing why a website was down, and being directly accountable for it, represented a competitive advantage.

FreeBSD entered my frame through two simultaneous sources: a co-worker who was (at least) once questioned by the Feds about his hacking activities -- who, more importantly, may be the namesake of Morpheus -- and a mild-mannered Midwestern family man I met online while investigating an early Content Management System (CMS) called Frontier. The former taught me how to use FreeBSD, the latter taught me how to make it. I started operating my own servers running FreeBSD and never looked back.


Action | Names | Terminology | Background | Work | Foundations | Projects | Wares | Artifacts | Words from the Chief Operator

(C) 2016-2026 Bisd.ro. All rights reserved