os211

Top 10 List of Week 04

  1. Pointers in C Explained – They’re Not as Difficult as You Think
    Pointers? What are those? Well, if you have used C before, you should have heard about pointers before. Pointers are confusing and I find it hard to understand them. If you have the same problem as me, check out this website. This website a bunch of thing about pointers and divide them into segment and give a sound conclusion at the end.

  2. Fast Inverse Square Root — A Quake III Algorithm
    This is an algorithm for calculating inverse square root but fast. This algorithm is created by John Carmack and used in the Quake III game. This video explains the algorithm in the C programming language. This algorithm also use a clever floating point hack. At first, the algorithm may seem confusing and a bit weird (maybe a lot) but this video explains it really nicely. 😁

  3. Have a donut.
    An entertaining C program that’s made by Andy Sloane. This program is a source code for a 3D spinning donut. But the interesting thing is that the source code is also shaped in C. You can check the given link and compile the source code yourself to see in action. Orrr, if you are too lazy to do it, here is a YouTube video that demonstrate it.

  4. Little-Endian And Big-Endian Byte Ordering
    Computers store data in memory in binary. One thing that is often overlooked is the formatting at the byte level of this data. This is called endianness and it refers to the ordering of the bytes. Little endian is when the least significant bytes are stored before the more significant bytes, and ig-endian is when the most significant bytes are stored before the less significant bytes. Why does that stuff is important, check out this website that helps me learn about endianness.

  5. Static vs Shared Libraries
    In programming, a library is a collection of pre-compiled pieces of code that can be reused in a program. Libraries simplify life for programmers, in that they provide reusable functions, classes, and so on which they can be reused in the program. There are two kind of libraries, static and shared, with each of them have different properties. This website present that information in a well-mannered format which I like.

  6. Makefile and how it works
    If you have tried (or see) the demos on Sir RMS github repo, in some of the demos, there is this file that is named Makefile. Makefile is a file that defines a set of task to be executed by the make command. You may have used make to compile a program from source code. You may have used make to compile a program from source code. In this article, they’ll explore make and Makefile using basic and advanced examples.

  7. Why You Should Almost Always Add Swap Space
    Swap space is a reserved space in memory that is used when the RAM is already full or nearly full. But, as it’s using ROM, it’s much slower that RAM. Then, why use them at all? Can we just delete them? Well, the short answer is no. There are still benefits when using swap space even when you have more than enough RAM space. This website explains all about that comphcomprehensively.

  8. Common C Code Vulnerabilities and Mitigations
    The C programming languange is old, there are a lot of vulnerabilities that can be found. Some of them are alreay well known and there exist a mitigation for it. This website explains some common vulnerabilities on the C programming languange and also their mitigations. Many of the vulnerabilities are related to buffer overflow.

  9. GHIDRA
    Say you have a binary that comes from a c program, but what happens if you want to know what is the source code. Well, I have good news for you! GHidra is a tool that is used for reverse engineering that is used by many security researches to analyze binaries. With this tool you can decompiler a binary to a c program (which doesn’t have the exact same code but does have the same functionality. Fun fact! GHidra is developed by NSA (National Security Agency) 😲 and it’s free!

  10. Understanding ELF File Format
    You might have heard about exe or PE file format, that file format is commonly used by Windows OS. On Linux, the common one is ELF. ELF is designed with flexibility, extensibility, and cross-platform support for different endian formats and address sizes. This website explains many thing about ELF file format, starting with the history, file structure, header, and even some external sources if you want to learn more

That’s all from me for this week topic. See you on the next one 👋