# Impressions FreeBSD 10-BETA



## ronaldlees (Oct 24, 2013)

I started building a "usable" FreeBSD live-stick (creating a set-up with memory disks doing duty for /tmp and /var/log, etc) - all the usual live-stick things.

To build the stick, I booted into the "live" environment from a FreeBSD-10.0-BETA CD. I like the orange beastie! Maybe a reason to upgrade right there! To begin, I created a play-pen memory disk and allocated about half the machine's available memory to it. I inserted an archive USB stick, which had prepopulated files (fstab, a script for auto-building the new stick, base and kernel, etc). I decided to copy the prepopulation stuff to the memory disk first, so that I could extract the kernel tarball. Then I figured I could pull the archive USB stick out, insert a new one, and build FreeBSD-10.0-BETA on it.  

As soon as I started the copy to my play-pad memory disk from the archive USB, the whole OS blinked out of existence, and the computer reset. After it reset, I tried to mount the archive USB to no avail. fsck claimed it didn't exist, but luckily `newfs -N` provided a backup super block, and `fsck_ffs -b` fixed the archive USB. Then I decided to copy directly to the new stick from the archive, so as to avoid another crash. My memory disk had been created with the usual (`mdconfig -a -t malloc -s500M -u10`) and (`newfs /dev/md10`) commands, and then mounted on the "live cd" /mnt mount point. The files copied were rather large. I should add that the copied file sizes were close to the size of the memory disk.  

I managed to build the stick and boot it. I loaded Xorg and browser packages (built a while ago on 10.0-CURRENT) from another archive USB stick, and Xorg worked fine. The browser installed fine, but then complained that gcc related libraries couldn't be found. Has gcc 4.1 been removed from the beta?

So, I decided to try `pkg install` to install another browser. Wow, what a treat! It's a far way from the old `pkg_add -r` days. I like the new pkg management. It told me what was to be installed, what was to be upgraded, and went about the whole process with only a short error emitted about my /tmp being too small (being on a USB stick, it's small). It recovered from that, and went on installing the packages. As it downloaded and installed files, I noticed that some of the upgrade package sizes were minuscule. I guess the new package manager is "smartly" downloading only incremental changed/additional pieces/parts? Nice!  

Seems the upgrade to 10 is worth the effort, I think.


----------



## sossego (Oct 25, 2013)

It is better with CLang over gcc in my opinion.


----------



## SirDice (Oct 25, 2013)

ronaldlees said:
			
		

> ... with only a short error emitted about my /tmp being too small (being on a USB stick, it's small).


Make use of tmpfs(5) if there's enough memory in the machine.


----------



## ronaldlees (Oct 25, 2013)

SirDice said:
			
		

> Make use of tmpfs(5) if there's enough memory in the machine.



Thanks for the tip.  

My comment about /tmp was complete nonsense. Apparently it was too early in the day or too late. Already, I had put /tmp on a memory disk, but simply did not allocate enough space to it (I had plenty).  I _am curious_ about what could have caused the wipeout OS crash and corruption of the USB archive stick that was being copied to the memory disk. Ideas? Later in the day, I repeated the relevant part of the described exercise several times (and each time it produced the same result, necessitating recovery of the USB stick's super block from backup).

I wonder if this could be related to KPA's thread about FreeBSD-10.0-BETA and soft journaling ...


----------



## SirDice (Oct 25, 2013)

ronaldlees said:
			
		

> I _am curious_ about what could have caused the wipeout OS crash and corruption of the USB archive stick that was being copied to the memory disk.



It's possible the stick wasn't unmounted before removal. FreeBSD really doesn't like it when mounted filesystems suddenly disappear.


----------



## ronaldlees (Oct 25, 2013)

Changing  `(mdconfig -a -t malloc -s500M -u10)` to  `(mdconfig -a -t swap -s500M -u10)` fixed the problem.  I guess I thought "malloc backing" would be OK with a disk size close to half  of available memory.  I guessed wrong, apparently.  I wonder what is a good rule of thumb for this?


----------



## gkontos (Oct 25, 2013)

sossego said:
			
		

> It is better with CLang over gcc in my opinion.



I have not done any serious benchmarks on real metal but so far I get the same feeling.


----------



## kpa (Oct 26, 2013)

gkontos said:
			
		

> I have not done any serious benchmarks on real metal but so far I get the same feeling.



The brand new clang vs. the incredibly old gcc version 4.2.1, it shouldn't be hard to guess which one wins  Comparison to gcc version 4.8 or 4.9 would be much more meaningful. Such comparison would have to be done using ports since the base system of FreeBSD 10 might not even compile with newer versions of gcc.


----------



## gkontos (Oct 26, 2013)

kpa said:
			
		

> The brand new clang vs. the incredibly old gcc version 4.2.1, it shouldn't be hard to guess which one wins  Comparison to gcc version 4.8 or 4.9 would be much more meaningful. Such comparison would have to be done using ports since the base system of FreeBSD 10 might not even compile with newer versions of gcc.



You are right but so far my only reference has been a rather old but very reliable article.


----------



## sossego (Oct 27, 2013)

I'm using gcc-4.6.x whenever I have to add 
	
	



```
USE_GCC= yes
```
 to a /usr/ports/$CATAGORY/$SOFTWARE. There are a lot of errors with GCC's math library that don't always show up along with formatting errors in the program's - the port that is - source code.

And I am using FreeBSD 10.x.


----------

