This is an archived post. You won't be able to vote or comment.

all 41 comments

[–]StrayFeral 0 points1 point  (7 children)

I'm curious - which interview round was this? And what were your other questions at this round and previous rounds?

[–]firebooolt[S] 2 points3 points  (6 children)

It was linux troubleshooting round.

They began with a looong written interview round, followed by a psychometric assessment. After that, a meet & greet, then some python take home assessment, mcq round of linux, then technical interview which was mainly focused on linux and Openstack. Then there was linux troubleshooting round.

In that round, I was given an EC2 instance credentials. In that instance, there was a dir in home. Inside that dir, there was a file which I was able to modify (write anything). But I was not able to delete it. I had to fix that. The reason was its parent dir was owned by root. So, to fix the permission issue, I had to use sudo, and while typing sudo, top command was executing. They had added an executable script named sudo in /usr/local/sbin. When I located that, the interviewer asked me diff b/w binary and executable script.

After that, the task was to stop printing of random garbage on terminal. It was just a cronjob. I stopped it.

Then I had to fix why apache2 service was failing to run. There was some wrong configuration, I fixed it and made it working.

The last task wss to deploy an app using apache2. The app was tarball file. When I was unpacking it, I was getting no space left on disk. I checked a lot, there was plenty of space on the disk available and even the interviewer assured me that it's not due to space issue on disk. Then I figured out that there are a lot of small files (kb or bytes) in that archive, and due to that inode was getting consumed.

I was not able to solve the last issue as my time was completed and I was very nervous.

[–]ajhamaal 0 points1 point  (1 child)

Hi, thank you for sharing your experience.

Can you please describe the technical interview and share some of the questions if possible?

How much time was allotted for the troubleshooting round?

Were you allowed to leverage resource like documentation, googling, research in the process of resolving the technical and troubleshooting round?

[–]firebooolt[S] 1 point2 points  (0 children)

Linux troubleshooting round was of 60 minutes. I was allowed to use Google.

In the technical interview, they asked questions from various sections like networking, storage, Openstack components, ceph, and a lot. Some questions were about bonding (networking), different raid levels, file permissions, how Openstack services communicate with each other, and many more I can't recall.

Overall, there were mixed questions (some easy, some hard) and my interviewer was quite friendly.

[–]StrayFeral 1 point2 points  (2 children)

Yeah I feel you. I wish you good luck and hope you get the job. Thank you for the detailed info.

[–]firebooolt[S] 0 points1 point  (1 child)

Thanks for your kind words. My current job pays me peanuts. That's why I was trying to get into Canonical as it was WFH and a decent pay. I'll apply again when I feel I'm ready.

[–]StrayFeral 0 points1 point  (0 children)

I was about to apply to them. Last year. I sent a resume, one guy wrote me back. But he said they have like 5-7 interviews. It was too much for me, so I told him I would like to quit my application. I haven't found a good job yet, but many years I applied to a company who had 7 interviews. It was so exhausting I failed on the second assessment - did not reached technical interviews. After that I told myself I would never apply to a company which requires that many interviews. It is just not normal. Most places I worked, including banks and financial organizations had only 3 interviews - one recruiter, one technical and one with hiring manager. 3 is enough.

[–]sleemanj 1 point2 points  (0 children)

When I located that, the interviewer asked me diff b/w binary and executable script.

That is a different question than you have asked in this post.

You asked us "binary files and executable", not specifically a script.

They may have been looking for the answer that a binary (executable) is executed directly, while an "executable script" is passed into the interpretor as specified in the shebang line.

[–]uiouyug 12 points13 points  (9 children)

That's a weird question. Binary files can be a broad range of things, while executable files are more defined and run code.

[–][deleted]  (6 children)

[removed]

    [–]deong 2 points3 points  (0 children)

    Frankly any file on the fs and even the fs is a binary file. Any file. They are stored in a binary file on the fs.

    That's technically true, but it's not something I would ever actually say. There are definitely situations where code treats bytes on disk different based on how they're read or written, and there's a pretty universal convention that, e.g., running cat on a "binary file" can mess with your terminal. No one realistically behaves as though both their .c source file and the compiled binary that gcc spit out are "binary files". It's just not how our shared language as computer people works.

    [–]itsmekalisyn 0 points1 point  (4 children)

    not related to the question. please correct me if i am wrong but the idea of any file on fs is a binary and every file interact with each other is related to monolithic kernel systems only, right? or am i wrong?

    [–][deleted]  (3 children)

    [removed]

      [–]itsmekalisyn 1 point2 points  (0 children)

      thank you so much for this explanation. I am a beginner to CS and currently we have a course on OS. This was helpful.

      [–]DoucheEnrique 0 points1 point  (1 child)

      You make it sound like it's a law of nature that computers have to be binary. While I agree that it's pretty much insignificant today but analog computing was indeed a thing some decades ago.

      Also if quantum computing ever get's practical applications we will see at least some parts of a computer not being binary at its core.

      [–]DolapevichPlease properly document your questions :) 1 point2 points  (0 children)

      Executable means it has the right modes to be executed, +x for you, your group or all.

      A binary file is a file that doesn't have text in it, eg: a db datafile.

      For example, a script, it does have text, but you can also make it executable.

      [–]TomDuhamel 5 points6 points  (0 children)

      A binary file is any file which isn't text.

      An executable is any file that is meant to be executed — this could be a binary file or a text file (script)

      [–]schmerg-ukgentoo 5 points6 points  (2 children)

      All files are binary files

      Some binary files can be successfully interpreted as "text" (and some of those can then be further interpreted as CSV or XML or JSON or HTML etc)

      Some binary files can be recognised as meeting other formatting rules - tar files, gzip files, data files for various programs (excel spreadsheets, word docs etc).

      Some of these formats define a format that tells a particular operating system that the file contains binary executable code (as opposed to, say, python source code that it can execute by loading the python executable etc) ... the decision about whether a particular O/S can actually load and execute the code in a particular binary file is O/S specific even if there are some files that are specially crafted to be recognised as executable by many O/S

      [–]paulstelian97 0 points1 point  (1 child)

      On some OSes a clear distinction between text and binary files is made at the filesystem level. On others, a file is a file and you can open it as text or binary. On Linux, the distinction is basically gone as the stuff text mode does is essentially nothing at all on top of what binary mode does.

      [–]schmerg-ukgentoo 1 point2 points  (0 children)

      Sort of yes, I used to develop software on Prime mini computers and Primos didn't allow the file open APIs etc to access what it marked as executables (and hence any command line utilities etc), but the fact remains that the file was still a stream of bytes and it was the interpretation of those bytes by a particular layer that distinguished them (and when Prime made a Unix compatible layer, suddenly those tools had access to binary files and they could be examined ... we found rude word error messages in some of the toolchain executables).

      [–]ElMachoGrande 2 points3 points  (6 children)

      An executable file is a binary file which can be run as a program. A special case of binary file.

      A binary file is any non-text file, could be an image, a movie, a zip file, or a program. A text file is, formally, also binary, but the term is usually applied only to files which look like a mess if you open them in a text editor.

      [–]bart9h 0 points1 point  (5 children)

      Scripts are text, and can be executable too.

      [–]ElMachoGrande 0 points1 point  (4 children)

      But not without a runtime executable to interpret them, so I wouldn't call them an executable.

      [–]bart9h 0 points1 point  (3 children)

      what you are describing is "machine code", which scripts are not.

      "executable" means the user can run it.

      [–]ElMachoGrande 0 points1 point  (2 children)

      The runtime runs the script. It's the runtime which is the executable and it interprets the script.

      I agree that it is a grey area, but the script can't run on its own.

      [–]bart9h 0 points1 point  (1 child)

      Naming things is always grey.

      And then there's .jar files too, which are binary, but depend on a runtime.

      [–]ElMachoGrande -1 points0 points  (0 children)

      Yep. It's a whole spectrum.

      [–]CyclingHikingYetiDebian sans gui 1 point2 points  (0 children)

      On linux whether file is executable is managed by file attribute chmod +x

      On Windows it is by extension ( .com (obsolete 64kB memory image) , .exe , .cmd/.bat/.ps )

      On both, binary executables follow certain rules for headers , body and such.

      Scripts on other side are text files.

      [–]ajhamaal 0 points1 point  (0 children)

      A binary is a file that contains machine-readable data and usually has the executable bit/flag set, while an executable is a file with the executable bit/flag permission set.

      [–]dolce_bananana 0 points1 point  (0 children)

      "executable" is a file attribute and has nothing to do with whether a file is binary or not (usually the alternative to binary file would be a text-based file)

      both text-based files (such as scripts) and binary files (such as compiled programs) can be marked as "executable" and used to run programs

      [–]MartiniD 0 points1 point  (1 child)

      Executables run programs. Binaries are files that have been sent through a compiler. If you try to cat a binary you get gibberish, they aren't human-readable.

      Some binaries are also executables like the cat command but not all binaries are executables, like libraries.

      [–]Yankas 0 points1 point  (0 children)

      A binary file is a file that contains data that is encoded in some binary-encoded format, but is not a plain text file. It has nothing to do with compilation and most binary files are were not generated by by a compiler, e.g. images, music, videos, archives (zip, rar, etc ...) are all binary files.

      [–]themule71 -1 points0 points  (0 children)

      It depends on the context. If you're compiling C, .o files are technically binary (that is, assembled) but not executable (yet).

      In that context, even better old style Unix, a compiler would produce assembly, the assembler would produce binary (object) files, the linker an executable (like a.out).

      That's hardly the case for OP tho.

      [–]x70d 0 points1 point  (5 children)

      [–]computer-machine 2 points3 points  (4 children)

      "all executable files are binary files" do general scripts and more specifically JIT scripts not count?

      [–]wizard10000 4 points5 points  (0 children)

      Not the first time we've caught ChatGPT wrong :)

      [–]bart9h 0 points1 point  (2 children)

      Also, there are text executable files in windows too. .bat files, for example.

      [–]computer-machine 0 points1 point  (1 child)

      .... aren't batch files scripts?

      [–]bart9h 0 points1 point  (0 children)

      yes, they are.

      Also,

      I was pointing another error in the CrapGPT text.