Last Saturday we had BOSUG (Bangalore OpenSolaris User Group) meet. We are back to basics again as new people are joining BOSUG we need to repeat some of the topics again.
The following topics are covered by Moinak.
Getting Started with OpenSolaris Part 1 --------------------------------------------------
* Identify the features of the Solaris operating environment. * Device and disk naming, partitioning, slices, filesystems, vfstab etc. in OpenSolaris. * Accessing removable media - CDROM, Pen Drive * Installing Solaris Express - Video demo. * Post Install configuration tips: - PATH Settings - Default Shell - Xorg Configuration - ouch! And support for Nvidia, Intel i815,i915
* Adding/Removing new Users
* Bootup process and boot options (from GRUB), shutdown. * Network Configuration - Manual process and using Inetmenu * Installing Software - SVR4 Packaging * Where do I get more software: Blastwave, Pkgsrc, Sunfreeware, Companion CD * Where do I get drivers: tools.de, Masayuki Murayama's network drivers etc. * Where do I get help: BigAdmin
Process tools and utilities available in OpenSolaris was also planned but we didn't have enough time to cover them.
Finally Pradhap showed the installation of Solaris Express.
We took a video of it. Currently I need to covert the raw video which is around 12GB!
I am finding ways of putting the video online. yaa I can put it on youtube but the quality will be lost and probably the commands which Moinak showed won't be clear. Still can try it out. But thought I will put the video taken in the end covering all the attendees. (u want to be on video?, attend the next meeting )
Monday November 27, 2006
foss fever...over?
foss.in 2006 is over. What did we benefit from that.
From the OpenSolaris front, I see its another milestone. When I compare with the foss conference held last year and this year, I see a drastic change in the foss community built around OpenSolaris in India.
Last year, a change from Linux Bangalore to foss.in was a major step, but still many are of the preception that Linux is THE only opensource software and I saw this mindset in foss.in 2005 as well. Eventhough our demo stalls attracted many people, some were skeptic whether SUN is really serious about OpenSolaris. When I was demo-ing zones technology last time, I remember there were few hardcore geeks from Linux community who came to the stalls only to say Solaris sucks and never tried to understand what I am trying to demo. Slow-aris was still in their minds. We have to tell them lot has been changed since Solaris 7 or Solaris 8 (which they used once upon a time and made an opinion based on that) Solaris Express is leaps and bounds ahead when compared to S8. The BeleniX livecd, which was in the initial stages at the foss.in 2005 time, was given to everyone who came to the SUN stalls, so that people can get a feel of OpenSolaris without installing it. But many commented back saying whats big deal in making a livecd, BeleniX livecd is too slow it sucks etc. Many of the Linux geeks never visited SUN stalls (probably a different religion feeling). We made sure not to enter into religious wars (never even thought about it). We expected a hostile environment , but I should say, leaving few people aside, the response was really good.
Overall, I felt foss.in 2005 was just a name change rather than a mindset change.
What happened over this period?
Even though many hardcore Linux geeks never agreed to the fact that Solaris has changed a lot, we got a huge response from foss.in 2005. Many people joined BOSUG (Banglore Open Solaris User Group) and lot more people showed interest in OpenSolaris.
BeleniX figured out in news papers. DeveloperIQ interviewing us. Got some focus around OpenSolaris.
College visits and requests from colleges to give talks on OpenSolaris.
Regular bosug meets which is now grown into the second largest OpenSolaris user group through out the world.
BOSUG is one of the most active alias and people who joined are enthusiastic about OpenSolaris technologies.
Anil Gulecha met with the team in one of the University visits to whom we offered a project to do liveusb.
I know how much did Moinak worked in background to make a person, who never worked on Solaris, to do this project.
All pieces are already there in BeleniX and with able guidance from Moinak and dedication from Anil made this easier.
Anil's example is motivating factor for other students who wants to pitch-in and do projects in OpenSolaris.
BeleniX, Anils contribution, foss, University visits etc are the success factors of the OpenSolaris in India over this period.
Allthough other User groups in India are not as active as bosug, I hope to see them active in near future.
We had lot more projects in BeleniX and OpenSolaris as well. Over this peroid of time BeleniX is also grown into a distribution as comparable to Knoppix in Linux world.
Just before foss, Anils column in TOI and aajtak interviewing Moinak were a boost.
foss.in 2006:
With all these developments over the period, I saw a trend change. People who visited SUN stalls last year, volunteered to man the demo booths. We had volunteers from outside SUN who demo-ed BeleniX. I saw few of the big shots stop-by our stall, understand what we are demo-ing. Many people were impressed by the ZFS demo. They had to accept ZFS is a last word in the filesystem.
Saw many students asking for speakers to their college fest at the conference. We developed a webpage for such requests.
I see big opportunity to students and for OpenSolaris to grow in India.
although foss.in is over, but the foss fever (particularly opensolaris) is still on.
Saturday November 25, 2006
Foss day 2
Last year foss was a big success and SUN is sponsoring this year's foss event as well.
I was not able to attend day 1 even tough I have booth duty at the FMA demo stall as I had a serv 1 escalation which needs attention.
Today I went to the venue. I demo-ed Fault Management System in OpenSolaris. Didn't inject faults and showed how FMA handles as the same system is also used for demo-ing SUN Grid Engine, but showed them already existing faults in the system. We had nice response on 2nd day as well. (heard there was really good response on the first day)
Here is video also taken a the venue.
In the afternoon the crowd was less as compared to morning session. Evening we had our talks. I couldn't attend any of the Java talks but heard it went really well. I attended the BrandZ talk given by my colleagues Kishore and Ananth. Both of them did splendid job making sure everyone understands what BrandZ is all about. Kishore went through the slides explaining from Virtualization to the system call flow in BrandZ. Later Ananth took charge and gave a cool demo. Crowd was less, but I am sure whoever attended got the right pointers.
Saturday September 30, 2006
hdinstaller enhancements
Adde
Install grub option to MBR or primary partitiond new screens to create an additional user,
Install grub option to MBR or primary partition
and ZFS support for creating home slice.
[Read More]
Monday March 20, 2006
enhancements to hdinstaller
Last couple of months I was too busy with work and going places. I hope I will finish off my office work this week so that I can do some work on hdinstaller. I didn't touch hdinstaller for a long time since BeleniX 0.3 was released. I need to finish this before going further with other tools. Adding network configuration and timezone setup, auto updating grub entries, preserving existing Solaris partitions and adding ZFS support are my immediate tasks. One more is package selection tool, but before this, we have to decide on what packaging we should follow. Moinak's idea is to have pkgsrc. As SVR4 PMS sources are out, we have one more option.
Suntech days - Singapore
As usual bit late in blogging. Myself and Moinak went to Singapore on 22nd to attend Sun techdays. We used this occasion to attend Singapore OpenSolaris User Group (actually they scheduled a talk for Moinak on BeleniX) and also meet few Product Techinical Support Engineers in Singapore. 22nd we had to go chennai and collect our passports and then catch the flight to Singapore. As our program was finalized in the last moment, we didn't yet book tickets. Getting a flight to chennai was really tough that day. We asked the travel desk to block all the flights till 10:00PM (as our flight to Singapore is at 11:00 PM).We were lucky to get tickets in Jet Airways at 8:30PM. We reached in Chennai at around 9:00PM and collected passports from the agent. Everything went well. We reached there at 5:00AM, singapore time (2:30hr ahead). We had kill sometime (almost 5hrs) in the hotel lobby before we got rooms we attended the User group meet at 7:30PM. Ed was giving a preso on zones by the time we reached there...then Moinak spoke on BeleniX. It was well recieved. We met a really cool guy from sales, Ivans, who drove us to an Indian restaurant. (yep I was a Veggy, so others also joined me). We spent chatting there for hours. By the time we reached our hotel room it was 1:00AM. Next day (24th) is the Solaris track day. So I woke up early at 7:00AM and reached the seminar room at around 8:00AM. I didn't prepare slides for the preso, just used the slides which Peter gave me. I only changed the presenter's name The techday event started with Barry Cooks preso. Edward gave a talk on SMF. We had one more guy from Russia, called Boris, from Studio development team. He presented Studio 11. Afternoon was my session on Multi-threading, libumem, event ports. I used the slides given by Peter. I felt it would be better to show some Multi-threaded programs and do a live debug of an app for memory leaks and memory corruption using libumem, as most of it is difficult to understand with out a demo. As I know beforehand xterm has leaks, I used it to debug. I don't know how many got it right away, but I made it sure, they got the correct pointers to go back and refer later. We ended the session with Peter's DTrace code camp. Over all, there is a good response here. Sunday we went to Santosa Islands. We enjoyed a lot over there. The under water tunnel, Dolphin show and finally the Musical fountains. We reached back around 9:00PM. Monday we went to Sun office. Met few PTS engineers. Returned back the same day (27th) night.
Thursday February 09, 2006
A short trip to IIT Kanpur
Sumitha came to my desk and asked me if were willing to go Kanpur for a presentation. It was Sanjeev who was supposed to go, but he had an urgent issue to deal with. But the problem, for me, is very short notice. I have to prepare slides within 3 days. Even though 3 days was good enough, I had some work which needs immediate attention and on top of it BOSUG meet is there, where I promised will present a video of Solaris Express installation. I prepared it long back, but I didn't look back. I finally thought I will do it. I felt I can stretch to some extent and do it. I got some slides from Sanjeev which I didn't look seriously till 4th Feb. I opened the slides on the Saturday morning, at home in my laptop, and realized I need to change lot of stuff to make it a opensolaris preso. I came to office as I thought I might not work seriously at home. Evening there was BOSUG meet, so didn't have time to look again till Sunday. I finished it on Sunday itself and got ready for the flight on Monday evening. Considering the Bangalore traffic, we started by 2:30PM for the Delhi flight. After security checks we entered the Jet airways flight at around 4:00PM. It took exactly 2 hours 20 mins for the flight. We landed in Delhi and went straight to the old Delhi railway station where we had to catch a train for Kanpur. We went to Kanpur by Kaifuyat Express. We reached by 5:30AM. The Kanpur guest house was good, but had lot of mosquitoes. We slept for a while and showed up for lunch. Meanwhile our Marketing person, who was in contact with IIT Kanpur camein. We discussed about the program and later we went to the cse lab. I saw few AMD Opteron boxes lying there. The coordinator for this activity and a 3rd year student Piyush was all along with us. He said those boxes were donated by SUN but all are running only Linux. I was surprised as the marketing folks didn't even push them to use Solaris on that. Our program started in the evening around 6:15PM. They initially thought a room which can hold 250 people would be enough, but theres huge response for this and they had to move to another room with 500 capacity, which was also full. Kannan started with J2SE preso. We realized that not all people outthere are interested. They started moving one-by-one and the audience were reduced to half of what we had at the start. Then after Kannan I started my OpenSolaris presentation. I focused only on outlining various technologies we have in Solaris and how they can benefit/participate from/in OpenSolaris. Mine went well. Very few were serious questions. None were challenging to me. They were given a DTrace problem to solve, for which I offered help after the presentation. I told that I will be available for another 5 hours. Few of them came immediately after Ashok's presentation and asked how to tackle the problem. I didn't give them the solution but I gave them some pointers with which they can solve the problem. I got to know there was huge response for the BeleniX liveCDs. Overall the trip was a success. I hope more developers to join the band.
January BOSUG meet
We had our Jan BOSUG meet in Feb. We couldn't get time to arrange for a meet in Jan, so we ended up doing on 4th of Feb. 4th Feb was Saturday I was at office preparing slides for IIT Kanpur trip. Then only I suddenly realized the BOSUG meet is in the evening.
By the time I realized it was already 3:00PM and the meet is at 6:00PM. So I quickly searched for the video I made long back. I found it but I didn't have a player to run them on my lappy. I installed mplayer from blastwave and quickly got ready for the meet. User group meet started at 6:30PM. We had problems with our laptops. It was really embarassing that we took so much time to bring it up on projector. But what can we do, its the problem with Ferrari. But the learning is we should be ready well before the meet starts. Anyway Pavan started with partitions and disks. Then I ran through my video of Solaris Express installation. Moinak spoke for sometime on ZFS. By the time we completed it was already 9:30PM.
Saturday January 07, 2006
Belenos (BeleniX), the sun god, is raising.
If I look back and see the progress BeleniX made, its simply amazing. Thanks to Moinak for the initiative. BeleniX was started to evangelize OpenSolaris and we were able to evangelize OpenSolaris in a much betterway. BeleniX seems to have attracted more people to our user group at Bangalore. Bangalore OpenSolaris User Group (BOSUG) alias is the most viewed and the second most active alias of all other user groups. One can see the feature differences between BeleniX 0.1 and 0.2 and 0.2 to 0.3. Someone in a user-group alias correctly said, "BeleniX is moving at a very fast pace. Every 4 weeks we are seeing a release" Now if compression goes well, then BeleniX makes a huge leap ahead. This would make a huge difference as booting from livecd will be faster and also we can sqeeze-in more apps. Each time Moinak says we have more space, we think what can be added to the CD. Now with compression (using zlib) we get nearly 60-70% more space. Which can allow us to squeeze-in more than 1.5 GB. An extra space of 800MB! Now again the big question what can we add? Other things that are due are enhancements to hdinstaller like allowing partition resizing, auto updating grub entries, preserving existing Solaris slices so that BeleniX can co-exist with Solaris and OpenSolaris based distros, network configuration, adding support to create zfs slices, pkg selection tool and some bug fixes. pkgsrc part is also done. Will be included in 0.4 Surya and Saurabh, from my team (Solaris Sustaining) implemented reiserfs read-only support. They are planning to release that under CDDL. So hopefully we can get that as well. Hopefully we will see support for ntfs as well. So 0.4 might be one more big release. more driver support...more apps. Sometime back in a discussion, just after BeleniX 0.2 released, I told Moinak, "BeleniX will have as much popularity as Knoppix now has in Linux world.". Might be an impossible task that day, but now its quite possible. Moinak had to agree it now.
Configuring pppoe on BSNL networks
In some areas, in India, you need to configure pppoe for BSNL to connect to net. docs.sun.com has a very good document on this, but thought a quick guide to configure would be helpful. So here is a quick quide to setup pppoe for BSNL networks. (This is not restricted to BSNL, it should be applicable to any service which is based on pppoe.)
SUNW
ppp packages should be already available for you unless you didn't
install.If you didn't install you need the following packages. Install them from your Solaris CD.
SUNWpppd - Solaris PPP Device Drivers. SUNWpppdr - Solaris PPP configuration files. SUNWpppdt - Solaris PPP Tunneling. SUNWpppdu - Solaris PPP daemon and utilities.
There will be a file myisp.tmpl in /etc/ppp/peers directory. copy it to file name bsnl cp /etc/ppp/peers/myisp.tmpl /etc/ppp/peers/bsnl edit bsnl file using you favorite editor. The uncommented section should look like the following. where INTERFACE should be your ethernet interface name and USERNAME is your broadband user name.
connect "/usr/bin/chat -f /etc/ppp/myisp-chat" # dial into ISP. sppptun plugin pppoe.so connect "/usr/lib/inet/pppoec INTERFACE" user USERNAME # my account name at my ISP remotename bsnl # name of the ISP; for pap-secrets noauth
# do not authenticate the ISP's identity (client) noipdefault # assume no IP address; get it from ISP defaultroute # install default route; ISP is Internet gateway updetach
# log errors and CONNECT string to invoker noccp
# ISP doesn't support free compression
Now there are 2 configuration files to update. /etc/ppp/pap-secrets /etc/ppp/chap-secrets In these two files add the entry as follows
USERNAME bsnl PASSWORD
where USERNAME is your broadband username and PASSWORD is you broadband password.
you need to specify dns server to resolve dns names. create a file in /etc with name resolve.conf and copy the nameserver info. for example: echo nameserver 61.1.96.69 > /etc/resolv.conf
note: The ip specified here is bsnl nameserver, but might be different for you. Please ask your bsnl operator. dns file. cp /etc/nsswitch.dns /etc/nsswitch.conf Make a backup copy so that you can copy back when needed nexttime. cp /etc/resolv.conf /etc/resolv.conf.bsnl
copy In case you are still not able to resolv dns name. check if dns/client service is running or not. svcs -a | grep dns/client if not enabled svcadm enable dns/client if not online, try starting svcadm restart dns/client or svcadm refresh dns/client
Saturday December 03, 2005
A Success Story at foss.in
foss is the biggest open source conference held in Bangalore from 29th November to 2nd December 2005.
As a Solaris Sustaining and Engineering team, we felt we should take the lead and use the opportunity to evangelize OpenSolaris.We started discussions on this for over a month ago when we had only 2 days to submit the abstracts.We decided to go for it and sorted out a subset of the cool features, in OpenSolaris, and quickly submitted our abstracts for the talks. Later we got the green signal for the sponsorship and we started our real activity 20 days before the event.
20 days it was full of work.As usual Sumitha, Vinay and other managers backed us well. This is one of the coolest thing in my team. Our managers strongly believe in us. Mahesh took the lead and we formed a group of people who are interested. We brainstormed for ideas, listed down and broke up the tasks and divided the work among us. All issues like what are all needed to be demo-ed, who will lead the demos, how do we maintain 4 days making sure we have enough volunteers, training volunteers, dealing with the foss guys, agency guys, (who had setup the nice Sun stall), how to handle talks, question set, bof session plans etc.
We cameup with a decent proposal on demos and identified owners for each demo.We can have 5 stalls in the place that is provided, so we decided we retain 3 stalls for ourself and give away one stall to Glassfish and one stall to Marketing guys. We decided to run 2 different demos per stall.The demos we planned-for are DTrace, Debugging tools, Zones, SMF, ZFS and BeleniX/installer/general stuff. Other stalls we gave it to Glassfish and netbeans teams. On final day we showed looking glass demo as well.
We announced in internal mail alias that we want volunteers, but very few were willing to volunteer and some, who were willing, did't have decent knowledge to show our demos. We were only able to identify 3 to 4 people per demo and on top of it most of them are shared resource, which means they are also into different demos like Kishore in ZFS and BeleniX, Vineeth and Saif in SMF and Zones, Myself in Zones and BeleniX. But 3 to 4 shared people per demo was very few in number and with this number we need all of them standing all 4 days in shifts.Standing all 4 days is a difficult task. We don't know how we could manage, but everyone had a we can do it attitude.The enthu that is filled-in, a zeal to evangelize opensolaris and a good support and encouragement from managers made us stand all the 4 days. The response for opensolaris stalls was phenomenal. We got a huge response from the crowd, right from day one. All of us were so engaged, that we couldn't focus on anything else. I owned the zones part, but frankly speaking Vineeth, Shivani and Ganga handed it all. I am very thankful to them for taking this work from me and allowing me to work on BeleniX, which had to go into the CD that we gave out whoever came to the stall, Solaris 10 DVDs we gave to people who expressed interest in the project and who requested for it. People expressed lot of interest in all the technologies we demo-ed. DTrace, ZFS, Zones, SMF.
Sun stall was the only active stall, which is always crowded with lot of people. Other stalls were literally empty.
talks:
We started our talks with an Introduction of OpenSolaris and DTrace by Peter Karlson on day 3 and next talk was mine, Zones. I had some demos, which I planned to show in the talk, but couldn't do as my Ferrari didn't work well with the projector display. So I used the preso which I submitted to the foss before and asked the people to come to the demo stall for more info. Mahesh presented ZFS. Finally everything went well. We also had a BOF session on DTrace by Pramod, which was well recieved.
Day 4 started with Surya's talk on Least privileges and we had SMF talk by Ganesh and we ended up with DTrace code camp by Peter Karlson.
Many people got to know what opensolaris is and how they can contribute back. Lot of people were eager to join our bosug. Some were willing to buy Sun hardware, for which we re-directed to proper channel. Some who came from Bombay and Gurgoan told they want to start a opensolaris user group in their places. Overall this is a huge success.
Saturday October 22, 2005
Our first Bangalore Open Solaris User Group (BOSUG) Meeting.
I am very late at posting this message. I finally found sometime to blog this.
We had our first BOSUG meet on 7th October. It went well. We got around 10 participants from outside.
Total its a crowd of 30 to 35. We started with introducing each other.
I started with my presentation on "Introduction to OpenSolaris". Then Pramod gave a quick session on Dtrace.
Everyone was excited about OpenSolaris. We then distributed BeleniX LiveCD.
Thursday June 16, 2005
Wrapper library to track memory leaks
Recently with the help of Moinak and Kishore I wrote a wrapper library which dumps memory leaks.
Thought of talking about it here.
You can use libumem to identify memory leaks.
I feel libumem is a powerful tool to identify memory leaks.
The tool we developed is a simple one and just only done for learning stuff.
Idea was to write a wrapper library which we can just preload it to the app.
What the idea was to track all memory allocations which are not freed.
atexit, registered reportalloc (function which reports allocation), so on program termination
we get the dump of all memory allocations which are not freed. Not only I report
at the exit, we can also get a dump of all allocations when a particular signal is sent to
the program. You can set an environment variable SIGNAL_USED to a signal which is unused
in the program (How do you find which signals don't have handlers...use psig on the process).
wrapper library will handle that signal, so when ever you send a signal $SIGNAL_USED
to the process it dumps all allocations at that instance.
We wrote wrappers for malloc, calloc, realloc, valloc and free.
How we got stack trace? We got the stack frames and extracted return addresses and
using dladdr to find symbolic information.
Some codesnips of the library is below.
Only writng malloc here as other are almost similar except calloc which has an extra argument.
void *malloc(size_t size) {
void *buf;
/* dlinit will initialize global function pointers which will
* point to the original libc functions.
*/
dlinit();
/* mptr is a function pointer to libc malloc */
buf = (*mptr)(size);
/* We add the data to a hashed list
* what each node in the hashed chain contains
* is the address returned, stack trace, bytes allocated
*/
addnode(buf, size);
return (buf);
}
void dlinit(void) {
/* lock it so that multiple threads in application might not simultaniously
* do a dlopen
*/
pthread_mutex_lock(&mt);
if (dlh == NULL) {
if ( (dlh = dlopen("libc.so", RTLD_NOW|RTLD_PARENT))
== NULL) {
perror("dlopen: ");
pthread_mutex_unlock(&mt);
exit(1);
}
/* get pointers for malloc, calloc,... etc */
mptr = (void *(*)(size_t))dlsym(dlh, "malloc");
cptr = (void *(*)(size_t, size_t))dlsym(dlh, "calloc");
rptr = (void *(*)(void *, size_t))dlsym(dlh, "realloc");
vptr = (void *(*)(size_t))dlsym(dlh, "valloc");
malignptr = (void *(*)(size_t, size_t))dlsym(dlh, "memalign");
fptr = (void (*)(void *))dlsym(dlh, "free");
/* register signal handler*/
sigact.sa_handler = sighandler;
if (sigaction(SIGNAL_USED, &sigact, NULL)) {
perror("failed in registering signal");
}
atexit(report);
}
pthread_mutex_unlock(&mt);
}
...
...
...
void sighandler(void) {
pthread_t thr;
/* create a new thread and dump current allocations which are not freed. */
pthread_create(&thr, NULL, reportallocs, NULL);
pthread_detach(thr);
}
Want to know Solaris..let us know
If any institution is interested, in any courses in Unix or want to here about Solaris,
let us know about it. We can volunteer to take classes. Ofcource it depends on how busy we are
Along with Raju Alluri and others we formed a team to teach Advanced Unix Programming.
Our first one was a 3 day workshop on Advanced Unix Programming at GRIET, Hyderabad, India.
I was surprised to see the crowd that registered for the workshop. Most of them were faculty
members from different colleges in and around Hyderabad. But the pity thing is they know a little
about Unix and Solaris. I am sure this is the case with most of the colleges except IITs and NITs.
You came to Sriram Popuri's blog
Hi
Let me introduce myself. I am Sriram and I work for Solaris Sustaining.
I graduated from IIT-Guwahati, India.
I am passionate about Solaris from my college days onwards.
I personally feel Solaris is the best OS on this planet and feel proud to be working in a group which
fixes issues in Solaris.
I like to play a lot. From the day I was born I was watching my father play and
then watch cricket on TV, probably the reason why I love cricket.
I play Badminton. No reason why,but I like playing it. I represented my school twice in badminton.
I also like playing chess which I used to play long hours with my grandpa.
When I get bored I play loosing game in chess.
Do you know what? you have to loose all your pieces on board before your opponent.
I like drawing, Now I am much more interested in cryptic drawings. Will share what I have meant, once
I know what it is :) just kidding. When I have time will blog it.
Recent books I read:
The Chess Mysteries of Sherlock Holmes, I feel this book is a master piece written by Raymond Smullyan.
This book deals with Retrograte Analysis.
I thought of buying all the books of this Author, but I couldn't get them in
any of the bookstores in India :(
DaVinci Code, nice one. It involves lots of puzzles and interesting twists.
Currently reading The music of the primes: The Author is a mathematician,
who talks about discoveries in primes. The book focuses mainly on Reimann Hypothesis.
If you read it, I am sure you fall in love with primes. Not too much of maths involved.
So easy to understand for anyone.