Monday, January 30, 2017

Fedora 25, kernel 4.9 and VMWare Workstation 12.5.2

Well, after upgrading Fedora 25 which included kernel 4.9.5, VMWare Workstation stopped working again! The fix is easy, even though it annoying to constantly have to patch something in VMWare. Anyway, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 procedure - taken from here - is:
  1. Switch to root account.
  2. Go to /usr/lib/vmware/modules/source.
  3. Make backup of files vmmon.tar and vmnet.tar.
  4. Unpack those files using 'tar xf' command.
  5. Patch file vmnet-only/user_if.c, i.e. you have to open it in you favorite text editor and in function UserifLockPage() that's around line 113 change cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following part:
    #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0)
        retval = get_user_pages(addr, 1, 1, 0, &page, NULL);
    #else
        retval = get_user_pages(current, current->mm, addr,
                    1, 1, 0, &page, NULL);
    #endif
    with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following:
    #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0)
         retval = get_user_pages(addr, 1, 0, &page, NULL);
    #else
    #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0)
         retval = get_user_pages(addr, 1, 1, 0, &page, NULL);
    #else
         retval = get_user_pages(current, current->mm, addr,
                     1, 1, 0, &page, NULL);
    #endif
    #endif
  6. Then, in file vmmon-only/linux/hostif.c in function HostIFGetUserPages() that's around line 1158, change cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following
    #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0)
       retval = get_user_pages((unsigned long)uvAddr, numPages, 0, 0, ppages, NULL);
    #else
       retval = get_user_pages(current, current->mm, (unsigned long)uvAddr,
                               numPages, 0, 0, ppages, NULL);
    #endif
    with
    #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0)
       retval = get_user_pages((unsigned long)uvAddr, numPages, 0, ppages, NULL);
    #else
    #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0)
       retval = get_user_pages((unsigned long)uvAddr, numPages, 0, 0, ppages, NULL);
    #else
       retval = get_user_pages(current, current->mm, (unsigned long)uvAddr,
                               numPages, 0, 0, ppages, NULL);
    #endif
    #endif
  7. Create new vmmon.tar and vmnet.tar using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following commands:
    tar cf vmnet.tar vmnet-only
    tar cf vmmon.tar vmmon-only
  8. Start vmware as you would normally start it. This will trigger module compilation and everything should work.
Note that you are doing everything at you own risk! :)

Friday, January 6, 2017

Few thoughts about systemd and human behavior

I was just reading comments on a post on Hackernews about systemd. Systemd, as you might know, is a replacement for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 venerable init system. Anyway, reading cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 comments was reading about all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same story over and over again. Namely, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are those strongly pro and those strongly con cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 systemd, in some cases based on arguments (valid or not) and in ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r cases based on feelings. In this post I won't go into technical details about systemd but I'll concentrate on a human behavior that is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 most interesting to me. And yes, if you think I'm pro systemd, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n you're right, I am!

Now, what I think is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 key characteristic of people is that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y become too religious about something and thus unable to critically evaluate that particular thing. It happened a lot of times, and in some cases cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 transition from controversy was short, in ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r cases it took several or more generations of human lives. Take as an example cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Christian religion! It also started as something controversial, but ended as a dogma that isn't allowed to be questioned. Or something more technical, ISO/OSI 7 layer model. It started as a controversy - home many layers, 5, 6, or 7? The result of this controversy we know, and after some short period of time it turned into a dogma, i.e. that 7 layers is some magical number of layers that isn't to be questioned. Luckily, I don't think that it is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 case any more, that is, it is clear that 7 layers was too much. Anyway, I could list such cases on and on, almost ad infinitum. Note that I don't claim that any controversial change succeeded in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 end, some were abandoned and that's (probably) OK.

I should also mention one ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r interesting thing called customs (as in norm). People lives are intervened with customs. Anyway, we have a tendency to do something that our elders did just because, i.e. we don't know why. I don't think that's bad per se, after all, probably that helped us to survive. The problem with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 customs is that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y assume slow development and change in environment. In such cases cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are very valuable tool to collect and pass experience from generation to generation. But, when development/change speed reaches some tipping point, customs become a problem, not an advantage - and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y stall adjustment to new circumstances. So, my personal opinion about customs is that we should respect cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m, but never forget to analyze if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are applicable/useful or not in a certain situation.

Finally, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is one more characteristic of a human beings, and that is inertia. We used to do things in certain way, and that's hard to change. Actually, I do not think that it is unrelated to religion and customs, actually on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 contrary, I think cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are related and it might be something else that is behind. But i won't go into that, at least not in this post.

So, what all this has to do with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 systemd? Well, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is principle or philosophy in Unix development that states that whatever you program/create in Unix, let it do one thing and let it do it right. For example, tool to search for file should do it well, but not do anything else. And my opinion is that this philosophy turned into a custom and a religion in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same time. Just go through cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 comments related to SystemD and read cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m a bit. A substantial number of arguments is based on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 premise that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is a principle and it should be obeyed under any cost/circumstance. But all those who bring this argument forget to justify why this principle would be applicable in this particular scenario.

And cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 state of computing has drastically changed from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 time when this philosophy was (supposedly) defined (i.e. 1970-ties) and today's world. Let me say just a few big differences. Machines in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 time when Unix was created were multiuser and stationary, with limited resources and capabilities, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y were used for much narrower application domains than today. Today, machines are powerful and inexpensive, used primarily by a single user. They do a lot more than cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y used to do 40 years ago, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y offer to users a lot more. Finally, users expectations from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m are much higher than cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y used to be.

One advantage of doing one thing and doing it well was that it reduces complexity. In a world when programming was done in C or assembler, this was very important. But it also has a drawback, and that it is that you lose ability to see above cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 simple things. This in turn, costs you performance but also functionality, i.e. what you can do. Take for example pipes in Unix. They are great for data stored in text organized in a records consisting of lines. But what about JSON, XML and ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r complex structures? In ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r word, being simple means you can do just a simple things.

This issue of simple and manageable and complex and more able is actually a cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365me that occurs in different areas, too. For example, in networking where you have layers, but because cross layer communication is restricted means you have a problems with modern networks. Or, take for example programming and organizing software in simple modules/objects. Again, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 more primitive base system is, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 more problems you have to achieve complex behavior - in terms of performance, complexity, and so on.

Few more things to add to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 mix about Unix development. First, Unix is definitely success. But it doesn't mean that everything that Unix did is a success. There are things that are good, bad, and ugly. Nothing is perfect, nor will ever be. So, we have to keep in mind that Unix can be better. The next thing we have to keep in mind is that each one of us has a particular view on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 world, a.k.a. Unix, and our view is not necessarily cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 right view, or cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 view of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 majority. This fact should influence cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 way we express ourselves in comments. So, do not over generalize each single personal use case. Yet, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are people who's opinion is more relevant, and that are those that maintain init/systemd and similar systems, as well as those that write scripts/modules for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m.

Anyway, I'll stop here. My general opinion is that we are in 21st century and we have to re-evaluate everything we think should be done (customs) and in due course not be religious about certain things.

P.S. Systemd is not a single process/binary but a set of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m so it's not monolithic. Yet, some argue its a monolithic! What is a definition of "monolithic"? With that line of reasoning GNU's coreutils is a monolithic software and thus not according to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Unix philosophy!

About Me

scientist, consultant, security specialist, networking guy, system administrator, philosopher ;)

Blog Archive