Update (02/01/16) : This article has been wrote in August 2015, before GhostBSD 10.1 was released, and I have completely forgot to upload it. Now there is a graphical package manager named Octopkg (and maybe other cool features which will be explored in a next post).
In a previous post, I said that I had some difficulties to install FreeBSD on an old i386 computer. In fact, I recover this computer from my lab and I wanna use it for testing things. I am a little old school and I hate heavy graphical user interface. I hate Gnome3, KDE, XFCE, and all those things which are completely useless for me. I want a windows manager, not a windows-and-uber-cool-effect-like-compiz-manager. That's why I love dwm, and more generally, all tiling windows manager (I used i3 and awesome sometimes). But, because someone else could use this computer, I need to install a
proper heavy GUI.
When I was a Linux user (on Ubuntu and Debian), I liked Gnome2. In my opinion, this is the most clean and simple desktop manager for normal user. So I installed FreeBSD on this laptop, and tried to install gnome2-lite from ports. Unfortunately, it's a terrible mess when you have 1GB of RAM and a 1GHz CPU frequency. Moreover, I had a lot of bugs, which could be explained in a future post. So, why don't try FreeBSD with a pre-package GUI and tools ? Welcome to GhostBSD !
Let's go ! Download the image from the website (don't forget to use the .img if you are installing a release before 10.1 from a USB key). GhostBSD provides two desktop environments : XFCE and MATE. I choose MATE. For those who have forgot how to create a bootable device, here are the magic command :
dd if=/path/to/iso of=/path/to/device bs=1m conv=sync && sync # On linux, you need to use bs=1M (with uppercase)
Plug, boot, enjoy !
Isn't it beautiful :-) ? Even it's not Gnome2 but MATE (the continuation of Gnome2), it sounds great !
The installation process is very easy. You need to select a keyboard layout, a timezone, a root password, set up an user account, and the partitions scheme (or use "Entire disk"). Anyone can do this.
On the first boot, I was impressed. GhostBSD is a very complete distribution for a daily use, and of course, for everybody. There is a lot of pre-installed softwares . Here, a non-exhaustive list :
- A proper desktop environment : MATE
- A web browser (Firefox)
- An office suite (Libre Office) and a PDF viewer (Atril)
- A media player (Gnome Mplayer)
- A torrent client (Transmission)
- A system monitor
- A disk analyzer
- The Caja file manager
You can control everything with your mouse on the Control Center :
Of course, for the normal people, there is a terminal emulator provided by the MATE environment.
GhostBSD seems to be perfect for users which need GUI, or for small hardware configuration (both in my case). Unfortunately, there is missing features for people who are coming from Linux or Microsoft, or for people who are not familiar with terminal. For example, there is no package manager with graphical interface, whereas PC-BSD has (maybe it's because it's an older project). Also, there is no support for ext2, ext3 and ext4 filesystem (this is not a big deal, unless you have a Linux distribution on the same computer), and I have not try to connect my printers. More important, and this fact could let you reluctant, there is not automount for FAT32 USB keys. You have to do it with the terminal. This is, for non-terminal users, very anoying.
Nevermind, I like GhostBSD and I think I will recommend it to people who wants an easy-to-use operating system which is not Linux-based.
02/01/16 - walafc0
Almos-MK (initially Almos, now MK for "Multi-Kernel") is an operating system developed at the LIP6 by the ALSOC team. This kernel was initially developped for the TSAR architecture, but it's compatible with i386 and IBM PC too. The primary goal of Almos-MK is to manage many-core NUMA architecture for the future. The TSAR processor is a good example : 1024 cores and 1To of RAM, distributed in clusters. Each cluster has 4 cores and manage 4Go of RAM, so the maximum amount of clusters is 256. All the platform are cache-coherent, and each memory access on a remote cluster is smaller than the local memory (NUMA effect). Below, a blueprint of the architecture.
Until recently, Almos was a single monolithic kernel. My internship goal was to redesign the base system to create a multi-kernel which can easier manage the TSAR processor. Now, each cluster has one kernel for managing its resources, and all kernels communicate by using RPCs mechanism, like this :
My primary work was to enable processes migration between kernels. Because all memory banks are used by different kernel, all address space are different : we can't do a simple
memcpy() from a cluster to another. Instead, I used the RPC mechanism to send the minimal informations needed by a kernel to re-construct a process (
file descriptors, etc...). The migration is done at the
exec() call, and politic migration is managed by an internal component named DQDT (Distributed Quaternary Decision Tree). I also re-design the processes identification accross the plateform, the signals managment, and a little part of the Virtual File System (used on migration). During my spare time, I recoded the bootloader. All boot messages was horrible and completely non-sense for a neophyte. I also fixed some bugs in the virtual memory management.
This internship was in collaboration with Mohamed Karaoui. Without him, it would have been impossible (or very hard). Mohamed's PhD topic is "Distributed file system on many-core architecture". To our knowledge, Almos-MK is the first operating system to provide, at the same time, processes migration and distributed and coherent file system accross the platform. I also worked with Clément Devigne, who is another developper of Almos, and Quentin Meunier, who is now the head of the Almos kernel (the original author passed his PhD last year). Thanks to them.
I will upload my final report soon, but it's in french. I was too lazy to wrote in english, shame on me. For a better understanding of Almos, you should read the original thesis on Almos by Ghassan Almaless. The source code is available on my github. If you are very (very) motivated and you want to contribute, you should clone the environment development repository and contact me. For curious people, there is an (old) stand-alone version of Almos here (which is not multi-kernel). Good luck ;-)
Update (22/09/15) : My report is available here.
19/08/15 - walafc0
Today I have discovered a very cool feature of
tar : you can build archives of versioned content without all hidden stuff that ensure the versioning (typically, files or folders like
.svn) ! The option is
--exclude-vcs . Here an example :
tar --exclude-vcs -cjf archive.tar.bz2 my-versioned-folder
18/08/15 - walafc0
Today I install an old computer with FreeBSD-10.1. The installation is fine, everything sounds good, but when I restart the computer, my kernel goes on panic. This is my second kernel panic with FreeBSD and I was a bit confused. I check the bug report and it seems that old computers with i386 architectures can't deal with ZFS (see here and here).
More generally, ZFS is not very compatible with i386 architectures. The PC-BSD team has stopped its support in 2013, and explained this choice in a blog post. The most important part is here :
"In addition to re-focusing on solely on ZFS as our default file-system, we have had to take a look at the feasibility of continuing with the i386 builds. As many of you know, ZFS is a 21st century operating system and doesn’t play nicely with the legacy i386 kernel / versions of FreeBSD."
So, unless you recompile your kernel with the KSTACK_PAGE=4 option, don't use ZFS with 32 bits architectures.
13/08/15 - walafc0